Door Capricornus op 28 november 2006 15:04
Ik heb altijd gedacht dat een router als hardware firewall
functioneert.
Ja en nee. De primaire taak van routers is om pakketjes
tussen netwerken te routeren, bijv. tussen een LAN (Local
Area Network, meestal een IP subnet) en de rest van de wereld.
Veel goedkope routers, inclusief ADSL MODEM's die vaak een
ingebouwde router hebben, zijn zogenaamde NAT routers
(Network Address Translation). Hoewel zo'n NAT router ook
firewalling functionaliteit aan boord
kan hebben,
heeft NAT zelf niets met firewalling te maken, maar het
biedt wel een uitstekende bescherming tegen aanvallen van
buitenaf. Die bescherming is niet "by design" maar eerder
een (gunstige) bijwerking, waar je (in tegenstelling tot bij
de meeste firewalls) niks aan hoeft te configureren en
waarbij niet veel fout kan gaan.
Het hoofddoel van NAT is dat je meerdere IP-adressen
(meestal private range) achter 1 publiek IP-adres kunt
verschuilen. Als iemand vanaf het internet verbinding
probeert te maken met jouw publieke IP-adres, dan ontvangt
jouw NAT router die pakketjes. Zelfs als er maar 1 PC op is
aangesloten, heeft de router by default echter geen idee
naar welke PC die pakketjes toe moeten (hier is een
uitzondering op te maken; je kunt de meeste NAT routers zo
instellen dat bepaalde typen pakketjes naar een specifiek
intern IP adres worden doorgestuurd, zodat je bijv. zelf een
webserver kunt draaien).
Pas op het moment dat je van binnen uit een verbinding naar
buiten opzet onthoudt de NAT router dit; uitsluitend over
dat type verbindingen laat de NAT router pakketjes
door van buiten naar binnen, en is dus bidirectioneel
verkeer mogelijk.
Een gedetailleerd voorbeeld: stel 213.156.1.80 is jouw
publieke IP-adres, oftewel het "WAN" (Wide Area Network)
adres van jouw router. Stel jouw PC heeft als intern
IP-adres 192.168.0.3, en vanaf poort 1027 maak je verbinding
met 207.46.20.60 (
http://www.microsoft.com) op poort 80. De NAT
router
wijzigt alle uitgaande pakketjes
on-the-fly: het private afzender adres 192.168.0.3
wordt daarbij vervangen door het publieke afzender adres
213.156.1.80 (vaak wordt ook het afzender poortnummer
gewijzigd maar dat is niet van belang voor deze discussie).
Daarna stuurt de router het gewijzigde pakketje door naar de
eindbestemming. Tevens slaat de NAT router de gegevens van
de volgende twee "verbindingen" op in een interne tabel:
een schijnbare van 192.168.0.3:1027 naar 207.46.20.60:80
een echte tussen 213.156.1.80:1027 en 207.46.20.60:80
Hoewel de NAT router alles van binnen naar buiten doorlaat
(na te hebben "vertaald"), zal deze -indien dit de enige
verbinding is- uitsluitend retour-pakketjes afkomstig van
207.46.20.60:80 en bestemd voor 213.156.1.80:1027 accepteren
voor routering, en na het (in elk pakket van buiten naar
binnen) wijzigen van het doel-adres 213.156.1.80 in
192.168.0.3, die pakketjes doorsturen naar jouw PC. Alle
andere pakketjes van buiten naar binnen waar je niet om
gevraagd hebt, worden dus geblokkeerd.
Een NAT router biedt daarmee prima bescherming tegen
netwerk-aanvallen vanaf het Internet (zoals Blaster of
exploits in backup services) door als een ventiel te werken.
In tegenstelling tot (klassieke) firewalls is een standaard
NAT router niet selectief op IP-adressen en/of poortnummers,
en is dus echt iets anders. Andersom kun je met een
stateless firewall geen NAT functionaliteit emuleren;
daarvoor is minimaal een
stateful firewall (die
onthoudt welke verbindingen bestaan) noodzakelijk.