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
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 {} \;
[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
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
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 iptabels 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 19.05.2012 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_1058.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2013 by Georg Kainzbauer
