4. Protection de base des routeurs Hub et Spoke

Le but de cette section est de mettre en place le routage avant de passer aux fonctions de filtrage réseau proprement dites. Elle correspond à la vue Topologie PPP et routage.

Voici une liste de fonctions de protection à mettre en œuvre sur tous les types de routeurs.

Protection contre l'usurpation des adresses sources, rpfilter, BCP38

Ces fonctions de protection comprennent une partie noyau ainsi qu'une partie filtrage avec le module rpfilter à implanter dans la table raw qui assure un filtrage sans état. Voir Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing.

Les tests de validation de ces mécanismes peuvent se faire à l'aide de la commande hping3. Les résultats doivent être visibles aussi bien dans les journaux systèmes que sur les compteurs des règles de la table raw. En avant pour la chasse aux martiens !

Protection contre les dénis de services ICMP, module netfilter limit

Les routeurs doivent s'assurer que le volume de trafic qui est présenté en entrée est compatible avec un fonctionnement nominal des services.

Protection contre les robots de connexion au service SSH, fail2ban

Les routeurs ont besoin d'un accès d'administration à distance via SSH. Pour autant, cet accès doit être protégé contre les tentatives d'intrusion par dictionnaire de couples d'authentifiants.

L'outil fail2ban fourni avec le paquet du même nom introduit une chaîne de filtrage dédiée à ces tentatives d'intrusion.

4.1. Protection contre l'usurpation d'adresse source

Q7.

Comment afficher la liste des règles de filtrage de la table raw dédiée au filtrage sans état (stateless) ?

Rechercher dans les pages de manuels de la commande iptables les options relatives aux listes et aux compteurs.

La visualisation des compteurs de correspondance des règles de filtrage est indispensable pour qualifier le fonctionnement du filtrage

Q8.

Comment activer la protection contre l'usurpation des adresses sources au niveau du noyau ?

Rechercher les informations relatives à la fonction Reverse Path Forwarding du noyau Linux. Identifier les rôles des 3 valeurs possibles de cette fonction.

La documentation est à cette adresse : Kernel IP sysctl.

Q9.

Comment enregistrer les tentatives d'usurpation d'adresses dans les journaux système ?

Rechercher les entrées de l'arborescence /proc relatives aux paquets “martiens“.

Rechercher aussi le paramètre relatifs aux “martiens“ dans le fichier /etc/sysctl.conf.

Q10.

Comment valider la fonction de blocage des tentatives d'usurpation d'adresses entre le routeur Hub et les routeurs Spoke ?

Installer le paquet hping3 sur le routeur Hub.

Rechercher dans les pages de manuels de la commande hping3 les options qui permettent de générer du trafic ICMP avec des adresses source aléatoires à destination d'un conteneur hébergé sur un routeur Spoke.

Q11.

Comment filtrer les tentatives d'usurpation d'adresses source au plus tôt de façon à limiter le coût de traitement de ces paquets falsifiés sur le système ?

Identifier le nom de la table de filtrage sans état et rechercher la fonction associée au filtrage des adresses sources usurpées. Rechercher dans les pages de manuels iptables-extensions les informations relatives au module rpfilter.

Ajouter une règle spécifique dans la table de traitement sans état pour les protocoles IPv4 et IPv6.

Q12.

Comment caractériser les nouvelles règles de filtrage entre le routeur Hub et les routeurs Spoke ?

Pour les tests IPv4, il suffit de reprendre les mêmes tests que ceux effectués plus haut avec la commande hping3.

Installer le paquet thc-ipv6 sur le routeur Hub pour disposer des outils de tests spécifiques au protocole IPv6.

Rechercher dans les pages de manuels de la commande atk6-thcping6 les options qui permettent de générer du trafic ICMP avec une adresse source falsifiée à destination d'un conteneur hébergé sur un routeur Spoke.

4.2. Protection contre les dénis de service ICMP

Q13.

Comment peut-on se protéger contre un nombre de sollicitations ICMP trop important ?

Rechercher dans le guide Tutoriel iptables la correspondance Limit qui permet de définir un seuil au delà duquel les nouveaux flux réseau ne sont plus acceptés.

Il faut ajouter une règle spécifique au protocole ICMP après celle qui assure le traitement des flux déjà enregistrés dans les tables de suivi d'état (Stateful).

Q14.

Comment qualifier le fonctionnement des règles de limitation du nombre de nouvelles requêtes ICMP ?

Rechercher les options de la commande hping3 qui permettent de générer des flux ICMP en utilisant des adresses IPv4 source aléatoires.

Attention ! Il faut positionner la politique par défaut en mode "tout ce qui n'est pas autorisé est interdit“ sur le routeur cible le temps du test de qualification.

4.3. Protection contre les robots de connexion au service SSH

Q15.

Quel est la fonction du paquet fail2ban ?

Afficher la description du paquet fail2ban après l'avoir installé.

Q16.

Quel est le numéro de port utilisé par le service SSH sur les routeurs ?

Il est important de connaître les caractéristiques du service qui doit être surveillé par fail2ban. Rechercher dans la liste des ports réseau ouverts celui qui concerne le service SSH.

Q17.

Quel est le fichier de configuration du service SSH qui permet de définir le numéro de port en écoute avec le protocole TCP ?

Repérer le répertoire qui contient les éléments de configuration du service SSH.

Q18.

Quels sont les deux fichiers de configuration principaux fournis à l'installation du paquet fail2ban ?

Rechercher dans l'arborescence des fichiers de configuration, les informations relatives aux traitements assurés en cas de détection d'erreurs de connexion à n'importe quel service, puis les informations spécifiques au service SSH.

Q19.

Comment caractériser le fonctionnement du service fail2ban ?

Si le service a été installé et configuré sur un routeur Spoke, il est possible de lancer plusieurs tentatives de connexion SSH depuis le routeur Hub en se trompant de mot de passe.

On peut alors afficher les règles de filtrage iptables et consulter l'état de la prison fail2ban.