Linux Systeembeheer/Firewalls
Uit Wikibooks
Om aanvallen op een netwerk te voorkomen of tegen te houden is een firewall op de router onontbeerlijk. De Linux-kernel heeft een ingebouwde firewall die je kan manipuleren met het commando iptables. Nu is het opstellen van een goede firewall niet zo evident en daarom zijn er intussen tientallen applicaties beschikbaar die deze taak vergemakkelijken (o.a. Firestarter, ufw, enz.). Het gebruiken van die tools is echter niet zonder gevaar: de details van de werking blijven verborgen, de kwaliteit van de firewall is niet langer 100% zeker en het is wellicht niet langer mogelijk om alle functionaliteiten van iptables te gebruiken. Voor een goed begrip van de werking van Linux firewalls is het daarom belangrijk met iptables te leren werken.
[bewerken] Leerdoelen
- De basisstructuur van Linux firewalls begrijpen
- de begrippen “table” en “chain” kennen en begrijpen
- de standaard tables (filter, nat, mangle) en hun functie kennen
- de standaard chains (INPUT, OUTPUT, FORWARD) kennen en hun functie begrijpen
- Het commando iptables kunnen gebruiken om de Linux firewall te manipuleren
- de standaard policies (ACCEPT, DROP, REJECT, LOG) kennen en kunnen instellen
- regels en chains kunnen toevoegen en verwijderen
- filteropties kunnen gebruiken:
- filteren op protocol, IP-adres, MAC-adres, netwerkinterface, protocol
- TCP, UDP uitbreidingen
- trafiek limiteren
- connection tracking
- Network Address Translation
- De firewall-configuratie kunnen opslaan en automatisch laden bij opstarten
[bewerken] Labo-opdracht
Bedoeling is een op te zetten voor een zgn. “bastion firewall” die een lokaal netwerk, bestaande uit een DMZ (demilitarised zone) met publiek toegankelijke servers en een intranet dat niet toegankelijk is van buitenaf. Onderstaande figuur en adressentabel verduidelijken de opstelling.
| Host | Interface | IP-adres | Network Mask | Opmerkingen |
|---|---|---|---|---|
| router | eth0 | 172.16.1.253 | 255.255.255.252 | verbonden met router van ISP |
| eth1 | 192.0.2.126 | 255.255.255.248 | DMZ, met publieke IP-adressen | |
| eth2 | 10.0.0.1 | 255.0.0.0 | Itern netwerk, met private IP-adressen | |
| apollo | eth0 | 192.0.2.123 | 255.255.255.248 | Webserver |
| mars | eth0 | 192.0.2.124 | Mailserver | |
| ns1 | eth0 | 192.0.2.121 | DNS1 | |
| ns2 | eth0 | 192.0.2.122 | DNS2 |
Opm. 192.0.2.0 is het zgn. TEST-NET, een klasse-C netwerk dat is voorbehouden voor het gebruik in voorbeelden, handleidingen, enz. Je mag het beschouwen als een publiek IP netwerk, maar het komt nergens “in het echt” voor.
Zet een firewall op met volgende eigenschappen:
- pakketten die tegengehouden worden (DROP), moeten ook gelogd worden. Maak daarvoor een nieuwe chain aan
- pc's op het intranet kunnen de services van de DMZ gebruiken (gebruik zo strikt mogelijke regels)
- pc's op het intranet kunnen vrij naar “buiten” (via NAT)
- computers van buiten kunnen de services van de DMZ gebruiken (ook met zo strikt mogelijke regels)
- computers van buiten kunnen GEEN verbinding aangaan met computers op het intranet
- blokkeer flooding op de DMZ services
- configureer “algemene” firewall instellingen die de beveiliging verbeteren zoals log_martians, SYN cookies, enz.
- op de router draaien geen services, dus alle verkeer van en naar de router zelf moet geblokkeerd worden.
