Wir betreiben unsere Hauptserver von morphex.eu seit kurzem in einer neuen Kombination.
Einen Firewall Server ( gw.morphex.eu ) mit zwei Netzwerkkarten, sowie die beiden Web/Datenbank Server aurich1 & aurich2.
Die Firewall ist mit Lankarte 1 ans Internet angeschlossen und hat auf dem Interface 3 feste IPs. IP 2 & 3 waren ehemals an Aurich1 & Aurich2 vergeben, als diese noch direkt ans Internet angeschlossen waren.
Lankarte 2 der Firewall ist mit einem eigenen Switch verbunden, andem auch aurich1 & aurich2 angeschlossen sind. Die beiden internen Server sind somit nicht mehr direkt übers Internet zuerreichen und können auch keine Verbindungen nach aussen aufbauen.
Anfangs hatte ich dies mit einfachem NAT auf der Firewall gelöst, iptables befehl:
iptables -A POSTROUTING -t nat -j MASQUERADE -o eth0
Nun können die beiden Server im internen Netz aufs Internet zugreifen und mit simplen Portforwardings auf der Firewall kann man Ports z.B 80 an den Webserver weiterleiten.
Dies war zwar eine funktionierende Lösung, ich wollte aber dass die beiden internen Server externe Verbindungen nur auf Port 80 aufbauen dürfen und extern auch nur auf Port 80 erreichbar sind. Jeder Server jedoch über seine eigene ehemalige statische IP. Jetzt kommt SNAT/DNAT ins Spiel, was iptables erfreulicherweise unterstützt.
Die folgenden Zeilen sorgen dafür, dass die IP 217.7.143.x mit der internen IP 10.10.10.x verbunden wird auf Port 80
iptables -t nat -A POSTROUTING -s 10.10.10.x -o eth0 -p tcp –dport 80 -j SNAT –to-source 217.7.143.x
iptables -t nat -A POSTROUTING -s 10.10.10.x -o eth1 -p tcp –dport 80 -j SNAT –to-source 217.7.143.x
iptables -t nat -A PREROUTING -i eth0 -d 217.7.143.x -p tcp –dport 80 -j DNAT –to-destination 10.10.10.x
iptables -t nat -A PREROUTING -i eth1 -d 217.7.143.x -p tcp –dport 80 -j DNAT –to-destination 10.10.10.x
Diese Zeilen kann man natürlich für beliebige IPs beliebig wiederholen, so das man verschiedene sourceips+sourceports auf verschiedene interne Rechner weiterleiten kann. Wenn der interne Server mal extern Anfragen absetzt wird ebenso die oben gewählte externe IP beim client angezeigt und nicht haupt IP der Firewall.
Related posts:

December 6th, 2007 on 01:51
die letzten 2 posts sind gut. in der tat sind die verfügbaren infos für iptable nich gerade prickeld
auf welchem betriebssystem habt ihr eure firewall aufgesetzt?
habt ihr auf den webservern auch nochmal iptables laufen ?
cheers,
jens
December 7th, 2007 on 16:20
block tot oder kommentiert hier keiner ?
cheers
December 22nd, 2007 on 12:18
Hi jens,
sry für die lange Verzögerung, bin zu nichts gekommen
Also wir setzen momentan debian 4.0 ein mit nem aktuellen 2.6er Kernel!
Momentan haben wir nur auf der Firewall die die Trennung zwischen intern<>extern macht iptables installiert.
mfg
simon
December 23rd, 2007 on 14:19
hi.. danke fürs reply.
wir haben ein sehr gut besuchtes projekt.
ich habe angst, dass durch installation einer speraten firewall – also als eigenständiges system, so wie ihr das habt – ein bottleneck entsteht, und unsere seite im allgemeinen langsame rwird als vorher..
oder denke ich in der hinsicht falsch ?
December 23rd, 2007 on 14:23
Hi,
also ich denke dass du da so schnell keine Probleme haben wirst. Wir haben bei meinem Arbeitgeber auch eine iptables Firewall für die ganze DMZ sowie diverse Kundennetze ( angebunden per Richtfunk ).
Die CPUlast von iptables liegt auch bei starkem Durchsatz und bei hoher Bandbreite auf aktuellen Servern ( Unsere Firewall ist in etwa ein Xeon 3.0ghz ) im unteren 2 stelligen Bereich.
Wieviele gleichzeitige Verbindungen und was für einen Datendurchsatz/Sekunde erwartest du denn ?
Bei meiner morphex Lösung haben wir immo abends etwa 1500 offene Verbindungen und einen spitzen Durchsatz von 10mbit/s. Die Grafiken werden von externen Servern geladen, daher der geringe reine “webseiten” Durchsatz von 10mbit/s.
December 23rd, 2007 on 14:40
hallo simon,
ich wäre dir sehr dankbar wenn du mir skype, icq oder msn kontaktdaten von dir per mail (jenoehr@web.de) zuschicken könntest.. vielen dank !