vsftpd pam kimlik doğrulamasında başarısız oluyor


13

Denenmiş ve gerçek bir vsftpd yapılandırmasını Fedora 16 ile yeni bir sunucuya taşıyarak bir sorunla karşılaştım. Her şey olması gerektiği gibi gidiyor, ancak kullanıcı kimlik doğrulaması başarısız. Herhangi bir günlükte ne olduğunu gösteren herhangi bir girdi bulamıyorum.

Tam yapılandırma dosyası:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=0
data_connection_timeout=0
nopriv_user=ftpsecure
connect_from_port_20=YES
listen=YES
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

FTP bir kullanıcı adı ve şifre için bana meydan okuyor, onlara veriyorum, Giriş Yanlış. Doğruladım, bu kullanıcı ssh'tan giriş yapabilir. Bir şey berbat pam_service.

Anonim (izin verilen şekilde değiştirilirse) iyi çalışıyor gibi görünüyor.

SELinux devre dışı.

Ftpsecure iyi yapılandırılmış gibi görünüyor ... Ben tamamen kayboldum!

İncelediğim günlük dosyaları başarılı olamadı:

/var/log/messages
/var/log/xferlog      #empty
/var/log/vsftpd.log   #empty
/var/log/secure

Şurada bir şey buldum /var/log/audit/audit.log:

type=USER_AUTH msg=audit(1335632253.332:18486): user pid=19528 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct="kate" exe="/usr/sbin/vsftpd" hostname=ip68-5-219-23.oc.oc.cox.net addr=68.5.219.23 terminal=ftp res=failed'

Belki de bakmalıyım /var/log/wtf-is-wrong.help :-)

Daha fazla bilgi:

/etc/pam.d/vsftpd şöyle görünür:

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

1
PAM yapılandırması nedir ( /etc/pam.d/vsftpdsanırım)?
Gilles 'SO- kötü olmayı kes'

Deneyin /var/log/syslogveya dmesg.
Merhaba71

pam config: oturum isteğe bağlı pam_keyinit.so zorla yetkilendirmeyi iptal et pam_listfile.so item = kullanıcı duygusu = dosyayı reddet = / etc / vsftpd / ftpusers onerr = başarılı kimlik doğrulaması gerekli pam_shells.so yetkilendirme parola-yetkilendirme hesabı dahil şifre-yetkilendirme oturumu gerekli pam_loginuid .so oturum şifre-auth içerir
KateYoak

Yanıtlar:


24

Whew. Sorunu çözdüm. Bu bir yapılandırma anlamına gelir ancak /etc/pam.d/vsftpd içinde

Ftp oturumları başarısız olurken ssh oturumları başarılı olduğundan,

/etc/pam.d/vsftpd, orada bulunan her şeyi kaldırdı ve bunun yerine ./sshd içeriğini kurallara tam olarak uyacak şekilde yerleştirdi. Hepsi işe yaradı!

Eliminasyon yöntemiyle, rahatsız edici çizginin:

    auth       required     pam_shells.so

Kaldırmak ilerlememe izin veriyor.

Sonuç olarak, "pam_shells, yalnızca kullanıcı kabuğu / etc / shell'de listeleniyorsa sisteme erişime izin veren bir PAM modülüdür." Oraya baktım ve yeterince eminim, bash yok, hiçbir şey yok. Belgelerde hiçbir yerde düzenleme / etc / kabukları yok gibi bu benim görüşüme göre vsftpd yapılandırmada bir hatadır. Bu nedenle, varsayılan kurulum ve talimatlar belirtildiği gibi çalışmaz.

Şimdi hatayı nereye gönderebileceğimi bulacağım.


/ etc / shells genellikle kabul edilebilir mermilerin bir listesini içerir. Bu, birkaç farklı alt sistem tarafından kullanılmaktadır ve doğru olması beklenmektedir. Bu dosya vsftpd tarafından oluşturulmaz veya korunmaz, bunun yerine dağıtımınızın temel kurulumu tarafından oluşturulur. Yani bu bir vsftpd hatası değil, bilgisayarınızın kurulumunda bir hata.
tylerl

Tanrım, teşekkürler! Ben kullanıcı oturum
açamadım görmeliydim

