Firewall configuratie

Wat is een firewall ('brandmuur') in een netwerk? Een filter op je internetverbindingen (op je lokale netwerk, of naar de boze buitenwereld toe) die bepaald welke pakketten wel naar binnen (of buiten) mogen, en welke niet. Een fire wall zit bijvoorbeeld normaal in je modem/router en beschermd daarmee al je PC's op je huisnetwerk, maar kan ook in iedere PC afzonderlijk zitten. De normale fire wall kijkt naar bijvoorbeeld 'afzender' en 'geadresseerde' (IP adressen), en naar welke 'poort' het pakket toe moet (wat voor soort pakketje het is). De persoonlijke fire wall kijkt niet naar de inhoud van de pakketten (geen 'deep packet inspection', maakt geen post open; bij durdere bedrijfs-firewalls gebeurt dit soms wel).

Firewall is geen virusscanner!

Let op: fire walls beschermen tegen bijvoorbeeld hackers die direct je systeem op proberen te komen. Maar een fire wall is geen virus-scanner! Virussen komen op andere manieren je systeem binnen, bijvoorbeeld verstopt in email of web paginas. Omdat email 'normaal' internetverkeer is wordt dat niet tegen gehouden! Installeer dus ook een virusscanner!

Op die manier kan je internetverkeer filteren en zo sommige soorten aanvallen van buitenaf afweren. Met sommige firewalls kan je ook voorkomen dat bijvoorbeeld door virus besmette programma's van binnenuit zo maar data naar buiten je netwerk gaan versturen.

De fire wall kan in je ADSL/kabelmodem zitten, of per PC geïnstalleerd zijn, of beiden. Bij mij draaien fire walls ook op de PC's: alleen deze kunnen namelijk zien welk programma data wil verzenden, daar kan ik dus per programma aangeven of ze wel of niet internet 'op mogen'. Inkomend verkeer wordt voornamelijk door de firewall in de ADSL- of kabel-modem/router gefilterd, tenzij je je interne netwerk ook niet vertrouwd, dan kan je ze ook per PC plaatsen. Uitgaand verkeer wordt normaal op de betreffende PC's gefilterd.

Wel moet je een firewall zorgvuldig instellen, zeker in combinatie met een ADSL- of ander netwerk-modem. Anders heb je geen idee waarom en waar wat niet meer doorheen komt... of juist wel er door komt, van buitenaf door onbevoegden (zie ook de sectie op mijn algemene internet page over modems). Een site die daarbij kan helpen is PortForward.com. Op deze site veel informatie over welke programma's welke poorten gebruiken. Een andere site over fire walls is FireWalling.com, over het opzetten en instellen van fire walls.

Om te checken of je netwerk goed beveiligd is: klik eens op de ShieldsUp link op www.grc.com/default.htm (ergens halverwege de pagina, onder kopje 'Hot Spots'). Hier is ook meer informatie over computerbeveiliging te vinden. Of kijk op Insecure.org: informatie over Computer Security, nmap, Port Scanner, Exploit World, Exploits, Hacking, ...

Welke Firewall?

Welke poort?

Welke applicatie gebruikt welke poorten? handig om te weten wat je moet openzetten, en wat er in je logfiles staat als er dingen mis gaan. Op Wikipedia is een lijst van poortnummers te vinden.

En zijn heel wat aanbieders van (gratis) firewall programma's, met name voor Windows. Wat ik echter begrepen heb is dat in de nieuwere versie van Windows de ingebouwde fire wall behoorlijk goed is. Wel kan je mogelijk de standaard instellingen verbeteren, om het gebruikers niet te lastig te maken staat hij vrij soepel afgesteld (ik denk dat bijvoorbeeld alle uitgaande verkeer standaard doorgelaten zal worden). Ik heb echter de laatste jaren weinig ervaring meer op Windows daar ik zelf over ben op Linux (Ubuntu).

