PortBlocking dans dansguardian
La contrib smeserver-dansguardian bloque par défaut les communications vers l'extérieur sur le port utilisé (8080) pour éviter les contournements de filtrage. Il peut cependant s'avérer utile de contacter des hôtes extérieurs sur ce port. Nous allons donc créé un templates-custom qui permet de lister les hôtes (IP fixes) autorisés:
mkdir -p /etc/e-smith/templates-custom/etc/rc.d/init.d/masq/ cp -a /etc/e-smith/templates/etc/rc.d/init.d/masq/90local_chk40networks /etc/e-smith/templates-custom/etc/rc.d/init.d/masq/
Puis il faut modifier le fichier /etc/e-smith/templates-custom/etc/rc.d/init.d/masq/90local_chk40network pour qu'il ressemble à ça:
{ return "" unless ( ($dansguardian{portblocking} || "no") eq 'yes'); my @ExcludesHosts = split(/[,;]/,($dansguardian{PortBlockingExclude} || "$LocalIP")); my $excludes = "@ExcludesHosts"; my $locals = "@locals"; if (@locals) { $OUT .=<<"EOF"; for network in $locals do /sbin/iptables -A \$NEW_local_chk -d $LocalIP -p tcp --destination-port $squid{TransparentPort} -j ACCEPT for exclude in $excludes do /sbin/iptables -A \$NEW_local_chk -s \$network -d \$exclude -p tcp --destination-port $squid{TransparentPort} -j ACCEPT done /sbin/iptables -A \$NEW_local_chk -s \$network -p tcp --destination-port $squid{TransparentPort} -j DROP /sbin/iptables -A \$NEW_local_chk -s \$network -p tcp --destination-port $squid{TCPPort} -j DROP /sbin/iptables -A \$NEW_local_chk -d \$network -p tcp --destination-port $squid{TCPPort} -j DROP done EOF } }
Il ne reste plus qu'à spécifier la liste des IP autorisées:
db configuration setprop dansguardian PortBlockingExclude 12.13.14.15,16.17.18.19 expand-template /etc/rc.d/init.d/masq /etc/init.d/masq adjust