Okay, es mag sein, dass ich dicht besiedelt bin oder einfach nicht die richtige Quelle gefunden habe, aber ich kann nicht verstehen, warum eines dieser IPTABLES-Setups besser wäre als das andere.
Hier ist mein Setup:
Ich habe eine Box, die als transparenter Proxy und als Router oder Sorter dient. Es verfügt über zwei Schnittstellen, ETH0 und ETH1, und das folgende Adressschema:
ETH0 = DHCP ETH1 = 192.168.5.1/24 DHCP für das Netzwerk 192.168.5.0/24 für dahinter stehende Clients im LAN bereitstellen
Ich habe Privoxy installiert und empfange Port 8080 als transparenten Proxy. Mit diesem Setup kann ich diese Box in ein vorhandenes Netzwerk mit minimaler Konfiguration und an den Proxy angeschlossenen Clients einfügen.
Hier ist meine ursprüngliche IPTABLES-Datei
*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
COMMIT
Diese Konfiguration funktioniert einwandfrei und der Datenverkehr fließt problemlos hin und her. Ich erhalte die IP-Adresse des Ursprungsclients in den Privoxy-Protokolldateien, und das Leben ist gut.
Meine Verwirrung kommt auf, wenn ich die Konfigurationen anderer Leute betrachte und sehe, dass sie DNAT anstelle von REDIRECT verwenden, und ich versuche, den wahren Nutzen der einen über die anderen zu verstehen. Hier ist eine Beispielkonfiguration:
*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.5.1:8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
COMMIT
Auch diese Konfiguration funktioniert wieder und gibt mir alles, was ich aus der Perspektive der Protokollierung brauche ...
Was ist richtig oder vielleicht MEHR richtig als das andere?
Vielen Dank, dass Sie sich die Zeit genommen haben, bis hierher zu lesen ...
REDIRECT
ändert die Ziel-IP-Adresse, um sie gemäß der Antwort von Warner @ an den Computer selbst zu senden. Aber ich würde sagen, dass die Antwort nicht ganz richtig oder ein bisschen irreführend ist.REDIRECT
dient nicht nur zum Umleiten lokaler Pakete. In Wirklichkeit istDNAT
die zu verwendende Ziel-IP-Adresse implizit 127.0.0.1, wenn es sich um ein lokales Paket handelt, oder die IP-Adresse der Maschinenschnittstelle, ansonsten 192.168.5.1 im Fall des OP.Bei dieser Frage sollten die Pakete also unabhängig vom endgültigen Ziel zuerst den Proxy erreichen und sind daher
REDIRECT
perfekt geeignet.Da
REDIRECT
Sie keine IP-Adresse angeben müssen, wird nur die richtige verwendet. Dies hat einige Vorteile gegenüberDNAT
:Wenn sich die IP-Adresse des Geräts aus irgendeinem Grund ändert, müssen Sie Ihre Regeln nicht ändern. Dies gilt insbesondere
DNAT
nicht für DHCP-gesteuerte Schnittstellen.Sie können die gleichen Regeln für mehrere Systeme (z. B. mehrere Proxy-Instanzen) schreiben und verwalten, ohne aufgrund der spezifischen IP-Adressen unterschiedliche geringfügige Versionen beizubehalten.
quelle