# [HOWTO IPTABLES] Un petit script pour dire merci  [13/01/05]

## jpopcenter

Bonjour tout le monde,

Celà fait des siècles que je n'arrête pas de traverser le web dans tous les sens afin de trouver tel ou tel information sur tel ou tel problème et je doit dire qu'aujourd'hui c'est grâce à toi, posteur fou, habitué des forums, spécialiste du tutorial, webmaster hacker ou tout simplement blogueur à temps partiel que je suis devenu en (grande ?) partie le mec qu'on appelle au moindre problème informatique dans mon entourage (voire sur l'irc).

Ajourd'hui, je me rends compte que le temps est venu de vraiment apporter une aide "écrite" et stockable pour toi qui sera peut-être en galère demain.

Après cette longue introduction, passons aux choses sérieuses à savoir l'écriture d'une configuration de firewall (iptables).

Le but de ce script est avant tout éducatif et c'est pour celà que j'ai retenu les critères suivant avant de l'écrire :

-> report en en-tête d'une partie du manpage iptable

-> utilisation d'un mode de debug/logging des règles

-> utilisation des options en mode "complet" (c'est-à-dire --append et non pas -a) pour une meilleur lisibilité

N'hésitez SURTOUT pas à m'aider à l'améliorer et merci encore...

```

#!/bin/sh

################################################################################

# QUELQUES EXPLICATIONS

#

# La commande iptables en quelques lignes :

#   *  iptables [-t table] -[AD] chaîne règle [options]

#   *  iptables [-t table] -I chaîne [numéro-de-règle] règle [options]

#   *  iptables [-t table] -R chaîne numéro-de-règle règle [options]

#   *  iptables [-t table] -D chaîne numéro-de-règle [options]

#   *  iptables [-t table] -[LFZ] [chaîne] [options]

#   *  iptables [-t table] -N chaîne

#   *  iptables [-t table] -X [chaîne]

#   *  iptables [-t table] -P chaîne cible [options]

#   *  iptables [-t table] -E ancien-nom-de-chaîne nouveau-nom-de-chaîne

#

# Les tables :

# [filter] ==> c'est la table par défaut.

# ---> INPUT   : pour modifier les paquets entrants dans la machine

# ---> FORWARD : pour modifier les paquets routés à travers la machine

# ---> OUTPUT  : pour modifier les paquets générés localement

#

# [nat] ==> Cette table est consultée lorsqu'on rencontre un paquet qui crée

#           une nouvelle connexion.

# ---> PREROUTING  : pour modifier les paquets dès qu'ils rentrent

# ---> OUTPUT      : pour modifier les paquets générés localement (avant routage)

# ---> POSTROUTING : pour modifier les paquets sur le point de sortir

#

# [mangle] ==> Cette table est employée pour effectuer une modification

#              spéciale des paquets.

# ---> INPUT       : pour modifier les paquets entrants destinés à la machine

# ---> PREROUTING  : pour modifier les paquets entrants (avant routage)

# ---> FORWARD     : pour modifier les paquets routés à travers la machine

# ---> OUTPUT      : pour modifier les paquets générés localement (avant routage)

# ---> POSTROUTING : pour modifier les paquets sur le point de sortir

#

################################################################################

################################################################################

# DEBUGGING

################################################################################

DEBUG="true"

if [ $DEBUG = "true" ]; then

  DEBUG_LOOPBACK="true"

  DEBUG_LAN1="true"

  DEBUG_LAN2="true"

else

  DEBUG_MASQUERADE="false"

  DEBUG_LOOPBACK="false"

  DEBUG_LAN1="false"

  DEBUG_LAN2="false"

fi

################################################################################

# VARIABLES

#

# Il s'agit ici de mettre les paramètres concernant les différents réseaux

# Le but de cette configuration est de configurer le firewall du { ROUTEUR BOX }.

# Il s'agit d'un machine faisant partie de plusieurs réseaux différent, notemment

# un réseau public (internet par exemple) et un ou plusieurs réseaux locaux (lan1,

# et lan2 par exemple)

# La présence des deux réseaux locaux (assez rare en configuration de type "home")

# est présentée seulement pour montrer que la présence d'internet dans la

# configuration ne change rien au principe de configuration du firewall

#

#

#

#                      OUT_IP

#                      OUT_INTERFACE

#                      |

#                      |

#    ________          |

#  /          \        |

# (  INTERNET  ) : : : o { ROUTEUR BOX }

#  \ ________ /          o       o----------- IN1_IP / IN1_INTERFACE

#                       /¨       ¨

#                      / ¨       ¨

#                     /  ¨     (lan1) <------------- NETWORK1_IP / NETWORK1_MASK / NETWORK1_BITMASK

#                    /   ¨       ¨

# IN2_IP / IN2_INTERFACE ¨       ¨          +------- M1_1_IP / M1_1_INTERFACE

#                        ¨       ¨          |

#                        ¨       ¨          |

#                        ¨       ¨: : : : : o { MACHINE 1_1 }

#                        ¨       ¨

#                        ¨       ¨

#                        ¨       ¨: : : : : o { MACHINE 1_2 }

#                        ¨                  |

#                        ¨                  +------- M1_2_IP / M1_2_INTERFACE

#                        ¨

#                        ¨

#                        ¨

#                      (lan2) <------------- NETWORK2_IP / NETWORK2_MASK / NETWORK2_BITMASK

#                        ¨

#                        ¨              +------- M1_1_IP / M1_1_INTERFACE

#                        ¨              |

#                        ¨              |

#                        ¨: : : : : : : o { MACHINE 2_1 }

#                        ¨

#                        ¨

#                        ¨: : : : : : : o { MACHINE 2_1 }

#                                       |

#                                       +------- M1_1_IP / M1_1_INTERFACE

#

################################################################################

# configuration du réseau local (LAN1)

NETWORK1_IP=192.168.1.0             # Adresse "réseau" du réseau local (LAN1)

NETWORK1_NETMASK=255.255.255.0      # Netmask du réseau local (LAN1)

NETWORK1_BITMASK=24                 # Bitmask du réseau local (LAN1)

# configuration du réseau local (LAN2)

NETWORK2_IP=192.168.2.0             # Adresse "réseau" du réseau local (LAN2)

NETWORK2_NETMASK=255.255.255.0      # Netmask du réseau local (LAN2)

NETWORK2_BITMASK=24                 # Bitmask du réseau local (LAN2)

# configuration du { ROUTEUR BOX }

IN1_IP=192.168.1.1            # Adresse IP du { ROUTEUR BOX } "côté" lan1

IN1_INTERFACE=eth1            # Interface du { ROUTEUR BOX } "côté" lan1

IN2_IP=192.168.2.1            # Adresse IP du { ROUTEUR BOX } "côté" lan2

IN2_INTERFACE=eth2            # Interface du { ROUTEUR BOX } "côté" lan2

OUT_IP=XXX.XXX.XXX.XXX        # Adresse IP du { ROUTEUR BOX } "côté" internet

OUT_INTERFACE=eth0            # Interface du { ROUTEUR BOX } "côté" internet

###

# N.B.

# Ici, j'utilise eth0 car je suis connecté directement à internet via ma

# carte réseau. Néanmois dans le cas d'une configuration adsl avec connection

# pppoe, je pense que c'est ppp0 qui est utilisé. A vérifier sur votre

# configuration à l'aide de /sbin/ifconfig

###

################################################################################

# DESACTIVATION DU FORARDING IP

################################################################################

echo 0 > /proc/sys/net/ipv4/ip_forward

################################################################################

# INITIALISATION DES TABLES

#

# Il s'agit de vider puis effacer toutes les chaînes

# des tables filter/nat/mangle

#

# TODO

# Vider de l'espace kernel les modules chargés enpechant parfois la

# réinitialisation des tables...

################################################################################

iptables --table filter --flush

iptables --table filter --delete-chain

iptables --table mangle --flush

iptables --table mangle --delete-chain

iptables --table nat --flush

iptables --table nat --delete-chain

################################################################################

# INITIALISATION DES LOGGERS

#

# Pour créer un logger, on fait les choses suivantes :

# - On commence par créer une nouvelle chaîne pour la table ciblée.

# - On vide la chaîne fraîchement créée.

# - On loggue dans un premier temps le paquet (via --jump LOG)

# - On le traite comme il se doit par la ensuite

#

# C'est ainsi que la chaîne DEBUG_FILTER_DROP (resp. DEBUG_FILTER_ACCEPT) se

# comporte comme la chaîne DROP (resp. ACCEPT) mais avec une phase pré-phase

# de logging.

################################################################################

FILTER_DROP="DROP"

FILTER_ACCEPT="ACCEPT"

NAT_DROP="DROP"

NAT_ACCEPT="ACCEPT"

NAT_MASQUERADE="MASQUERADE"

MANGLE_DROP="DROP"

MANGLE_ACCEPT="ACCEPT"

if [ $DEBUG = "true" ]; then

  iptables --table filter --new-chain DEBUG_FILTER_DROP

  iptables --table filter --flush DEBUG_FILTER_DROP

  iptables --table filter --append DEBUG_FILTER_DROP --jump LOG --log-prefix '[debug] FILTER DROP : '

  iptables --table filter --append DEBUG_FILTER_DROP --jump DROP

  FILTER_DROP="DEBUG_FILTER_DROP"

  iptables --table filter --new-chain DEBUG_FILTER_ACCEPT

  iptables --table filter --flush DEBUG_FILTER_ACCEPT

  iptables --table filter --append DEBUG_FILTER_ACCEPT --jump LOG --log-prefix '[debug] FILTER ACCEPT : '

  iptables --table filter --append DEBUG_FILTER_ACCEPT --jump ACCEPT

  FILTER_ACCEPT="DEBUG_FILTER_ACCEPT"

  iptables --table nat --new-chain DEBUG_NAT_DROP

  iptables --table nat --flush DEBUG_NAT_DROP

  iptables --table nat --append DEBUG_NAT_DROP --jump LOG --log-prefix '[debug] NAT DROP : '

  iptables --table nat --append DEBUG_NAT_DROP --jump DROP

  NAT_DROP="DEBUG_NAT_DROP"

  iptables --table nat --new-chain DEBUG_NAT_ACCEPT

  iptables --table nat --flush DEBUG_NAT_ACCEPT

  iptables --table nat --append DEBUG_NAT_ACCEPT --jump LOG --log-prefix '[debug] NAT ACCEPT : '

  iptables --table nat --append DEBUG_NAT_ACCEPT --jump ACCEPT

  NAT_MASQUERADE="DEBUG_NAT_MASQUERADE"

  iptables --table nat --new-chain DEBUG_NAT_MASQUERADE

  iptables --table nat --flush DEBUG_NAT_MASQUERADE

  iptables --table nat --append DEBUG_NAT_MASQUERADE --jump LOG --log-prefix '[debug] NAT MASQUERADE : '

  iptables --table nat --append DEBUG_NAT_MASQUERADE --jump MASQUERADE

  NAT_MASQUERADE="DEBUG_NAT_MASQUERADE"

  iptables --table mangle --new-chain DEBUG_MANGLE_DROP

  iptables --table mangle --flush DEBUG_MANGLE_DROP

  iptables --table mangle --append DEBUG_MANGLE_DROP --jump LOG --log-prefix '[debug] MANGLE DROP : '

  iptables --table mangle --append DEBUG_MANGLE_DROP --jump DROP

  MANGLE_DROP="DEBUG_MANGLE_DROP"

  iptables --table mangle --new-chain DEBUG_MANGLE_ACCEPT

  iptables --table mangle --flush DEBUG_MANGLE_ACCEPT

  iptables --table mangle --append DEBUG_MANGLE_ACCEPT --jump LOG --log-prefix '[debug] MANGLE ACCEPT : '

  iptables --table mangle --append DEBUG_MANGLE_ACCEPT --jump ACCEPT

  MANGLE_ACCEPT="DEBUG_MANGLE_ACCEPT"

fi

################################################################################

# POLITIQUE DE SECURITE PAR DEFAUT

#

# --> On rejette tout les paquets par défaut dans la table [filter]

# --> On accepte les autres paquets circulant "en interne" [nat/mangle]

################################################################################

iptables --table filter --policy INPUT DROP

iptables --table filter --policy OUTPUT DROP

iptables --table filter --policy FORWARD DROP

iptables --table nat --policy PREROUTING ACCEPT

iptables --table nat --policy POSTROUTING ACCEPT

iptables --table mangle --policy PREROUTING ACCEPT

iptables --table mangle --policy POSTROUTING ACCEPT

iptables --table mangle --policy OUTPUT ACCEPT

################################################################################

# POLITIQUE DE SECURITE SUR LE LOOPBACK

################################################################################

LOOPBACK_DROP="$FILTER_DROP"

LOOPBACK_ACCEPT="$FILTER_ACCEPT"

if [ $DEBUG_LOOPBACK = "true" ]; then

  iptables --table filter --new-chain DEBUG_LOOPBACK_DROP

  iptables --table filter --flush DEBUG_LOOPBACK_DROP

  iptables --table filter --append DEBUG_LOOPBACK_DROP --jump LOG --log-prefix '[debug] LOOPBACK DROP : '

  iptables --table filter --append DEBUG_LOOPBACK_DROP --jump DROP

  LOOPBACK_DROP="DEBUG_LOOPBACK_DROP"

  iptables --table filter --new-chain DEBUG_LOOPBACK_ACCEPT

  iptables --table filter --flush DEBUG_LOOPBACK_ACCEPT

  iptables --table filter --append DEBUG_LOOPBACK_ACCEPT --jump LOG --log-prefix '[debug] LOOPBACK ACCEPT : '

  iptables --table filter --append DEBUG_LOOPBACK_ACCEPT --jump ACCEPT

  LOOPBACK_ACCEPT="DEBUG_LOOPBACK_ACCEPT"

fi

iptables --table filter --append INPUT --in-interface lo $LOOPBACK_ACCEPT

iptables --table filter --append OUTPUT --out-interface lo $LOOPBACK_ACCEPT

iptables --table filter --append FORWARD --in-interface lo $LOOPBACK_ACCEPT

iptables --table filter --append FORWARD --out-interface lo $LOOPBACK_ACCEPT

################################################################################

# POLITIQUE DE SECURITE SUR LE RESEAU LOCAL (LAN1)

################################################################################

LAN1_DROP="$FILTER_DROP"

LAN1_ACCEPT="$FILTER_ACCEPT"

if [ $DEBUG_LAN1 = "true" ]; then

  iptables --table filter --new-chain DEBUG_LAN1_DROP

  iptables --table filter --flush DEBUG_LAN1_DROP

  iptables --table filter --append DEBUG_LAN1_DROP --jump LOG --log-prefix '[debug] LAN1 DROP : '

  iptables --table filter --append DEBUG_LAN1_DROP --jump DROP

  LAN1_DROP="DEBUG_LAN1_DROP"

  iptables --table filter --new-chain DEBUG_LAN1_ACCEPT

  iptables --table filter --flush DEBUG_LAN1_ACCEPT

  iptables --table filter --append DEBUG_LAN1_ACCEPT --jump LOG --log-prefix '[debug] LAN1 ACCEPT : '

  iptables --table filter --append DEBUG_LAN1_ACCEPT --jump ACCEPT

  LAN1_ACCEPT="DEBUG_LAN1_ACCEPT"

fi

iptables --table filter --append INPUT --in-interface $IN1_INTERFACE --jump $LAN1_ACCEPT

iptables --table filter --append OUTPUT --out-interface $IN1_INTERFACE --jump $LAN1_ACCEPT

iptables --table filter --append FORWARD --in-interface $IN1_INTERFACE --jump $LAN1_ACCEPT

iptables --table filter --append FORWARD --out-interface $IN1_INTERFACE --jump $LAN1_ACCEPT

################################################################################

# POLITIQUE DE SECURITE SUR LE RESEAU LOCAL (LAN2)

################################################################################

LAN2_DROP="$FILTER_DROP"

LAN2_ACCEPT="$FILTER_ACCEPT"

if [ $DEBUG_LAN2 = "true" ]; then

  iptables --table filter --new-chain DEBUG_LAN2_DROP

  iptables --table filter --flush DEBUG_LAN2_DROP

  iptables --table filter --append DEBUG_LAN2_DROP --jump LOG --log-prefix '[debug] LAN2 DROP : '

  iptables --table filter --append DEBUG_LAN2_DROP --jump DROP

  LAN2_DROP="DEBUG_LAN2_DROP"

  iptables --table filter --new-chain DEBUG_LAN2_ACCEPT

  iptables --table filter --flush DEBUG_LAN2_ACCEPT

  iptables --table filter --append DEBUG_LAN2_ACCEPT --jump LOG --log-prefix '[debug] LAN2 ACCEPT : '

  iptables --table filter --append DEBUG_LAN2_ACCEPT --jump ACCEPT

  LAN2_ACCEPT="DEBUG_LAN2_ACCEPT"

fi

iptables --table filter --append INPUT --in-interface $IN2_INTERFACE --jump $LAN2_ACCEPT

iptables --table filter --append OUTPUT --out-interface $IN2_INTERFACE --jump $LAN2_ACCEPT

iptables --table filter --append FORWARD --in-interface $IN2_INTERFACE --jump $LAN2_ACCEPT

iptables --table filter --append FORWARD --out-interface $IN2_INTERFACE --jump $LAN2_ACCEPT

################################################################################

# REGLES PERSONALISEES

################################################################################

iptables --table filter --append INPUT --in-interface $OUT_INTERFACE -m state --state NEW,INVALID --jump $FILTER_DROP

iptables --table filter --append INPUT --in-interface $OUT_INTERFACE -m state --state ESTABLISHED,RELATED --jump $FILTER_DROP

iptables --table filter --append OUTPUT --out-interface $OUT_INTERFACE -m state --state NEW,ESTABLISHED,RELATED --jump $FILTER_DROP

################################################################################

# PARTAGE DE LA CONNECTION [masquage des machines locales derrière le firewall]

################################################################################

iptables --table nat --append POSTROUTING -o $OUT_INTERFACE --jump $NAT_MASQUERADE

################################################################################

# REACTIVATION DU FORARDING IP

################################################################################

echo 1 > /proc/sys/net/ipv4/ip_forward 

```

P.S. pour les loggers

Vous vous demandez peut-être porquoi j'ai mis tant de loggers et bien s'est parce que j'ai un ordinateur sous XP en local et que je ne sais pas trop ce qu'il fout parfois d'où la présence de multiple logger afin de vérifier ce qu'il se passer exactement à un endroit précis des reglès.

CHANGELOG

---------------

13/01/2005 :

--> corrections de "bugs"

--> quelques annotations pour une meilleur compréhension

12/01/2005

--> initialisation du script

TODO

-------

--> finir la configuration pour un accès à internet

--> quelques explications & règles pour divers clients (irc, ftp, p2p, etc...)

--> explications sur le port fowarding (hebrgement d'un serveur sur le reseau local accessible depuis l'extérieur)

--> génération du script via un outils (peut-être XML)

--> meilleure prise en compte des loggeurs (notement au niveau de la lisibilité du script)

--> Implémentation de la vidange des modules (via rmmod) chargés dans le noyau lors de l'initialisation des tablesLast edited by jpopcenter on Thu Jan 13, 2005 4:49 pm; edited 1 time in total

----------

## zdra

C'est magnifique tout ça !

Moi je penses qu'il faut mettre un titre du style

[HOWTO] configuration d'iptables

Et ajouter le poste dans la liste des howto  :Smile: 

J'ajouterais peut-etre une petite explication pour lancer tout ça:

```

<sauver le script dans /root/iptable_config>

# cd /root

# chmod +x iptable_config

# ./iptable_config

# /etc/init.d/iptables save

# rc-update add iptables default

```

Puis ajouter une note qui dit de pas oublier de modifer les interfaces et les ip dans le script. par exemple souvent OUT_INTERFACE=ppp0  :Wink: 

Ah oui, et j'ai une question aussi qui est +/- en rapport:

```
echo 1 > /proc/sys/net/ipv4/ip_forward
```

C'est pour activer le forward, il faut le faire à chaque boot du pc. Mais si je comprends bien la politique de gentoo, les regles iptables se retorent au boot avec un "/etc/init.d/iptables start".... et on met où alors la ligne pour activer le forward ?? pour l'instant moi je l'ai mis dans /etc/conf.d/local.start

Voilà, et encore merci  :Wink: 

----------

## Pachacamac

Tu peux mettre directement la règle dans /etc/sysctl.conf

# Enables packet forwarding

net.ipv4.ip_forward = 1

----------

## babykart

si toi tu dis "un petit script pour dire merci", moi je te dit "merci pour le script"...   :Wink: 

----------

## DaiKo

Exactement ce que je cherchais  :Smile:  un grand merci !!   :Very Happy: 

----------

## anigel

Joli travail, merci à toi, et... bienvenue parmi nous : ça te fera un chouette premier post sur ce forum  :Wink:  !

----------

## jpopcenter

 *zdra wrote:*   

> 
> 
> Moi je penses qu'il faut mettre un titre du style
> 
> [HOWTO] configuration d'iptables
> ...

 

J'ai fait quelques retouches dessus et rajouté HOWTO dans le titre mais je ne voudrais pas le poster dans la liste des HOWTOs tout de suite car il n'est pas encore finalisé.

Par contre, j'ai rajouté quelques explications sur le fonctionnement mais aussi une petite liste de TODO que je pense utile pour la suite.

J'espère que les TODO vous inspireront notemment celui sur la génération du script à partir du XML qui apporterait en "lisibilité" et en maintenance de la configuration (et puis je ne cache pas que j'ai un faible pour les générations en tout genre   :Embarassed:  )