Ook op Linux zitten standaard firewalls die zeer goed zijn, bijvoorbeeld 'iptables' op debian/Ubuntu. Wel zijn ze soms wat lastig in te stellen, omdat er op de meeste Linux distributies standaard geen vriendelijke (grafische) gebruikersinterface zit (al zijn ze wel gratis beschikbaar). Zelf gebruik ik 'iptables', omdat dat meer mogelijkheden geeft, plus betere logging van wat er gebeurt.

Let op: ik laat het hier alleen zien voor IPv4; IPv6 gaat vergelijkbaar maar dan uiteraard met IPv6 adressen. Staat beknopt verderop op deze pagina.

Linux iptables

iptables werkt met een lijst van regels (zoals iedere firewall). Bij direkt gebruik van iptables stel je deze zelf in, en je hebt dus volledige controle. Hier wat hints en tips, voor een deel ook toepasbaar op andere fire walls. iptables is in het begin behoorlijk complex en overweldigend, maar in de praktijk heb je niet direct alles nodig.

Meer informatie

Waar ik ook veel aan gehad heb zijn de volgende sites:

De basis van iptables zijn tabellen, zoals de naam al aangeeft. Binnen elke tabel zijn meerdere chains (ketens), ieder weer met meerdere rules (regels); mooi uitgelegd in iptables fundamentals. Ik gebruik zelf alleen de default tabel genaamd 'filter', en de drie al standaard aanwezige 'chains' (ketens van regels, die stuk voor stuk afgelopen worden):

  1. INPUT: de keten met regels voor binnenkomende berichten
  2. OUTPUT: de uitgaande berichten
  3. FORWARD: berichten die door het apparaat heen ge'route' moeten worden (van belang bij routers etc, ook gebruikt voor OpenVPN op mijn Raspberry).

Daarbij is mijn standaard policy instelling zo dat alles wordt geaccepteerd, maar stel ik vervolgens individuele regels in met als laatste regel 'alles blokkeren'. Klinkt wat vreemd, maar dit is handiger dan standaard alles blokkeren: als je dan alle regels weg gooit en je kan alleen met SSH je systeem bereiken, dan heb je jezelf buitengesloten... Dit zou bij mijn Raspberry Pi server het geval kunnen zijn; daar zit geen toetsenbord of beeldscherm aan want ik bedien hem alleen op afstand via SSH. Dus bij het beginnen met een lege iptables:

IPT="/sbin/iptables"

# De standaard policy is alles door te laten... Dan blijft SSH werken ook als je alle regels weg gooit
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT

# En gooi vervolgens alle bestaande regels weg
$IPT -F
$IPT -X

Handige commandos

# print huidige regels
iptables -nL --line-numbers
# verwijder regel
iptables -D INPUT 3
# Voeg regel in
iptables -I INPUT 3 <regel>

In noodgevallen

Om mezelf niet buiten te sluiten heb ik een script dat ik laat draaien als ik met de rules ga spelen: dit script gooit na een half uur weer alle regels weg, tenzij ik het script eerder stop omdat ik tevreden ben. In het ergste geval van uitsluiting moet ik een half uur wachten, en dan kan ik er weer in. Gelukkig van te voren bedacht, want ik heb het nodig gehad... Het script stop_firewall.sh ziet er als volgt uit:

#!/bin/bash
date
sleep 1800
sudo /sbin/iptables -F

Let op, dit werkt alleen als 'sudo' niet om een wachtwoord vraagt! Anders eerst met sudo -i een 'root shell' starten en het daar vanuit starten. Start het script met './stop_firewall.sh &'. Je krijgt het procesnummer terug, hiermee kan je als je tevreden bent dit script stoppen met 'kill <nummer>'. Niet te laat doen, want dan staat je firewall weer helemaal open.

Alternatief: zorg dat IPv6 werkt en dat je je IPv6 nummers kent (kijk verderop), dan kan je via die weg ssh benaderen, want iptables is alleen voor IPv4 (ip6tables is vergelijkbaar voor IPv6).

iptables rules (regels)

