Le pare-feu de MiNET s'appelle Kickass et son adresse IP est 192.168.102.3
.
D'un point de vue réseau, il est situé entre le routeur de MiNET et le routeur de la DISI.
Le pare-feu permet de faire du filtrage au niveau des couches réseau, transport et applicative. Cela nous permet d'augmenter la sécurité sur notre réseau en contrôlant « finement » ce qui en entre et ce qui en sort.
Les pare-feux matériel (c'est-à-dire des boîtiers spécialisés comme ceux vendus par Checkpoint, Juniper, Cisco, etc.) sont très utilisés en entreprise, notamment pour la facilité de configuration et le support qu'ils fournissent. Ils sont donc relativement chers et très souvent propriétaires, ce qui rend le choix plus compliqué, surtout pour une association d'amateurs.
En revanche, un pare-feu logiciel comme Netfilter a le mérite d'être libre et très flexible, tout en correspondant davantage à l'état d'esprit de MiNET vis-à-vis de l'apprentissage.
Netfilter est le pare-feu intégré au noyau Linux. Il est géré depuis l'espace utilisateur via les utilitaires iptables (pour IPv4) et ip6tables (pour IPv6). Vous pouvez (et devriez) vous amuser à le configurer sur votre machine personnelle. De nombreux exemples de configurations sont disponibles sur Internet et il n'est pas très difficile de réaliser une première configuration simple et relativement efficace.
Kickass est invisible sur le réseau.
Cela est possible car il possède une carte fibre avec deux interfaces, une vers notre routeur (eth2
) et une autre vers celui de la DISI (eth0
). Les interfaces sont en mode promiscuité (promiscuous), ce qui leur permet d'accepter toutes les trames ethernet qu'elles reçoivent.
Ces deux interfaces sont reliées par un pont (bridge) configuré avec le service /etc/init.d/bridge
. Pour plus d'informations sur les ponts, voir ici par exemple.
Enfin, l'interface eth1
correspond à l'interface dans le VLAN d'administration de la prod. L'accès est restreint car il s'agit de l'une des machines les plus sensibles à MiNET.
L'interface eth3
est non utilisée et éteinte.
Deux scripts de lancement sont disponibles dans /etc/init.d
:
firewall.v4
firewall.v6
Chacun peut être utilisé avec start
, stop
, flush
et force-reload
.
Les scripts de configuration du pare-feu sont disponibles dans /etc/iptables
. Vous y trouverez les répertoires suivants :
blacklist.v4
et blacklist.v6
, nos listes noires respectivement pour IPv4 et IPv6. Rentrez une adresse IP par ligne et elle sera complètement bloquée.De bonnes introductions au fonctionnement des règles iptables sont par exemple cet article du wiki ainsi que cette page du wiki Arch Linux.
Pour finir, le contenu du répertoire /etc/iptables
est « gité » et doit le rester ! Merci d'y penser et d'utiliser des messages de commit les plus clairs possibles.
Attention Toujours éditer les fichiers depuis un Linux, et éviter l'interface Web de Gitlab, car les terminaisons de lignes CRLF ne sont pas bien gérées par iptables.
Notre pare-feu est stateful (par opposition à un pare-feu stateless), c'est-à-dire qu'il est capable de maintenir un suivi de l'état des connexions (TCP, ICMP, etc.) en distinguant les quatre catégories suivantes de trafic : NEW, ESTABLISHED, RELATED et INVALID. Pour y arriver, il écrit les connexions en RAM dans une table qui s'appelle la conntrack. Plus cette conntrack contient d'entrées, plus elle grossit en mémoire. Si cette table est pleine, les nouvelles connexions sont rejetées. C'est un problème que nous avons déjà rencontré à plusieurs reprises : nous avons donc des graphiques et triggers sur Zabbix afin de surveiller la conntrack. En cas de problème à ce niveau-là, regardez notamment ceci : c'est très explicite ;)
La taille de la conntrack est fixée avec sysctl dans le fichier de configuration /etc/sysctl.conf
. Il est également possible de jouer sur d'autres valeurs comme la durée de timeout des connexions TCP établies maintenues par Netfilter.
iptables -nvL nstat -asz
Attention La carte fibre de Kickass est vieille de 2003. Elle est sûrement un brin à incriminer en cas de plantage…
You've been warned!
En cas de problème « physique » sur Kickass (notamment au niveau de la carte fibre), on peut faire confiance au pare-feu de la DISI pendant quelques jours le temps de remplacer le matériel. Il suffit alors de brancher la fibre d'uplink directement sur notre routeur.