Iptables for dummies Netfilter Elke Linux distributie gebruikt Netfilter (in de kernel) voor firewalling. De beheertool daarvoor is 'iptables ', via de commandline. Hoe werkt het? Er zijn drie soorten verkeer: INPUT, OUTPUT en FORWARD. Dit worden ook wel 'chains ' genoemd. INPUT is alles op je interface binnenkomt OUTPUT is alles wat je interface verlaat FORWARD is als de computer als router is geconfigureerd, dus met meerdere netwerkkaarten Om te beginnen, moeten we de firewall service stoppen. Op openSUSE is dat rcSuSEfirewall2 stop controle Vervolgens beginnen we met een schone lei. Verwijder alle firewall regels iptables -F Controleer dit met iptables -L -v dichtzetten Hierna staat je firewall uit en is leeg, dus we gaan hem snel dichtzetten. We gebruiken hiervoor 'policies '. iptables -p INPUT DROP iptables -p OUTPUT DROP iptables -p FORWARD DROP -p betekent hier policy, INPUT is de chain waarop hij werkt, en de 'target ' is 'drop '. targets Er zijn de volgende targets: DROP: alle pakketjes worden gedropt, er is geen terugmelding REJECT: het pakketje wordt verworpen, er gaat wel een melding terug ACCEPT: het pakketje wordt geaccepteerd LOG: er wordt een melding in syslog geschreven over het binnenkomende pakketje Nu is de computer potdicht, en er is dus niet mee te werken met communicatie naar buiten. We gaan hem zo inrichten dat er communicatie naar buiten mogelijk is. loopback goedzetten Maar eerst moet er de loopback interface (lo) goed geconfigureerd worden. Hoewel niet strikt noodzakelijk, maar dit zorgt ervoor dat een hoop zaken goed verlopen. iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT -A betekent 'append', aan het eind. De volgorde van de regels is belangrijk! De eerste 'hit' wordt uitgevoerd en er wordt daarna niet meer verder gekeken. -i is de interface -j (jump) naar welke target Hierna kan er gepinged worden naar de loopbackinterface: PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.034 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.019 ms 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.027 ms uitgaand verkeer toestaan We gaan nu alle uitgaande verkeer toestaan. iptables -A OUTPUT -o eth0 -j ACCEPT Dit zorgt voor uitgaande pakketjes, maar antwoorden hierop die binnenkomen, kunnen nog steeds niet de computer bereiken. iptables -A INPUT -m state - state=ESTABLISHED,RELATED -j ACCEPT creert een stateful filter.