Very Secure FTP Daemon

Aus wiki.archlinux.de

Dieser Artikel wurde als veraltet markiert, und sollte kontrolliert, und gegebenfalls korrigiert bzw. aktualisiert werden.


Installation

Das Programm ist als vsftpd in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S vsftpd

Optional kann der Daemon über xinetd gestartet werden.

# pacman -S xinetd

Konfiguration

Mit xinetd

Um vsftpd mit xinetd zu betreiben muss die Datei /etc/xinetd.d/vsftpd mit folgendem Inhalt erstellt werden.

service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        log_on_success          += HOST DURATION
        log_on_failure          += HOST
        disable                 = no
}

Um xinetd automatisch zu starten, muss xinetd in /etc/rc.conf eingefügt werden:

DAEMONS=(... xinetd ...)

/etc/vsftpd.conf ist gut kommentiert. Hier ein Beispiel wie die Konfiguration aussehen könnte:

anonymous_enable=NO      # kein Anmelden als anonymous erlauben
local_enable=YES         # Anmelden mit lokalen Benutzer-Konten
write_enable=YES         # Schreibrechte für die Benutzer (Vorsicht bei anonymous_enable=YES!!!)

Falls Fehler wie

500 OOPS: cap_set_proc

auftreten, muss das Modul capability geladen werden bzw. in /etc/rc.confeingefügt werden.

MODULES=(... capability ...)

Beim nächsten Systemstart wird vsftpd gestartet oder ohne Neustart:

# /etc/rc.d/xinetd (re)start

Stand-Alone (ohne xinetd)

/etc/vsftpd.conf ist gut kommentiert. Hier ein Beispiel wie die Konfiguration aussehen könnte:

listen=YES               # vsftpd als Stand-Alone-Server verwenden
anonymous_enable=NO      # kein Anmelden als anonymous erlauben
local_enable=YES         # Anmelden mit lokalen Benutzer-Konten
write_enable=YES         # Schreibrechte für die Benutzer (Vorsicht bei anonymous_enable=YES!!!)

Wichtig ist hier das listen=YES gesetzt ist.

vsftpd kann jetzt gestartet werden.

# vsftpd

Virtuelle User

Virtuelle User haben keinen realen Login und können nur auf Daten im FTP-Ordner zugreifen. Um virtuelle User anzulegen muss zuerst eine Datei (z.B. login.txt) mit Benutzernamen und Passwörtern erstellt werden.

user1
password1
user2
password2

Danach muss aus dieser Datei eine eine Datenbank erzeugt und die Berechtigungen eingeschränkt werden.

# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db

Damit PAM (Pluggable Authentication Modules) die vsftpd_login.db verwendet, muss die Datei /etc/pam.d/ftp erstellt werden:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login crypt=hash 
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login crypt=hash

Nun muss noch der Benutzer virtual erstellt werden. In diesem Beispiel mit dem Home-Verzeichnis /srv/ftp.

useradd -d /srv/ftp virtual
chown virtual:virtual /srv/ftp

Danach noch die Datei /etc/vsftpd.conf anpassen.

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
virtual_use_local_privs=YES

Nach einem Neustart des Daemons kann man sich nun mit den neuen Benutzernamen anmelden.

Siehe auch

ProFTP


Dieser Artikel (oder Teile davon) steht unter GNU FDL (GNU Freie Dokumentationslizenz) und ist eine Übersetzung aus dem ArchLinux.org Wiki. Am Original-Artikel kann jeder Korrekturen und Ergänzungen vornehmen. Im ArchLinux.org Wiki ist eine Liste der Autoren verfügbar.