Infrastructure technique

L’infrastructure de l’association est répartie entre un hébergement de services en datacenter dans des conteneurs Docker et un cluster auto-hébergé nommé affectueusement « Kity ». L’histoire de l’infrastructure est détaillée sur notre blog, y compris les motivations qui ont mené en 2020 à la création de Kity.

L’association est également dotée de serveurs hébergés en datacenter ou chez ses membres pour les tâches de supervision et de sauvegarde.

Contraintes

Libertés fondamentales

L’infrastructure doit exploiter exclusivement du logiciel libre : tous les OS doivent être libres, les paquets déployés libres, les logiciels utilisés libres, et les services administrables avec du logiciel libre.

Tous les services doivent être respectueux de la vie privée. Les logiciels employés ne doivent pas contenir de code de tracking par une tierce partie, et tous les outils de rapport de bug ou suivi par tiers doivent être désactivables, et désactivés.

Sécurité de l’infrastructure

La confidentialité des données est essentielle. Toutes les données échangées, entre les clients et serveurs, entre les serveurs, et vers d’autres infrastructures (fédérations, sauvegarde, etc.) doivent être chiffrées en transport, ainsi que les interlocuteurs authentifiés.

Aucune garantie forte d’intégrité n’est requise en dehors des bonnes pratiques raisonnables. Concernant les services proposant d’éventuels outils de trésorerie ou comptabilité, l’intégrité doit être garantie au sens de la loi Finance. À ce titre, des sauvegardes plus régulières sont effectuées, avec une historisation des sauvegardes, pour assurer la confirmation au besoin d’un défaut d’intégrité ; aucune détection automatique n’est en place.

La disponibilité des données est une contrainte modérée. Aucune haute disponibilité au sens de la continuité d’activité n’est requise. La perte de données sur plus de 4 h est toutefois inacceptable et doit être traitée par un plan de sauvegarde. La reprise d’activité doit pouvoir être effectuée en assurant du 99.9 (jusqu’à une journée d’indisponibilité) en cas de perte d’un hôte ou de défaillance d’un service et en assurant du 99. (jusqu’à trois jours d’indisponibilité) en cas d’incident majeur.

Hébergement

Type d’hébergement

Idéalement, pour répondre à ces objectifs, TeDomum devrait s’auto-héberger jusqu’au niveau physique et exploiter la connexion de FAI respectueux. La faisabilité technique n’est toutefois pas évidente et le choix est fait de louer de l’infrastructure.

Afin de limiter les intervention en centre de données et le besoin de disponibilité ne justifiant pas une infrastructure réseau et une redondance en dessous de la couche 3, le choix d’un prestataire IaaS baremetal est fait.

Afin de garder une indépendance en cas d’incident, un serveur demeure auto-hébergé et assure la sauvegarde régulière de l’ensemble du parc.

Virtualisation

L’utilisation de la virtualisation pour isoler à des fins de maintenabilité et de sécurité n’est pas discutée. La technologie de virtualisation a évolué avec l’infrastructure. En l’état, afin de limiter les ressources consommées, le budget, et la maintenabilité, le choix de Docker est fait, accompagné de Docker Compose pour l’administration.

Pour assurer la confidentialité des données critiques en cas de compromission d’un service retenant moins d’attention, les services sont isolés sur des hôtes séparés par niveau de criticité : « administration », « sensible », « générique ».

Réseau

L’infrastructure réseau repose essentiellement sur le modèle des fournisseurs IaaS choisis. Par serveur, une adresse IP d’administration permet la connexion à l’hôte par l’équipe TeDomum. D’autres adresses sont configurées pour exposer les services, en limitant toutefois le nombre d’adresse afin de borner les coûts.

Le routage est laissé au soin du fournisseur, même entre les hôtes. Les hôtes de l’infrastructure communiquent entre eux via des tunnels IPSec.

Stockage

L’ensemble du stockage est local aux serveurs. Les données autres que les paquets système de l’hôte sont stockées dans une partition chiffrée par LUKS et déchiffrée manuellement au démarrage de l’hôte.

Cette section contient les pages suivantes :