Çok teşekkür ederim! Hakkındaki yorumunuz /etc/shellsbu garip davranış değişikliğinin nedenini bulmama yardımcı oldu. FTP Kullanıcısı ile birlikte oluşturuldu Shell: /sbin/nologinve /sbin/nologinkaldırıldığı ortaya çıktı /etc/shells. Bu yüzden çizgileri ekledim /sbin/nologinve /usr/sbin/nologinbu da auth required pam_shells.soişe yaradı.
Bodo Hugo Barwich

4

Ubuntu kullanıyorum ve aynı sorunu yaşadım

Çözüm:

add-shell /sbin/nologin
sudo usermod -s /sbin/nologin ftpme
sudo vi /etc/pam.d/vsftpd

Ardından aşağıdaki gibi yorum yapın ve satır ekleyin

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/ftpusers  onerr=succeed
auth       required     pam_shells.so
#auth       include      password-auth
#account    include      password-auth
#session    required     pam_loginuid.so
#session    include      password-auth
@include common-auth
@include common-account
@include common-password
@include common-session

0

Kendi cevabınızda belirttiğiniz gibi, kullanıcı kabuğunda listelenmelidir /etc/shells. Sen ayarlayabilirsiniz /sbin/nologinssh korusun ve Pam yapılandırmasını değiştirmeden ftp izin kullanıcı kabuk olarak:

usermod -s /sbin/nologin restricted_ftp_user

0

Vsftpd hatasıyla başarısız olursa

vsftpd.service: kontrol işleminden çıkıldı, kod = çıkıldı durumu = 2

Sonra başka bir olasılık dosyada pasv_addr_resolve=YESayarlanıp ayarlanmadığını kontrol etmektir /etc/vsftpd/vsftpd.conf. Bu, FTP sunucusunun ana bilgisayar adının DNS aracılığıyla çözümlenmesine neden olur. Eğer yapamazsan gibi DNS değil çözmek, olacaksa ping yourhostname.example.com, o zaman o DNS çözümleme sorunu veya set düzeltmek gerekir pasv_addr_resolve=NOiçinde /etc/vsftpd/vsftpd.confve en az hata olmadan başlamak vsftpd bırakmalıyız.


0

Ben de bir FTP-Kullanıcı ile yapılandırılan aynı garip davranış karşılaştım

# finger <user>
Login: <user>                   Name: 
Directory: /home/user-dir           Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.

Bir sistem oturum açabiliyor, diğeri oturum açamıyor.

@KateYoak'ın Cevabı dışında, /etc/shellsDosya'nın farklı olduğu ve /sbin/nologinkabuğu içermediği ortaya çıktı . PAM Kimlik Doğrulamasını yapan/etc/pam.d/vsftpd

auth       required     pam_shells.so

başarısız

/etc/shellsDosyaya sadece eksik satırları ekleyerek

/sbin/nologin
/usr/sbin/nologin

check-in /etc/pam.d/vsftpdçalıştı.

Bu nedenle çalışan bir /etc/shellsDosya:

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

0

benim durumumda /etc/pam.d/vsftpd yapılandırma dosyasındaki kimlik doğrulama satırını yorum yapmayı seçtim

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/f$
#auth       required    pam_shells.so
auth       include  password-auth
account    include  password-auth
session    required     pam_loginuid.so
session    include  password-auth

İşte sebebiniz. Bir kabuk sistemi olarak / sbin / nologin eklerseniz , muhtemelen sisteminizde istenmeyen bir arka kapı açabilirsiniz. Bunun yerine, bu dosyayı değiştirmek sadece vsftpd'yi etkiler .

Sshd gibi başka bir işlem sistem kabuklarını arar mı bilmiyorum , ama pam.d dosyasını değiştirmenin diğerlerinden daha iyi bir çözüm olduğunu düşünüyorum.


-2

Değişiklik yapmadan önce yapılandırma dosyasını yedekleyin;

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.back

ve sonra vsftpd.conf dosyasını düzenle (vi veya nano ile)

nano /etc/vsftpd.conf

Sonra aşağıdaki değişikliği yapın

pam_service_name=ftp

Değişikliğinizi kaydedin ve ftp sunucusunu yeniden başlatın (nano CTRL + O tuşlarına basın ve kaydetmek için enter tuşuna basın ve çıkmak için CTRL + X tuşlarına basın)

sudo service vsftpd restart
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.