FTP-Server mit vsftpd einrichten

Geschrieben bei exs exs@exs.homelinux.org
Dieses Dokument steht unter der Creative Commonlizenz
Version 2.0

Dies ist eine Anleitung wie man den Vsftpd (Very secure FTP Daemon) zu einem FTP-Server mit virtuellen Usern ohne Anonymous-Login konfiguriert.

Vsftpd beim Booten ausführen

Als erstes öffnen wir einen Terminal mit Rootrechten und sorgen dafür, dass der Vsftpd zukünftig automatisch beim Systemboot ausgeführt wird. Dies geschiet mittels
system-config-services
Es öffnet sich ein Fenster. In der linken Spalte wählen wir Vsftpd und setzen ein Hacken davor.

Vsftpd konfigurieren

Wir editieren als Root die Datei /etc/vsftpd/vsftpd.conf und ersetzen den Inhalt durch folgenden Abschnitt. Bitte beachtet dabei, dass einige Parameter angepasst werden müssen.
#anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner=Welcome to EXS' FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES

Virtuelle User für FTP anlegen

Damit wir nicht die Übersicht verlieren, erstellen wir eine Benutzergruppe, in das später alle unsere virtuellen User reinkommen.
groupadd ftpuser
Jetzt erstellen wir unseren ersten virtuellen User.
useradd -d /home/ftpuser1 -g ftpuser -s /sbin/nologin -p passwd ftpuser1
Das Kommentar -d bestimmt das zu erstellene Homeverzeichnis für unseren virtuellen User. -g bestimmt die Benutzergruppe, in das unser virtueller User eingetragen wird. -s den Login-Shell. Wir nehmen "/sbin/nologin", damit der erstellte User sich nicht direkt am System, sondern nur am FTP anmelden kann. Anders wäre es kein virtueller User mehr. -p bestimmt das Passwort für den virtuellen User. Dieses Passwort wird auch für den FTP-Login gelten. Der hintere String "ftpuser1" steht für den Namen, den unser virtueller User tragen wird. Man kann natürlich statt "ftpuser1" was anderes nehmen.

Usern "chrooten"

Es ist aus Sicherheitsgründen zu empfehlen, dass sich die am FTP-Server eingeloggten virtuellen User nicht aus ihrem Homeverzeichnis raus können. Sie werden sozusagen beim Login in ihr Homedir "gechrootet" und da "eingesperrt", sodass sie nicht in das Parentdir ihres Homeverzeichnisses und darüber hinaus können.

Um das zu erreichen haben wir in der Vsftpd.conf
"chroot_list_file=/etc/vsftpd.chroot_list"
eingetragen. Wir erstellen mit unserem Lieblingstexteditor "/etc/vsftpd.chroot_list" und geben als Inhalt den Namen unseres mit dem Kommando "useradd" erstellten Users ein. Falls ihr mehr als einen virtuellen User erstellt habt, vergesst nicht die Benutzernamen in der Datei jeweils mit einem Zeilenumbruch voneinander zu trennen.

Schluss

Damit der Vsftpd die Veränderungen wahrnimmt, starten wir ihn neu. Dazu folgendes Kommando als Root ausführen
/etc/init.d/vsftpd reload
Nun dürfte es möglich sein, sich mit eurem erstelltem FTP-User auf eurem FTP-Server einzuloggen.