Ich habe Speicherplatz auf einem Server mit einer statischen IP-Adresse gemietet und möchte auf diesem Server einen transparenten Proxy einrichten.
Nachdem ich Squid zu Testzwecken mit dem Listener konfiguriert hatte http_access allow all
, wollte ich die iptables-Informationen festlegen. Ich habe nur eine Ethernet-Verbindung mit meiner statischen IP-Adresse. Ich suchte nach einer Dokumentation, wie man das mit einer einzelnen Netzwerkkarte macht, konnte aber keine finden. (Für zwei oder mehr gibt es jede Menge, aber nicht für eine einzelne Netzwerkkarte.)
Derzeit erhalte ich diese Ausgabe:
root@1:~# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3536 (3.5 KB) TX bytes:3536 (3.5 KB)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
inet6 addr: ::2/128 Scope:Compat
inet6 addr: 2a01:[....]external-ipv6[...]/128 Scope:Global
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:551353 errors:0 dropped:0 overruns:0 frame:0
TX packets:455717 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:351211942 (351.2 MB) TX bytes:267054641 (267.0 MB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:[...]external-ipv4[...] P-t-P:[...]external-ipv4[...] Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Ich bin mir nicht sicher, wie es weitergehen soll. Meine iptables sind im Moment komplett leer. Brauche ich ebtables für einen korrekt funktionierenden transparenten Proxy oder reichen die richtigen iptables aus, um dies ohne ebtables zu erledigen? Wenn ja, können Sie mir einen einfachen Befehl geben, um sie einzurichten?
Quellen:
- http://wiki.ubuntuusers.de/Squid
- http://freecode.com/articles/configuring-a-transparent-proxywebcache-in-a-bridge-using-squid-and-ebtables
- http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
#
insbesondere dieses Zitat sollte mir erklären, wie das geht, aber ich verstehe es nicht ...
Als nächstes habe ich folgende Regeln hinzugefügt, um alle HTTP-Anfragen (die an Port 80 eingehen) an den Squid-Server-Port 3128 weiterzuleiten:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
mit
iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128
das sollte funktionieren, tut es aber nicht ...