Einige Weiterleitungen funtzen nicht (iptables)

Antworten
Nachricht
Autor
Schnitzel

Einige Weiterleitungen funtzen nicht (iptables)

#1 Beitrag von Schnitzel » 04. Jul 2007 9:23

Hallöchen zusammen.

Ich habe von meinem Vorgänger ein Linux-Server übernommen (Fedora 5), welcher als Firewall und Webserver dient.
Das läuft auch alles einwandfrei. Nun will ich einen zweiten Webserver auf einem anderen Server betreiben, was die Firewall aber leider nicht durchroutet.

Hier mal die Daten der Firewall/Webserver1:
ETH0 = 19ner Netz (intern)
ETH1 = Extern (IP´s x.x.x.98 - x.x.x.101)
ETH2 = 100ter netz (IP 192.168.100.10)

Webserver1 läuft auf 192.168.100.10:80
Webserver2 läuft auf 192.168.100.11:80
SharePointServer läuft auf 192.168.100.11:8091

Hier mal der entsprechende Code der Firewall:

Code: Alles auswählen

# NAT für Webserver1
iptables -t nat -A PREROUTING  -d 212.184.166.98 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10
iptables -A FORWARD -m state --state NEW -p tcp -d 192.168.100.10 --dport 80 -j ACCEPT

# NAT für Webserver2
iptables -t nat -A PREROUTING  -d 212.184.166.101 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.11
iptables -A FORWARD -m state --state NEW -p tcp -d 192.168.100.11 --dport 80 -j ACCEPT

# NAT für SharePoint
iptables -t nat -A PREROUTING  -d 212.184.166.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.11:8091
iptables -A FORWARD -m state --state NEW -p tcp -d 192.168.100.11 --dport 8091 -j ACCEPT
Das komische ist, das "NAT für Webserver1" fehlerfrei läuft und durchgeroutet wird.
"NAT für Webserver2" und "NAT für SharePoint" aber nicht.
Die Webseite2 und SharePoint sind aber lokal erreichbar, laufen also.
Auch die externen Adressen laufen und kommen an der Firewall an.
Wenn ich die x.x.x.101 an die 192.168.100.10 weiterleite läufts auch.
Ich kann nur nix an die 192.168.100.11 weiterleiten.

Bin nach 8 Std. arbeit langsam mit meinem Latein am ende (u.a. weil ich kein fundiertes Linux-Wissen habe)

Please help!

-Schnitzel

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 04. Jul 2007 11:01

Es ist ein erheblicher Unterschied, ob ein Service auf demselben Rechner läuft wie der Paketfilter, oder auf einem externen. Erst einmal musst du die FORWARD-Chain bestimmt noch weiter beackern, zudem muss /proc/sys/net/ipv4/ip_forward den Inhalt "1" haben, damit IPv4-Pakete weitergeleitet werden. Ist das denn überhaupt entsprechend eingerichtet?

Weiterhin müssen natürlich auch Routen auf dem zweiten Rechner eingerichtet sein. In deinem Fall muss der Linuxrechner hvmtl. dort als Standardgateway eingetragen sein.

Eine gewisse Schwierigkeit besteht weiterhin darin, dass der Linux-Rechner drei externe IP-Adressen hat. Ich hab das jetzt nicht überprüft, aber evtl. müssen die *zurückkehrenden* Pakete in der POSTROUTING-Chain so umgeschrieben werden, dass sie auch von der "richtigen" externen IP-Adresse abgesendet werden. Evtl. macht der Routingcode dies aber auch schon automatisch richtig. Nachprüfen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Schnitzel

#3 Beitrag von Schnitzel » 04. Jul 2007 15:57

Danke Janka, es war tatsächlich der Gateway, welcher nicht auf den Linux-Server eingestellt war.

Antworten