Nu kunnen we de eerste regels toe gaan voegen. Ik doe de configuratie vanuit een script setup_iptables.sh (hoef ik het niet iedere keer in te typen) dat er versimpelt als hieronder uit ziet:

IPT="/sbin/iptables"
MYNETWORK=192.168.1.0/24

# 'localhost' verkeer, dus wat binnen het apparaat blijft, mag gewoon doorgaan
$IPT -A INPUT  -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# Binnenkomend SSH verkeer van alleen lokale netwerk (subnet 192.168.1.xxx) mag wel:
$IPT -A INPUT  -p tcp -s $MYNETWORK --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp               --sport 22 -j ACCEPT

# Hier komen verdere eigen regels

# En de rest gooien we allemaal weg...
$IPT -A INPUT  -j LOG  -m limit --limit 12/min --log-level 4 --log-prefix '[IP] INPUT drop: '
$IPT -A INPUT  -j DROP

$IPT -A OUTPUT -j LOG  -m limit --limit 12/min --log-level 4 --log-prefix '[IP] OUTPUT accept: '
$IPT -A OUTPUT -j DROP

$IPT -A FORWARD -j LOG  -m limit --limit 12/min --log-level 4 --log-prefix '[IP] FORWARD drop: '
$IPT -A FORWARD -j DROP

De laatste regels geven ook log-output naar de kernel. Hiermee kan je zien wat er allemaal 'het putje in gaat'. Dit zal met bovenstaande regels heel wat zijn, want behalve SSH staat alles nog dicht. Al mijn mooie services (netwerkdisk etc) zijn buitengesloten, en ook de Raspberry zelf kan niet meer het internet op. Dus er moeten nog wat regels toegevoegd worden...

De log gaat hier naar de standaard kernel log, je kan deze bekijken met bijvoorbeeld 'sudo tail /var/log/messages'. Ik heb zelf deze output liever niet allemaal door mijn kernel logs heen staan. Je kan gelukkig rsyslogd (gebruikt op Raspberry voor het loggen) laten filteren op hier de tekst '[IP] ' en de matchende regels naar een aparte file laten wegschrijven (zie bijvoorbeeld Log iptables to separate file). Hiervoor heb ik een file /etc/rsyslog.d/22-iptables.conf aangemaakt met (onder andere) de volgende inhoud:

:msg,contains,"[IP] " /var/log/iptables.log
& ~

Nu even rsyslogd herstarten met service rsyslog restart om deze file in te lezen, en de log komt in /var/log/iptables.log. En dan begint het echte werk: het bedenken van de regels die er in jouw situatie nodig zijn. Zie bijvoorbeeld iptables.sh van Thomas Fritz. Voor mij dus regels voor samba file server, de web server, en zo voort... Hierbij komt de log dus goed van pas, hier zie je precies wat er nog wordt tegengehouden (alles dus, in het begin) en kan je gaan denken over de regels. Een entry in de log ziet er bij voorbeeld zo uit (dis is één regel):

Nov 14 10:51:33 raspberry1 kernel: [2316296.338010] [IP] INPUT drop: IN=eth0 OUT= MAC=b8:27:eb:9b:67:96:00:22:15:41:4d:31:08:00:45:00:00:3a:d5:3d:40:00:40:11:75:56 SRC=192.168.1.200 DST=192.168.1.105 LEN=58 TOS=0x00 PREC=0x00 TTL=64 ID=54589 DF PROTO=UDP SPT=36586 DPT=53 LEN=38

Je ziet onder andere een binnenkomend bericht (INPUT), het afzender IP-adres (SRC=), het type IP-bericht (PROTO=UDP), en de poort waar het bericht naartoe gestuurd is (DPT=53). Dit is een binnenkomend DNS-verzoek, dit is de service die een domeinnaam vertaald naar een IP-nummer. Mijn Raspberry is ook de DNS-server, die poort moet dus open!

Automatisch laden bij boot

