08.21
Manchmal möchte man Benutzern einen FTP-Zugang zur Verfügung stellen, aber nicht gleich einen Systemzugang anlegen. Das geht mit vsftpd besonders einfach. Vorraussetzung ist eine funktionierende Installation von vsftpd und einige kleine Anpassungen. Natürlich darf auch die Sicherheit und nützliche Zusatzfunktionen wie FXP nicht zu kurz kommen.
Zuerst werden alle nötigen Programme installiert.
apt-get install vsftpd apache2-utils ssl-cert libpam-pwdfile
Es muss die Datei /etc/vsftpd.conf wie folgt angepasst werden.
listen=YES local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem # Virtuelle Benutzer verwenden nopriv_user=shared virtual_use_local_privs=YES guest_enable=YES user_sub_token=$USER local_root=/home/shared/pub chroot_local_user=YES hide_ids=YES # FXP erlauben pasv_promiscuous=YES pasv_enable=YES pasv_min_port=49152 pasv_max_port=50000 port_promiscuous=YES # SSL fuer Daten- und Kontrollverbindung erzwingen ssl_enable=YES force_local_data_ssl=YES force_local_logins_ssl=YES # Kleiner Scherz ;) (http://www.exploit-db.com/exploits/15449/) ftpd_banner=ProFTPD 1.3.3a
Diese Konfigurationsdatei erlaubt es allen angelegten Benutzern das Verzeichnis /home/shared zu sehen. Soll jeder Benutzer nur ein eigenes Verzeichnis sehen können, muss die Option local_root auf den Wert /home/shared/pub/$USERgesetzt werden.
Dann wird das selbst-signierte SSL-Zertifikat für vsftpd angelegt.
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/vsftpd.pem
Nun muss die PAM-Authentifizierung von vsftpd angepasst werden, sodass vsftpd die Daten aus einer Datei liest. Dafür wird der Inhalt der Datei /etc/pam.d/vsftpd gelöscht und durch folgenden Inhalt ersetzt.
auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd account required pam_permit.so
Die genannte Datei /etc/ftpd.passwd kann durch das Werkzeug htpasswd mit Benutzern und Passwörtern befüllt werden.
# Für den ersten Benutzer htpasswd -c /etc/ftpd.passwd user1 # Für alle folgenden Benutzer htpasswd /etc/ftpd.passwd userN
Nach einem Neustart von vsftpd mittels dem Befehl /etc/init.d/vsftpd restart ist der neue FTP-Server einsatzbereit.
Google+
Ab Debian Wheezy unbedingt htpasswd -d verwenden!
Bei mir funktionierte der Login mit virtuellen Usern erst, nachdem libpam-pwdfile installiert wurde. Ansonsten ist es eine gute Anleitung.
Hallo pb,
du hast natürlich Recht, habe das Paket ergänzt.
Grüße
[...] letzten Artikel zum File Transfer Protocol wurde eine moderne Einrichtung eines FTP-Servers vorgestellt. Jetzt soll ein [...]