Réseaux : les clés pour automatiser la migration entre deux firewalls
Remplacer les firewalls est une opération risquée, car une fausse manipulation peut engendrer des failles de sécurité. La solution consiste à automatiser la procédure.
La migration d’un firewall vers un modèle plus récent est un cas d’usage qui justifie à lui seul l’automatisation de l’administration réseau. La procédure consiste à prendre chaque règle existante sur l’équipement d’origine et à l’adapter sur le nouveau. Mais, si elle est faite à la main, cette opération subira dans la plupart des cas des erreurs de saisie qui entraîneront de subtiles défaillances dans les applications et des problèmes de sécurité.
En général, le firewall historique fonctionne avec des règles qui précisent quelle adresse source avec quel numéro de port doit communiquer avec quelle adresse de destination, sur quel numéro de port pour quel protocole. Un firewall plus moderne, en revanche, va introduire des paramètres supplémentaires, comme par exemple lesquelles de ses interfaces utiliser pour les communications entrantes ou sortantes pour quels objets. Les objets sont les noms qui correspondent à un serveur, à un réseau, à un service applicatif ou à un groupe d’utilisateurs. Adapter les paramètres d’origine et en ajouter d’autres est fastidieux, mais comme il s’agit d’une tâche répétitive, elle est automatisable.
La clé : enregistrer les données dans un tableau Excel et l’exploiter en Python
Dans un tel cas, la première étape du processus d’automatisation consiste à extraire les objets que connaît le firewall d’origine, les informations relatives à ses interfaces, puis les règles. Nous importons ces informations dans un tableau Excel, de sorte que chaque type de données corresponde à une colonne en particulier. Notons que cette importation est à faire à la main, mais on ne la fait qu’une seule fois.
L’intérêt de ranger ces informations ainsi est que notre langage d’automatisation est Python et qu’il existe pour Python une bibliothèque OpenPyXL qui permet de manipuler les données stockées dans des fichiers Excel. Cette bibliothèque permet d’écrire trois scripts qui vont enrichir notre tableau Excel :
- Déterminer pour chaque objet l’adresse IP ou la plage d’adresses IP qu’il utilise.
- À partir de l’adresse IP d’un objet, déterminer quelle interface est utilisée dans le firewall.
- Pour chaque règle de sécurité, déterminer au niveau des interfaces dans quelle direction se fait la communication
Il reste ensuite à écrire un dernier script qui se sert de toutes les informations contenues dans ce tableau pour réécrire toutes les règles d’origine au format du nouveau firewall.
La difficulté : gérer les exceptions
Dans ce scénario, l’effort à faire est de gérer les exceptions, ou plutôt de faire le ménage dans les éléments qui s’écartent du modèle normal. Il s’agit de déclarer comme « objets inactifs » tous les objets auxquels aucune interface n’est associée ; on prendra la précaution d’enregistrer leurs informations dans un fichier à part. On peut aussi découvrir des références qui valent pour des objets multiples, alors qu’un seul serveur ou qu’un seul service les exploite. Dans ce cas, il faut soit créer les objets qui manquent, soit décider qu’il s’agit là aussi d’objets inactifs.
Sur le terrain, cette automatisation permet d’accélérer par vingt l’exécution d’un scénario de migration entre firewalls. Cependant, il est important de valider la configuration résultante dans le pare-feu de destination pour s’assurer qu’il fait bien ce qu’il est censé faire. La gestion des exceptions précédentes est susceptible de gérer des erreurs. En général, il faut migrer plusieurs firewalls, que ce soit au siège ou au travers des différentes succursales d’une entreprise. Le principe est de migrer et de valider un firewall, l’un après l’autre. À chaque itération, il suffit d’implémenter dans les scripts la prise en charge des erreurs possibles, de sorte que ceux-ci deviennent de plus en plus fiables et qu’il n’y ait rapidement plus d’erreur.
Un autre bénéfice de cette automatisation est l’amélioration globale de la sécurité, puisque les nouvelles règles définissent plus clairement quelles interfaces sont utilisées, que les objets inactifs ont été éliminés des autorisations accordées et que le nombre plus réduit d’objets en production permet aux équipes de se concentrer sur l’essentiel.