Linux & Co
Accueil du siteLinux
Dernière mise à jour :
mercredi 13 décembre 2006
Statistiques éditoriales :
44 Articles
1 Brève
3 Sites Web
81 Auteurs

Statistiques des visites :
4 aujourd'hui
0 hier
13891 depuis le début
   
Iptables
samedi 3 décembre 2005
par Johann Lahitte

Iptables (ou netfilter) est intégré au noyau Linux à partir de la version 2.4. C’est un firewall très puissant et reconnu car il est « statefull ». Ce qui signifie qu’il garde en memoire l’etat à un instant t d’une connection.

On peut ainsi séparé une connection en cours de synchronisation, une connection synchronisé ou encore une connection en relation avec une autre connection lancer sur un autre port.

Il existe deux facons de le configurer :

  •  l’interface graphique (sous Ubuntu cela correspond au logiciel firestarter)
  •  la ligne de commande (c’est cette derniere partie que nous aborderons ici)

    Commencons donc par définir ici la base :

  •  Un firewall consiste à filtrer les communications entrant ou sortant de votre ordinateur.
  •  Ces communications sont appelées « paquets » et repondent à une norme (de facon à homogéneiser le transfert de données entre différents ordinateurs avec potentiellement différents systéme d’exploitation), cette norme est nommé IP (Internet Protocol).
  •  Chaque paquet est organisé selon ce que lui dicte le protocole auquel il repond (on compte beaucoup de protocole différent, les plus utilisés et connus sont ICMP, TCP, UDP). Ces protocole dicte aussi aux ordinateurs comment ces derniers doivent communiquer entre eux. Par exemple, sous le protocole TCP, les ordinateur doivent d’abord synchroniser la connection puis la communication à proprement parler commence et alors chaque paquet recu voit un accusé de reception partir.

    Il existe trois grand type de « zones » pour iptables :

    • INPUT —> Ce qui rentre dans l’ordinateur (ou le reseau dans le cas d’une passerelle )
    • OUTPUT —> Ce qui sort de l’ordinateur (ou du reseau local dans le cas d’une passerelle)
    • FORWARD —> Toute les informations qui sont senser etre transferer par la passerelle.

    Resumons ici les options les plus interessante que vous pourriez trouver dans le man.

    • iptables -L -v Affiche toutes les regles definies actuellement
    • iptables -A Ajouter une nouvelle regle

    Et maintenant la partie plus fun, les lignes de code :

    Une bonne politique de firewall est par defaut restrictive.

    Il faut donc commencer par bloquer tout les ports sur toutes les interfaces. Ensuite on pourra au cas par cas débloquer les ports que l’on veut :

  •  iptables -P INPUT DROP
  •  iptables -P OUTPUT DROP
  •  iptables -P FORWARD DROP

    Il faut ensuite authoriser les paquets en entrée et sortie sur l’interface lo. L’interface lo, c’est l’interface local, on peut le voir comme une sorte de reseau interne a votre ordinateur.

    «  Nota : meme si je ne l’ai pas testé, il me semble que sans cette étape, aucun paquets ne passera votre Firewall. Ne la négliger donc pas. »

  •  iptables -A INPUT -i lo -j ACCEPT

    On voit ici que l’on fixe une régle qui ACCEPT sur l’interface « lo » les paquets « entrants » (INPUT).

  •  iptables -A OUTPUT -o lo -j ACCEPT

    On voit ici que l’on fixe une régle qui ACCEPT sur l’interface « lo » les paquets « sortants » (OUTPUT).

    On défini ensuite les régles que l’on souhaite, par exemple :

  •  iptables -A OUTPUT -o ethZ -p tcp —sport XXX : —dport YYY -m state —state ! INVALID -j ACCEPT

    ou l’on fixe une regle pour les paquets TCP sortant sur l’interface ethZ par le port XXX et ayant comme déstination le port YYY d’un ordinateur quelconque accéssible via l’interface ethZ. « -m state —state ! INVALID » permet d’activer le controle du type de connection (voir statefull plus haut). Ici on veut bien toute les connections qui ne sont pas INVALID, soit NEW, ESTABLISHED et RELATED.

  • Messages de forum :
    Iptables
    lundi 5 décembre 2005
    par Thomas

    A noter qu’il existe une troisième technique de configuration : shorewall. Vous spécifiez les règles de firewalling à l’aide de fichiers texte. Pratique en intervention distante et plus conviviale que la ligne de commande.

    http://www.shorewall.net/



      Iptables
      lundi 5 décembre 2005
      par Johann
      Dam nous prépare une petite doc la dessus ;)