
Ich weiß, dass es dazu viele Fragen gibt, aber ich habe immer noch Probleme, es zum Laufen zu bringen.
Ich habe eine Firewall mit drei externen IPs. (Die IPs wurden aus Sicherheitsgründen zufällig geändert.)
eth0 Link encap:Ethernet HWaddr 50:46:5d:64:ed:e4
inet addr:51.215.232.147 Bcast:51.215.232.159 Mask:255.255.255.240
inet6 addr: fe80::5246:5dff:fe64:ede4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:70219084 errors:0 dropped:17443 overruns:0 frame:0
TX packets:63956103 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:51508818511 (51.5 GB) TX bytes:27933240304 (27.9 GB)
eth0:1 Link encap:Ethernet HWaddr 50:46:5d:64:ed:e4
inet addr:51.215.232.148 Bcast:51.215.232.159 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth0:2 Link encap:Ethernet HWaddr 50:46:5d:64:ed:e4
inet addr:51.215.232.150 Bcast:51.215.232.159 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Und ich habe diese einfachen Regeln:
# Generated by iptables-save v1.4.10 on Sat Mar 3 14:48:42 2012
*filter
:INPUT ACCEPT [13766:4986720]
:FORWARD ACCEPT [992:122980]
:OUTPUT ACCEPT [11894:5582822]
-A FORWARD -s 172.16.0.0/16 -o eth0 -j ACCEPT
-A FORWARD -d 172.16.0.0/16 -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sat Mar 3 14:48:42 2012
# Generated by iptables-save v1.4.10 on Sat Mar 3 14:48:42 2012
*nat
:PREROUTING ACCEPT [77:8206]
:INPUT ACCEPT [48:6367]
:OUTPUT ACCEPT [55:3300]
:POSTROUTING ACCEPT [55:3300]
-A POSTROUTING -s 172.16.0.0/16 -o eth0 -j MASQUERADE
-A POSTROUTING -s 10.10.0.0/16 -o eth0 -j MASQUERADE
-A POSTROUTING -s 10.1.0.0/16 -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat Mar 3 14:48:42 2012
Ich möchte also alles von 51.215.232.150 an die interne IP 172.16.5.218 weiterleiten.
Also dachte ich, das würde funktionieren:
iptables -t nat -I PREROUTING -p tcp -d 51.215.232.150 -j DNAT --to 172.16.5.218
Aber leider nein.
Vielen Dank im Voraus. Edward
Antwort1
Normalerweise würde ich sagen, dass Sie eine entsprechende FORWARD-Regel benötigen, um den Datenverkehr tatsächlich durch die FILTER-Tabelle zuzulassen:
iptables -A FORWARD -p tcp -d 172.16.5.218 -j ACCEPT
Aber Ihre Richtlinie für die FORWARD-Tabelle lautet bereits ACCEPT und es gibt keine REJECT- oder DROP-Regeln, also sollte es problemlos durchgehen.
Versuchen Sie, eine TRACE-Regel hinzuzufügen, um zu sehen, wohin das Paket geht:
iptables -t raw -I PREROUTING -p tcp -d 51.215.232.150 -j TRACE
Und wie testen Sie? Können Sie sehen, dass der Datenverkehr die Box tatsächlich erreicht?
tcpdump -lnn -i eth0 host 51.215.232.150