Firewallarchitecturen

3
61

Om uw netwerk tegen allerlei gespuis op Internet te beschermen, moeten we het aantal in- en uitgangen van dat netwerk beperken. Dat doen we met een firewall. Er bestaan twee soorten firewalls: pakketfilters en proxysystemen.
internet
Als u uw netwerk tegen indringers wil beschermen, moet u het beveiligen. In het vorige deel van deze beveiligingsreeks spraken we over het vastleggen en doen respecteren van beveiligingsreglementen: de ‘security policy’. Daarnaast voorziet u fysieke (hard- of softwarematige) beveiligingsmaatregelen. Denk aan de slotgracht rondom een kasteel: die beperkt de toegang (in- en uitgang) tot één enkele poort waar iedereen en alles langs moet. Bij een netwerk doen we dat met behulp van een firewall. Al het netwerkverkeer van en naar het Internet (of eventueel naar andere punten in de buitenwereld) moet dus langs die firewall passeren. De vuistregel die u toepast is: alles wat we niet expliciet toestaan in onze ‘security policy’, is verboden. De keuze van de firewall hangt af van een weging van diverse parameters: de kostprijs van het geheel (hardware en software plus configuratie) is belangrijk, maar ook flexibiliteit, transparantie, performantie en beveiligingskracht. Leest u het vorige deel nog eens na voor meer informatie over deze termen. Er bestaan heel wat merken en types firewalls, maar in essentie kunnen we ze onderverdelen in twee grote groepen: pakketfilters en proxysystemen. Er bestaan trouwens ook firewalls die tot beide groepen behoren. Deze geven over het algemeen de grootste beveiligingskracht, maar daar hangt dan ook een navenant prijskaartje aan vast.

Pakketfilters
Een pakketfilter is één verdedigingslijn voor uw met het internet verbonden netwerk, maar liefst niet de enige. Het is wel een van de goedkoopste oplossingen. Een pakketfilter helpt u om datatransmissie voor bepaalde diensten te blokkeren en die voor andere diensten juist door te laten. Gewoonlijk kunt u een behoorlijk aantal regels vastleggen voor het blokkeren of doorlaten van netwerkverkeer. Zo zou u een bepaalde groep van IP-adressen kunnen uitschakelen, of bepaalde TCP-poorten (het internet werkt via het zogenaamde TCP/IP-protocol en daarbij heeft elk soort dienst zijn eigen TCP-poort: HTTP, het overdrachtsprotocol voor webpagina’s, maakt bijvoorbeeld standaard gebruik van TCP-poort 80). Een pakketfilter werkt dus op het netwerkniveau. Data kan het netwerk alleen verlaten als de pakketfilter dat toestaat. Als netwerkpakketten bij de filter aankomen, worden ze gefilterd op basis van type, bron- en bestemmingsadres en poortinformatie zoals dat in het pakket aangegeven staat. Om met succes een pakketfilter te kunnen configureren, moet u dus behoorlijk op de hoogte zijn van TCP/IP en van IP-pakketstructuren.

Filtertabel
Een pakketfilter werkt via een stel filtreringsregels: de filtertabel. Hierin legt u vast wat geblokkeerd moet worden en wat niet. U zorgt natuurlijk dat standaard niets toegestaan is en dan legt u een voor een de uitzonderingen vast. Bij sommige pakketfilters kunt u terwijl ze draaien en dus interactief wijzigingen aanbrengen in de filtertabel en meteen uitproberen wat voor effect dat heeft, maar bij de meeste kan dat niet en moet u eerst de pakketfilter stilleggen, de filtertabel wijzigen en dan de pakketfilter weer starten. In de filtertabel kunt u blokkeer- of doorlaatregels (deny of allow/permit) definiëren voor zowel IP-adressen als voor TCP-poorten.

Voor- en nadelen
Het grote voordeel van pakketfilters is dat ze performant zijn. Omdat ze relatief weinig data moeten analyseren en in het logboek noteren nemen pakketfilters weinig processortijd in beslag en leggen dus ook weinig beslag op de netwerkprestaties. Het nadeel is dan weer dat ze geen mogelijkheden tot authenticatie bieden. Gebruikers hoeven zichzelf niet te identificeren en de enige identiteit is in feite het IP-adres van de gebruiker. Zelfs dat ligt niet vast als de gebruiker automatisch een bij iedere inlog veranderend IP-adres toegewezen kreeg (een zogenaamd dynamisch IP-adres dat toegewezen wordt door een DHCP-server). Omdat filterregels gewoonlijk op IP-adressen gebaseerd zijn, zou het dus nodig kunnen zijn om de regels aan te passen als er nieuwe IP-adressen toegekend werden. Dat is een duidelijk ongemak. Vanuit het standpunt van de gebruiker zijn pakketfilters erg transparant. Gebruikers hoeven immers niets aan te passen in hun configuratie en merken doorgaans zelfs niets van de aanwezigheid van een pakketfilter. Dat is zeker niet waar voor een proxyserver. Een pakketfilter alleen geeft u duidelijk niet genoeg beveiliging. Alle verkeer dat u wel toelaat biedt immers in principe een mogelijkheid aan een hacker om er misbruik van te maken. Buiten een pakketfilter maakt u dus best ook nog gebruik van een of meerdere proxysystemen (zie verderop), van alternatieve transportmethodes voor e-mail en nieuwsgroepen en van intelligente hardwarematige gebruikersauthenticaties. Bij dat laatste denken we bijvoorbeeld aan de chipkaarten die tegenwoordig al van een aantal bedrijven verkrijgbaar zijn als inlogauthenticatie voor netwerken.

