iptables-Regeln unterbrechen die Verbindung oder lassen sie weit offen

iptables-Regeln unterbrechen die Verbindung oder lassen sie weit offen

Ich habe an der Verbesserung meiner iptable-Regeln gearbeitet. Hier ein paar Hintergrundinformationen zu dem, was ich bisher getan habe, was ich erreichen möchte und zu meinen Problemen:

Ich habe einen RPi und ein WiFi-Modul und habe ein 3G-Modem daran angeschlossen. Ich möchte, dass der gesamte Datenverkehr von meinem WiFi an meine 3G-Schnittstelle weitergeleitet wird. Ich habe diese Regeln erstellt und sie funktionieren einwandfrei. Wenn ich das Tablet verbinde, habe ich vollen Internetzugang:

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -F
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    iptables -F
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    iptables -A FORWARD -i ppp0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -i wlan1 -o ppp0 -j ACCEPT

Jetzt möchte ich das alles blockieren und nur den Datenverkehr an zwei IP-Adressen durchlassen. Ich habe eine Kette erstellt, aber die Dinge funktionieren nicht so gut, wie ich gehofft hatte:

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -F
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    iptables -F
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    iptables -N TEST
    iptables -A TEST -d 34.215.23.64 -j RETURN
    iptables -A TEST -d 52.37.29.39 -j RETURN
    iptables -A TEST -j ACCEPT 
    iptables -A FORWARD -i wlan1 -o ppp0 -j TEST
    iptables -A FORWARD -i wlan1 -o ppp0 -j DROP

Wenn ich dies ausführe, werden alle Internetzugriffe, einschließlich dieser beiden IP-Adressen, blockiert. Ich habe es versucht! mit demselben Ergebnis.

Kann mir bitte jemand helfen herauszufinden, was mir hier entgeht?

Danke

Antwort1

iptables -A TEST -d 34.215.23.64 -j RETURN
iptables -A TEST -d 52.37.29.39 -j RETURN

Ihr Hauptproblem ist, dass diese Regeln nicht zustandsbehaftet sind und Sie die Regeln nur in eine Richtung gehandhabt haben. Wenn wir für einen Moment so tun, als gäbe es keine anderen Probleme, würden diese Regeln den Verkehr nur in eine Richtung handhaben. Aber da Sie wahrscheinlich bidirektionale Kommunikation benötigen, wie erhalten Sie Antworten auf alles, was Sie senden und das Ziel '34.215.23.64' hat? Die Antwort wird ein Paket mit der Quelladresse '34.215.23.64' sein und das Ziel wäre Ihre IP.

Sie sollten daher zumindest in Erwägung ziehen, die iptables ... --state RELATED,ESTABLISHED ...Regel () wieder hinzuzufügen.

iptables -N TEST
iptables -A TEST -d  -j RETURN
iptables -A TEST -d 34.215.23.64 -j RETURN
iptables -A TEST -d 52.37.29.39 -j RETURN
iptables -A TEST -j ACCEPT 
iptables -A FORWARD -i wlan1 -o ppp0 -j TEST
iptables -A FORWARD -i wlan1 -o ppp0 -j DROP

Aber das ist nicht das einzige Problem. Die Logik Ihrer Kette ist fehlerhaft.

Ein für 34.215.23.64_de_t -j TEST...

Versuchen Sie stattdessen jedenfalls so etwas.

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -F
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# permit all established connections
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# chain for wlan -> ppp0 traffic
iptables -N WLAN2PPP
iptables -A WLAN2PPP -d 34.215.23.64 --state NEW -j ACCEPT
iptables -A WLAN2PPP -d 52.37.29.39 --state NEW -j ACCEPT
# everything else from wlan to ppp0 is dropped
iptables -A WLAN2PPP -j DROP
# send wlan1 -> ppp0 traffic to the chain. 
iptables -A FORWARD -i wlan1 -o ppp0 -j WLAN2PPP

verwandte Informationen