Merci, je vais étudier celà à tête reposé. Gaëtan
Le Fri, 24 Oct 2008 20:05:19 +0200 Franck Joncourt <[EMAIL PROTECTED]> a écrit: > mouss wrote: > > Gaëtan PERRIER a écrit : > >> C'est ce que je fais par défaut mais là je voulais ajouter dynamiquement > >> des règles en fonction de l'apparition de connections vpn par ex. mais > >> finalement je me dis que ce n'est peut-être pas problématique de les > >> ajouter en premier avec un iptables -I ? > >> > > > > > > La méthode usuelle est de créer une chaîne et d'insérer les règles > > dynamiques dans cette chaîne. > > > > si l'anglais ne te fait pas peur, tu peux jeter un coup d'oeil sur: > > > > http://dave.thehorners.com/tech-talk/unix-linux-bsd-osx-etc/76-information-about-the-linuxunix-os-and-friends/86-iptables-a-real-mans-firewall > > > > Voila ce que cela donne chez moi :p! > > [code] > # ifup eth3 > Chargement du fichier : fw_config.sh > dthfw v0.2 > Chargement du fichier : fw_modules.sh > Chargement du fichier : fw_proc.sh > Chargement du fichier : fw_rules.sh > Chargement du fichier : eth3.sh > [+] Loading iptables rules for eth3 interface ... Done. > > # iptables -L -v | grep eth3 > 0 0 eth3_in_new all -- eth3 any anywhere > anywhere > 17 3006 eth3_out_new all -- any eth3 anywhere > anywhere > Chain eth3_in_new (1 references) > Chain eth3_out_new (1 references) > > # ifdown eth3 > Chargement du fichier : fw_config.sh > dthfw v0.2 > Chargement du fichier : fw_modules.sh > Chargement du fichier : fw_proc.sh > Chargement du fichier : fw_rules.sh > Chargement du fichier : eth3.sh > [+] Unloading rules for eth3 interface ... Done. > > # iptables -L -v | grep eth3 > > [/code] > > Avec un simple script bash présent dans: > > - /etc/network/if-pre-up.d/ > - /etc/network/if-post-down.d > > Un petit exemple: > [code] > #!/bin/bash > > DTHFW="dthfw" > > if [ "$MODE" = "start" ]; then > MODE=load > else > MODE=unload > fi > > invoke-rc.d $DTHFW $MODE $IFACE > > exit 0 > [/code] > > Ensuite, c'est le script firewall qui prend le relais et fait les > vérifications d'usage: > - firewall démarré, > - recherche des règles associées à l'interface ... > > Aujourd'hui j'ai un fichier de règles par interface. > > Chaque fichier est renseigné de la même façon: > > [code] > #!/bin/sh > > METHOD=$1 > IFACE=$2 > > IPTABLES='/sbin/iptables' > > IN_CHAIN=$IFACE'_in_new' > OUT_CHAIN=$IFACE'_out_new' > > ============================================================================= > # Unload iptables rules for this specific interface > # > # This function removes all specific rules linked to this interface. > # Therefore, the user defined chains are unlinked from the dynamic > # chain, then flushed and by the end removed > # > # syntax : unload > # > # return : nothing > unload () > { > $IPTABLES -D dyn_in_new -i $IFACE -j $IN_CHAIN > $IPTABLES -F $IN_CHAIN > $IPTABLES -X $IN_CHAIN > > $IPTABLES -D dyn_out_new -o $IFACE -j $OUT_CHAIN > $IPTABLES -F $OUT_CHAIN > $IPTABLES -X $OUT_CHAIN > } > > # > ============================================================================= > # Load iptables rules for this specific interface > # > # This function adds all specific rules linked to this interface. > # Therefore, the user defined chains are created and linked to the > # dynamic chains, then the ruleset is applied > # > # syntax : load > # > # return : nothing > load () > { > ... > } > [/code] > > On remarquera les chaines utilisateurs dyn_in_new et dyn_out_new dans > lesquelles sont ajoutées une chaine utilisateur par interface. > > L'avantage est grand, car: > - Le firewall n'est jamais redémarré à moins d'une modification de la > politique par défaut. > - Chaque ruleset associé à une interface peut-être chargé/déchargé de > façon simple. > - Une mise à jour de mon ruleset pour mon interface de test peut > échouer sans impacter tout le firewall et verrouiller ainsi tous les accès. > - Toutes les interfaces bénéficient de la politique par défaut bien > qu'ajouter plus tard. > > -- > Franck Joncourt > http://debian.org - http://smhteam.info/wiki/ > Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE > > -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/DebFrFrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]