2012-04-04 14 views
2

Es scheint, ich verstehe IPTABLES Logik nicht.IPTABLES: ping und wget arbeiten, obwohl sie nicht

Ich habe den Ubuntu-Server 11.10 auf meinem Server neu installiert und die Weiterleitung aktiviert (net.ipv4.ip_forward = 1 in /etc/sysctl.conf). Der Server verfügt über zwei Netzwerkschnittstellen: eth0 (IP 192.168.1.1) sucht nach dem lokalen Netzwerk und eth1 (IP 213.164.156.130) sucht nach dem Internet.

Es gibt auch einen anderen Computer im lokalen Netzwerk mit IP 192.168.1.2.

Dann habe ich zwei einfache Regeln zu iTable * nat:

-A PREROUTING -i eth1 -j DNAT --to-destination 192.168.1.2 
-A POSTROUTING -o eth1 -j SNAT --to-source 213.164.156.130 

Ich dachte, dass die erste Regel bedeutet 192.168.1.2 jedes eingehende Paket weiterzuleiten.

Aber wenn ich "ping google.com", "wget ​​google.com" vom Server ausführen, funktionieren sie erfolgreich. Der Server empfängt Pakete und macht keine Weiterleitung, und ich bin wirklich dabei.

Falls ich diese Befehle von 192.168.1.2 ausführen, funktionieren sie auch, das heißt hier funktioniert die Weiterleitung.

Antwort

3

Dies sind NAT-Regeln.

In Ihrer ersten Regel tritt die Adressübersetzung vor dem Routing des Pakets auf. Sie ändern die Zieladresse in 192.168.1.2 und in der zweiten Regel ändern Sie die Quelladresse vor dem Routing zu 213.164.156.130.

Ich schätze, Sie können ping & wget, weil Ihre INPUT und OUTPUT Ketten eine Standardaktion haben.

TBH, ich bin verwirrt über das, was Sie eigentlich tun möchten, aber wenn Sie Pakete weiterleiten möchten, müssen Sie die FORWARD-Kette ändern. Hier ist ein Link für detaillierte und hilfreiche Informationen über iptables, so dass Sie die Logik besser verstehen - Ch14. _Linux_Firewalls_Using_iptables "> http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_: Ch14: _Linux_Firewalls_Using_iptables