Firewall:Ftp
Aus KissDoc
Dieses Dokument ist unfertig.
Inhaltsverzeichnis |
Thema: Firewall
Allgemein
FTP ist durch eine Firewall etwas tricky. Da die "Steuer"-Kommunikation getrennt von der Datenübermittlung läuft, muß zur eigentlichen Datenübermittlung (auch ein ls) eine neue Verbindung über einen neuen Port geöffnet werden. Bei aktiven FTP öffnet dazu der Server von Port 20 eine Verbindung zu einem hohen Port des Clients. Dabei müssen alle offenen hohen Ports des Clients mittels iptables separat behandelt werden, da sonst das System angreifbar bleibt. Im passiven FTP öffnet der Client einen neuen Port auf den Server (hoher zu hoher), welcher der Server dem Client vorher mitteilt.
Dank ip_conntrack_ftp (Iptables Connection Tracking - FTP) ist das auch relativ sicher möglich, ohne den Firewall öffnen zu müssen. Zunächst wird die Kerneloption CONFIG_IP_NF_FTP beötigt, welche die beiden Module net/ipv4/netfilter/ip_conntrack_ftp.ko und net/ipv4/netfilter/ip_nat_ftp.ko bereit stellt.
Die eigentliche FTP command Kommunikation wird erlaubt durch:
iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
Dies reicht jedoch noch nicht aus, da man die Datenkommunikation noch erlauben muß.
Passive FTP
Hier wird das PORT Kommando vom Server zum Client gesendet. Der Client verbindet sich dann mit dem Server. Dank ip_conntrack_ftp kann RELATED statt NEW verwendet werden:
modprobe ip_conntrack_ftp iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
Forwarding
Zum Forwarden benötigt man das Modul ip_nat_ftp.ko.
Ressourcen
- Iptables Connection Tracking - FTP von James Stephens

