Konfigurieren Sie iptables, um das Standard-Gateway für das lokale Netzwerk festzulegen

Konfigurieren Sie iptables, um das Standard-Gateway für das lokale Netzwerk festzulegen

Ich habe einen OpenWRT-Router mit der IP 192.168.1.1. Ich möchte einen Proxy-Server (192.168.1.249) im LAN einrichten, der alle Kommunikationen von zwei Geräten (192.168.1.244, 192.168.1.131) abfängt. Die Methode, die ich verwende, besteht darin, den Proxy-Server als Standard-Gateway einzurichten, und ich habe die folgenden Dinge auf meinem OpenWRT-Router konfiguriert.

iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp -s 192.168.1.131
iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp -s 192.168.1.244
# Set default gateway as the proxy server in table 2
ip route add default via 192.168.1.249 table 2
# Forward traffic with mark 3 to table 2
ip rule add fwmark 3 table 2

Nach meinem Test kann der Proxyserver die gesamte WAN-Kommunikation der beiden Geräte abfangen und weiterleiten, es ist gut.Ich habe jedoch festgestellt, dass diese beiden Geräte auch miteinander kommunizieren und diese LAN-Kommunikation anscheinend nicht an den Proxyserver weitergeleitet wird. Was ist der Grund? Wie kann ich diesen Datenverkehr an den Proxyserver weiterleiten?

PRÜFEN: Um herauszufinden, ob die Konfiguration von iptables sinnvoll ist, habe ich zum Testen eine Regel hinzugefügt:

iptables -t mangle -A PREROUTING -j DROP -s 192.168.1.131

Meiner Meinung nach empfängt das Gerät mit der IP 244 keinen Datenverkehr vom Gerät mit der IP 131, wenn diese Regel funktioniert. Das beweist, dass iptables für die LAN-Kommunikation funktionieren kann. Ich habe jedoch das Gerät 131 verwendet, um TCP-Datenverkehr an das Gerät 244 zu senden, und es funktioniert. Ich bezweifle, dass die Konfiguration von iptables mir nicht dabei helfen kann, diesen LAN-Datenverkehr an meinen Proxyserver weiterzuleiten. Habe ich Recht?

Antwort1

Ich gehe davon aus, dass Ihr IP-Subnetz ist 192.168.1.0/24, was bedeutet, dass alle IP-Adressen, die mit beginnen, 192.168.1sich in derselben L2-Broadcast-Domäne befinden, d. h. mit demselben Switch verbunden sind.

Geräte, die sich im selben IP-Subnetz befinden, kommunizieren direkt über die Layer-2-„Konnektivität“ miteinander; es findet kein Layer-3-Routing statt.

IPTables ist ein Mechanismus, der Firewall-Schutz für geroutete Pakete zwischen verschiedenen Subnetzen durchführt. IPTables erkennt keinen Datenverkehr, den Hosts desselben Subnetzes untereinander senden.

Wenn Sie zwischen den beiden Hosts eine Firewall installieren möchten, haben Sie mehrere Möglichkeiten:

  1. Verschieben Sie die Hosts in andere Subnetze (z. B. 192.168.1.0/24und 192.168.2.0/24), und richten Sie vom Router eine Route zwischen den beiden Subnetzen ein.
  2. Installieren Sie zwei verschiedene Ethernet-Segmente und konfigurieren Sie Ihren Router als Brücke zwischen den Segmenten. Anschließend können Sie IPTables so konfigurieren, dass Pakete zwischen den beiden Ethernet-Segmenten gefiltert werden.

verwandte Informationen