Proxysystemen
In de overgrote meerderheid van de gevallen gebruikt men proxyservers om het uitgaande verkeer te controleren of te bewaken. Sommige proxysystemen hebben een cache aan boord waarmee ze alle gevraagde data voor een bepaalde duur lokaal opslaan. Dit verlaagt de bandbreedtevereisten van de communicatie met iternet en verkort de toegangstijd aanzienlijk voor de volgende gebruiker die dezelfde data zou opvragen. Bovendien geeft het de systeembeheerder een onbetwistbaar bewijs van wat getransfereerd werd. Een cache in de proxyserver is echter geen verplichting. Sommige hebben het, andere niet. Proxyservers voor bepaalde toepassingen (zoals de HTTP-proxy) hebben meestal wel een cache aan boord. Er zijn eigenlijk twee types van proxyservers: de applicatieproxy (deze doet al het werk voor u) en de socks-proxy (deze maken als het ware kortsluitingen tussen TCP-poorten en vereisen dat de configuratie van de gebruikers daarop afgestemd wordt).

Applicatieproxy
Het bekendste voorbeeld van een applicatieproxy is natuurlijk de HTTP-proxy. In essentie komt dat erop neer, dat u bij het browsen alle aanvragen voor webpagina’s in feite doorgeeft aan de HTTP-proxy (gewoonlijk is dat een proxyserver in uw eigen bedrijf, maar hij kan ook bij de Internet Provider staan). Deze HTTP-proxy is dan in feite degene die contact opneemt met de buitenwereld: in casu de website die u verlangde. De proxy zal deze website (of althans de gevraagde pagina of pagina’s) inladen en vervolgens een welbepaalde tijd vasthouden. Dat laatste dient om een veel hogere surfsnelheid mogelijk te maken voor andere gebruikers die dezelfde pagina’s zouden willen bezoeken en men noemt zoiets een cache (letterlijk is dat een verborgen voorraad- of bergplaats). Hoewel u dat niet zo direct merkt, surft u eigenlijk altijd naar de HTTP-proxy: deze haalt in werkelijkheid de data op en geeft ze aan uw webbrowser door. Dit voorbeeld geldt voor HTTP, maar andere diensten kunnen ook voorzien worden van een proxyserver: FTP, telnet, e-mail, wat dan ook. Omdat proxyservers alle communicatie met de buitenwereld afhandelen, kunnen ze ook alle activiteiten in een logboek bijhouden. Voor een HTTP-proxy zou dit een logboek kunnen zijn met per gebruiker een lijst van bezochte webpagina’s. Voor een FTP-proxy kan dit een lijst zijn van alle gedownloade bestanden (ook weer per gebruiker). Proxyservers dienen echter niet alleen voor het cachen van data en het bijhouden van logboeken. Ze kunnen ook allerlei andere nuttige diensten aan deze activiteiten koppelen. Zo kunnen ze aan inhoudsfiltering doen. Hierbij worden documenten (e-mailberichten, nieuwsgroepberichten, webpagina’s) onderzocht op allerlei woorden of zinsdelen, waarna de documenten ofwel doorgelaten ofwel geblokkeerd worden. Uiteraard kan een proxyserver ook een naam en wachtwoord aan de gebruiker vragen bij de eerste sessie of na een bepaalde tijd van inactiviteit, dat is dus de gebruikersauthenticatie.

SOCKS-proxy
Een socks-proxy is in feite de oudste vorm van een proxyserver. U mag die vergelijken met een oude telefooncentrale, waar u telefoonaansluitingen met elkaar moest verbinden door draadverbindingen in stekkerdozen te pluggen. Een socks-proxy maakt een verbinding tussen twee TCP-poorten. Zo zou een socks-proxy bijvoorbeeld alle FTP-sessies (die normaal gebruik maken van TCP-poort 21) kunnen omleiden naar bijvoorbeeld poort 6021. Dit zorgt voor een zekere beveiliging aangezien de FTP-server op een voor de buitenwereld onbekende poort draait en dus niet zomaar bereikt kan worden. De gebruikers werken verder normaal met poort 21, maar moeten hun FTP-client wel herconfigureren om te werken met de socks-server. Niet alle internetapplicaties kunnen trouwens met een socks-server werken, dus als u een socks-proxy wil gebruiken kan dat het overschakelen naar andere internetapplicaties vereisen. Het makkelijkst is als de TCP/IP-stapel van uw besturingssysteem het werken met een socks-server op basisniveau ingebouwd heeft. Dan hoeven uw applicaties het niet te ondersteunen, de TCP/IP-stapel doet het dan voor u. De TCP/IP-voorzieningen van Windows (alle versies) ondersteunen dat helaas niet. Het is wel voorzien in die van OS/2 Warp 4 en sommige Unix-achtigen. Socks-proxyservers vereisen net als pakketfilters geen gebruiksauthenticatie, maar ze kunnen wel een logboek bijhouden van de locaties die iedere gebruiker bezocht. Tegenwoordig zijn socks-proxy’s niet zo erg populair meer omdat applicatieproxy’s die taken vrijwel volledig overgenomen hebben.

