Laboratoire - Firewall
1. Filtrage de base : Autoriser/Bloquer le trafic
Objectif: Créer des règles simples pour autoriser et bloquer du trafic, afin de comprendre la structure des chaînes (chains) dans le pare-feu.
Description de l’exercice
Configurer le routeur pour bloquer tous les paquets ICMP (ping) entrants provenant d’une adresse IP source spécifique (par exemple : 10.10.10.5).
Autoriser tout le reste du trafic.
Vérifier que les pings depuis cette adresse IP sont effectivement bloqués.
Étapes / Conseils
Comprendre la différence entre les chaînes input, forward et output.
Utiliser le menu IP → Firewall → Filter Rules dans Winbox ou le CLI.
Pour bloquer le trafic d’une adresse IP spécifique :
/ip firewall filter add chain=input src-address=10.10.10.5 protocol=icmp action=dropPlacer la règle en haut de la liste de filtrage pour qu’elle soit appliquée en premier.
Tester en faisant un ping depuis 10.10.10.5 vers l’adresse IP du routeur.
Vérification attendue
Depuis 10.10.10.5, le ping vers le routeur doit échouer (time out).
Depuis d’autres adresses IP, le ping fonctionne normalement.
2. Port Forwarding (DST-NAT)
Objectif: Rediriger le trafic entrant sur un port spécifique vers un serveur interne.
Description de l’exercice
Vous avez un serveur web local sur 192.168.88.10:80 (HTTP).
Vous souhaitez le rendre accessible depuis le WAN sur le port 8080.
Étapes / Conseils
Utiliser l’action
dst-natdans la section NAT.Structure de règle typique :
/ip firewall nat add chain=dstnat \ dst-port=8080 protocol=tcp \ in-interface-list=WAN \ action=dst-nat to-addresses=192.168.88.10 to-ports=80Vérifier que l’interface WAN est correctement définie dans la liste (par ex.
in-interface-list=WANouin-interface=ether1si c’est votre interface WAN).Éventuellement, créer une règle de filtrage pour autoriser le trafic ou vérifier que les politiques par défaut le permettent.
Vérification attendue
Depuis un appareil externe (hors du LAN), accéder à
http://<votre_ip_wan>:8080/.La page du serveur local 192.168.88.10 doit s’afficher.
3. Source NAT (Masquerade)
Objectif: Permettre aux clients LAN d’accéder à Internet via le routeur.
Description de l’exercice
Supposons que votre LAN est sur le réseau 192.168.88.0/24.
Configurer une règle de masquage pour que les clients utilisent l’IP publique du routeur lorsqu’ils sortent sur Internet.
Étapes / Conseils
Utiliser
chain=srcnatetaction=masquerade./ip firewall nat add chain=srcnat out-interface-list=WAN action=masqueradeVous pouvez préciser le réseau LAN si nécessaire, par ex.
src-address=192.168.88.0/24.
Vérification attendue
Les appareils dans 192.168.88.0/24 peuvent faire un ping ou naviguer sur Internet.
Vérifier dans les logs du pare-feu ou via un site « Quel est mon IP ?» pour confirmer que l’IP publique utilisée est celle du routeur.
4. Bloquer des sites web spécifiques (Layer 7 Protocol)
Objectif: Démontrer l’usage du filtrage couche 7 (layer 7 protocol) pour bloquer certains sites web.
Description de l’exercice
Bloquer l’accès à
example.comdepuis votre LAN.Les autres sites doivent rester accessibles.
Étapes / Conseils
Aller dans IP → Firewall → Layer7 Protocols.
Créer un pattern Layer7 nommé
BlockExampleavec une regex pour matcherexample.comdans les requêtes HTTP :^.*example\.com.*$Ensuite, créer une règle de filtrage :
/ip firewall filter add chain=forward \ layer7-protocol=BlockExample \ action=drop \ comment="Block example.com"Note : Pour le HTTPS, le filtrage par pattern est plus complexe à cause du chiffrement (le simple L7 peut ne pas suffire).
Vérification attendue
Depuis le LAN, tenter d’accéder à
http://example.comdoit échouer (time out).Les autres sites sont accessibles.
5. N’autoriser qu’une adresse IP distante pour accéder au SSH du routeur
Objectif: Restreindre l’accès SSH au routeur à une seule IP de confiance.
Description de l’exercice
Autoriser l’accès SSH (TCP 22) uniquement depuis 203.0.113.50.
Bloquer les tentatives SSH depuis toutes les autres sources.
Étapes / Conseils
Travailler dans la chaîne input (IP → Firewall → Filter Rules).
Créer une règle pour autoriser le SSH depuis 203.0.113.50 :
/ip firewall filter add chain=input \ src-address=203.0.113.50 \ protocol=tcp port=22 \ action=accept \ comment="Allow SSH from my trusted IP"Créer ensuite une règle pour bloquer les autres connexions SSH :
/ip firewall filter add chain=input \ protocol=tcp port=22 \ action=drop \ comment="Block SSH from everyone else"Placer ces règles en haut de la liste pour qu’elles soient traitées avant les règles générales d’autorisation.
Vérification attendue
Depuis 203.0.113.50, la connexion SSH au routeur fonctionne.
Depuis d’autres IP, la connexion SSH sur le port 22 est bloquée.
6. Journaliser (log) les paquets bloqués
Objectif: Apprendre à consigner dans les logs le trafic bloqué par certaines règles de filtrage.
Description de l’exercice
Ajouter une règle pour bloquer les pings (ICMP) depuis un réseau (par ex. 10.10.10.0/24).
Journaliser chaque paquet bloqué.
Étapes / Conseils
Créer une règle de filtrage dans la chaîne input avec
action=drop.Activer l’option
log=yes:/ip firewall filter add chain=input \ src-address=10.10.10.0/24 \ protocol=icmp \ action=drop log=yes log-prefix="ICMP DROP"Surveiller l’onglet Log dans Winbox ou faire
/log printen CLI.
Vérification attendue
Faire un ping depuis le réseau 10.10.10.0/24.
Les logs doivent afficher « ICMP DROP » avec les détails de la source et de l’interface.
7. Limiter les connexions (Prévenir un comportement DoS)
Objectif: Bloquer ou limiter les connexions d’une IP si elle crée trop de connexions simultanément.
Description de l’exercice
Si une IP unique ouvre plus de 10 nouvelles connexions TCP par seconde vers votre serveur (192.168.88.10), bloquer le trafic de cette IP.
Étapes / Conseils
Utiliser
connection-limitoulimitdans la chaîne filter.Exemple de règle :
/ip firewall filter add chain=forward \ protocol=tcp dst-address=192.168.88.10 \ connection-limit=10,32 \ action=drop \ comment="Drop IPs creating more than 10 connections"Ajuster le second paramètre (32) selon le nombre maximal de connexions simultanées.
Vérification attendue
En faisant un test de création massive de connexions depuis une même IP, celles-ci doivent être bloquées.
Le trafic normal n’est pas impacté.
8. Marquer et prioriser le trafic (Mangle)
Objectif: Utiliser des règles de mangle pour marquer certains paquets et ensuite prioriser ce trafic via des files (Queue).
Description de l’exercice
Marquer le trafic VoIP (SIP ou RTP) pour lui accorder une priorité plus élevée.
Créer ensuite une file (Queue) pour garantir une bande passante à ce trafic.
Étapes / Conseils
Identifier le protocole/les ports utilisés par votre application VoIP (par ex., SIP sur UDP 5060, RTP sur une plage spécifique).
Dans IP → Firewall → Mangle:
/ip firewall mangle add chain=forward \ protocol=udp port=5060 \ action=mark-connection \ new-connection-mark=voip_conn \ passthrough=yes/ip firewall mangle add chain=forward \ connection-mark=voip_conn \ action=mark-packet \ new-packet-mark=voip_packet \ passthrough=noDans Queues → Queue Tree (ou Simple Queues), donner une priorité plus élevée aux paquets marqués
voip_packet.
Vérification attendue
Observer le trafic dans l’onglet Queues.
Vérifier que les paquets marqués
voip_packetont une priorité supérieure ou une bande passante garantie.
9. Liste d’adresses IP pour blocage global
Objectif: Utiliser une liste d’adresses (address list) afin de bloquer (ou autoriser) facilement plusieurs plages d’IP.
Description de l’exercice
Créer une liste d’adresses nommée
BlockList.Ajouter deux sous-réseaux (ex. 192.168.100.0/24 et 192.168.101.0/24) à cette liste pour les bloquer.
Étapes / Conseils
Dans IP → Firewall → Address Lists:
/ip firewall address-list add list=BlockList address=192.168.100.0/24 /ip firewall address-list add list=BlockList address=192.168.101.0/24Dans Filter Rules:
/ip firewall filter add chain=forward \ src-address-list=BlockList \ action=drop \ comment="Drop traffic from BlockList"Si vous voulez bloquer l’accès au routeur lui-même :
/ip firewall filter add chain=input \ src-address-list=BlockList \ action=drop \ comment="Drop input from BlockList"
Vérification attendue
Les appareils dans 192.168.100.0/24 ou 192.168.101.0/24 ne peuvent plus joindre le LAN ni le routeur.
10. Bonus : Règles de pare-feu basées sur l’horaire
Objectif: Autoriser ou bloquer l’accès selon un horaire (par exemple, interdire la navigation web à certaines heures).
Description de l’exercice
Bloquer l’accès HTTP à Internet depuis le LAN entre 20h00 et 8h00.
Autoriser le trafic en dehors de ces heures.
Étapes / Conseils
Dans Filter Rules, utiliser le paramètre
time:/ip firewall filter add chain=forward \ protocol=tcp dst-port=80 \ src-address=192.168.88.0/24 \ time=20h-8h,sun,mon,tue,wed,thu,fri,sat \ action=drop \ comment="Block HTTP at night"Noter que l’horaire est en format 24h.
Placer cette règle en haut pour qu’elle soit prioritaire.
Vérification attendue
Tester l’accès web à 19h59 (devrait fonctionner) puis à 20h01 (devrait être bloqué).