[linux-l] Erfahrungsbericht: Firewall-Tools

Lutz Willek lutz.willek at belug.de
Mo Jan 7 10:51:16 CET 2008


Peter Ross schrieb:
> Hi Volker,
Guten Morgen,
>>     http://wiki.njh.eu/Firewall_zu_Hause
>>
>> Eine Regel im Texteditor 10x zu kopieren und 10x abzuwandeln
>> finde ich viel angenehmer, als sich 10 Regeln zusammenklicken
>> zu müssen.

Jepp, das mag ich auch sehr gerne. Ein Vorschlag für mehrere 
IP-Adressen/Interfaces, basierend auf Deinen Vorschlag, eigentlich nur 
Variablenschieberei:

##### Variablen
# Programme
IPT='/sbin/iptables'
IFCONFIG='/sbin/ifconfig'

# Netzwerkschnittstellen
DEV_EXT="eth0"
DEV_TAP=`${IFCONFIG} |grep tap|awk '{print $1}'`
DEV_TUN=`${IFCONFIG} |grep tun|awk '{print $1}'`

# IP-Adresse
LAN_IP=$(${IFCONFIG} ${DEV_EXT} | head -n 2 | tail -n 1 | cut -d: -f2 | 
cut -d" " -f 1)
TAP_IP=$(${IFCONFIG} ${DEV_TAP} | head -n 2 | tail -n 1 | cut -d: -f2 | 
cut -d" " -f 1)
TUN_IP='10.10.10.123'

...u.s.w.

in_allowed="ssh http"

for p in ${in_allowed}; do
     ${IPT} -A INPUT -i ${DEV_EXT} -d ${LAN_IP} -p tcp --dport ${p} -j 
ACCEPT
done

Dann spart man sich sogar diese Änderungen.

> # Start config
> ifs="eth0 eth1"
> protocols="udp tcp"
> in_allowed_udp="domain" 
> in_allowed_tcp="ssh" 
> in_allowed_tcp_eth0="http" #http nur am Interface eth0
> # End config
> 
> # Script, no need to read or edit;-)
> 
> if [ "X${dryrun}" = "Xyes" ]; then
>    command="echo /sbin/iptables"
> else
>    command="/sbin/iptables"
> fi
> 
> for i in ${ifs}; do
>   for prot in ${protocols}; do
>     eval in_allowed=\$in_allowed_${prot}  
>     eval in_allowed_if=\$in_allowed_${prod}_${i}
>     for p in ${in_allowed} ${in_allowed_if}; do
>        ${command} -A INPUT -j ACCEPT -i ${i} -p ${prot} --dport ${p}
>     done
>   done
> done
> 
> Usw. usf.

Dein Schreibstil gefällt mir.

-- 
Have you tried turning it off and on again?

Freundliche Grüße / Best Regards

         Lutz Willek




Mehr Informationen über die Mailingliste linux-l