Vous êtes sur la page 1sur 25

IPTables

Le programme utilisateur de NETFILTER


Plan

IPTables
C’est quoi IPTables ?
Fonctionnement de IPTables
Commandes de base
Chaines
Paramètres
Cibles

Création de règles
Sauvegarder les règles
Création de scripts de sauvegarde
Tests
Definition/Fonctionnement
C’est quoi IPTables ?

 IPtables est un puissant pare-feu(ou firewall) intégré au noyau Linux qui


fait partie du projet Netfilter. C’est un logiciel libre grâce auquel
l'administrateur système peut configurer les chaînes et règles dans le
pare-feu qui est composé par des modules Netfilter.
IPTables fournit à la fois iptables pour les connexions IPv4 et
ip6tables pour l‘IPv6.
 Netfilter est un firewall avec état (stateful), il dispose des modules
(conntrack) qui interprètent ces informations afin de déterminer l'état de
connexion de chaque paquet.
L'option –state permet de préciser les états dans la définition des règles.
C’est quoi IPTables ?

Paquets en:
 INPUT: lorsqu’un hôte reçoit des paquets qui lui sont destinés
 OUTPUT: lorsqu’un hôte crée des paquets
 FORWARD: lorsqu’un hôte joue le rôle de “routeur” (activer le forwarding : $
sudo sysctl net.ipv4.ip_forward=1)

Type de firewall:
stateless : ne garde aucune trace des connexions qui le traverse.
stateful : mémorise l’état des connexionx TCP afin de contrôler les échanges.
C’est quoi IPTables ?
Le fonctionnement de IPTables

Comportement:
Lorsqu'un paquet arrive sur le host firewall, IPTABLES consulte les règles pour
vérifier si l'une d'entre elles peut s'appliquer.
Lorsque c'est le cas, la règle est appliquée et IPTABLES cesse la consultation.

L’ordre des règles est donc primordial en cas de règles


contradictoires.
Enfin si aucune règle précise n'est définie, ce sera la POLICY par défaut qui
s'applique (DROP ou ACCEPT).

5
Le fonctionnement de IPTables

Les différents états disponibles:


• NEW : établissement de connexion du client vers le serveur.
• ESTABLISHED : réponse du serveur à une demande de connexion du client.
• RELATED : connexion relative à une connexion précédemment établie.
• INVALID : signifie que le paquet ne peut pas être identifié ou aucun état connu
Étapes pour créer une régle avec iptables :

1. choisir la table
2. choisir la chaine
3. choisir action sur la chaine
4. sélectionner les paquets
6
Le fonctionnement de IPTables

Étapes pour créer une régle avec iptables :

1. choisir la table
-t filter
filtrage des paquets qui partent et qui arrivent
table par défaut, si rien n’est précisé
-t nat
faire du DNAT, SNAT, PAT
-t mangle
modifier des données des couches hautes, notamment TCP

6
Le fonctionnement de IPTables

Étapes pour créer une régle avec iptables :

1. choisir la table
2. choisir la chaine
Pour -t filter :
INPUT
FORWARD
OUTPUT
Sur ces 3 chaines on peut :

-j ACCEPT : on accepte le paquet


-j DROP : on refuse le paquet sans prévenir l’expéditeur de celui-ci
-j REJECT : on refuse le paquets mais on prévient l’expéditeur
-j LOG : on affiche un log 6
Le fonctionnement de IPTables

Étapes pour créer une régle avec iptables :

1. choisir la table
2. choisir la chaine
Pour -t nat :
PREROUTING : avant le routage (avant le forward)
OUTPUT : traite paquets crées localement avant leur routage
POSTROUTING : après le routage
Sur ces 3 chaines on peut :

-j DNAT : Destination NAT, on modifie @ de destination du paquet


-j SNAT : Source NAT, on modifie @ source du paquet
-j MASQUERADE : changer @ source privée d’un paquet pour utiliser une @
publique pour aller sur internet
6
Les chaînes

CHAINE TABLE DESCRIPTION


PREROUTING nat, mangle Chaîne où passeront les paquets entrants dans la
machine avant routage
INPUT filter, mangle Chaîne traitant les paquets entrant avant les couches
supérieurs (applications)
FORWARD filter, nat, mangle Paquets transmis par la machine sans que les
applications n'en aient connaissance
OUTPUT filter, nat , mangle Chaîne appelée par les paquets envoyés par des
programmes présents sur la machine
POSTROUTING nat, mangle Paquets prêts à être envoyés (transmis ou générés)

8
Le fonctionnement de IPTables

Étapes pour créer une régle avec iptables :

1. choisir la table
2. choisir la chaine
3. choisir action sur la chaine

6
Le fonctionnement de IPTables

3. choisir action sur la chaine


Commande Définition Rôle
-A --append ajoute la règle
-D --delete supprime une règle
-R --replace remplace la règle spécifié

-I --insert insère une règle dans un endroit spécifié

-L --list affiche les règles


-F --flush vide toutes les règles
-N --new-chain créé une nouvelle chaîne

-X --delete-chain supprime une chaîne


-P -policy spécifie la valeur de la cible par défaut de la chaîne

La policy est appliquée au paquet si aucune règle ne s’applique sur lui.


iptables -t filter -P FORWARD DROP 6
Le fontionnement de IPTables

4. Selectionner les paquets

-p -protocole tcp, udp, icmp, all ou N° de protocole /etc/protocols


-s -source adresse IP ou réseau
-d -destination adresse IP ou réseau
-j –jump cible sans la cible, la règle n'est pas prise en compte
-i –in-interface nom de l'interface qui reçoit les paquets
-o –out-interface nom de l'interface qui envoi les paquets
! inverse ce signe inverse le test

9
Travaux Pratiques
TPs

 Machines : Parrot Container, Windows 10 & Debian


• Exercice: Configurer des règles IPTables sur le serveur Debian
• Objectifs :
• Effectuer des Tests sur le serveur Debian
• Application des règles / Tests
TPs - IPTables / Architecture

Parrot Container
[root@parrot]─[/]

Debian
[root@envrlabs]─[/]

Windows 10
Création des règles

On vérifie les règles ajoutées:

 Permettre le trafic entrant sur un port spécifique


Création des règles

On bloque ici le trafic en remplaçant la police ACCEPT de la


chaine INPUT par DROP:

 Pour bloquer le trafic local


Sauvegarde des règles

Appliquer les règles au démarrage:


 par installation iptables-persistent:
installation iptables-persistent: apt-get install iptables-
persistent
 par création d’un script
 On commence par éditer un fichier en root, que nous enregistrerons
sous /etc/network/if-pre-up.d/.
 La première ligne de cette fichier doit être: #!/bin/bash qui indique que le
fichier doit être exécuté en tant que script bash.
 On ajoute ensuite au script la ligne: iptables–restore <
/etc/iptables.test.rules
 Le reste du fichier doit contenir les commandes iptables générées.
 On déplace le script iptables dans /etc/network/if-pre-up.d/ :
 Rendre le script exécutable: chmod +x
/etc/network/if-pre-up.d/iptables
Sauvegarder les règles

 Sauvegarder les règles


Création de script de sauvegarde des règles
Créationde script de sauvegarde
Création de script de sauvegarde

Vous aimerez peut-être aussi