Weiterleitung aller Daten von der externen DMZ-IP zur NAT-IP mithilfe von iptables

Weiterleitung aller Daten von der externen DMZ-IP zur NAT-IP mithilfe von iptables

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

verwandte Informationen