MASTER d'UNIVERSITÉ SPÉCIALISÉ
Ingénierie Informatique, Cybersécurité et Intelligence Artificielle (IICIA)
Cours : Sécurité des systèmes informatiques
TP n°5
Mise en place d’un Firewall Netfilter
Objectifs :
Ce TP propose d’installer un firewall sur une machine Linux afin de séparer deux segments de
réseau différents et de mettre en place la politique de sécurité nécessaire.
Pour ce faire, nous allons procéder aux étapes suivantes :
- Configuration des paramètres réseaux des trois machines virtuelles (VM Linux) local,
distant et firewall ;
- Faire un ensemble de tests avec la configuration par défaut du firewall, des protocoles
ICMP et FTP;
- Configuration du Firewall Iptables ;
- Tester les configurations effectuées avec les protocoles ICMP et FTP;
INTRODUCTION
La table filter qui se charge du filtrage des datagrammes. Cette table est constituée de trois
chaînes de filtrage :
1. FORWARD qui filtre les datagrammes qui transitent par la machine;
2. INPUT qui filtre les datagrammes à destination de la machine;
3. OUTPUT qui filtre les datagrammes qui ont pour source la machine;
La syntaxe d’utilisation de la commande iptables est la suivante :
iptables –action chaine –p protocole –s ’adresseIP de la source’ –i ‘interface d’entrée des
paquets’ –d ’adresseIP destination’ –o ‘interface de sortie des paquets -j ACCEPT
Les actions principales de la commande iptables sont les suivantes :
iptables [-t table] -L pour afficher l'état courant des filtres ;
iptables [-t table] -A chaîne règle ajoute une règle à la chaîne ;
iptables [-t table] -D chaîne règle ou iptables -D chaîne numéro-de-règle supprime
une règle particulière de la chaîne ;
iptables [-t table] -F pour supprimer toutes les règles (sauf les règles par défaut) et
réinitialiser le firewall. Par exemple : iptables -t filter -F.
Les options principales pour le filtrage sont :
Dr. Nouhad Sanoussi & Pr. Ghizlane Orhanou -1-
-p précise le protocole (tcp, udp, icmp ou all) ;
-s précise l'adresse source ;
-d précise l'adresse destination ;
-i précise l'interface d'entrée ;
-o précise l'interface de sortie ;
--icmp-type précise le type des messages ICMP à autoriser ou interdire;
--sport précise le port source pour udp et tcp ;
--dport précise le port source pour udp et tcp ;
-m state --state ESTABLISHED, RELATED précise qu'il doit s'agir d’un datagramme
pour une communication établie ou reliée à une communication établie comme dans le
cas de FTP.
-m state --state NEW précise qu'il doit s'agir d’un datagramme pour une nouvelle
communication.
DEROULEMENT DU TP:
Durant ce TP nous allons travailler avec des machines virtuelles. Chaque étudiant devra avoir
au niveau de son ordinateur 3 machines virtuelles avec le système d’exploitation Linux.
Convention :
Notre réseau local sera 192.168.10.0/24 présenté dans le cas de ce TP par la machine « local » ayant
l’adresse IP : 192.168.10.10/24 (eth0).
Le réseau distant sera 10.21.0.0/16 présenté dans le cas de ce TP par la machine « distant » ayant
l’adresse IP : 10.21.0.21/16 (eth0).
Les adresses IP des deux interfaces du firewall sont :
192.168.10.1/24 (eth0) ;
10.21.0.1/16 (eth1) ;
I. Configuration des machines :
Nous allons à présent préparer les trois machines virtuelles.
La machine firewall devra avoir plus d’une carte réseau pour pouvoir connecter différents
segments. Dans ce qui suit, nous procéder à la configuration des paramètres réseau des
différentes machines.
Test 1:
- Configurer l’adressage IP des différentes machines en utilisant l’interface graphique
appelée par la commande system-config-network.
- Configurer les passerelles au niveau des deux machines local et distant.
- Activer le routage au niveau de la machine Firewall pour permettre aux paquets de passer
à travers la machine Firewall, grâce à la commande :
# echo “1” > /proc/sys/net/ipv4/ip_forward
Dr. Nouhad Sanoussi & Pr. Ghizlane Orhanou -2-
II. Configuration du Firewall « Firewall » :
Convention (Rappel) :
Notre réseau local sera 192.168.10.0/24 présenté dans le cas de ce TP par la machine « local » ayant
l’adresse IP : 192.168.10.10/24 (eth0).
Le réseau distant sera 10.21.0.0/16 présenté dans le cas de ce TP par la machine « distant » ayant
l’adresse IP : 10.21.0.21/16 (eth0).
Les adresses IP des deux interfaces du firewall sont :
192.168.10.1/24 (eth0) ;
10.21.0.1/16 (eth1) ;
1. Configuration du Firewall
Test 2 :
- Lister la configuration actuelle du firewall Iptables au niveau de la machine « Firewall » à
l’aide de la commande :
# iptables –t filter –L
- Analyser le résultat obtenu.
Test 3 :
Tester le fonctionnement des protocoles avec la configuration par défaut du Firewall :
Les protocoles que nous allons utiliser sont :
FTP (port 20,21) pour le transfert des fichiers.
ICMP pour contrôler l’état des liaisons entre une machine locale et une machine
du réseau distant.
- On teste le bon fonctionnement du protocole ICMP grâce à la commande ping.
- Afin de tester le protocole ftp, il faut d’abord démarrer le service ftp appelé vsftpd au
niveau de la machine de destination, en utilisant la commande suivantes :
# service vsftpd start
Pour tester le ftp, on tape au niveau de l’autre machine (machine client) :
# ftp @IP-destination
a. Initialisation du firewall
Nous allons initialiser le système. De cette manière, toutes les chaînes seront vides, avec la
politique par défaut « ACCEPT ».
Test 4 :
- Procéder à l’initialisation la table filter, grâce à la commande :
# iptables –t filter –F
Dr. Nouhad Sanoussi & Pr. Ghizlane Orhanou -3-
b. Définition de la politique de base
La définition de la politique de base se fait après l’initialisation des chaînes de la table filter,
pour ne rien laisser entrer ni sortir.
Test 5 :
- Afin de définir cette politique de base, on exécute les commandes suivantes :
# iptables –P INPUT DROP
# iptables –P OUTPUT DROP
# iptables –P FORWARD DROP
- Refaire les tests effectués précédemment en Test3 (ping et ftp). Qu’est ce que vous
constatez ?
T6. Question : Quelle est l’utilité de ces trois règles définies au début de la configuration du
firewall Iptables ?
A retenir : Une règle d’or lors de la configuration d’un firewall, c’est de tout interdire au
début. Ensuite, n’autoriser que ce dont on a besoin.
c. Autorisation de circulation des paquets
Après avoir définit la politique de base, il faut redonner les droits nécessaires pour permettre
d’utiliser la machine Firewall en tant que passerelle entre deux segments différents du réseau.
Test 7 : Autoriser le protocole ICMP :
Nous allons autoriser la machine « local » à effectuer un ping sur la machine « distant » :
- Ecrire et exécuter la commande permettant d’autoriser la requête ping uniquement de la
machine « local » vers la machine « distant » (@IP : 10.21.0.21).
- Ecrire et exécuter la commande autorisant la machine « distant » uniquement à répondre à
une requête ping.
- Tester le ping de et vers la machine « local ».
NB : lorsqu’on exécute la commande ping, le message echo_request est envoyé par la
machine source.
La machine destination répond par le message echo_reply.
Test 8 : Autoriser l’accès FTP (port 20, 21) à la machine « distant »:
- Ecrire et exécuter les commandes permettant d’autoriser une connexion FTP de la machine
« local » vers la machine « distant ».
- Tester la connexion FTP sur 10.21.0.21.
NB : Les états de la connexion FTP sont :
- New : L'état New indique que le paquet est le premier de la connexion.
- Established : correspond à une connexion déjà établie
- Related : Une connexion est considérée comme Related quand elle est liée à une autre
connexion déjà établie (Established).
Dr. Nouhad Sanoussi & Pr. Ghizlane Orhanou -4-