Verder Terug Inhoud

7. Voorbeeld masquerading firewall scripts

7.1 Kernel 2.0, ipfwadm



#!/bin/sh 
#04/04/1999 
#voorbeeld rc.firewall script voor de 2.0 kernels die ipfwadm gebruiken
#Ik kan geen vol vetrouwen geven voor dit script. Ik heb het een paar
#jaar geleden gevonden en heb wat aanpassingen gemaakt.
#Zend vragen of commentaar naar acj@home.com. 

#--------------------------------------------------------------------- 
#Variabelen
#--------------------------------------------------------------------- 

#lokaal ethernet interface 
localip= 
localif=eth0 

#statisch ethernet interface 
staticip= 
staticif=eth1 

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" 

#--------------------------------------------------------------------- 
#Inkomende Firewall politiek
#--------------------------------------------------------------------- 
#flush inkomende firewall politiek 
/sbin/ipfwadm -I -f 

#stel inkomende firewall politiek standaard op deny (niet toelaten) 
/sbin/ipfwadm -I -p deny 

#--------------------------------------------------------------------- 

#lokaal interface, lokale machines, overal naar toegaand is toegestaan
/sbin/ipfwadm -I -a accept -V $localip -S $localip/24 -D 0.0.0.0/0 

#remote interface, claimend dat het van het lokale netwerk komt (IP spoofing) verweren en loggen
/sbin/ipfwadm -I -a deny -V $staticip -S $localip/24 -D 0.0.0.0/0 -o 

#remote interface, elke ,die gaan staticipen is goed 
/sbin/ipfwadm -I -a accept -V $staticip -S 0.0.0.0/0 -D $staticip/32 

#loopback interface is goed 
/sbin/ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 

#alle andere inkomende dingen worden gestopt en gelogd
/sbin/ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o 

#--------------------------------------------------------------------- 
#Outgaande Firewall politiek
#--------------------------------------------------------------------- 

#flush uitgaande firewall politiek 
/sbin/ipfwadm -O -f 

#stel uitgaande firewall policy in op 'niet toegestaan'
/sbin/ipfwadm -O -p deny 

#--------------------------------------------------------------------- 

#lokaal interface, elke bron gaand naar local net is goed
/sbin/ipfwadm -O -a accept -V $localip -S 0.0.0.0/0 -D $localip/24 

#uitgaand naar localnet op static interface, stuffed routing, niet toegestaan
/sbin/ipfwadm -O -a deny -V $staticip -S 0.0.0.0/0 -D $localip/24 -o 

#uitgaand van lokaalnetwerk op static interface, stuffed masquerading, niet toegestaan
/sbin/ipfwadm -O -a deny -V $staticip -S $localip/24 -D 0.0.0.0/0 -o 

#uitgaand naar lokaal netwerk op static interface, stuffed masquerading, niet toegestaan
/sbin/ipfwadm -O -a deny -V $staticip -S 0.0.0.0/0 -D $localip/24 -o 

#elke andere uitgaande op remote interface is toegestaan
/sbin/ipfwadm -O -a accept -V $staticip -S $staticip/32 -D 0.0.0.0/0 

#loopback interface is goed 
/sbin/ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 

#alle andere uitgaande pakketten zijn niet toegestaan en worden gelogd 
/sbin/ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o 

#-------------------------------------------------------------------------- 
#Forwarding firewall politiek 
#-------------------------------------------------------------------------- 

#flush forwarding politiek 
/sbin/ipfwadm -F -f 

#stel forwarding politiek standaard in op 'niet toegestaan'
/sbin/ipfwadm -F -p deny 

#masquerade van localnet op local interface naar overal 
/sbin/ipfwadm -F -a masquerade -W $staticif -S $localip/24 -D 0.0.0.0/0 

#alle andere forwarding is niet toegestaan 
/sbin/ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 

exit 0 

7.2 Kernel 2.1/2.2, ipchains



#!/bin/sh 
#04/04/1999 
#voorbeeld rc.firewall script voor de nieuwere 2.1/2.2 kernels die ipchains
#gebruiken welke gebruik gedefineerde chains maakt voor elk interface.
#Er zijn firewall regels voor spoofing protectie welke onnodig zijn sinds
#de nieuwere kernels spoofing protectie aan kunnen hebben staan. Je kunt
#denken dat dit dan een beetje overbodig is.
#Zend vragen of commentaar naar acj@home.com. 

#--------------------------------------------------------------------- 
#Variabelen
#--------------------------------------------------------------------- 

#lokaal ethernet interface 
localip= 
localif=eth0 

