4. Règles de filtrage communes à toutes les configurations

La mise en place du filtrage réseau sur les équipements doit répondre à deux principes.

  • Comme les équipements d'interconnexion mis en œuvre dans ces travaux pratiques délimitent des périmètres de faible dimension, on a une connaissance exhaustive des flux réseaux sur le système. On adopte donc la règle : tout trafic réseau non autorisé est interdit.

  • Pour exploiter au mieux les fonctionnalités offertes par le noyau Linux, on s'appuie sur le suivi de communication (stateful inspection) pour obtenir un filtrage réseau le plus efficace possible. On cherche donc à suivre la règle d'or d'écriture des règles de filtrage qui consiste à décrire le plus précisément possible le premier paquet qui doit être enregistré dans la table de suivi de communication. Cette règle de description du premier paquet doit être placée après celle(s) qui laisse(nt) passer les flux réseau déjà enregistrés dans la machine d'état de suivi de communication.

1.

Quelle est la syntaxe de la commande iptables sur la politique par défaut à appliquer sur les chaînes de la table netfilter pour respecter le premier principe de filtrage énoncé ci-dessus ?

De façon très classique, on consulte les pages de manuels de la commande iptables et on recherche le mot clé policy. La stratégie retenue suppose que l'on implante règles d'autorisation des flux réseaux valides et que tout autre trafic soit éliminé. La politique par défaut à appliquer sur les trois chaînes est donc : DROP.

La section «9.3. Commandes» du Tutoriel iptables donne aussi la syntaxe de configuration de cible par défaut pour les chaînes élémentaires : INPUT, FORWARD et OUTPUT.

2.

Quelle est la syntaxe de la commande iptables qui autorise le trafic réseau déjà enregistré dans la machine d'état de suivi de communication sur les chaînes INPUT et OUTPUT ?

La recherche de la correspondance state dans les pages de manuel de la commande iptables permet de sélectionner les états ESTABLISHED et RELATED à appliquer sur les chaînes.

La section «7.3. États de l'espace utilisateur» du Tutoriel iptables décrit les correspondances entre les états et les flux réseau.

3.

À partir des règles de filtrage précédentes, est-il possible d'émettre ou de recevoir du trafic réseau non enregistré dans la machine d'état de suivi de communication ?

Faire des tests ICMP, DNS et HTTP. Conclure et justifier.

4.

Quelle est la syntaxe de la commande iptables qui autorise le trafic réseau depuis (chaîne OUTPUT) et vers (chaîne INPUT) l'interface de boucle locale de l'équipement ?

Pour que les processus locaux au système puissent communiquer entre eux via la pile de protocole TCP/IP, il est essentiel d'autoriser le trafic sur l'interface de boucle locale lo. La recherche de la correspondance state dans les pages de manuel de la commande iptables permet de sélectionner l'état NEW pour autoriser le premier paquet depuis et vers cette interface. Tous les autres paquets devront correspondre aux règles déjà écrites ci-dessus.

5.

Quelle est la syntaxe de la commande iptables qui autorise le trafic sortant sur l'interface LAN en sortie du système ?

Comme pour la question précédente, les processus locaux au système doivent pouvoir émettre du trafic via la pile de protocole TCP/IP. Il est donc préférable d'autoriser le trafic sortant sur l'interface LAN. On utilise à nouveau l'état NEW pour autoriser le premier paquet depuis l'interface. Tous les autres paquets devront correspondre aux communications déjà enregistrées dans les tables de suivi.

6.

Quelle est la syntaxe de la commande iptables qui autorise le trafic ICMP en entrée du système en limitant le nombre des nouvelles requêtes à 5 par minute ?

Interdire tout trafic ICMP est une très mauvaise idée du point de vue administration réseau. Pour autant, il est très facile de se prémunir contre les tentatives de saturation du trafic sur les interfaces en limitant le nombre de requêtes simultanées en entrée sur toutes les interfaces. Dans un premier temps on se contente de cette règle unique très simple même s'il est judicieux de valider les types et les codes des messages ICMP. Dans un deuxième temps, on distinguera les types de messages ; voir Section 7.1, « Protocole ICMP ».

On peut qualifier le fonctionnement de la limitation de trafic à l'aide des commandes ping et hping3 à partir d'un hôte distant.

Une fois ces règles basiques en place, on peut aborder les filtrages réseau spécifiques à la topologie de travaux pratiques.