Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses
Avatar
Gaëtan PERRIER
Bonjour,

Est-il possible d'insérer une règle avec iptable?

Gaëtan

--
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

Avatar
.:: Alfred Sawaya ::.
iptables -I

et le man.

Gaëtan PERRIER a écrit :
Bonjour,

Est-il possible d'insérer une règle avec iptable?

Gaëtan





--


--
|
.:: Alfred Sawaya ::.
|
--

--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Gaëtan PERRIER
Oui mais le problème c'est qu'avec cette commande ce n'est pas évident
d'insérer juste avant la dernière règle, non?

Le Thu, 23 Oct 2008 20:34:20 +0200
".:: Alfred Sawaya ::." a écrit:

iptables -I

et le man.

Gaëtan PERRIER a écrit :
> Bonjour,
>
> Est-il possible d'insérer une règle avec iptable?
>
> Gaëtan
>


--


--
|
.:: Alfred Sawaya ::.
|
--




--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Laurent Guignard
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le mieux c'est d'écrire un script dans lequel tu incorpores tes règles
dans l'ordre que tu désires.
Après, tu peux tester tes règles.
Enfin tu fais en sorte que ce script soit exécuté au boot de la machine.

Je ne me souviens plus de la méthode préconisée pour Debian, mais moi
j'utilise le pre-up dans le fichier /etc/network/interfaces...

Mes 2 cents

Librement


Gaëtan PERRIER a écrit :
Oui mais le problème c'est qu'avec cette commande ce n'est pas évident
d'insérer juste avant la dernière règle, non?

Le Thu, 23 Oct 2008 20:34:20 +0200
".:: Alfred Sawaya ::." a écrit:

iptables -I

et le man.

Gaëtan PERRIER a écrit :
Bonjour,

Est-il possible d'insérer une règle avec iptable?

Gaëtan




--


--
|
.:: Alfred Sawaya ::.
|
--







- --
Laurent Guignard, Registered as user #301590 with the Linux Counter
Site : http://www.famille-guignard.org
Blog : http://blog.famille-guignard.org
Projet : http://sicontact.sourceforge.net
GULL de Villefranche sur Saône : http://www.cagull.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJANIojcKpXFc/7oYRAmvQAKC2B7wtur0KyxZ/Dysr4R0z2CzwQACfYekJ
cwp1TXIW2mu2ZF9M0t5+4Vc =TMwO
-----END PGP SIGNATURE-----

--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Franck Joncourt
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig574E42162F28C05F937571FC
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Salut,

Gaëtan PERRIER wrote:
Oui mais le problème c'est qu'avec cette commande ce n'est pas à ©vident
d'insérer juste avant la dernière règle, non?



-I permet de spécifier l'emplacement de la règle dans une chaà ®ne donnée.
Tu peux t-aider de l'argument --line-numbers pour définir l'emplacem ent
de ta nouvelle règle.

Par contre si tu veux le faire avec un script, regarde du côté des
modules perl libiptables-parse-perl et libiptables-chainmgr-perl.
Les pages de manuelle associées mettent en évidence les diffà ©rentes
fonctions disponibles.

Ces modules sont à ce jour uniquement présents en Lenny, et en Sid
depuis les dépôts officiels.

--
Franck Joncourt
http://debian.org - http://smhteam.info/wiki/
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE


--------------enig574E42162F28C05F937571FC
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkkA3EwACgkQxJBTTnXAif5qewCgyZb7UlSao/yhBEfYH2+6hEL7
c5gAn2SpFie37nvcWia0tLQZ+P3Gd4HX
=rzaE
-----END PGP SIGNATURE-----

--------------enig574E42162F28C05F937571FC--

--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Gaëtan PERRIER
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 ?

Le Thu, 23 Oct 2008 21:36:09 +0200
Laurent Guignard a écrit:

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

Le mieux c'est d'écrire un script dans lequel tu incorpores tes règles
dans l'ordre que tu désires.
Après, tu peux tester tes règles.
Enfin tu fais en sorte que ce script soit exécuté au boot de la machine.

Je ne me souviens plus de la méthode préconisée pour Debian, mais moi
j'utilise le pre-up dans le fichier /etc/network/interfaces...

Mes 2 cents

Librement


Gaëtan PERRIER a écrit :
> Oui mais le problème c'est qu'avec cette commande ce n'est pas évident
> d'insérer juste avant la dernière règle, non?
>
> Le Thu, 23 Oct 2008 20:34:20 +0200
> ".:: Alfred Sawaya ::." a écrit:
>
>> iptables -I
>>
>> et le man.
>>
>> Gaëtan PERRIER a écrit :
>>> Bonjour,
>>>
>>> Est-il possible d'insérer une règle avec iptable?
>>>
>>> Gaëtan
>>>
>>
>> --
>>
>>
>> --
>> |
>> .:: Alfred Sawaya ::.
>> |
>> --
>>
>

- --
Laurent Guignard, Registered as user #301590 with the Linux Counter
Site : http://www.famille-guignard.org
Blog : http://blog.famille-guignard.org
Projet : http://sicontact.sourceforge.net
GULL de Villefranche sur Saône : http://www.cagull.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJANIojcKpXFc/7oYRAmvQAKC2B7wtur0KyxZ/Dysr4R0z2CzwQACfYekJ
cwp1TXIW2mu2ZF9M0t5+4Vc > =TMwO
-----END PGP SIGNATURE-----

--
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
with a subject of "unsubscribe". Trouble? Contact





--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
mouss
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

--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Gaëtan PERRIER a écrit, jeudi 23 octobre 2008, à 21:24 :
Oui mais le problème c'est qu'avec cette commande ce n'est pas évident
d'insérer juste avant la dernière règle, non?



Liste d'abord

# iptables --line-numbers -nvL INPUT

ensuite insère

# iptables -I INPUT 42 <rule-specification>

puis rebelote

# iptables --line-numbers -nvL INPUT

--
Jacques L'helgoualc'h

--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Marc Blanc
On Thu, 23 Oct 2008 21:24:06 +0200
Gaëtan PERRIER wrote:


Oui mais le problème c'est qu'avec cette commande ce n'est pas évident
d'insérer juste avant la dernière règle, non?



Faire un script est le plus simple, ensuite l'exécuter au boot :
http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial/

--
M.B

--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Franck Joncourt
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig2110E16F62553D95E41048B0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

mouss wrote:
Gaëtan PERRIER a écrit :
C'est ce que je fais par défaut mais là je voulais ajouter d ynamiquement des
règles en fonction de l'apparition de connections vpn par ex. mai s finalement
je me dis que ce n'est peut-être pas problématique de les aj outer 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-informat ion-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 modif ication 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


--------------enig2110E16F62553D95E41048B0
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkkCDnkACgkQxJBTTnXAif511ACffvZHUdc+QEM6Q+Z+t4TGNfFW
rHUAmwUQHkOT0SRn4AxeMrMRwG1BuWiN
=IvLv
-----END PGP SIGNATURE-----

--------------enig2110E16F62553D95E41048B0--

--
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
Gaëtan PERRIER
Merci, je vais étudier celà à tête reposé.

Gaëtan

Le Fri, 24 Oct 2008 20:05:19 +0200
Franck Joncourt 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
with a subject of "unsubscribe". Trouble? Contact