#statisch ethernet interface 
staticip= 
staticif=eth1 

#loopback interface 
loopback=lo 

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" 

#--------------------------------------------------------------------- 
#Flush ingebouwde input, output, and forward ipchains; stel de standaard politiek
#in. Goed politiek is om alle pakketjes te wijgeren, vooral bij het instellen
#van chains 
#--------------------------------------------------------------------- 

#stel inkomende firewall politiek default op 'niet toegestaan'
ipchains -P input DENY 

#flush inkomende firewall politiek
ipchains -F input 

#--------------------------------------------------------------------- 

#stel uitgaande firewall politiek default op 'niet toegestaan' 
ipchains -P output DENY 

#flush uitgaande firewall politiek 
ipchains -F output 

#--------------------------------------------------------------------- 

#stel forwarding firewall politiek default op 'niet toegestaan'
ipchains -P forward DENY 

#flush forwarding firewall politiek
ipchains -F forward 

#--------------------------------------------------------------------- 
#flush alle politieken  -overbodig voor algemene politiek, maar flusht ook
#gebruik gedifineerde politieken
#ipchains -F 

#Verwijder alle gebruiker gedefineerde politieken - je kan er voor kiezen om
#dit niet te doen
#ipchains -X 

#--------------------------------------------------------------------- 
#Inkomende Firewall Politiek 
#--------------------------------------------------------------------- 

#maak een nieuwe input chain voor static ethernet interface 
ipchains -N $staticif"-i" 

#flush all regels in chain (sanity flush) 
ipchains -F $staticif"-i" 

#blok inkomende SYN pakketjes op alle poorten op staticif en log
#dit kan een beetje grof zijn, maar het kan handig zijn in de toekomst
#ipchains -A $staticif"-i" -j DENY -p tcp -y -i $staticif -s 0/0 \
#-d $staticip : -l 

#remote interface, claimend te komen van lokale machine (IP spoofing) niet toestaan en loggen
ipchains -A $staticif"-i" -j DENY -i $staticif -s $localip/16 -d 0/0 -l 

#remote interface, elke bron, naar staticip adres is goed
ipchains -A $staticif"-i" -j ACCEPT -i $staticif -s 0/0 -d $staticip/32 

#alle inkomende pakketjes worden afgewezen en gelogd
ipchains -A $staticif"-i" -j DENY -s 0/0 -d 0/0 -l 

#--------------------------------------------------------------------- 

#maak een nieuwe input chain voor lokaal ethernet interface
ipchains -N $localif"-i" 

#flush alle regels in chain (sanity flush) 
ipchains -F $localif"-i" 

#lokaal interface, lokale machines, gaand naar overal is goed
ipchains -A $localif"-i" -j ACCEPT -i $localif -s $localip/24 -d 0/0 

#alle andere inkomende pakketjes worden afgewezen en gelogd
ipchains -A $localif"-i" -j DENY -s 0/0 -d 0/0 -l 

#--------------------------------------------------------------------- 

#maak een nieuwe input chain voor loopback interface
ipchains -N $loopback"-i" 

#flush alle regels in chain (sanity flush) 
ipchains -F $loopback"-i" 

#loopback interface is goed 
ipchains -A $loopback"-i" -j ACCEPT -i $loopback -s 0/0 -d 0/0 

#alle andere inkomende pakketjes worden afgewezen en gelogd
ipchains -A $loopback"-i" -j DENY -s 0/0 -d 0/0 -l 

#-------------------------------------------------------------------------- 
#Forwarding firewall politiek
#-------------------------------------------------------------------------- 

#maak een nieuwe forward chain voor static ethernet interface  
ipchains -N $staticif"-f" 

#flush alle rules in chain (sanity flush) 
ipchains -F $staticif"-f" 

#masquerade van localnet op static interface naar overal  
ipchains -A $staticif"-f" -j MASQ -i $staticif -s $localip/24 -d 0/0 

#alle ander forwarding is verboden en wordt gelogd
ipchains -A $staticif"-f" -j DENY -s 0/0 -d 0/0 -l 

#--------------------------------------------------------------------- 

#maak een nieuwe forward chain voor local ethernet interface 
ipchains -N $localif"-f" 

#flush alle regels in chain (sanity flush) 
ipchains -F $localif"-f" 

#alle ander forwarding is verboden en wordt gelogd 
ipchains -A $localif"-f" -j DENY -s 0/0 -d 0/0 -l 

#--------------------------------------------------------------------- 

