420-2Q5-AA - Réseaux Locaux Help

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.

  1. 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.

  2. É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=drop
    • Placer 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.

  3. 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.

  1. 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.

  2. Étapes / Conseils

    • Utiliser l’action dst-nat dans 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=80
    • Vérifier que l’interface WAN est correctement définie dans la liste (par ex. in-interface-list=WAN ou in-interface=ether1 si 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.

  3. 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.

  1. 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.

  2. Étapes / Conseils

    • Utiliser chain=srcnat et action=masquerade.

      /ip firewall nat add chain=srcnat out-interface-list=WAN action=masquerade
    • Vous pouvez préciser le réseau LAN si nécessaire, par ex. src-address=192.168.88.0/24.

  3. 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.

  1. Description de l’exercice

    • Bloquer l’accès à example.com depuis votre LAN.

    • Les autres sites doivent rester accessibles.

  2. Étapes / Conseils

    • Aller dans IP → Firewall → Layer7 Protocols.

    • Créer un pattern Layer7 nommé BlockExample avec une regex pour matcher example.com dans 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).

  3. Vérification attendue

    • Depuis le LAN, tenter d’accéder à http://example.com doit é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.

  1. 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.

  2. É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.

  3. 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.

  1. 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é.

  2. É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 print en CLI.

  3. 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.

  1. 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.

  2. Étapes / Conseils

    • Utiliser connection-limit ou limit dans 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.

  3. 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).

  1. 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.

  2. É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=no
    • Dans Queues → Queue Tree (ou Simple Queues), donner une priorité plus élevée aux paquets marqués voip_packet.

  3. Vérification attendue

    • Observer le trafic dans l’onglet Queues.

    • Vérifier que les paquets marqués voip_packet ont 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.

  1. 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.

  2. É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/24
    • Dans 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"
  3. 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).

  1. 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.

  2. É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.

  3. Vérification attendue

    • Tester l’accès web à 19h59 (devrait fonctionner) puis à 20h01 (devrait être bloqué).

Last modified: 26 May 2025