Software">
TP - IMAC2 - Exercice 5 - Firewall - 2017-2018
TP - IMAC2 - Exercice 5 - Firewall - 2017-2018
TP - IMAC2 - Exercice 5 - Firewall - 2017-2018
Objectif
Pré-requis
Durée du TP : 1h30
Le réseau étudié est celui de l’Illustration 1. Il représente un réseau d’entreprise sécurisé par un
firewall implémenté sur le routeur r1. Internet est simulé par le réseau d’adresse 200.0.0.0/8. Les
différents services actifs sur les machines sont indiqués sur la figure.
pc3
SSH (TCP 22) pc4
XMPP (TCP 5222)
Illustration 1
1) Créez un répertoire nommé Exercice5. Puis depuis un terminal, placez-vous dans ce répertoire :
cd chemin/Exercice5
2) Copiez dans le répertoire Exercice5 les fichiers lab.conf, r1.startup, pc1.startup, pc2.startup,
pc3.startup et pc4.startup fournis.
3) Puis créez dans le répertoire Exercice5 cinq sous-répertoires nommés pc1, pc2, pc3, pc4 et r1.
Surtout ne modifiez pas le nom des répertoires (les noms sont écrits en minuscules, notamment).
5) La configuration IP de toutes les machines est déjà réalisée. Vérifiez qu’elles peuvent
communiquer en exécutant des commandes ping entre elles.
6) Vérifiez sur pc1, pc2 et pc3 que les services indiqués sur la figure sont actifs (commande netstat
ou ss avec les bonnes options).
On ne peut pas (ou difficilement) installer un serveur XMPP sur la machine virtuelle pc3. Vous allez
donc vous contenter d’ouvrir le port TCP 5222 à l’aide de la commande netcat pour simuler l’existence
du serveur et envoyer depuis les clients des messages textuels qui s’afficheront dans le terminal de
pc3. Attention ! Le socket sera refermé dès que le client fermera la connexion. Pour que le port soit en
permanence ouvert, il vous faudra ré-exécuter la commande netcat (nc) après chaque connexion de
client.
9) Sur pc3, utilisez la commande netstat ou la commande ss (avec les bonnes options) pour
vérifier que le port 5222 est ouvert.
10) Depuis l’un des autres pc, ouvrez une connexion sur le port TCP 5222 de pc3 :
nc 150.0.0.30 5222
Puis tapez du texte. Lorsque vous appuyez sur entrée, le texte est envoyé dans le socket et
apparaît sur le terminal de pc3. Pour fermer le socket, réalisez un CTRL C.
11) Exécutez une commande netstat sur pc3 : le port 5222 est fermé. Réactivez le service en
exécutant de nouveau la commande nc -l -p 5222 &
Remarque importante : par « tous les hôtes du réseau sécurisé », on entend pc1, pc3, d’autres pc
éventuels non représentés sur la figure mais pas le routeur r1.
12) Créez un fichier nommé filtrage, attribuez-lui le droit d’exécution (chmod u+x filtrage) et
insérez les lignes suivantes dedans :(les lignes commençant par un caractère # sont des
commentaires)
# Suppression des règles précédentes
iptables -F
iptables -t nat -F
13) Insérez à la suite du fichier filtrage les règles interdisant tout trafic par défaut.
# Traitement par défaut
Explications
Remarques
- Les règles de filtrage par défaut ne sont pas effacées par la commande iptables -F. Pour les
désactiver, vous devez exécuter dans le terminal les commandes iptables -P OUTPUT -j
ACCEPT, etc. Vous ne devriez pas avoir à le faire dans cet exercice.
- Dans la suite, il peut être utile de visualiser en direct les actions de Netfilter. Pour cela, exécutez
sur r1 la commande : watch 'iptables -L -n -v'
15) Testez les règles : tentez des commandes ping entre toutes les machines et des connexions sur
les serveurs. Toutes doivent échouer.
Commandes ping
Règle 1 : Toutes les machines du réseau sécurisé peuvent réaliser des commandes ping sur
toutes les machines d’Internet, mais pas l'inverse.
16) Dans le fichier « commandes », ajoutez à la suite des lignes précédentes les deux règles
suivantes (remplacez les paramètres en italique par les bonnes valeurs) :
# Règle 16)a) :
# Règle 16)b) :
17) Réalisez des commandes ping des machines du réseau sécurisé vers les machines d’internet.
Elles doivent obtenir des réponses. Vérifiez que les commandes ping exécutées par les machines
d’Internet à destination des machines du réseau sécurisé n’obtiennent pas de réponses.
18) - Moodle - Expliquez pourquoi il est indispensable de préciser le type des paquets ICMP pour que
la politique 1 soit respectée.
Connexions HTTP
Règle 2 : Les machines du réseau sécurisé peuvent ouvrir une connexion HTTP sur les
serveurs web du monde entier.
# Règle 19)b) :
Ces règles sont trop permissives. Vous allez constater qu’une machine d’Internet peut ouvrir une
connexion XMPP sur pc3.
24) Vous allez jouer le rôle d'un pirate sur pc4. Exécutez sur pc4 la commande :
hping3 -c 1 -p 5222 -s 80 -S 150.0.0.30
Cette commande génère un segment TCP ayant pour port destination 5222, pour port source 80,
un flag SYN positionné et une adresse IP destination égale à 150.0.0.30.
25) - Moodle - Vous devez constater d’après les captures et le résultat de la commande watch
iptables -l -n -v que le segment de demande d'ouverture de connexion généré par pc4
traverse le firewall. Quelle est la règle du firewall qui laisse passer ce segment ?
Il est par conséquent nécessaire de réaliser un contrôle du flag ACK. Ceci est réalisé par l’option
--tcp-flags de la commande iptables. Il accepte deux paramètres :
- on précise d'abord la liste des flags à contrôler : ici il s'agit uniquement du flag ACK ;
- ensuite on précise, parmi les flags contrôlés, ceux dont la valeur doit être 1.
Ainsi pour indiquer dans une règle que le flag ACK doit valoir 1, la syntaxe est :
--tcp-flags ACK ACK
26) - Moodle - Rajoutez le contrôle du flag ACK dans la règle de la question 19) concernée.
27) Tentez de nouveau l’attaque. Elle doit échouer. Vérifiez que les hôtes du réseau sécurisé peuvent
toujours se connecter aux serveurs web externes.
Connexions SSH
Règle 3 : Tous les hôtes d’Internet peuvent ouvrir une connexion SSH sur tous les hôtes du
réseau sécurisé.
28) - Moodle - Créez des règles permettant d’appliquer cette politique. Elles doivent évidemment être
les plus strictes possible. Testez-les.