Beim Verschieben einer bewährten vsftpd-Konfiguration auf einen neuen Server mit Fedora 16 stieß ich auf ein Problem. Alles scheint so zu laufen, wie es sollte, aber die Benutzerauthentifizierung schlägt fehl. Ich kann in keinem Protokoll einen Eintrag finden, der angibt, was passiert ist.
Hier ist die vollständige Konfigurationsdatei:
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 fordert mich zur Eingabe eines Benutzernamens und Passworts auf, ich gebe sie an, Anmeldung falsch. Ich habe überprüft, dass sich dieser Benutzer über ssh anmelden kann. Etwas ist mit pam_service
vermasselt .
Anonym (falls auf erlaubt geändert) scheint gut zu funktionieren.
SELinux ist deaktiviert.
Ftpsecure scheint gut konfiguriert zu sein… Ich bin völlig ratlos!
Hier sind die Protokolldateien, die ich ohne Erfolg überprüft habe:
/var/log/messages
/var/log/xferlog #empty
/var/log/vsftpd.log #empty
/var/log/secure
Etwas in /var/log/audit/audit.log
gefunden :
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'
Vielleicht sollte ich mir /var/log/wtf-is-wrong.help
ansehen 🙂
Weitere Infos:
/etc/pam.d/vsftpd sieht so aus:
#%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
Akzeptierte Antwort:
Wütend. Ich habe das Problem gelöst. Es läuft auf eine Konfiguration hinaus, aber innerhalb von /etc/pam.d/vsftpd
Da ssh-Sitzungen erfolgreich waren, während ftp-Sitzungen fehlschlugen, ging ich zu
/etc/pam.d/vsftpd, entfernte alles, was dort war, und platzierte stattdessen den Inhalt von ./sshd so, dass er genau den Regeln entspricht. Alles funktioniert!
Durch die Methode der Eliminierung fand ich heraus, dass die anstößige Zeile war:
auth required pam_shells.so
Wenn ich es entferne, kann ich fortfahren.
Stimmt ab, „pam_shells ist ein PAM-Modul, das nur Zugriff auf das System zulässt, wenn die Benutzer-Shell in /etc/shells aufgeführt ist.“ Ich habe dort nachgesehen und tatsächlich, kein Bash, kein nichts. Dies ist meiner Meinung nach ein Fehler in der vsftpd-Konfiguration, da Sie nirgendwo in der Dokumentation /etc/shells bearbeiten müssen. Daher funktionieren die Standardinstallation und die Anweisungen nicht wie angegeben.
Ich werde suchen, wo ich den Fehler jetzt einreichen kann.