Sécurité de l'infrastructure et des données
TL; DR
Raoull s'efforce de sécuriser les serveurs qui hébergent les services et les données. Les bonnes pratiques suivantes sont d'ores et déjà en œuvre :
- L'accès distant aux serveurs est restreint aux admins bénévoles,
- Les disques et leur sauvegardes sont chiffrés intégralement,
- Le réseau est segmenté.
Raoull prévoit un renforcement régulier de la sécurité des systèmes et réseaux. Ces changements arriveront progressivement dès les prochains mois et accompagneront l'ouverture des futurs services au plus grand nombre.
Préambule
Raoull a choisi d'héberger ses services localement dans des lieux de structures amies et partenaires. Basé en très grande partie sur du matériel de récupération, l'hébergement des services s'est faite progressivement en fonction des besoins, des possibilités et de nombreux imprévus. Les bonnes pratiques de sécurité ont été appliquées au mieux dès le début, avec une volonté de construire une infrastructure cible améliorée.
Après de nombreux tests et reconsidérations sur le matériel et les logiciels à utiliser, Raoull a finalisé son schéma d'infrastructure en octobre 2023.
L'infrastructure de Raoull est donc en cours de re-déploiement sur 2 sites (la MRES et le couvent des Clarisses), suivi d'un troisième site (chez Metalu) dans la foulée.
Voir la page topologie pour une illustration de cette infrastructure.
La première phase est le deploiment de l'infrastructure physique, l'organisation réseau avec segmentation par VLAN, et d'une solution de sauvegarde multi-site, prévu pour fin 2023. Le déploiement de cette infrastructure est détaillé et illustré dans la section construction de l'infrastructure Raoull multi-site - World Wide Welsh.
Les consolidations de sécurité logicielle seront mises en place dans la foulée dès début 2024 : utilisation d'un proxy inverse commun et synchronisé, restriction de l'accès Internet sortant, mises à jour régulières… La gestion de la sécurité étant une démarche continue, d'autres améliorations seront mentionnées en projet.
Cette page précisera l'état de réalisation des démarches.
Sécurité physique et chiffrement
Un petit pas pour l'homme, une chute d'un mètre pour le serveur.
Y'avait un câble qui traînait…
Nos serveurs sont installés dans des tiers lieux. Même si nous avons une très grande confiance envers ces structures partenaires et amies, la sécurité physique n'est pas garantie comme un centre de données classique. Le vol ou incident font parties des possibilités prises en compte dès leur installation.
En conséquence, Raoull a mis en place un chiffrement complet des serveurs physiques, les données restent ainsi protégées.
Le chiffrement complet des disques est mis en place avec l'outil et le format LUKS. Les machines virtuelles et les conteneurs n'ajoutent pas de couche de chiffrement, mais reposent sur des partitions chiffrées. Les VMs et conteneurs ne sont donc pas accessibles sans déchiffrement des disques.
Nos serveurs physiques tournent principalement sous Proxmox Virtual Environment ou Proxmox Backup Server. L'installation de Proxmox directement avec l'image disque (ISO) de la distribution ne propose pas le chiffrement.
Raoull installe donc Proxmox sur une distribution Debian dont les disques sont préalablement chiffrées avec LVM. Le thinpool de Proxmox est inclus dans les partitions chiffrées grâce à une installation de Debian avec un partitionnement particulier que Raoull a documenté. L'installation de Debian est automatisée avec un fichier preseed.
L'installation de Proxmox est effectuée avec un Ansible playbook des scripts de post installation.
Nous utilisons le serveur SSH Dropbear, exécuté à l'amorçage de la machine, pour déchiffrer des disques et permettre un redémarrage des serveurs à distance.
Accès
D'ici fin 2023, tous les serveurs de l'infrastructure seront derrière les routeurs installés sur chaque site. Aucun accès SSH ne sera exposé.
Le réseau serveur n'est accessible qu'après connexion à un VPN de type WireGuard.
Un accès wireguard est créé pour chaque admin de Raoull.
L'accès VPN permet d'accéder à tous les VLANs dont le VLAN de management du site. L'accès SSH aux serveurs Proxmox Virtual Environment et Proxmox Backup Server ne s'effectue que via un VLAN dédié au management des serveurs.
Les VMs et conteneurs sont accessibles avec SSH dans leur VLAN ou via les consoles des hyperviseurs PVE.
L'accès SSH se fait avec une paire de clef privée/publique, et l'authentification par mot de passe est désactivée. Cette restriction et l'absence d'exposition externe ne nous semblent pas justifier l'utilisation de fail2ban comme protection additionnelle.
Un rôle Ansible garantit une configuration conforme du serveur SSH.
De plus, pour garantir l'accès aux seuls admins autorisés et donc de la présence seule des clefs publiques SSH autorisées, un rôle Ansible permet de :
- Mettre à jour les clefs des admins : en ne déployant que les clefs mises à jour par l'équipe Raoull (et donc en supprimant les anciennes clefs)
- Gérer deux ensembles de clefs : pour les serveurs de test et les serveurs de prod
Cela permet de donner un accès progressif aux nouveaux membres, l'accès à la production étant restreinte aux admins déjà validés.
Les réunions ordinaires ou assemblés générales sont l'occasion d'effectuer une revue des accès et de lancer les rôles ansible pour mettre à jour les clefs, de retirer manuellement les accès aux VPNs.
Droits Admin
Les adhérent⋅es Raoull peuvent devenir admin des systèmes et applications si iels le souhaitent en deux étapes :
- Dès son arrivée dans la structure, le nouveau membre peut accéder aux environnements de lab et de tests.
- Après quelques semaines et validation aux consensus des admins existant, le nouveau membre peut accéder aux environnements de production.
Système
L'accès s'effectue par un compte administrateur⋅rice partagé, MAIS l'authentification repose sur des clefs individuelles.
Il n'y a actuellement pas de comptes nominatifs sur les systèmes d'exploitation.
Lorsque nécessaire, les mots de passe sont gardés dans un trousseau chiffré.
Applications
L'administration des applications est gérée selon l'application.
Si les droits peuvent être attribués à des comptes nominatifs, ceux-ci sont alloués de la même façon que les accès systèmes, d'abord pour les environnements de tests puis de production.
Lorsqu'un compte admin générique doit être utilisé, son mot de passe est gardé dans un trousseau chiffré.
Charte des admins
La charte des administrateur⋅rices est en cours de rédaction. Elle doit définir les attentes envers les admins concernant la protection des données sensibles et de la vie privée, ainsi que les principes de précautions à appliquer, les conséquences de leurs actions, et leurs responsabilités.
Bonnes pratiques
Il est demandé à chaque administrateur⋅rice de disposer d'un disque ou d'une partition chiffrée sur son ordinateur personnel si celui-ci est utilisé pour traiter des données sensibles.
Segmentation réseau
Chaque site dispose d'une organisation réseau identique, composée de plusieurs VLANs (réseau local virtuel).
Les VLANs sont gérés par le routeur / cœur de réseau / pare-feu. Par défaut, les communications inter VLAN ne sont pas autorisées, des ouvertures réseau spécifiques sont à réaliser si besoin.
Un VLAN dédié est attribué à chaque structure pour ses services hébergés. L'objectif est de contenir la propagation de logiciels malveillants et de limiter les mouvements latéraux en cas d'incident, tel qu'une faille de sécurité dans une application hébergée.
Au sein du VLAN de chaque structure, il n'y a pas de segmentation supplémentaire entre applications et données, les données sont liées directement aux VMs ou conteneurs.
En revanche, un VLAN frontal distinct existe pour les serveurs d'accès mutualisés : essentiellement un proxy inverse qui permet d'aiguiller les requêtes web entrantes vers les services de chaque structure.
Les hyperviseurs et serveurs de sauvegarde sont accessibles via un VLAN de gestion dédié. Une VM compromise ne doit pas pouvoir servir de rebond pour attaquer l'hyperviseur ou les sauvegardes.
Pour les machines disposant de cartes d'administrations à distances (eg IDRAC), les accès à ces cartes d'administrations sont également effectués via un VLAN dédié et isolé.
De manière générale, les interfaces d’administrations (IDRAC, SSH, web, …) ne sont accessibles que depuis un réseau non-public, uniquement accessible via VPN après authentification.
Certificats et PKI
Les certificats TLS pour les accès externes sont générés par Let's Encrypt avec protocole ACME.
Une gestion spécifique en cours de construction doit permettre la réplication de certificats entre proxy inverses en cas de bascule d'un service d'un site à l'autre.
Raoull ne dispose pas de PKI interne pour les chiffrements de flux à l'intérieur du réseau interne.
Résilience
Les sauvegardes des VMs et conteneurs sont réalisées à laide de Proxmox Backup Server. Les sauvegardes sont chiffrées avant d'être répliquées dans d'autres sites. En cas de panne, il est alors possible de remettre en service les serveurs et applications concernées dans un autre site, moyennant une modification des enregistrements DNS.
Mises à jour
Systèmes
La mise à jour des systèmes n'est pas encore automatisée.
Cette question est en cours d'investigation. On envisage d'utiliser :
- L'outil unattended-upgrades de Debian pour les correctifs de sécurité urgents,
- Un Ansible Playbook pour réaliser les mises à jour complètes sur les conteneurs et VMS, avec capture d'un instantané, et reprise en cas d'incident.
Applications
Les applications sont mises à jour au cas par cas, en fonction des nouvelles versions ou correctifs publiées.
La politique de mise à jour et l'automatisation technique sont en cours d'élaboration.
Gestion des adhérent⋅e et utilisateur⋅ices
Utilisateur⋅rices
Aucun service ne nécessite de création de compte pour le moment.
La gestion des comptes s'effectuera à travers un annuaire centralisé et une application de gestion dédiée hébergée sur l'infrastructure de Raoull.
Adhérents
Raoull ne dispose pas encore d'espace de stockage centralisé pour la gestion du fichier d'adhérent. Celui-ci est géré par quelques bénévoles sur des disques durs chiffrés.
La gestion des adhérents s'effectuera dans le futur à travers un espace de document ou une application dédiée, hébergés sur l'infrastructure de Raoull.
Autres bonnes pratiques
Voici une liste de projets qui devraient arriver progressivement dans l'infrastructure :
- Limitation de l'accès Internet sortant des serveurs : sauf exception (requêtes de fédérations…), les serveurs ont peu de raisons d'accéder à Internet. Cela permet de se protéger de quelques attaques par injection et tentative de téléchargement de charge de virus.
- Serveur de dépôt de paquets local : Un dépôt local pour les distributions Linux des conteneurs et VMS est installé sur chaque site. Les VMs et conteneurs - qui n'accèdent pas à internet par défaut - se connectent sur ce serveur pour se mettre à jour. Cela permet également d'économiser de la bande passante du site, les paquets étant téléchargés que par le serveur de dépôt et potentiellement mis en cache.
- Ensemble de sécurité sur le proxy inverse : Le proxy inverse sera complété de couches de sécurité à base de logiciels libre de type Par-Feu Applicatif (WAF), protection par Réputation IP (eg Crowdsec…), protection anti brute force (fail2ban), …
- La politique de mot de passe sera renforcée par l'annuaire centrale des comptes. Des études seront menées pour mise en place de double authentification.