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>