Flere typer
I ethvert firma, hvor der eksisterer et internt netværk, bør der også være en firewall. En firewall beskytter kort sagt netværket imod at hackere kan få adgang til computere, der har forbindelse til internettet.
En firewall bestemmer hvilke tjenester i et internt netværk, som udefrakommende må få adgang til, hvilke brugere uden for det interne netværk, der må få adgang til de tilladte tjenester indenfor, og hvilke tjenester, de interne brugere må få adgang til. Alt trafik mellem det interne og det eksterne netværk skal altså gå gennem firewallen. Og lad os slå det fast med det samme: Der findes mange forskellige måder at opsætte en firewall på, og derfor kigger vi nærmere på, hvordan en firewall virker.
Der findes to ekstreme modeller for en firewall:
- Alt det, som ikke er tilladt, er forbudt.
- Alt det, som ikke er forbudt, er tilladt.
Firewalls kan groft deles ind i tre typer alt efter hvilken funktion, de varetager: Pakkefiltrerings-router, application level gateway og circuit-level gateway. Disse tre typer ser vi på i de næste tre afsnit. Typisk vil man dog altid bruge en kombination mellem to eller alle tre typer, og dette forklares i en senere artikel.
Pakkefiltrering
Pakkefiltrerings-router
En pakkefiltrerings-router (screening router) anbringes ud mod internettet. Når der kommer en pakke ind til routeren, anvender den et sæt filtreringsregler for at kontrollere, om pakken skal afvises eller ej. Reglerne er baseret på indholdet af IP-headeren. Routeren kan altså filtrere pakkerne efter afsenderadresse, modtageradresse samt sessions- og applikationsprotokol, der benyttes til at sende data. De fleste routere og bridges har disse egenskaber.
Ulempen ved denne type firewall er, at det kun er IP-headeren, som bliver kontrolleret. Det vil sige, at dataindholdet ikke analyseres. En let måde at angribe denne type firewall på, er derfor at bruge en falsk IP-header, med et gyldigt portnummer, til at få transmitteret en ugyldig applikation.
Der findes flere varianter af pakkefiltrering blandt andet dynamisk pakkefiltrering og tilstandsbaseret pakkefiltrering.
Applikationer
Application level gateway
En application level gateway (proxy server) kontrollerer adgang til systemet på applikationsniveau. Det vil sige, at den sidder som et slags led mellem applikationer på det indre og ydre netværk. Både indgående og udgående trafik kan kontrolleres. Der skal være implementeret en speciel kode for alle relevante applikationer, eksempelvis SNMP, HTTP, FTP og Telnet.
En gateway benytter autentifikation til at kontrollere de brugere, som har adgang til netværket. Det vil sige, at en bruger skal opgive identifikation. Dette kan for eksempel bruges til at medarbejdere kan læse e-mail hjemmefra.
Kontrol på applikationsniveau giver mulighed for at kontrollere selve indholdet af pakkerne, hvilket gør det muligt eksempelvis at sortere java-appletter eller scripts fra. En ulempe er, at der skal implementeres speciel kode for hver applikation, hvilket både giver mere udvikling og vedligeholdelse samt flere omkostninger.
To TCP-forbindelser
Circuit-level gateway
Denne type firewall kan være et system for sig selv, eller den kan være en specialiseret funktion firewall af typen application level gateway. Firewallen godkender ikke en end-to-end TCP-forbindelse. I stedet for oprettes en virtuel forbindelse ved at firewallen sætter to TCP-forbindelser op: En mellem sig selv og brugeren indenfor, og en mellem sig selv og brugeren udenfor. Når de to forbindelser er etableret, vil firewallen normalt ikke evaluere indholdet af pakkerne. Sikkerheden ligger altså i, hvilke forbindelser der må tillades, og systemadministratoren skal altså kunne stole på de interne brugere.
Tit støder man på andre begreber, når diskussionen kommer ind på firewalls, og vi forklarer nogle af dem her.
Bastion Host
En bastion host udpeges af systemadministratoren som det vigtigste og stærkeste punkt i et netværk, når der vel at mærke fokuseres på sikkerhed. Bastion hosten er den del af det interne netværk, som kendes af andre på internettet. Derfor er der stor risiko for at den bliver udsat for angreb, og den skal så være ekstra stærk. Man skal derfor gøre den så simpel som mulig ved at der placeres så lidt software som muligt. Jo mere software, der placeres, desto højere risiko er der for at en hacker kan finde et svagt punkt i programmerne. Typisk vil en bastion host fungere som en platform for en firewall af typen circuit-level gateway eller application level gateway.
Guard
En guard er en mere avanceret udgave af en application level gateway, og for at gøre forvirringen større, så findes der ikke nogen klar definition af, hvornår der er tale om det ene eller det andet.
I en senere artikel kigger vi nærmere på hvordan en firewall kan bygges op som en kombination mellem to eller alle tre typer af firewall.