Good to Know Database

CentOS 5: vsftpd mit virtuellen Benutzern einrichten


1. Einleitung

Auf dieser Seite wird beschrieben, wie Sie den vsftpd als FTP-Server mit virtuellen FTP-Benutzern einrichten können.

2. Pakete installieren

Für die folgenden Schritte müssen Sie die Pakete vsftpd und db4-utils unter CentOS 5 nachinstallieren.

[root@centos5 ~]# yum install vsftpd db4-utils

3. Benutzerdatenbank anlegen

Erstellen Sie mit einem Editor eine Textdatei, in welcher Sie die virtuellen FTP-Benutzer und deren Passwörter eintragen.

[root@centos5 ~]# vi /etc/vsftpd/vsftpd-virtual-user

Die Textdatei sollte wie folgt aufgebaut sein.

vftpuser1
password1
vftpuser2
password2

Nachdem Sie die Textdatei erstellt haben, wird sie mit dem folgenden Befehl in ein Datenbankformat konvertiert.

[root@centos5 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd-virtual-user /etc/vsftpd/vsftpd-virtual-user.db

Damit nur der Administrator auf die Textdatei und die daraus erstellte Datenbank zugreifen kann, müssen Sie die Zugriffsrechte entsprechend ändern.

[root@centos5 ~]# chmod 0600 /etc/vsftpd/vsftpd-virtual-user /etc/vsftpd/vsftpd-virtual-user.db

4. Heimatverzeichnisse für die virtuellen FTP-Benutzer erstellen

Mit dem folgenden Befehl erstellen Sie für jeden virtuellen FTP-Benutzer ein eigenes Heimatverzeichnisse.

[root@centos5 ~]# mkdir -p /home/vftp/vftpuser1 /home/vftp/vftpuser2

Zusätzlich müssen Sie den Besitzer, die Gruppe und die Zugriffsberechtigungen der Heimatverzeichnisse anpassen.

[root@centos5 ~]# chown -R ftp:ftp /home/vftp/
[root@centos5 ~]# find /home/vftp -type d -exec chmod 0700 {} \;

5. PAM konfigurieren

Die Authentifizierung der virtuellen FTP-Benutzern erfolgt mit Hilfe der Pluggable Authentication Modules (PAM). Dazu erstellen Sie die Konfigurationsdatei /etc/pam.d/vsftpd.virtual.

[root@centos5 ~]# vi /etc/pam.d/vsftpd.virtual

Fügen Sie hier die folgenden Zeilen ein.

#%PAM-1.0
auth       required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
account    required     pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
session    required     pam_loginuid.so

6. vsftpd konfigurieren

Nachdem Sie die Benutzer-Datenbank erstellt, die Heimatverzeichnisse angelegt und PAM konfiguriert haben, kommen wir jetzt zur Konfiguration des FTP-Daemons. Dazu öffnen Sie die Konfigurationsdatei /etc/vsftpd/vsftpd.conf mit einem Editor.

[root@centos5 ~]# vi /etc/vsftpd/vsftpd.conf

Die Konfigurationsdatei sollte die folgenden Direktiven enthalten.

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
listen=YES
pam_service_name=vsftpd.virtual
userlist_enable=YES
tcp_wrappers=YES
virtual_use_local_privs=YES
guest_enable=YES
guest_username=ftp
user_sub_token=$USER
local_root=/home/vftp/$USER
chroot_local_user=YES
hide_ids=YES

7. SELinux konfigurieren

Bei CentOS 5 ist standardmäßig SELinux (Security Enhanced Linux) aktiviert und läuft im Enforcing Modus. Falls Sie SELinux nicht deaktivert haben (siehe SELinux: SELinux deaktivieren) oder im Permissive Modus betreiben (siehe SELinux: SELinux-Betriebsmodus ändern), müssen Sie SELinux entsprechend konfigurieren.

Damit der vsftpd auf die Heimatverzeichnisse der virtuellen FTP-Benutzer zugreifen darf, müssen Sie ftp_home_dir aktivieren.

[root@centos5 ~]# setsebool -P ftp_home_dir=1

Da die virtuellen Benutzer vom vsftpd auf einen Gast-Benutzer gemappt werden und dieser als anonymer Benutzer behandelt wird, müssen Sie den anonymen FTP-Benutzern das Schreiben erlauben.

[root@centos5 ~]# setsebool -P allow_ftpd_anon_write=1

Des Weiteren müssen Sie den Security Context der Heimatverzeichnisse wie folgt anpassen.

[root@centos5 ~]# chcon -t public_content_rw_t /home/vftp/

8. Firewall konfigurieren

Bevor Sie den FTP-Server starten und eine Verbindung zu ihm aufbauen können, müssen Sie den TCP-Port 21 in der Firewall öffnen. Erstellen Sie wie folgt die notwenige Firewall-Regel.

[root@centos5 ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

Speichern Sie die erstellte Firewall-Regel anschließend mit dem folgenden Befehl dauerhaft in die /etc/sysconfig/iptables.

[root@centos5 ~]# service iptables save

Anschließend müssen Sie noch eine Änderung an der /etc/sysconfig/iptables-config vornehmen.

[root@centos5 ~]# vi /etc/sysconfig/iptables-config

Suchen Sie hier den Eintrag IPTABLES_MODULES und erweitern diesen um das Modul ip_conntrack_ftp. Die einzelnen Module werden durch ein Leerzeichen getrennt angegeben. Sollte der Eintrag IPTABLES_MODULES noch nicht existieren, fügen Sie die folgende Zeile in die Konfigurationsdatei ein.

IPTABLES_MODULES="ip_conntrack_ftp"

Starten Sie anschließend iptables neu.

[root@centos5 ~]# service iptables restart

9. vsftpd starten

Wenn Sie alle bisher beschriebenen Schritte durchgeführt haben, starten Sie den vsftpd.

[root@centos5 ~]# service vsftpd start

Damit der vsftpd beim Systemstart automatisch gestartet wird, sollten Sie diesen in den entsprechenden Runlevels aktivieren.

[root@centos5 ~]# chkconfig vsftpd on

10. Fehlersuche

Falls wider erwartens Probleme auftreten, sollten Sie die Logdateien /var/log/secure und /var/log/audit/audit.log auf Fehlermeldungen überprüfen.

[root@centos5 ~]# tail -f /var/log/secure

[root@centos5 ~]# tail -f /var/log/audit/audit.log

11. Weiterführende Tutorials

vsftpd: FTP-Benutzer in einer chroot-Umgebung einsperren
vsftpd: FTP-Daemon an ein Netzwerkinterface binden
vsftpd: FTP-Verbindungen mit TLS verschlüsseln
PAM: Wrong ELF class: ELFCLASS32
vsftpd: IPv4 und IPv6 aktivieren


Dieser Eintrag wurde am 10.09.2010 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_1058.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer