iptables SNAT SuSEfirewall2

Die Anforderung war wie folgt. Es sollte ein Linux Router konfiguriert werden der einfach zu bedienen ist aber doch alle Möglichkeiten bietet eigene Regeln, Routen und Netzwerke einzurichten. Die Wahl fiel auf das Novell SLES 11 Betriebssystem.

In diesem Artikel geht es um das SNAT (Source Network Address Translation) man möchte Quell-IP-Pakete umschreiben so das sie beim verlassen der Firewall die gewünschte Adresse eingebrannt bekommen. Die Fragestellung war wie löst man das mit der SuSEfirewall2. Die SuSEfirewall2 bietet ein sehr robustes Grundgerüst bei dem man sich sicher sein kann das kein Einfalltor offen steht. Und zudem gibt es mit Yast ein Tool mit dem diese sehr einfach verwalten kann.

Um jetzt die für das SNAT nötigen Regeln unterzubringen muss mit in der SuSEfirewall2 Konfiguration das Custom Script einkommentieren. Dann kann man in dieser Datei die folgenden Regeln einfügen.

/etc/sysconfig/scripts/SuSEfirewall2-custom:
fw_custom_before_masq() {
Mailserver mail.beispiel.com
iptables -t nat -A POSTROUTING -s 172.28.52.5 -j SNAT --to 87.93.153.26
# Webserver www.beispiel.com
iptables -t nat -A POSTROUTING -s 172.28.52.10 -j SNAT --to 87.93.153.26

# Asterix phone.beispiel.com
iptables -t nat -A POSTROUTING -s 172.28.52.15 -j SNAT --to 87.93.153.28

# Manager/Demo manager.beispiel.com
iptables -t nat -A POSTROUTING -s 172.28.52.20 -j SNAT --to 88.93.153.27
true
}

fw_custom_before_denyall() {
for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz ; do
iptables -A $chain -j ACCEPT -s 172.28.52.0/24
iptables -A $chain -j ACCEPT -d 172.28.52.0/24
done
true
}
Wenn noch weitere SNAT Regeln eingefügt werden sollen so kann man diese Datei sehr leicht erweitern. ein einfaches rcSuSEfirewall2 reload macht die neuen Regeln aktiv.