Linux Firewall mit ipchains

FTP-Server in der DMZ

Wenn auch ein FTP-Server in der DMZ steht, sollten Sie unbedingt den Portbereich für den passiven Transfer (nur diesen können Webbrowser benutzen) serverseitig einschränken. Bei ProFTPD hilft die Option "PassivePorts", bei WU-FTPD wird diese "passive ports" genannt. Andernfalls müssten alle Ports zwischen 1024 und 65535 für einen Verbindungsaufbau von extern geöffnet sein. Dann müssten jedoch etwaige Dienste auf höheren Ports dediziert geschützt werden. Dies bedeutet zum einen Aufwand, zum anderen ist es fehleranfällig, wenn ein neuer Dienst hinzukommt. Ein Beispiel für Portfilter von extern auf einen FTP-Server (7.8.9.100) in einer DMZ mit Port-Einschränkung von 49152 bis 65534 würde wie folgt aussehen:

# Erstelle benutzerdefierte Listen
ipchains -N ext2dmz
ipchains -N dmz2ext
# Paketverteilung extern -> DMZ
ipchains -A input -i eth3 -d 7.8.9.0/24 -j ext2dmz
ipchains -A forward -i eth2 -d 7.8.9.0/24 -j ext2dmz
ipchains -A output -i eth2 -d 7.8.9.0/24 -j ext2dmz
# Paketverteilung DMZ -> extern
ipchains -A input -i eth2 -s 7.8.9.0/24 -j dmz2ext
ipchains -A forward -i eth3 -s 7.8.9.0/24 -j dmz2ext
ipchains -A output -i eth3 -s 7.8.9.0/24 -j dmz2ext
## extern -> FTP-Server 7.8.9.100 via ext2dmz/dmz2ext
# Kontrollkanal + Antwort
ipchains -A ext2dmz -p tcp --sport 1024: -d 7.8.9.100 21 -j ACCEPT
ipchains -A dmz2ext -p tcp -s 7.8.9.100 21 --dport 1024: ! -y -j ACCEPT
# Aktiver Transfer (Verbindungsaufbau vom Server zum Client) + Antwort
ipchains -A dmz2ext -p tcp -s 7.8.9.100 20 --dport 1024: -j ACCEPT
ipchains -A ext2dmz -p tcp --sport 1024: -d 7.8.9.100 20 ! -y -j ACCEPT
# Passiver Transfer (Verbindungsaufbau vom Client zum Server) + Antwort
ipchains -A ext2dmz -p tcp --sport 1024: -d 7.8.9.100 49152:65534 -j ACCEPT
ipchains -A dmz2ext -p tcp -s 7.8.9.100 49152:65534 --dport 1024: ! -y -j ACCEPT