Ik heb bovenstaande regels naar een file bewaard met behulp van iptables-save > /etc/iptables/rules.v4. Met behulp van bijvoorbeeld het iptables-restore < /etc/iptables/rules.v4 commando kan deze file dan weer in iptables ingelezen worden, bijvoorbeeld na een herstart van het systeem. Drie manieren om dit te doen:

  • de luie methode is om het commando op te nemen in /etc/rc.local
  • de eerste nette manier is om aan /etc/network/interfaces een extra regel toe te voegen in de eth0 sectie, die het herstel doet als de netwerk-interface op komt: pre-up iptables-restore < /etc/iptables/rules.v4 || true
  • En de andere manier is gebruik te maken van de module iptables-persistent. Deze herstelt bij een boot automatisch de status zoals laatst bewaard in /etc/iptables/rules.v4, eigenlijk ook via de hierboven genoemde methode met pre-up.
Zorg wel dat bij wijzigingen je de status opslaat met sudo sh -c "iptables-save > /etc/iptables/rules.v4" (doe ik automatisch in het install-script).

IPv6 en ip6tables

Wat iptables is voor IPv4, is ip6tables voor IPv6. Ze werken onafhankelijk van elkaar, dus als je ook IPv6 aan hebt staan: zorg er voor dat je ze beiden instelt!Wat bijhorende voorbeelden voor configuratie: Linux samples ip6tables en Sixxs IPv6 Firewalling. IPv6 staat op de oude Raspberry met raspbian niet standaard aan; zie 'Enable IPv6 on the Raspberry Pi' om dit wel te doen.

Maar op de nieuwe Raspberry Pi 3 staat IPv6 wel standaard aan, dus ik moet me er toch eens in gaan verdiepen... Bovenstaande IPv6 links hebben me wel geholpen. Heb een gestripte IPv6 versie gemaakt: lijkt heel erg op de IPv4 versie. Een paar verschillen: voor de ssh werk ik niet met het lokale netwerkadres, maar met de 'link local' adressen, beginnend met fe80:: Mijn router deelt namelijk nog geen IPv6 netwerkadressen uit, maar link-local adressen worden automatisch berekend gebaseerd op het hardware MAC-adres. Een stukje uit mijn setup_ip6tables.sh script:

# Allow loopback access
ip6tables -A INPUT  -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT

# Allow all connections related to what we already have
ip6tables -A INPUT   -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A OUTPUT  -m state --state RELATED,ESTABLISHED -j ACCEPT

# Allow incoming SSH from local network
ip6tables -A INPUT  -s fe80::/10 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

Zelfs als routers geen expliciet instelbare firewall hebben, bieden ze vaak al bescherming; mits je de router niet zo instelt dat deze alle inkomende requests automatisch doorstuurt naar een van de aangesloten computers (wat meer uitleg hierover op mijn 'servers'-pagina).

Verbinden vanaf mijn desktop naar mijn Raspberry gaat vervolgens met het link-local IPv6 adres, wat je kan opvragen via een klassieke ssh verbinding en het commando ifconfig eth0 | grep inet6  (kijk maar eens of je het MAC-adres er in terug kunt vinden):

ssh -6 fe80::<je IPv6 adres van de raspberry>%eth0

Ook hier heb ik het ingesteld dat bij een boot de regels automatisch geladen worden; werkt op dezelfde manier als voor IPv4. Heb de 'tweede methode' gebruikt, en in de /etc/network/interfaces een tweede pre-up regel geplaatst. Laat zien hoe ver iptables en ip6tables hetzelfde werken!

pre-up ip6tables-restore < /etc/iptables/rules.v6 || true

Oude informatie

Hier nog de oude inhoud van de pagina (behoorlijk verouderd, 2008...) voor wie daar interesse in heeft, bijvoorbeeld op een oude Windows computer.

Gratis Windows Firewalls

