VsFTPd

Aus Wiki
Version vom 28. Februar 2009, 13:12 Uhr von Erich (Diskussion | Beiträge) (Die Seite wurde neu angelegt: ==Allgemein== VsFTPd (Very secure FTP Daemon: http://vsftpd.beasts.org) ist ein sicherer und relativ einfach zu konfigurierender FTP-Server. Im Gegensatz zum eingebaut...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Allgemein

VsFTPd (Very secure FTP Daemon: http://vsftpd.beasts.org) ist ein sicherer und relativ einfach zu konfigurierender FTP-Server. Im Gegensatz zum eingebauten →bFTPd, wird VsFTPd mittels ipkg nachinstalliert. Desweiteren gilt der VsFTPd als deutlich sicherer als → bFTPd, da letzterer bereits mehrere Sicherheitslücken aufwies. Für weitere Details siehe →Generelle Infos.

Installation von VsFTPd

Voraussetzung:

  • xinetd installiert und konfiguriert

Der FTP-Server VsFTPd wird vom → xinetd (extended Internet Daemon) gestarted und nach dem Beenden der Verbindung wieder beendet. D.h. wenn keine Verbindung besteht, verbraucht der FTP-Server keinerlei Systemresourcen (weder Speicher noch CPU-Zeit). Damit der VsFTPd vom Internet Daemon gestarted wird, muß ihm dies in Form einer Serverdefinitionsdatei mitgeteilt werden.


Installation:

ipkg update
ipkg install vsftpd


Folgende Konfigurationsdatei für xinetd zum Start von VsFTPd anlegen:

vi /opt/etc/xinetd.d/vsftpd

Folgende Zeilen einfügen:

service ftp
       {
       flags       = REUSE
       socket_type = stream
       protocol    = tcp
       wait        = no
       user        = root
       server      = /opt/sbin/vsftpd
       server_args = /opt/etc/vsftpd.conf
       disable     = no
       only_from   = 0.0.0.0/0
       }

Neustarten von xInetd damit die Änderungen wirksam werden:

/opt/etc/init.d/S10xinetd


Konfiguration

Editieren der Konfigurationsdatei:

vi /opt/etc/vsftpd.conf

Folgende Einträge ergänzen:

check_shell=no
chroot_local_user=YES
userlist_enable=YES
userlist_file=/opt/etc/vsftpd.user_list

Einrichten der User

User via Weboberfläche anlegen

User via Weboberfläche der NSLU einrichten (hier beispielhaft User:ftpuser):

  • Weboberfläche der NSLU im Webbrowser öffnen.
  • In den Bereich "Administration" wechseln (evtl. Benutzername und Passwort des Admin-Users eingeben)
  • In's Untermenü "Users" wechseln
  • Folgende Daten eingeben:
Name: ftpuser
Comment: z.B. FTP-User
Passwort/Verify Passwort: FTP_PWD
Create Private Folder: aktivieren

Setzen des Home-Verzeichnis

Damit ein Login via FTP klapp, muss noch das HOME-Verzeichnis in der zentralen Nutzer/Passwort-Datei /etc/passwd ergänzt werden.

vi /etc/passwd

Die Einträge in der Passwort-Datei sind nach folgendem Schema aufgebaut:

username:pwd:uid:gid:Kommentar:Home-Verzeichnis:Login-Shell

Nach dem eben angelegten User ftpuser suchen und das Home-Verzeichnis anpassen: Originaleintrag:

ftpuser:FTP_PWD:2005:501:FTP-User::/dev/null

abändern in:

ftpuser:FTP_PWD:2005:501:FTP-User:/ftpuser:/dev/null

Bei allen Nutzern die via FTP berechtigt sein sollen, sich einzuloggen, das entsprechende HOME-Verzeichnis ergänzen.

Hinweis:
Wenn z.B. das Passwort eines Users via Weboberfläche geändert wird, oder jede sonstige Änderung an den Einstellungen eines Users, wird das Homeverzeichnis zurückgesetzt. D.h. es muss gemäß obiger Anleitung erneut angepasst werden, ansonsten klappt der FTP-Zugang nicht mehr.


Ausslchuß bestimmter User

Aus Sicherheitsgründen ist es möglich - und empfehlenswert - bestimmte User (root, guest, mail, ...) von einer FTP-Anmeldung auszuschließen, unabhängig ob ein Home-Verzeichnis gesetzt ist oder nicht. Diese auszuschließenden User werden in der Datei /opt/etc/vsftpd.user_list angegeben.

vi /opt/etc/vsftpd.user_list

Darin alle auszuschließenden User eingeben (pro Zeile ein Username) Z.B.:

root
admin
guest
nobody
mail
spamd
ftp


FTP-Zugang testen

  • Mittels FT-Programm:
    • FTP-Programm öffnen
    • Server-Adresse: IP_DER_NSLU
    • User: ftpuser
    • Passwort: FTP_PWD
    • Verbindung herstellen
    • Es sollte kein Fehler gemeldet werden und der Verzeichnisinhalt sollte zu sehen sein
  • Mittels Webbrowser: