Warum funktioniert vsftpd nicht, wenn pam_service_name = vsftpd?

8

Ich habe ein vsftpd-Setup auf meinem Heimserver durchgeführt. Ich habe einen Authentifizierungsfehler erhalten, also habe ich dieses Forum durchsucht und eine Lösung gefunden. Diese Lösung hat bei mir funktioniert

Wie in der Lösung. die Standardeinstellung

pam_service_name=vsftpd

funktioniert nicht und der FTP-Server erlaubt mir nicht, mich anzumelden.

Und nachdem ich es geändert habe

pam_service_name=ftp

Es funktioniert und ich kann mich als mein lokaler Benutzer beim FTP-Server anmelden. Was ist der Grund dafür? Warum funktioniert der Standard nicht? Ich lerne Linux, daher kann mir Ihre gute Erklärung sehr helfen

Anbu
quelle

Antworten:

7

Ich hatte den gleichen Authentifizierungsfehler mit pam_service_name=vsftpd.

Nach den Online-Ratschlägen konnte ich nicht herausfinden, warum pam_service_name=ftpdas Problem durch das Einstellen behoben wurde. Daher habe ich das Einstellen auf getestet pam_service_name=foobarund das Problem behoben!

Haftungsausschluss: Auch ich bin neu in Linux, aber ich glaube, dass der allgemein akzeptierte Ratschlag pam_service_name=ftpfalsch ist .

pam_service_name=vsftpdwählt die vorhandene Konfigurationsdatei aus /etc/pam.d/vsftpd, pam_service_name=ftpsucht jedoch nach /etc/pam.d/ftpder nicht vorhandenen (zumindest auf meinem System - Ubuntu 14.04.2 LTS). Ich vermute, dass dies tatsächlich die PAM-Authentifizierung umgeht, ohne sich zu beschweren, dass die Datei nicht gefunden werden kann.

Wenn Sie keine gültige PAM-Konfiguration verwenden, ist diese möglicherweise weniger sicher.

Endgültige Lösung

Am Ende habe ich behalten pam_service_name=vsftpdund sichergestellt, dass die Shell des Benutzers in der /etc/shellsDatei vorhanden ist. http://www.cyberciti.biz/tips/howto-linux-shell-restricting-access.html

Anschauen /etc/pam.d/vsftd

# Standard behaviour for ftpd(8).
auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required    pam_shells.so

Mein Problem war, dass es beim auth required pam_shells.soSchritt fehlschlug . Ich hatte alle meine FTP-Benutzer dazu gebracht, die /usr/sbin/nologinShell zu verwenden, die in der /etc/shellsDatei nicht vorhanden war (nicht ubuntu, dies könnte nur sein /sbin/nologin). Wenn Sie sich nicht sicher sind, kommentieren Sie das aus, um festzustellen, auth required pam_shells.soob dies die Ursache ist pam_service_name=vsftpd.

Hinweis: Weitere Informationen legen nahe, dass es sauberer ist, stattdessen virtuelle Benutzer zu erstellen. Dies erfordert jedoch unterschiedliche vsftpd- und PAM-Konfigurationen - http://www.sigerr.org/linux/setup-vsftpd-custom-multiple-directories-users-accounts-ubuntu- Schritt für Schritt / .

Josef P.
quelle
2
Stimmen Sie den Erklärungen zu und der Haftungsausschluss über den allgemein anerkannten Rat ist falsch. Für die endgültige Lösung habe ich usermod -s /bin/sh <username>(mit /bin/shfolgen Sie der von /etc/shells) verwendet und ich kann mich bereits ftp anmelden.
Prüfsumme
@checksum Danke! Ich habe viel usermod -s /bin/sh <username>
gegoogelt
2

In /etc/pam.d/vsftpd können Sie angeben

auth required pam_nologin.so

Benutzer, deren Anmeldung über / usr / sbin / nologin deaktiviert ist, können sich daher nur über FTP beim System anmelden.

Hinweis: Ich habe gelesen, dass das Hinzufügen von Nologin zu / etc / shells eine Sicherheitsbedrohung für Serverfault darstellen kann .

Dexin
quelle
1

Für mich bestand das Problem darin, dass ich die PAM-Konfiguration ( /etc/pam.d/vsftpd) auf einem Windows-Computer erstellt habe, was zu \r\nZeilenenden führte.

Nachdem ich die Zeilenenden (nur \n) in den Linux-Stil konvertiert hatte , begann die PAM-Konfiguration zu funktionieren.

Ich dachte auch zuerst, dass der Name des PAM-Dienstes falsch ist, und versuchte es pam_service_name=ftpstattdessen mit pam_service_name=vsftpd, aber das half überhaupt nicht, und ich stimme der Einschätzung von Josef P. zu, dass dies nicht der richtige Weg ist.

Reto Höhener
quelle