Asumming sowohl für Server als auch für Client eine restriktive INPUT
und offene OUTPUT
, dh:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
Und von iptables-extensions (8) über das Beispiel von FTP im aktiven Modus:
1. NEU
NEU Das Paket hat eine neue Verbindung gestartet oder ist anderweitig mit einer Verbindung verbunden, bei der keine Pakete in beide Richtungen gesehen wurden.
Der Client am Port 50000
(ein beliebiger nicht privilegierter Port) stellt eine Verbindung zum FTP-Server am Port her 21
. Der Server würde mindestens Folgendes benötigen, um diese eingehende Verbindung zu akzeptieren:
iptables -A INPUT --dport 21 -m state --state NEW -j ACCEPT
2. HERGESTELLT
HERGESTELLT Das Paket ist einer Verbindung zugeordnet, bei der Pakete in beide Richtungen gesehen wurden.
Jetzt auf der Client - Seite, öffnete er eine abgehende Verbindung zum Server auf Port 21
einen lokalen Port 50000
und er braucht die folgenden iptables der Antwort zu ermöglichen, kommt aus server (21)
zu client (50000)
:
sudo iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
3. VERWANDTE
RELATED Das Paket startet eine neue Verbindung, ist jedoch einer vorhandenen Verbindung zugeordnet, z. B. einer FTP-Datenübertragung oder einem ICMP-Fehler.
Nachdem nun die FTP-Verbindung hergestellt wurde und eine Datenverbindung hergestellt werden soll, öffnet der Client einen Server-Socket (ja, bei aktivem FTP-Client wird ein Server für die Datenverbindung) am Port 60000
(nach meinem Verständnis wird der Client diesen Port markieren 60000
wie RELATED
auf die andere Verbindung aus 50000->21
) und wird diese Portnummer an den Server mit dem FTP senden PORT
Befehl. Dann öffnet der FTP-Server eine neue Verbindung von Port 20
zu Port 60000
auf dem Client. Nun, der Client benötigt nun Folgendes, damit diese neue Verbindung erfolgreich ist:
sudo iptables -A INPUT -m state --state RELATED -j ACCEPT
Damit dies funktioniert, müssen Sie das ip_conntrack_ftp
Kernel-Modul aktivieren , damit das System Verbindungen / Pakete als RELATED
(nach meinem Verständnis habe ich nicht zu viel darüber nachgedacht) markieren kann :
modprobe ip_conntrack_ftp