Naast een firewall in je router of modem kan je ook op je PC een firewall installeren. Je kan op een PC-firewall bijvoorbeeld zorgen dat Outlook Express geen web pages of externe Java scripts kan openen: geef hem alleen toestemming voor poort 25 (SMTP) en 110 (POP3) (of 143:IMAP), en misschien 119 (NNTP, voor als je nieuws/discussiegroepen gebruikt). Dat is alles wat nodig is voor mail. Niet stiekem ook nog vanuit mailtjes virussen of wormen binnenhalen... Mijn instellingen kan je in de tabel hieronder vinden.

Op dit moment gebruik ik op een oude (XP PC) de Comodo fire wall, en op een nieuwere PC gewoon de Windows fire wall (vanaf Vista, in advanced mode) danwel de Ubuntu Linux fire wall. Voor beginners raad ik ZoneAlarm aan (vanaf versie 7.1 Vistat-compatible). Op oude PC's gebruikte ik versie 2.6 (zonalm26.exe), flexibel en krachtig.

Voor echt oude PC's: Op Windows Millenium PCs gebruikte ik (naar volle tevredenheid) Kerio Personal Firewall 2.1.5 (kerio-pf-215-en-win.exe, 2.1 Mbyte). Waarom: beter instelbaar dan Zone Alarm, met name voor lokale netwerken. En, je kan precies zien wat op welke poort gebeurt, en door welk programma (wat op een centrale firewall bijvoorbeeld op de router niet kan). Moet je alleen wel weten wat dat allemaal inhoud...

Kerio Firewall voorbeeld-instellingen

Deze tabel is een beschrijving van de oude configuratie van mijn Kerio fire wall (kijk bij details voor veel gebruikte poortnummers). De lijst is nogal verouderd, maar geeft het idee denk ik nog steeds goed weer (op dit moment gebruik ik geen Kerio meer, maar Comodo). Regels worden van boven naar beneden gecheckt, zodra er een gevonden wordt wordt deze geselecteerd en wordt er niet meer verder gezocht. Volgorde is dus van belang! Vergeet daarnaast niet de Microsoft netwerkking tab in te vullen met de waardes voor je lokale netwerk! Heb ik staan: IP/mask 10.0.0.0/255.255.255.0, plus IP address 127.0.0.1 (localhost: de machine zelf).

On?

Actie

Naam van de regel

Programma

Protocol

Local
ports

Remote address:port

