Exercice 5 – Firewall Objectif Créer des règles de filtrage sur un routeur
Exercice 5 – Firewall Objectif Créer des règles de filtrage sur un routeur Pré-requis Les protocoles IP, ICMP et TCP Matériel et logiciels utilisés 1 poste sous Linux Le logiciel de simulation Netkit L’analyseur de trames Wireshark Durée du TP : 1h30 1. Création des machines virtuelles 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. 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). A. Quidelleur Réseau 1/6 ESIPE/IMAC2 2017-2018 Illustration 1 Hub A pc1 SSH (TCP 22) eth1 150.0.0.10 r1 pc2 HTTP eth2 200.0.0.20 eth1 150.0.0.1 eth2 200.0.0.1 Réseau sécurisé : 150.0.0.0/8 pc3 SSH (TCP 22) XMPP (TCP 5222) eth1 150.0.0.30 pc4 eth2 200.0.0.40 Internet simulé 200.0.0.0/8 4) Votre répertoire courant étant le répertoire Exercice5, exécutez la commande : lstart Les cinq machines virtuelles doivent être créées. 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). 7) Testez le bon fonctionnement des serveurs SSH et HTTP. 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. 8) Exécutez sur pc3 la commande : nc -l -p 5222 & 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 & A. Quidelleur Réseau 2/6 ESIPE/IMAC2 2017-2018 2. Création des règles de filtrage Voici la politique implémentée sur r1 : - Par défaut, tout trafic est interdit. - Règle 1 : Tous les hôtes du réseau sécurisé peuvent réaliser des commandes ping sur toutes les machines d’Internet, mais pas l'inverse. - Règle 2 : Tous les hôtes du réseau sécurisé peuvent ouvrir une connexion HTTP sur les serveurs web d’Internet. - Règle 3 : Tous les hôtes d’Internet peuvent ouvrir une connexion SSH sur tous les hôtes du réseau sécurisé. Le serveur XMPP installé sur la machine pc3 est un serveur de messagerie instantanée à usage purement interne. En aucun cas les machines d’Internet ne doivent ouvrir de connexion dessus. 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 Traitement par défaut 13) Insérez à la suite du fichier filtrage les règles interdisant tout trafic par défaut. # Traitement par défaut iptables –P INPUT DROP iptables –P OUTPUT DROP iptables –P FORWARD DROP Explications - L'option -P indique qu'il s'agit du traitement par défaut. A. Quidelleur Réseau 3/6 ESIPE/IMAC2 2017-2018 - INPUT est une chaîne traitant les paquets entrant dans r1 et dont il est la destination finale (ils ne ressortiront pas). - La chaîne OUTPUT désigne les paquets émis créés par r1. - FORWARD désigne les paquets qui traversent r1, c'est-à-dire qu'ils entrent par une interface et ressortent par une autre. 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' Arrêtez l'exécution de la commande par CTRL C. 14) Exécutez le script sur r1 : ./filtrage 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) : iptables –A FORWARD -i eth1 -o eth2 -p 1 --icmp-type valeur_du_type -s 150.0.0.0/8 -d 0.0.0.0/0 -j ACCEPT # Règle 16)b) : iptables -A FORWARD -i eth2 -o eth1 -p 1 --icmp-type valeur_du_type -s 0.0.0.0/0 -d 150.0.0.0/8 –j ACCEPT • -i et -o désignent respectivement l'interface d'entrée et de sortie des paquets traités par la règle ; • -p désigne la valeur du champ « protocole » de l'en-tête IP : 1 pour ICMP ; 6 pour TCP ; 17 pour UDP (à la place des vleurs numériques, vous pouvez utiliser les variables prédéfinies icmp, tcp et udp) ; A. Quidelleur Réseau 4/6 ESIPE/IMAC2 2017-2018 • --icmp-type indique le type du paquet ICMP : 8 pour un paquet ICMP echo request et 0 pour un paquet ICMP echo reply (vous pouvez utiliser à la place des valeurs numériques les variables prédéfinies echo-request et echo-reply) ; • -s et -d désignent respectivement l'adresse IP source et l'adresse IP destination des paquets traités ; • -j désigne la règle à appliquer. 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. 19) - Moodle - Ajoutez à la suite du fichier les deux règles suivantes : # Règle 19)a) : iptables –A FORWARD -i eth1 -o eth2 -s 150.0.0.0/8 -d 0.0.0.0/0 -p 6 --sport 1024:65535 --dport valeur_port_destination -j ACCEPT # Règle 19)b) : iptables –A FORWARD -i eth2 -o eth1 -s 0.0.0.0/0 -d 150.0.0.0/8 -p 6 --sport valeur_port_source --dport valeur_port_destination -j ACCEPT 20) - Moodle - Pourquoi précise-t-on la plage de ports 1024:65535 dans les règles ? 21) Depuis pc1 et pc3, vérifiez que vous pouvez vous connecter au serveur web de pc2. Ces règles sont trop permissives. Vous allez constater qu’une machine d’Internet peut ouvrir une connexion XMPP sur pc3. 22) Sur r1, exécutez la commande : watch iptables -L -n -v 23) Sur pc4 et pc3, activez une capture du trafic. 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 ? A. Quidelleur Réseau 5/6 ESIPE/IMAC2 2017-2018 Le pirate n’aurait donc plus qu’à générer le segment ACK de confirmation d’ouverture de connexion pour être connecté au serveur XMPP interne. Il pourrait aussi lancer une attaque de TCP SYN flooding. 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 uploads/Industriel/ tp-imac2-exercice-5-firewall-2017-2018.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 22, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.1480MB