#maak een nieuwe forward chain voor loopback interface 
ipchains -N $loopback"-f" 

#flush alle regels in chain (sanity flush) 
ipchains -F $loopback"-f" 

#alle ander forwarding is verboden en wordt gelogd
ipchains -A $loopback"-f" -j DENY -s 0/0 -d 0/0 -l 
  

#--------------------------------------------------------------------- 
#Uitgaande Firewall Politiek 
#--------------------------------------------------------------------- 

#maak een nieuwe output chain voor static ethernet interface
ipchains -N $staticif"-o" 

#flush alle regels in chain (sanity flush) 
ipchains -F $staticif"-o" 

#uitgaand naar localnet op remote interface(stuffed routing) niet toegestaan & log 
ipchains -A $staticif"-o" -j DENY -i $staticif -s 0/0 -d $localip/24 -l 

#outgaand van local net op remote interface, stuffed masquerading, 'niet toestaan' 
ipchains -A $staticif"-o" -j DENY -i $staticif -s $localip/24 -d 0/0 -l 

#alle andere dingen op remote interface zijn goed
ipchains -A $staticif"-o" -j ACCEPT -i $staticif -s $staticip/32 -d 0/0 

#alle andere uitgaande pakketjes zijn verboden en worden gelogd
ipchains -A $staticif"-o" -j DENY -s 0/0 -d 0/0 -l 

#--------------------------------------------------------------------- 

#maak een nieuwe output chain voor local ethernet interface
ipchains -N $localif"-o" 

#flush alle regels in chain (sanity flush) 
ipchains -F $localif"-o" 

#lokaal interface, elke bron gaand naar local net is toegestaan
ipchains -A $localif"-o" -j ACCEPT -i $localif -s 0/0 -d $localip/24 

#alle andere uitgaande pakketjes zijn verboden en worden gelogd
ipchains -A $localif"-o" -j DENY -s 0/0 -d 0/0 -l 

#--------------------------------------------------------------------- 

#maak een nieuwe output chain voor loopback interface
ipchains -N $loopback"-o" 

#flush alle regels in chain (sanity flush) 
ipchains -F $loopback"-o" 

#loopback interface is toegestaan
ipchains -A $loopback"-o" -j ACCEPT -i $loopback -s 0/0 -d 0/0 

#alle andere uitgaande pakketjes zijn verboden en worden gelogd
ipchains -A $loopback"-o" -j DENY -s 0/0 -d 0/0 -l 

#-------------------------------------------------------------------------- 
#weet zeker dat forwarding in de kernel aan staat
#-------------------------------------------------------------------------- 

/bin/echo 1 > /proc/sys/net/ipv4/ip_forward 

#-------------------------------------------------------------------------- 
#Voeg pointers toe aan ingebouwde chains om de gebruiker gedifineerde chains
#te activeren verander de volgorde om te optimaliseren voor een interface
#-------------------------------------------------------------------------- 

#voeg local interface input chain toe
ipchains -A input -i $localif -j $localif"-i" 

#voeg static interface input chain toe 
ipchains -A input -i $staticif -j $staticif"-i" 

#voeg loopback interface input chain toe
ipchains -A input -i $loopback -j $loopback"-i" 

#------------------------------------------------------------------------- 

#voeg local interface output chain toe
ipchains -A output -i $localif -j $localif"-o" 

#voeg static interface output chain toe 
ipchains -A output -i $staticif -j $staticif"-o" 

#voeg loopback interface output chain toe
ipchains -A output -i $loopback -j $loopback"-o" 

#------------------------------------------------------------------------- 

#voeg local interface forward chain toe
ipchains -A forward -i $localif -j $localif"-f" 

#voeg static interface forward chain toe
ipchains -A forward -i $staticif -j $staticif"-f" 

#voeg loopback interface forward chain toe 
ipchains -A forward -i $loopback -j $loopback"-f" 

#--------------------------------------------------------------------- 
#Super Paranoide check --- ook als staat de default politiek op niet toestaan
#blok alle pakketjes op elk interface
#--------------------------------------------------------------------- 

#alle andere inkomende pakketjes zijn niet toegestaan en worden gelogd
ipchains -A input -j DENY -s 0/0 -d 0/0 -l 

#alle andere uitgaande pakketjes zijn niet toegestaan en worden gelogd
ipchains -A output -j DENY -s 0/0 -d 0/0 -l 

#alle andere forwarding is niet toegestaan en worden gelogd
ipchains -A forward -j DENY -s 0/0 -d 0/0 -l 

exit 0


Verder Terug Inhoud