Pc som firewall
En fast forbindelse til internettet giver masser af muligheder for at etablere lokalnetværk med egen mailserver, webserver og så videre. Men det medfører også, at man bliver nødt til at forholde sig aktivt til sikkerhedsspørgsmål, for ingen er vel interesserede i at få uventede og uønskede besøg.
En af sikkerhedsmekanismerne, der kan beskytte det lokale netværk mod omverdenen, er en firewall, og det behøver hverken være dyrt eller vanskeligt at etablere. Alt hvad det kræver, er modet til at gå i gang med Linux, samt to netkort til den gamle pc.
Pc'en behøver ikke engang være særlig hurtig. En processor omkring 300 MHz er nok til, at man kan bruge den som firewall mellem bredbåndsmodem/-router og resten af netværket.
Det gode ved at have en hardware-baseret firewall er, at brugerne af de pc'er, der ligger bagved firewallen, ikke kan lukke den ned eller ændre på den.
Med en software-firewall risikerer man, at brugere - eller sågar virus - lukker ned for firewall'en, og derefter er der åbent hus for hackere og andet skidtfolk. Desuden kan den sættes op helt gratis, hvis man selv bruger tid på at hente det Linux-operativsystem, som man skal bruge.
Konfiguration
Vi brugte til denne artikel Red Hat Linux 7.3, men det burde ikke skabe de store problemer at bruge en anden Linux distribution, så længe kernen er minimum version 2.4.
Der er tre steder i forbindelse med konfigurationen, man skal være opmærksom:
1) Når man installerer en pc som firewall, bør man ikke installere mere end man ved, man får brug for. Derfor bør man under punktet om, hvilket system pc'en skal bruges som, vælge Custom.
2) Ved netværkskonfigurationen skal man fjerne fluebenet i "Configure using DHCP". Herefter indtaster man den IP-adresse, firewallen skal tildeles.
I vort eksempel benytter vi adresserne 192.168.x.x. Under "IP-adresse" skriver vi derfor 192.168.1.202.
I "Hostname" skrives et navn, man selv vælger, og i "Gateway" indtastes IP-adressen som router/modem er blevet tildelt fra bredbåndsleverandørens side. I "Primary DNS" indtaster man IP-adressen på den DNS-server, man benytter sig af. Derefter vælger man netkortet eth1, og indtaster IP-adressen 192.168.1.201. Brug TAB mellem alle felter, så de øvrige felter autoudfyldes med de nødvendige oplysninger.
3) I "Selecting Package Groups" bør man fjerne alt bortset fra "Gnome" - hvis man vil have den grafiske brugerflade - "Network Support", "Router/Firewall" og "Network Managed Workstation".
Når installationen er færdig, og man har logget sig på som root for første gang, skal man køre følgende kommandoer i et kommandovindue:
Chkconfig --level 0123456 ipchains off
Chkconfig -level 235 iptables on
Rmmod ipchains
Insmod ip_tables
Derefter rettes /etc/modules.conf og følgende linje tilføjes til sidst i filen:
add above ip_conntrack_ip _conntrack_ftp
I samme mappe ændres filen sysctl.conf, hvor linien:
net.ipv4.ip_forward = 0
rettes til:
net.ipv4.ip_forward = 1
Når det er gjort, er det blot at indtaste firewallteksten i en fil og gemme den som firewall.conf i /root/
Indtast derefter følgende kommando, for at gemme indstillingerne:
/etc/rc.d/rc5.d/S08iptables save
Genstart derefter med:
shutdown -r now
Styr tilgangen af datapakker
Det mest interessante er uden tvivl selve konfigurationen af firewallen. En vigtig detalje ved firewalls er muligheden for at filtrere datapakker. Man kan simpelthen sætte firewallen op til kun at modtage datapakker fra andre computere på internettet, hvis en klient på lokalnetværket selv har spurgt efter dem.
Hvis man uhæmmet tager imod "fremmede" datapakker, er der en god chance for, at netværket kan blive hacket, eller på anden måde forstyrret. Man kan også helt blokere for uønskede websites, som man ikke ønsker trafik fra, eksempelvis pop-up-reklamernes servere.
Når pc'en modtager en datapakke, kigger firewallen i pakkens header, og hvis den ikke overholder firewall-reglerne, bliver den smidt bort. Afsenderen af datapakken får ikke noget svar tilbage, og pakken anses simpelthen for tabt.
Det er netop den slags filtrering, som "iptables" i firewall-filen hjælper med. De steder i filen, hvor der står 192.168.2.0/2, betyder det, at vi tillader tre computere på det interne netværk - med adresserne 192.168.2.0, 192.168.2.1 og 192.168.2.2 - og ingen andre at bruge disse porte/services.
Konfigurationsfilen firewall.conf består altså af en række kommandoer, men er egentlig blot en tekstfil, der skal gemmes i den rigtige mappe. Så er man klar til at beskytte sit netværk. Firewall.conf kan for eksempel se således ud:
Punkt A: Alle tidligere regler nulstilles så man er sikker på at have et korrekt udgangspunkt:
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -t nat -F POSTROUTING
Punkt B: Her bliver standard-reglen for firewallen sat op. Alt bliver smidt væk (DROP), med mindre man konfigurerer firewall'en til at beholde bestemte former for datapakker, hvilket vi begynder på i Punkt C. Dette er den mest sikre metode at begynde med. Til gengæld skal alle anvendte porte/services tillades specifikt:
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
Punkt C: Her starter vi med at fortælle firewallen, hvilke porte vi gerne vil kunne bruge. Port 20 og 21 er FTP-trafik og port 25 er til SMTP-mail. Port 80 er beregnet til http-trafik, port 110 er pop-mail, port 443 bruges i forbindelse med sikre websteder (SSL/TLS) og port 6667 er standard-porten til IRC (Internet Relay Chat). Som udgangspunkt er det her, man skal tilføje de porte man vil bruge, eller som bestemte programmer anvender. Samtidig bør man også fjerne de porte man ikke har brug for. Jo mindre, der er tilladt, jo mindre er risikoen for at blive hacket:
iptables -A FORWARD -p tcp -d 192.168.2.0/2 -m multiport \
--sport 20,21,25,80,110,443,6667 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.2.0/2 -m multiport \
--dport 21,25,80,110,443,6667 -m state --state NEW,ESTABLISHED -j ACCEPT
Punkt D: Dette tillader pc'er at bruge DNS-servere uden for det lokale netværk. Med mindre man kan IP-adresserne på de websteder man vil besøge i hovedet, er der reelt set ingen internetadgang uden dette punkt:
iptables -A FORWARD -p udp -d 192.168.2.0/2 --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.2.0/2 --dport 53 -j ACCEPT
Punkt E: Dette punkt tillader, at browseren kan bruges som FTP-klient. Bruger man i stedet en rigtig FTP-klient, kan man roligt fjerne dette punkt:
iptables -A FORWARD -p tcp -s 192.168.2.0/2 -m state \
--state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.2.0/2 -m state \
--state ESTABLISHED -j ACCEPT
Punkt F: At kunne "pinge" andre computere kan være en værdifuld ting når man skal fejlsøge netværk. Dog er det ikke så smart selv at kunne blive pinget, da det afslører, at her er en computer, som man måske kan bryde ind i. Mange vil faktisk ikke have brug for det, og den bør helt udelades hvis det er tilfældet:
iptables -A FORWARD -p ICMP -d 192.168.2.0/2 \
--icmp-type echo-request -j DROP
iptables -A FORWARD -p ICMP -s 192.168.2.0/2 \
--icmp-type echo-reply -j DROP
Punkt G: Dette punkt fjerner en af de muligheder som hackere bruger, når der laves Denial of Service angreb. Disse IMCP-beskeder er i det hele taget noget usikre, og benyttes også af hackere til at scanne netværk eller omdirigere trafik. Det er nærmest en hel videnskab for sig at omgå disse beskeder, for man kan ikke lukke af for dem alle sammen, uden at ens interne netværk risikerer at blive gjort ukampdygtigt. Derfor gælder det i høj grad om at overvåge IMCP-trafikken og derefter skride til handling, hvis der er uregelmæssigheder:
iptables -A FORWARD -p ICMP -s 192.168.2.0/2 \
--icmp-type redirect -j DROP
Punkt H: Vi åbner for IMCP-sluserne og håber det bedste:
iptables -A FORWARD -p ICMP -j ACCEPT
Punkt I: Her får computerne adgang til firewall-maskinen, og hinanden:
ipchains -A input -i $LOCAL_INTERFACE \
-s $LOCALNET -j ACCEPT
ipchains -A output -i $LOCAL_INTERFACE \
-d $LOCALNET -j ACCEPT
Punkt J: Source Network Address Translation eller IP-masquerading. Uanset hvilken IP-adresse netværkstrafikken kommer fra på det interne netværk, vil det for verden uden for, se ud som om det sker fra én og samme IP-adresse. På den måde undgår man at afsløre, hvilke pc'er, der er bag firewallen:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.202
Hele den ovenstående konfigurationsfil kan hentes her, så man ikke behøver at skrive den selv.
Denne artikel stammer fra den trykte udgave af PC World.