Verder Terug Inhoud

9. NAT en een pakket filter tegelijk gebruiken

NAT staat voor Network Address Translation en het stelt je in staat om pakketjes een ander doel of bestemming te geven. Meer details hierover vind je in de NAT HOWTO. Je kan NAT en een pakket filter goed combineren.

Als je een pakket filter opzet, kan je gewoon je NAT negeren: de bestemming van je regel is de `echte' bestemming en wordt niet beïnvloed door NAT. Als je bijvoorbeeld je NAT zo hebt ingesteld dat pakketjes die naar 1.2.3.4 poort 80 gaan, naar 10.1.1.1 poort 8080 gestuurd worden, ziet je pakket filter de pakketjes naar 10.1.1.1 poort 8080 gaan en niet naar 1.2.3.4. De pakketjes gaan tenslotte niet naar 1.2.3.4, dus heeft het ook geen zin hier regels voor te maken.

Bij masquerading (SNAT) komen de pakketjes dus van hun interne netwerkadres (192.168.1.1) en gaan naar een extern adres (www.linux.org). Ingaande pakketjes worden eerst omgeschreven, dan gefilterd, uitgaande pakketjes worden eerst gefilterd, dan omgeschreven.

Je kan de `state' uitbreiding gebruiken zonder dat het extra moeite kost voor het pakket filter, want die moet het toch al bijhouden om NAT te kunnen doen. Om inkomende connecties tegen te houden en masquerading te gebruiken kan je het volgende doen (dit staat ook deels in de NAT howto):

# Masquerade uitgaand ppp0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Houd NEW en INVALID inkomende of doorgestuurde connecties tegen.
iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP

# IP forwarding aanzetten
echo 1 > /proc/sys/net/ipv4/ip_forward


Verder Terug Inhoud