[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [firewall] iptables, le script parfait?



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pascal Hambourg wrote:
> Salut,
> 
> Gaëtan PERRIER a écrit :
>>
>> J'utilise le script en pièce jointe. Si vous pouviez donner votre avis
>> dessus, ça m'intéresse...
> 
> $ grep -c -- -N iptables-final-1-adsl.sh
> 0
> 
> Ça commence mal. Un jeu de règles sans chaînes utilisateur ne peut pas
> être un bon jeu de règles. ;-)
> 

J'adore la methode de test :p!
Je suis d'accord. Depuis que j'ai commence avec les chaines
utilisateurs, je trouve que c'est difficile de s'en passer. A mon avis
ca reste incontournable pour obtenir un script facile a lire et flexible.

> Il serait plus sûr de limiter l'adresse de destination à $PF_IP au lieu
> de $LAN_NETWORK.
> 
>>   iptables -t nat    -A PREROUTING                -i $WAN_INTERFACE -s
>> $WAN_NETWORK -d $WAN_IP      -p $PF_PROTO --dport $PF_PORT -j DNAT
>> --to-destination $PF_IP
>>   iptables -t nat    -A POSTROUTING               -o $LAN_INTERFACE -s
>> $WAN_NETWORK -d $PF_IP       -p $PF_PROTO --dport $PF_PORT -j SNAT
>> --to-source $LAN_IP
> 
> Quel est l'intérêt de cette règle SNAT dans nat/POSTROUTING ? Masquer
> l'adresse source réelle de la connexion à la machine vers laquelle le
> port est redirigé me paraît plutôt contre-productif.
> 

La regle m'a bien interpelee aussi. Si j'ai bien compris ce que tu
tentes de faire, j'aurais, pour ma part, tout simplement ouvert le port
80 sur l'interface WAN.

>>   echo 1 > /proc/sys/net/ipv4/ip_forward
>>
>> else
>>   echo "+ Le port forwarding N'est PAS autorisé"
>>   if [ "$NAT" == "0" ]; then
>>     echo 0 > /proc/sys/net/ipv4/ip_forward
>>   fi
>> fi

Un test logique en debut de fichier en fonction des differentes
variables serait plus adapte a la gestion des quelques
"/proc/sys/net/ipv4/ip_forward" presents dans le script.

> Je voudrais faire une remarque générale au sujet des nombreuses règles
> acceptant des paquets dans l'état RELATED ou ESTABLISHED. Si le suivi de
> connexion a classé un paquet dans un de ces états, c'est que le trafic
> précédent auquel il est lié a déjà été vu et accepté (à l'exception des
> paquets RST ou ICMP émis localement en réponse à un paquet rejeté). Par
> conséquent il n'est pas utile de recréer ces règles pour chaque
> interface, application, protocole, port... On peut se contenter d'une
> unique règle acceptant tous les paquets dans l'état RELATED ou
> ESTABLISHED en début de chaîne (pour l'efficacité, l'immense majorité
> des paquets étant dans l'état ESTABLISHED) suivie de règles traitant les
> paquets dans l'état NEW au cas par cas. Ça allège et simplifie
> sensiblement le jeu de règles sans sacrifier à la sécurité. Beaucoup de
> jeux de règles sont construits ainsi.
> 

Je n'ai aucune chance de trouver quoi que ce soit de plus que Pasal,
bien qu'ayant parcouru le script en essayant de trouver les erreurs.
Mais bon, dans l'idee general, je dirais que j'ai eu des difficultes a
le lire du fait :
 - du manque des chaines utilisateurs,
 - de la presence importantes des differents etats de connexions,
 - de la gestion sans fin des addresses

Autrement, pour epurer tu peux supprimer "-t filter", c'est la table par
defaut. Idem pour "- all", c'est l'option par defaut.

J'ai remarque que tu utilisais les variables pour stocker les ports
presents dans tes regles. Je serais plutot amene a les mettre dans mon
fichier /etc/services, mais ca n'engage que moi, et a les en extraire en
debut de script. Cela a l'avantage de les voir sous forme de nom quand
tu fais un iptables -L -v ou une commande netstat. C'est bien plus
explicite avec des noms.

Dernier chose, je n'ai pas vu de gestion explicite des types icmp, c'est
peut etre un point a considerer.

- --
Franck Joncourt
http://www.debian.org
http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF  9A3C C490 534E 75C0 89FE
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFw5PuxJBTTnXAif4RAoEdAKCQSDJRufCCJf2YdNQ/5k3WQ1ulRgCfQuI3
kLQaBDzu5JGkoWx/GQv7dIA=
=tzlU
-----END PGP SIGNATURE-----

		
___________________________________________________________ 
Inbox full of spam? Get leading spam protection and 1GB storage with All New Yahoo! Mail. http://uk.docs.yahoo.com/nowyoucan.html



Reply to: