L’Afnic (Association Française pour le Nommage Internet en Coopération) assure la gestion du registre du domaine internet national de premier niveau « .fr » (plus de 4 millions d’enregistrements) et de plusieurs autres domaines de premier niveau des départements et territoires d’outre-mer, ainsi que d’une quinzaine de domaines de premier niveau dits « génériques ». En tant que gestionnaire du registre du « .fr », l’Afnic est certifiée ISO 27001 depuis 2016, et a été désignée Opérateur de Service Essentiel en 2019 (opérateur fournissant un service tributaire des réseaux et des systèmes d’information et essentiel au maintien d’activités sociétales ou économiques critiques). Cela induit d’importantes obligations en matière de sécurité et de conformité.
Pour y répondre plus efficacement, l’Afnic a choisi de s’appuyer sur la solution française open source de gestion des infrastructures systèmes Rudder.
- L’Afnic utilise Rudder pour déployer et mettre à jour en temps réel ses règles de sécurité sur l’ensemble de son parc de serveurs.
- Rudder est apprécié pour sa fiabilité : « l’équipe est plus sereine et les conséquences d’éventuelles erreurs humaines sont réduites ».
- La traçabilité fournie par Rudder facilite les audits de conformité.
- La prise en main de l’outil est simple et intuitive : pas d’« usine à gaz », l’Afnic reste autonome sur la plupart des opérations.
Fiabiliser l’industrialisation sur le plan de la conformité
L’infrastructure de l’Afnic compte plusieurs centaines de nœuds (un nœud est un système physique ou cloud tel qu’un serveur, un ordinateur…), dont le déploiement a été industrialisé grâce à des modèles de machine (templates). « C’est idéal pour standardiser un parc. Le souci, c’est qu’une fois en production, certaines machines peuvent voir leur configuration dériver ; ceci nous obligeait à mettre à jour les templates tous les mois et à réaliser des campagnes pour vérifier les configurations régulièrement. Nous cherchions un outil capable d’actualiser et déployer nos règles de configuration sécurisée de manière continue, autrement que via l’application de templates, et sans devoir passer manuellement sur les machines. »
Régulièrement auditée (en particulier dans le cadre de la certification ISO 27001), l’Afnic éprouvait en outre des difficultés à apporter la preuve de la bonne application des règles de sécurité : « Nous utilisons l’outil d’orchestration Ansible pour provisionner les machines et y appliquer des templates. Ansible est très efficace pour exécuter des commandes, mais il n’y a aucun reporting. À moins d’explorer les logs, une défaillance dans l’application du template peut nous échapper. D’autre part, cet outil est conçu pour déployer des machines, pas pour faire perdurer leur état dans le temps. Or, certaines actions peuvent être source de problèmes : cloner une machine sans être sûr que la configuration soit la bonne ou la dernière en date, par exemple. »
C’est justement ce que Rudder apporte à l’Afnic : le maintien en condition opérationnelle et de sécurité. « Il n’est plus nécessaire de se connecter directement aux machines : Rudder fonctionne de manière centralisée, on pousse nos règles et elles sont déployées, vérifiées et respectées. Si ça “dérive’’, suite à une action humaine ou à la mise à jour d’une application, Rudder lève une alerte et se charge de rétablir la configuration de la machine dans l’état requis. C’est du temps gagné, et aussi beaucoup plus de sérénité pour l’équipe. »
Accessoirement, Rudder a aidé l’Afnic à mettre en œuvre une politique de “minimalisation’’ : « Lorsqu’on installe un serveur Linux, par défaut il embarque des services qui ne nous sont pas nécessaires. Le superflu, désormais on le retire et c’est bénéfique tant pour les performances que pour la sécurité. »
Un outil simple à prendre en main
Rudder est une solution made in France, ce qui avait tout pour plaire à l’Afnic. Néanmoins, l’Afnic n’a pas choisi Rudder pour cette seule raison. Comparativement à d’autres solutions du marché, Rudder présentait l’avantage d’être simple à prendre en main et à utiliser, notamment grâce à son interface graphique ergonomique, qui permet de concevoir les règles et fait office de tableau de bord. « Auparavant, on utilisait des applications d’inventaire. Avec Rudder, on a un aperçu de l’ensemble du parc et la possibilité de créer des groupes dynamiques pour rassembler les machines qui doivent être configurées de manière similaire. En un coup d’œil, on voit tous les éléments relatifs à la conformité et l’historique des changements récents. Via l’API Rest, qui permet d’extraire des données mais aussi de piloter en ligne de commande les différentes fonctionnalités de Rudder, nous avons développé un script qui va récupérer les infos et produit un graphe avec l’historique de la conformité pour notre RSSI. »
La définition des règles est également très intuitive : « Pas besoin d’apprendre un nouveau langage : un administrateur peut créer des règles assez facilement une fois qu’il a compris la logique. » Côté architecture, c’est tout aussi simple : « Pour l’instant, Rudder tient sur un seul serveur, qui est en liaison avec l’agent installé sur chacune des machines du parc. On pourra ajouter des relais plus tard, sans que ça ne devienne une usine à gaz. Idem pour les mises à jour de Rudder, que l’on effectue seuls sans s’inquiéter. » Si bien que la standardisation apportée par Rudder, initialement adopté pour le périmètre de l’infrastructure qui gère le .fr a été étendue aux autres domaines de premier niveau. Pour l’Afnic, la simplicité c’est « l’assurance de garder le contrôle, de ne pas être dépendant d’un prestataire ».
Par ailleurs, Rudder fonctionne sur un parc hétérogène, en termes de système d’exploitation et de versions des distributions. « Nous avons maintenant un système de déploiement de machines assuré par Ansible, qui appelle les API Rest de Rudder pour y enregistrer les nouvelles machines. Une fois placé dans le bon groupe, grâce aux critères préalablement définis pour former ces groupes dynamiques de machines, le nouveau serveur hérite de toutes les propriétés du groupe et les règles sont automatiquement appliquées. Impossible d’oublier quoi que ce soit, cela fiabilise le process. Même en cas de coupure réseau, Rudder retente 5 minutes après, jusqu’à ce que la machine soit correctement configurée. Quoiqu’il arrive, on retombe toujours sur nos pattes, et ça, c’est très rassurant. »
Robustesse et évolutivité
« Nous avons une vingtaine de règles au total, avec quelques règles de test. Nous avons aussi des directives pour mettre à jour un package, vérifier qu’un service tourne… Pour les droits d’accès sur les machines, on utilise un moteur de template compatible pour créer un template de fichiers de configuration qui est ensuite appliqué par Rudder. »
Depuis l’installation de Rudder il y a un an et demi, l’Afnic a étendu son utilisation à ses architectures microservices sous Kubernetes. Sans souci particulier : « Les noeuds Kubernetes sont gérés par Rudder comme une machine physique ou une VM. » Et, quoiqu’il arrive, l’Afnic peut compter sur un support réactif : « Nous sommes globalement autonomes : on demande à Rudder une révision chaque année, pour vérifier que tout est en ordre. Autrement, le support est efficace : on obtient rapidement une solution de contournement, si ce n’est une résolution complète immédiate du problème, ainsi que des conseils précieux pour comprendre pourquoi une règle ne s’applique pas comme on le souhaitait. »