Absichern von FTP-Servern [2]
- Für das FTP-Vrz. sollte eine eigene Partition verwendet und gemountet werden. So wird verhindert, dass das gesamte System vollläuft.
- Optimal ist es, wenn für den FTP-Zugriff eine Chroot-Umgebung geschaffen wird
- Beim Anonymous-FTP sollte ein ftp-User angelegt werden, der nur beschränkte Rechte hat:
# /etc/passwd
ftp:x:56:2001:FTP-User:/var/ftp/./pub/:/bin/false
- Die Shell sollte /bin/false sein, damit ein “normaler” Login nicht möglich ist.
Konfiguration von vsftpd
# Example config file /etc/vsftpd.conf
# Allow anonymous FTP?
anonymous_enable=NO
# Uncomment this to allow local users to log in.
local_enable=YES
# Uncomment this to enable any form of FTP write command.
write_enable=YES
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftpsecure
# Own Settings
userlist_deny=NO
userlist_enable=YES
chroot_local_user=YES
vsftp wertet die Datei /etc/ftpusers aus, um bestimmte User vom FTP-Zugriff auszuschließen
Konfiguration von Pure-FTPd
# /etc/pure-ftpd/pure-ftpd.conf
# Jeden User im Homelaufwerk einsperren
ChrootEveryone yes
# Nur Anonymous FTP (Keine Benutzer)
AnonymousOnly yes
# Anonymen Zugriff erlauben
NoAnonymous no
Konfiguration des wu-ftpd
wu-ftpd wird hauptsächlich in der Datei /etc/ftpaccess konfiguriert. Hier definiert man verschiedene Client-Klassen.
Syntax: class NAME TYPENLISTE ADRESS-MUSTER
Typenliste (legt Zugangstyp fest)
real = Realer authentifizierter Benutzer
anonymous = Anonymous-FTP
guest = Gast-Zugang
Beispiel:
# Klasse PRIVAT, welche allen Rechnern aus dem heimNetz.local
# Zugriff gestattet. Realer und Gast-Zugriff möglich.
class PRIVAT real, guest *.heimNetz.local
Konfiguration von ProFTPd
# /etc/proftpd.conf
# Name des FTP-Servers
ServerName "Fritz's FTP-Server"
# Wie wird ProFTPd gestartet?
# Andere Möglichkeit wäre inetd
ServerType standalone
# Auch Symlinks anzeigen
ShowSymlinks on
# Timeouts definieren
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
# Willkommens-Meldung
DisplayLogin welcome.msg
DisplayFirstChdir .message
LsDefaultOptions "-l"
# Port 21 wird genutzt
Port 21
# Maximal 30 Instanzen
MaxInstances 30
# Set the user and group that the server normally runs at.
user nobody
Group nogroup
# Einstellungen für Verzeichnisse einstellen
<Directory /*>
Umask 022 022
AllowOverwrite on
</Directory>
# chroot für alle User der Gruppe ftpuser
DefaultRoot ~ ftpuser
# Login nur von Mitgliedern der Gruppe ftpuser erlauben
<Limit LOGIN>
DenyGroup !ftpuser
</Limit>
# Root-Login verbieten und gültige Shell verlangen (in /etc/shells)
<Global>
RootLogin off
RequireValidShell on
</Global>