Wie kann ich bestehende Verbindungen mit iptables umleiten?

Wie kann ich bestehende Verbindungen mit iptables umleiten?

Ich versuche, iptables-Regeln zu erstellen, um den gesamten für Port 1986 bestimmten Datenverkehr auf Port 9 umzuleiten und mithilfe der folgenden Regel eine „Verbindung abgelehnt“ zu provozieren:

iptables -t nat -I PREROUTING -p tcp -m tcp --dport 1986 -j DNAT --to-destination :9

Dies funktioniert bei neuen Verbindungen hervorragend, das Problem besteht jedoch darin, dass bestehende Verbindungen diese Regel zu umgehen scheinen und nicht abgelehnt werden.

Ich habe versucht, NOTRACKder Rohtabelle eine Regel hinzuzufügen, um die Verfolgung des Verbindungsstatus zu vermeiden, aber dies hat keine Wirkung:


iptables -t raw -I PREROUTING -p tcp --dport 1986 -m state --state ESTABLISHED,RELATED,NEW,INVALID -j NOTRACK

Das Hinzufügen eines Status zur NAT-Regel funktioniert auch nicht:

iptables -t nat -I PREROUTING -p tcp --dport 1986 -m state --state ESTABLISHED,RELATED,NEW,INVALID -j DNAT --to-destination :9

Wie kann ich iptables verwenden, um für über bestehende Verbindungen gesendete Pakete einen „Verbindung abgelehnt“-Fehler zu provozieren?

Antwort1

Die DNATRegel erstellt einen Eintrag in der Conntrack-Tabelle, wenn die Verbindung mit TCP-3-Wege-Handshake hergestellt wird.

Die notrackRegel scheint die Erstellung neuer Conntrack-Einträge zu deaktivieren. Sie verhindert jedoch nicht die Verwendung vorhandener Conntrack-Einträge.

Da die Verbindung bereits hergestellt ist, gibt es bereits einen Eintrag in der Conntrack-Tabelle und der Kernel verwendet diesen, um den Datenverkehr weiterzuleiten.

Sie sollten conntrackdas Tool verwenden, um die Flows aus der Conntrack-Tabelle zu löschen. Beispiel:

conntrack -D -s 192.168.1.10 -d 192.168.100.20 -p tcp --dport 1986

Nach dem Ausgeben dieses Befehls wird die Verbindung unter Verwendung der neuen DNAT-Regeln in iptables erneut zum Conntrack hinzugefügt. Dann wird der neue Zielserver die Verbindung ablehnen. Ich bin nicht sicher, was genau der neue Zielserver zurücksenden wird, vielleicht TCP RST.

verwandte Informationen