Teil einer Firewall auf einem Server:
iptables -A INPUT -p tcp --dport 22 -m state NEW --state -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 100 --hitcount 10 -j DROP
Wenn ich online suche, sehe ich immer, dass NEW in dieser Regel verwendet wird, aber es fällt mir schwer zu verstehen, warum ESTABLISHED und RELATED nicht verwendet werden.
So was :
iptables -A INPUT -p tcp --dport 22 -m state NEW,ESTABLISHED,RELATED --state -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -m recent --update --seconds 100 --hitcount 10 -j DROP
Kann mir jemand erklären, wann genau ein NEUES Paket in ESTABLISHED und RELATED wechselt?
SYN
/ACK
/RST
/ etc Pakete , wie sie durch den Router passieren, und ich würde erwarten , iptables , dies zu tun.Asumming sowohl für Server als auch für Client eine restriktive
INPUT
und offeneOUTPUT
, dh:Und von iptables-extensions (8) über das Beispiel von FTP im aktiven Modus:
1. NEU
Der Client am Port
50000
(ein beliebiger nicht privilegierter Port) stellt eine Verbindung zum FTP-Server am Port her21
. Der Server würde mindestens Folgendes benötigen, um diese eingehende Verbindung zu akzeptieren:2. HERGESTELLT
Jetzt auf der Client - Seite, öffnete er eine abgehende Verbindung zum Server auf Port
21
einen lokalen Port50000
und er braucht die folgenden iptables der Antwort zu ermöglichen, kommt ausserver (21)
zuclient (50000)
:3. VERWANDTE
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 markieren60000
wieRELATED
auf die andere Verbindung aus50000->21
) und wird diese Portnummer an den Server mit dem FTP sendenPORT
Befehl. Dann öffnet der FTP-Server eine neue Verbindung von Port20
zu Port60000
auf dem Client. Nun, der Client benötigt nun Folgendes, damit diese neue Verbindung erfolgreich ist:Damit dies funktioniert, müssen Sie das
ip_conntrack_ftp
Kernel-Modul aktivieren , damit das System Verbindungen / Pakete alsRELATED
(nach meinem Verständnis habe ich nicht zu viel darüber nachgedacht) markieren kann :quelle
INPUT
.