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

Re: [HS] iptable comment insérer une règle?



Merci, je vais étudier celà à tête reposé.

Gaëtan

Le Fri, 24 Oct 2008 20:05:19 +0200
Franck Joncourt <franck.mail@dthconnex.com> 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
> 
> 


Reply to: