Frage Erstellen Sie einen neuen vsftpd-Benutzer und sperren Sie ihn auf (angeben) home / login-Verzeichnis


Ich muss regelmäßig temporären und begrenzten Zugang zu verschiedenen Verzeichnissen auf einem CentOS Linux Server geben, auf dem vsftp installiert ist.

Ich habe einen Benutzer mit erstellt useradd [user_name] und ihnen ein Passwort gegeben mit passwd [password].

Ich habe ein Verzeichnis erstellt in /var/ftp und dann binde ich das an das Verzeichnis, auf das ich den Zugriff beschränken möchte.

Was muss ich noch tun, um sicherzustellen, dass Benutzer, die sich bei FTP anmelden, nur Zugriff auf dieses Verzeichnis haben?


26
2017-10-09 12:13


Ursprung


Entschuldigung, aber hast du schon mal überlegt, vsftpd.conf zu checken? - jirib
Ja. Ich habe. Er sagt mir nicht, wie man einen bestimmten Benutzer anweist, sich in einem bestimmten Verzeichnis anzumelden ...? - zigojacko
Sicher? chroot_list_enable option ... Oder willst du ein anderes Verzeichnis als $ HOME überschreiben? - jirib
Ich möchte wissen, wie Sie ein bestimmtes Home-Verzeichnis für einen bestimmten Benutzer deklarieren. Ich habe aktiviert chroot_list_enable und erstellt /etc/vsftpd/chroot_list. Ich wusste einfach nicht, was ich als nächstes tun sollte. - zigojacko
Dann Benutzermodem, um das Heimverzeichnis des Benutzers zu ändern. - jirib


Antworten:


Vollständige Antwort, die meine Frage für andere, die nach einer Schritt für Schritt Anleitung sind, gelöst hat ...

Installieren vsftpd verwenden Dies als Leitfaden.

  • Erstelle Benutzer mit useradd [user_name].
  • Erstelle ein Benutzerpasswort mit passwd [user_name]. (Sie werden aufgefordert, das Passwort anzugeben).
  • Erstellen Sie ein FTP-Verzeichnis in /var/ftp und binden Sie dann an das Home-Verzeichnis, das Sie für diesen Benutzer angeben möchten mount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/.
  • Ändern Sie das Home-Verzeichnis des Benutzers mit usermod -d /var/ftp/custom_name/ user_name

    Im /etc/vsftpd/vsftpd.conf, stellen Sie sicher, dass alle folgenden Optionen eingestellt sind: -

    • chroot_local_user = JA
    • chroot_list_enable = JA
    • chroot_list_file = / etc / vsftpd.chroot_list

Listen Sie nur Benutzer in der vsftpd.chroot_list Datei, wenn Sie möchten, dass sie vollen Zugriff auf eine beliebige Stelle auf dem Server haben. Indem Sie sie nicht in dieser Datei aufführen, sagen Sie, dass Sie alle einschränken vsftpd Benutzer zu ihrem angegebenen Home-Verzeichnis.

Mit anderen Worten (als Referenz): -

  1. bedeutet, dass ALLE Benutzer standardmäßig chroot werden, mit Ausnahme der Benutzer in der Datei ...
    • chroot_local_user = JA
    • chroot_list_enable = JA
  2. bedeutet, dass NUR Benutzer in der Datei standardmäßig chroot werden ...
    • chroot_local_user = NEIN
    • chroot_list_enable = JA

35
2017-10-09 14:55



Warum nicht direkt das Home-Verzeichnis des Benutzers festlegen? /var/www/vhosts/domain.com/? Gibt es da ein Problem (wie mögliche Risiken)? - leemes
Ich habe gerade herausgefunden, dass vsftp es aus Sicherheitsgründen verbietet, einem FTP-Benutzer Schreibrechte auf der obersten Chroot-Ebene zu gewähren (aber ich bin mir nicht 100% ig sicher). Das könnte also ein Grund sein, diese "Indirection" zu haben, um dem FTP-Benutzer Schreibzugriff auf einen bestimmten Ordner zu gewähren, während er nicht sehen darf irgendein Geschwister Ordner (was der Fall wäre, wenn Sie einfach eine Ebene nach oben setzen, wodurch das erwähnte Problem vermieden wird). (sehen ubuntuforums.org/ ...) - leemes
@zigojacko sieht Ihr Benutzer nur das zugewiesene Home-Verzeichnis? Für mich, das Standardeinstellungen der Benutzer in das zugewiesene Verzeichnis, aber sie können immer noch andere Ordner sehen und können den ganzen Weg bis zu root herumschnüffeln, allerdings nur mit Lesezugriff. - GraehamF
Diese Antwort in Kombination mit unix.stackexchange.com/questions/208960/... war die vollständige Antwort für mich. Ich habe schließlich einen Benutzer in einer Gruppe erstellt und den Gruppenzugriff auf das gewünschte Verzeichnis beschränkt. - GraehamF


Für mich hat es auch nach dem oben genannten nicht geklappt. Es wurde bereits ein local_root auf ein Verzeichnis gesetzt, und was auch immer ich mache, das Benutzerverzeichnis ist nicht gesperrt. Endlich wird daran gearbeitet nur nach zu ändern

chroot_local_user = JA

Und folgendes Verfahren

  1. vi /etc/vsftpd.conf
  2. Fügen Sie die Zeile 'user_config_dir = / etc / vsftpd_user_conf' hinzu (keine Anführungszeichen)
  3. mkdir / etc / vsftpd_user_conf;
  4. cd / etc / vsftpd_user_conf
  5. vi Benutzername;
  6. Geben Sie die Zeile 'local_root = / srv / ftp / user_name' ein

Nur meine zwei Cent, wenn jemand anderes dasselbe Problem hatte.


10
2017-12-22 02:54



Ich folgte dieser Prozedur, um das Stammverzeichnis von vsftpd zu ändern, einschließlich der zusätzlichen Schritte von gnaanaa. Leider funktioniert es noch nicht. Filezilla meldet 530 Login falsch. Der Benutzer und das Passwort entsprechen dem obigen Verfahren (Benutzername). Ich habe einen Testbenutzer ftp2 erstellt und sein Passwort festgelegt. Die normale Filezilla-Anmeldung verwendet diesen Benutzernamen und das Passwort. Ich habe auch das root-Verzeichnis schreibgeschützt eingerichtet und ein unteres Verzeichnis mit Schreibberechtigungen erstellt. Laut diesem Beitrag verwende ich Ubuntu 16.04, wenn das einen Unterschied macht. - tim11g
Ich benutze Ubuntu 16.04, wenn das einen Unterschied macht, @gnaanaa. Auch ich fand es seltsam, dass es in / var kein FTP-Verzeichnis gab. Also musste ich / var / ftp und dann / var / ftp / user_name erstellen. code<br/> Antwort: 220 (vsFTPd 3.0.3) <br/> Befehl: USER ftp2 <br/> Antwort: 331 Bitte geben Sie das Passwort an. <br/> Befehl: PASS ***** <br/> Response : 530 Login falsch. <br/> Fehler: Kritischer Fehler: Verbindung zum Server konnte nicht hergestellt werden <br/> code - tim11g
Sehen Sie zuerst, warum Sie sich nicht beim Server anmelden konnten. Sie können das Problem mit dem Injizieren nur nach der erfolgreichen Anmeldung debuggen. Prost. - gnaanaa
Verwendet vsftp einen anderen Benutzer / ein anderes Passwort als die Konten auf der Maschine? Ich entdeckte, dass smb-Passwörter separat mit smbpasswd -a gesetzt werden mussten. Funktioniert vsftpd genauso? - tim11g
Nein, es ist das Systembenutzerkonto. Überprüfe diese Antwort: askubuntu.com/questions/413677/vsftpd-530-login-incorrect - gnaanaa