VsFTPd
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.
- 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:
- Webbrowser öffnen
- Adresse eingeben: ftp://ftpuser:FTP_PWD@IP_DER_NSLU
- Es sollte kein Fehler gemeldet werden und der Verzeichnisinhalt sollte zu sehen sein