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:

  1. Firewall mit IPtables
  2. Merken: NAT aktivieren
  3. Loadbalancing mit Pound
  4. Datenbank Replikation mit MySQL unter Debian
  5. Serverübersicht