1-2 Intern soms nuttig (NetBIOS), maar zeker niet naar buiten open zetten, dan kan iedereen bij je spullen! Maar... dit wordt bij mij al afdoende door het modem afgedicht.
- ok Trusted Inbound NetBIOS TCP UDP any UDP+TCP in 137-139 [local network]:[any]
- ok Trusted Outbound NetBIOS TCP UDP any UDP+TCP out [any] [local network]:137-139
3-5 DNS: de vertaling van naam naar IP addresses. Gedeeltelijk in het modem (naar de HCC DNS), maar een extra DNS van XS4ALL toegevoegd (wordt vaak bijgewerkt, heb ik begrepen). Maar: verder geen onbetrouwbare DNS'en toestaan!
+ ok DNS in modem any UDP in/out [any] 10.0.0.138:53
+ ok Secundary DNS (XS4All) any UDP in/out [any] 194.109.6.66:53
+ BLOCK Other DNS (blokked) any UDP+TCP in/out [any] [any]:53
6-8 Protocollen voor zaken als het 'pingen' van de computers
+ ok Outgoing PING command or reply any ICMP out: [0] Echo Reply, [8] Echo Request [any] [any]:[any]
+ ok Incoming ICMP0/3/8/11 (tracert/ping) any ICMP in: [0] Echo Reply, [3] Destination Unreachable, [8] Echo Request, [11] Time Exceeded [any] [any]:[any]
+ BLOCK Other ICMP any ICMP in/out: others [any] [any]:[any]
9 Alle andere niet-TCP/UDP protocollen: blokken! Toch eens kijken wat IGMP is. Maar nog nooit nodig gehad: uit dus.
+ BLOCK IGMP and other non TCP/UDP any IGMP in/out [any] [any]:[any]
10 DHCP is de toewijzing van IP nummers aan de computers, en wordt vaak door je ADSL modem/router gedaan.
+ ok DHCP (Dynamic Host Configuration Protocol) any UDP in/out 68 [any]:67
11 Local loopback is het 'interne' adres op je computer, handig als je twee programma's op dezelfde PC hebt draaien die onderling met TCP/IP willen communiceren (bijvoorbeeld een lokale web-server samen met Internet Explorer), maar ook wel voor b.v. zelftest gebruikt.
+ ok Local Loopback any UDP+TCP in/out [any] 127.0.0.1:[any]
12 Verder mogen van mij alle programma's op mijn lokale netwerk vrij onderling met elkaar praten
+ ok Local programs any UDP+TCP in/out [any] [local network]:[any]
13 Waarom dit? Weet niet meer.
+ BLOCK Windows Verkenner ...ndows\explorer.exe UDP+TCP in/out [any] [local network]:[any]
14 Deze hoeft niet naar buiten het lokale netwerk te kunnen. Wat deet'ie ook al weer?
+ BLOCK Microsoft QMgr ...windows\loadqm.exe TCP out [any] [any]:[any]
15 ??? SpeedLan.com ???
+ BLOCK SSDP Service on Windows Millennium ...system\ssdpsrv.exe UDP in [any] 169.254.56.68:[any]
16 Internet explorer mag naar buiten! maar alleen voor de protocollen gebruikt voor web-pages, en voor ftp.
+ ok Internet Explorer ...lorer\iexplore.exe TCP out [any] [any]:20, 21, 80, 443, 3128, 8000, 8080
17 OK, en m'n zoontje mag er ook mee chatten
+ ok Internet Explorer voor chat Joshua ...lorer\iexplore.exe TCP out [any] 213.73.255.254:6667
18-20 Outlook Express mag mail en news ophalen, maar zeker niet zomaar allerlei internet-content!
- ok Outlook Express ... express\msimn.exe UDP out [any] [any]:[any]
+ ok Outlook Express ... express\msimn.exe TCP out [any] [any]:25, 110, 119
+ BLOCK Outlook Express ... express\msimn.exe TCP out [any] [any]:80
21-22 FTP: File Transfer Protocol. Gebruik ik voor het uploaden van mijn web pages
+ ok WS_FTP 95 ...s_ftp\ws_ftp95.exe TCP out [any] [any]:21
+ ok WS_FTP 95 ...s_ftp\ws_ftp95.exe TCP in [any] [any]:[any]
23 Ad-Aware is een (goede) spy-ware scanner
+ ok Ad-aware 6 core application ...are 6\ad-aware.exe TCP out [any] [any]:[any]
24 Waarom wil Windows naar buiten als ik apparaatbeheer start? Doet'u maar niet...
+ BLOCK Windows Catalogus-registratie ...\system\sucatreg.exe any [any] [any]:[any]
25 Voor QuickTime video
+ ok QuickTime Player-programma ...uicktimeplayer.exe TCP out [any] [any]:80
26-27 Ik wil ook soms mijn eigen FTP-server (CesarFTP) kunnen draaien, zodat ik vanaf andere computers bij mijn files kan. Intern mag alles (maar wordt al door regel 12 afgedekt), extern ben ik wat meer restricted. Poort 21 voor binnenkomende commando's, regel 27 voor uitgaand datatransfer. Zie ook Servers.
+ ok FTP Server ...esarftp\server.exe TCP in 21 [any]:[any]
+ ok FTP Server ...esarftp\server.exe TCP out [any] [any]:[any]
28-31 De kinderen zijn gek op MSN. Met deze instellingen lijkt het te werken, zelfs de web cam (behalve audio?)
+ ok Messenger TCP out ...senger\msnmsgr.exe TCP out [any] [any]:[any]
+ ok Messenger UDP at 6901 ...senger\msnmsgr.exe UDP in/out [any] [any]:9, 6901, 7001
+ ok Messenger TCP1080 in ...senger\msnmsgr.exe TCP in 1080 [any]:[any]
+ ok Messenger to firewall? ...senger\msnmsgr.exe UDP in/out [any] 10.0.0.138:[any]
32 eDexter is ondersteuning voor mijn ad-killing methode via de HOSTS file (zie mijn Virusscanners sectie)
+ BLOCK eDexter ...dexter\edexter.exe TCP in 80 [any]:[any]
33 VNC wordt gebruikt om een computer op afstand te besturen
+ ok vncviewer ...tvnc\vncviewer.exe TCP in/out [any] [any]:[any]
34 Alternatief voor Internet Explorer: Mozilla
+ ok Mozilla ...ozilla\mozilla.exe TCP out [any] [any]:80, 119, 443, 1080, 3128, 8000, 7070, 8080
35 Windows Media Player, voor b.v. internet radio
+ ok Windows Media Player ...layer\wmplayer.exe UDP+TCP out [any] [any]:80, 554, 1755, 8080
36 Geen idee... Wat moet'ie daar nu weer?
+ BLOCK Messenger for local? ...senger\msnmsgr.exe UDP+TCP out [any] 10.0.0.201:[any]
37 Tibia, een multi-player game op het internet, waar m'n kids heel wat uren rondbrachten
+ ok Tibia Player ...es\tibia\tibia.exe TCP out [any] [any]:7171
38 Voor automatische upload van gewijzigde web pages
+ ok Perl Command Line Interpreter c:\perl\bin\perl.exe TCP in/out [any] [any]:20-21
39 Onderstaande IP is geen normaal IP adres, maar een broadcast die wordt gebruikt door UPnP (Universal Plug and Play). Meer info op bijvoorbeeld het help.lockergnome.com forum.
+ BLOCK Windows Verkenner ...ndows\explorer.exe UDP out [any] 239.255.255.250:[any]

Sorry, ik weet het, is nog wat beknopt. En wat verouderd: is in de tussentijd trouwens ook bijvoorbeeld nog Mozilla FireFox bijgekomen (web browser ipv Internet Explorer, veel veiliger), zie instellingen van Internet Explorer. Plus Mozille Thunderbird, een email/news reader in plaats van Outlook Express (idem, zie aldaar voor instellingen). Maar bovenstaande tabel moet het idee wel weergeven.

Voorbeeld modem/router firewall: de SpeedTouch

Als voorbeeld de SpeedTouch, zoals ik vroeger in dienst had. Ook al is het verborgen: het Thomson (nu Technicolor) SpeedTouch 510 modem/router heeft ook firewall mogelijkheden, al gebruik ik die maar gedeeltelijk. Nadeel: is niet via de web-interface in te stellen (moet via een telnet tekst-scherm, of via de initialisatiefile), dus is lastiger in gebruik; en de bijhorende web-pagina's en het forum lijken verdwenen te zijn, al is de documentatie nog wel on-line.

Ik had alleen de standaard fire wall instellingen actief op de SpeedTouch, plus (sorry, even wat technische kreten) het dichtzetten voor TCP en UDP voor de poorten gebruikt voor file sharing en rpc (Remote Procedure Call; hiermee kunnen andere computers op afstand programma's bij je uitvoeren), in het gebied 135-139 (RPC - NetBIOS, lees hier waarom). Ik ben nog aan het experimenteren met andere instellingen: voor NT en XP poort 445 is vermoedelijk ook relevant. Heb ik gedaan door in de configuratiefile in de sectie [ pfirewall.ini ] de volgende regels op te nemen (zie de documentatie):

rule create chain=forward index=1 srcintfgrp=wan prot=udp dstport=135 dstportend=netbios-ssn action=drop
rule create chain=forward index=2 srcintfgrp=wan prot=tcp dstport=135 dstportend=netbios-ssn action=drop

Nu is het overigens wel zo dat als er geen default server is ingesteld de kans dat van buitenaf binnenkomende pakketten verder komen dan de router niet zo groot omdat de router niet weet naar welke computer de pakketten heen moeten, zie ook mijn modem en router page.