Firewall niet altijd nodig
Voor de duidelijkheid willen we er nog even op wijzen dat het niet per se nodig is om uw netwerk speciaal te gaan beveiligen via een firewall als u gebruik maakt van een zogenaamde ‘dial-up’- of inbelverbinding naar het internet. Dat wil zeggen dat u een modem of ISDN-adapter gebruikt om naar een inbelpunt van een internetprovider te bellen. U krijgt dan immers iedere keer een ander internetadres (ip-adres), waardoor het voor een hacker heel erg moeilijk wordt u te vinden en bovendien bent u niet continu met het internet verbonden. Waar u zich wel altijd zult moeten tegen beschermen, is wat uw bedrijf binnenkomt als u wél met het internet verbonden bent, met name e-mails en alles wat u via het web binnenhaalt. Vooral als u met Microsoft-software werkt, is het risico erg groot. Hackers en virusauteurs richten zich natuurlijk op het meest populaire besturingssysteem, maar helaas worden ze daarbij geholpen door ernstige gebreken in de architectuur van en beveilingsgaten in Windows en de daarbij horende internetsofware. Voor bescherming tegen kwaadaardige e-mails, webpagina’s en applicaties maakt u het best gebruik van software die u zo volledig mogelijk beveiligt. Wij denken dan aan eSafe Desktop en eSafe Enterprise van Aladdin Knowledge Systems. U kunt beide producten downloaden en gratis uitproberen. De eSafe software heeft een eigen virusscanner aan boord, maar u krijgt de optie om voor een performantere scanner te kiezen. Volgens een antivirussoftwaretest die we onlangs deden, komt de beste virusscanner uit Finland: F-Secure Antivirus. De maker is Data Fellows. Goedkoper maar bijna even goed is de virusscanner van Kaspersky, die overigens de motor voor het product van Data Fellows maakt.

Vaste verbinding
Als uw netwerk langdurig met het internet verbonden is via een huurlijn (leased line), een kabel- of ADSL-modem (MxStream), dan is het risico onloochenbaar aanwezig dat een hacker zou proberen in te breken. Bovendien kunt u ook nog de gebruikelijke rommel aan kwaadaardige e-mails, webpagina’s en applicaties binnenkrijgen. Daar kunt u weer de hogervermelde programma’s voor gebruiken, al is het voor netwerken beter om dergelijke maatregelen te centraliseren en bij voorkeur op de firewall te installeren. Bij evenknienetwerken (peer-to-peer) met een verbinding naar het internet is er meestal geen echt centraal systeem. U kunt gebruik maken van een modem- of ISDN-router om de verbinding met het internet te maken en vaak zitten daar ook firewallfuncties in. Maar dan spreken we weer over inbeltoegang en geen vaste verbinding.

Niet zaligmakend
Een firewall is geen toverdoos. Er is dus nooit een garantie dat een hacker er absoluut niet in zou slagen met uw netwerk te knoeien. Laat ik u een voorbeeld geven. ActiveX controls, dat weten we allemaal, kunnen zeer gevaarlijke dingen bevatten. Zowel virussen als Trojaanse paarden om een hacker toegang te geven tot uw systeem kunnen erin zitten. Microsoft heeft er in al zijn wijsheid voor gezorgd dat die tegenwoordig via poort 80 verwerkt kunnen worden, terwijl dat vroeger poort 135 was. Netwerkbeheerders blokkeren echter poort 135 omdat het hen niet veel moeite kostte om in te zien hoe gevaarlijk die poort was. Microsoft vond er dan niet beter op om COM/DCOM-objecten dan maar via poort 80 (http) te tunnelen. Poort 80 kan immers moeilijk geblokkeerd worden omdat je dan niet meer kunt surfen. Heel leuk voor Microsoft, maar minder leuk voor u omdat u zo ook de vandalenstreken niet meer kunt tegenhouden. U kunt natuurlijk extra software installeren om dit probleem aan te pakken, maar de pointe is dat een firewall met zoiets wel degelijk om de tuin geleid kan worden.

Vorig artikelInternetbeveiliging met firewalls
Volgend artikelBeveiliging van websites en webservers

3 REACTIES

  1. Aangezien de nederlandse regering dit soort site\’s niet toelaat wordt deze volgens artikel 126 gesloten.

Reacties zijn gesloten.