Merci pour vos encouragements et à bientôt ^^

P.S.

une fois fini la configuration iptables, viendra le temps de la configuration d'un bon FVWM à l'ancienne histoire de faire baver vos camarades de classe lors d'un TP d'info sur votre "station sun" miteuse des années 80 ou tout simplement pour trouver une raison valable de créer un compte linux pour votre copine sans justification du genre "si, si, tu vas voir, tu vas trouver ça terrible" alors qu'elle s'en fout (en tout cas pour moi, ça a marché   :Very Happy:  ) (cf http://ibonobo.free.fr/_save_/screenshot-pink.png )

De plus, pour les fans de wallpaper d'animés, il y aura une petite surprise made in perso   :Rolling Eyes: 

----------

## Pachacamac

C'est mimi comme tout !

J'attend la suite de ta config avec impatience.

----------

## yuk159

Hé bien je le mets dans la liste car c'est déjà fort intéressant tout ça.

Donc, merci beaucoup.   :Smile: 

----------

## Marsu

bonjour, avant tou, merci pour le script, je l'ai réutilisé, y'a quand même un truc qui me tracasse : 

la machine ROUTEUR fonctionne bien en tant que passerelle, mais impossible une fois le script lancé d'acceder à internet à partir d'elle (c'est un comble, c'est elle qui est connectée à internet ! lol)

est-ce normal par rapport à ton script (à ce moment là, j'ai pas tout compris) ou bien non ?

parce que c'est un peu gênant de plus pouvoir syncer...

----------

## jpopcenter

Salut,

Le fait que le routeur ne puisse pas accéder au net est "normal" à cause de la politique par défaut appliquée à la table "filter"

Pour t'en convaincre, il y a ceci à un moment :

```
################################################################################

# POLITIQUE DE SECURITE PAR DEFAUT

#

# --> On rejette tout les paquets par défaut dans la table [filter]

# --> On accepte les autres paquets circulant "en interne" [nat/mangle]

################################################################################

iptables --table filter --policy INPUT DROP

iptables --table filter --policy OUTPUT DROP

iptables --table filter --policy FORWARD DROP
```

Ainsi, pour que la machine faisant routeur puisse "aller" sur Internet, il faut que tu précises explicitement les règles d'accès à la main (par exemple : à la fin du fichier de configuration)

Tu peux parx exemple autoriser les sorties de paquet se dirigent vers un port destination 80 et les paquets entrants des réponses en provenance du port 80 et ainsi, tu pourras surfer sur Internet à partir du routeur.

Bonne chance pour la suite.

----------

## kwenspc

moi j'attends avec impatience les règles et explications pour les logiciels clients  :Razz: 

----------

## dyurne

 *kwenspc wrote:*   

> moi j'attends avec impatience les règles et explications pour les logiciels clients 

  +1

la génération via xml m'intéresse aussi pas mal.

En tout cas, excellent howto, bravo.

----------

## jpopcenter

 *dyurne wrote:*   

> la génération via xml m'intéresse aussi pas mal.

 

Il est vrai que ce mini howto, je l'ai posté il y a un petit bout de temps mais ne t'inquiète pas pour ce qui concerne la génération via XML, ça va bientôt venir...

Vivement dans un mois, j'aurais enfin du temps de dispo pour me repencher enfin sur le sujet  :Wink: 

----------

## truz

Merci pour ce script très instructif ! Juste une remarque dans le code suivant:

```
iptables --table filter --append INPUT --in-interface lo $LOOPBACK_ACCEPT

iptables --table filter --append OUTPUT --out-interface lo $LOOPBACK_ACCEPT

iptables --table filter --append FORWARD --in-interface lo $LOOPBACK_ACCEPT

iptables --table filter --append FORWARD --out-interface lo $LOOPBACK_ACCEPT 
```

Il ne manquerait pas un "--jump" devant chaque "$LOOPBACK_ACCEPT" ? car sans ça j'ai l'erreur suivante au lancement du script:

```
Bad argument `DEBUG_LOOPBACK_ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.

Bad argument `DEBUG_LOOPBACK_ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.

Bad argument `DEBUG_LOOPBACK_ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.

Bad argument `DEBUG_LOOPBACK_ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.
```

Peut-être certaines syntaxes sont-elles autorisées selon la version d'iptables (v1.3.1 chez moi) ?

----------

## Marsu

ouais, moi aussi j'ai du rajouter un --jump devant ces lignes, mais si ça se trouve, c'était pour bien nous tester et nous forcer à comprendre le script

----------

## truz

 *Marsu wrote:*   

> ouais, moi aussi j'ai du rajouter un --jump devant ces lignes, mais si ça se trouve, c'était pour bien nous tester et nous forcer à comprendre le script

 C'est vrai que ça a été le cas pour moi, mais je pense à ceux n'auraient pas pris ce temps et mis le firewall au boot. Ca va leur faire drole !  :Laughing: 

----------

## Marsu

mais pour le sauvegarder, fallait l'appliquer avant, donc y'avait peu de chances que ça arrive

----------

## truz

 *Marsu wrote:*   

> mais pour le sauvegarder, fallait l'appliquer avant, donc y'avait peu de chances que ça arrive

 Ne sous-estimes jamais la force de celui qui ne cherche pas à comprendre  :Laughing:   :Laughing:  Mais c'est vrai que quelque part c'est mérité dans ce cas  :Twisted Evil: 

----------

## Marsu

 *truz wrote:*   

> Ne sous-estimes jamais la force de celui qui ne cherche pas à comprendre   

 

faut avouer que l'utilisateur paresseux peut parfois faire des trucs puissants, qui savent bien planter une machine  :Laughing: 

----------

## lbr

as-tu utilisé fwbuilder ? si oui que penses tu de ce soft ? si non, pourquoi ?

Merci.

----------

## siDeb_31

j'ai un probleme, j'arrive pas a trouver d'ou ça vient  :Sad: 

j'ai composé un script à l'aide de celui si dessus est quand le l execute j'ai droit à une erreur:

 *Quote:*   

> 
> 
> ./iptable_config
> 
> FATAL: Module ip_tables not found.
> ...

 

Je suppose que c'est un une option du kernel a activer mais je sais pas laquelle.

----------

