Firewall configuratieWat 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 firewall 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 iptablesiptables 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. Toch zitten er heel wat mogelijkheden in verstopt, met name in de uitbreidingmodules van iptables. Meer informatieWaar 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 '
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="sudo /sbin/iptables" Handige commandos# print huidige regels In noodgevallenOm 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
#!/bin/bash Let op, dit werkt alleen als ' 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
IPT="/sbin/iptables" 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 ' :msg,contains,"[IP] " /var/log/iptables.log Nu even rsyslogd herstarten met 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 ( Automatisch laden bij bootIk heb bovenstaande regels naar een file bewaard met behulp van
sudo sh -c "iptables-save >
/etc/iptables/rules.v4" (doe ik automatisch in het install-script).IPv6 en ip6tablesWat 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 # Allow loopback access 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 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
pre-up ip6tables-restore < /etc/iptables/rules.v6 || true Oude informatieHier nog de oude inhoud van de pagina (behoorlijk verouderd, 2008...) voor wie daar interesse in heeft, bijvoorbeeld op een oude Windows computer. Gratis Windows FirewallsNaast 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-instellingenDeze 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).
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 SpeedTouchAls 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
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. |
op mijn site |