Wie richte ich eine Portweiterleitung in Ubuntus iptables ein?

Wie richte ich eine Portweiterleitung in Ubuntus iptables ein?

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. Meine iptablessind leer und das /etc/network/interfaceist das Folgende:

auto lo
iface lo inet loopback
    address 127.0.0.1
    netmask 255.0.0.0
    broadcast 127.255.255.255
    up ip route replace 127.0.0.0/8 dev lo
# Auto generated venet0 interfaces
auto venet0
iface venet0 inet static
    address 127.0.0.1
    netmask 255.255.255.255
    broadcast 0.0.0.0
    up route add default dev venet0
iface venet0 inet6 static
    address ::2
    netmask 128
    up ip -6 r a default dev venet0
    up ip addr add {...externalIPv6...} dev venet0
auto venet0:0
iface venet0:0 inet static
    address {...externalIP...}
    netmask 255.255.255.255

Antwort1

Ich beginne damit als Antwort, auch wenn es (hoffentlich) noch keine ist. Der Grund dafür ist, dass ich glaube, dass zur Lösung dieses Problems mehrere Iterationen erforderlich sein werden.

Ihre iptables-Regeln sehen für mich in Ordnung aus, aber Ihre Datei /etc/network/interfaces hat meiner Meinung nach mehrere Probleme. Haben Sie sie von irgendwoher kopiert oder an Ihre Bedürfnisse angepasst?

Die Probleme, die ich sehe:

  1. Warum die Loopback-Schnittstelle angeben? Normalerweise sind die ersten beiden Zeilen der Strophe ok.
  2. Sie weisen derselben Schnittstelle, venet0, zwei Adressen zu.
  3. Die Netzmaske für die erste Venet0-Strophe ist zu restriktiv und nicht mit der Broadcast-Adresse vereinbar.
  4. Ihrer zweiten Strophe für venet0 sind zwei Adressen zugewiesen, Ihre externe IPv6-Adresse und ::2.
  5. In der Strophe für venet0 ist die Netzmaske viel zu restriktiv.
  6. Der gleichen Schnittstelle, venet0/venet0:0, sind sowohl Loopback- als auch externe Adressen zugewiesen. Was soll das?

Es wäre hilfreich, wenn Sie uns sagen würden, was Sie mit VMWare vorhaben. Im Moment bin ich ratlos.

verwandte Informationen