In de afgelopen jaren zijn mijn firewalls een behoorlijk geheel van rules geworden. Dat maakt een iptables -L INPUT nagenoeg onleesbaar. Een manier om dat op te lossen, is door gebruik te maken van user defined chains. Met die user-defined chains kun je aparte tables maken voor een specifieke behoefte. Bijvoorbeeld met het definiĆ«ren van services die voor ‘world’ beschikbaar moeten zijn. Het is idee is dat dan je INPUT table in feite bestaat uit hetgeen wat je in je user defined chains hebt staan. Als je details wilt zien, dan doe je een list op je user defined tables, like iptables -L blah.
Voordat je ermee aan de slag gaat is het goed om te weten dat iptables zijn table van boven naar beneden afwerkt en stopt zodra die een match heeft vonden.
#!/bin/bash
# Definieer wat variabelen
IPT="/sbin/iptables"
LAN_IF="eth1"
WAN_IF="eth0"
${IPT} -F INPUT
${IPT} -P INPUT DROP
${IPT} -N trusted
${IPT} -A trusted -i ${LAN_IF} -j ACCEPT
${IPT} -A trusted -i lo -j ACCEPT
${IPT} -A trusted -i ${WAN_IF} -s <trusted_ip> -j ACCEPT
${IPT} -N services
${IPT} -A services -i ${WAN_IF} -p tcp --dport 80 -j ACCEPT
${IPT} -A services -i ${WAN_IF} -p tcp --dport 25 -j ACCEPT
${IPT} -A INPUT -j trusted
${IPT} -A INPUT -j services
0 comments ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment