Documentation technique de Nubla
Niveau de contrôle sur l'infrastructure
Nous avons un accès physique aux serveurs dans le datacenter. Nous avons un accès root aux hyperviseurs et aux machines virtuelles. Nous déléguons l'administration réseau au FAI associatif Aquilenet.
Notre politique d'accès aux machines derrière Nubla, et donc aux données, est de fournir des accès uniquement aux personnes qui interviennent techniquement sur le projet.
Aujourd'hui il s'agit de l'ensemble des 4 développeur·euses de Yaal Coop.
Si l'équipe venait à évoluer, la distribution des accès évoluerait en conséquence.
Topologie de l'infrastructure / Forme de l'infrastructure
Les deux hyperviseurs sont violette.yaal.coop et coquelicot.yaal.coop
Le système de virtualisation LXC/LXD héberge les VPS entre les deux hyperviseurs. Les VPS sont automatiquement basculés d'un serveur à l'autre en cas de déséquilibre. Il n'y a donc pas de topologie précise qui soit valable dans le temps.
Caractéristiques matérielles
violette et coquelicot sont des serveurs ProLiant DL360p Gen8 dotés d'Intel Xeon E5-2609 2.40GHz 8 cœurs avec 64Go de RAM et 64Go de swap.
Système d'exploitation
Nos hyperviseurs et nos VPS utilisent Debian 11. Les VPS sont gérés avec lxd 5.2
Rétention des logs
Les logs métier sont gardés 60 jours sur serveurs.
Les logs système sont gardés jusqu'à 2 semaines sur les serveurs.
Les logs métier et système sont gardés 365 jours au maximum dans les backups, ce qui est l'âge du plus vieux backup que nous gardons.
Procédure récurrentes
Créer un nouveau VPS Nubla Pro
-
Choisir et acheter un nom de domaine
-
Copier la configuration DNS d'un domaine Nubla Pro fonctionnel
-
Choisir une IP disponible dans notre bloc (45.67.81.*)
-
Choisir un jour du calendrier révolutionnaire qui fera office de nom pour le VPS
-
Se connecter sur l'un des hyperviseurs, créer le VPS avec la commande « sudo launch_debian.sh ». La commande est interactive, donner le nom du VPS et son IP
-
Configurer son mot de passe VPS comme indiqué par la commande
-
Se rendre dans yserversetup, copier le fichier inventaire d'une autre Nubla Pro fonctionnelle, et adapter les éventuelles variables (notamment, le nom de domaine principal)
-
Passer à l'étape suivante
Déploiement ou mise à la norme de la configuration
Utiliser le projet yserversetup et jouer le rôle ansible pour vérifier l'état de la machine avec la commande :
ansible-playbook --extra-vars "@vaults/${USER}.yml" --inventory inventory/yaalcoop.yml main.yml --limit SERVEUR.yaal.coop --diff --check
Une fois cette commande exécutée, toute la pile logicielle de Nubla Pro sera déployée, tous les backups seront configurés, et un compte administrateur pour l'équipe de Yaal Coop sera créé.
Si aucun problème n'est remonté déployer / mettre d'équerre la configuration avec la commande :
ansible-playbook --extra-vars "@vaults/${USER}.yml" --inventory inventory/yaalcoop.yml main.yml --limit SERVEUR.yaal.coop
Suivre la documentation complémentaire disponible dans yserversetup pour assurer le monitoring et le backup du nouveau VPS Nubla Pro.
Mise à jour des applications
Vérifier en amont qu'il n'y a pas d'incompatibilité connue avec les versions cibles.
Utiliser le projet yserversetup et jouer le rôle ansible pour la machine, avec l'option de mise à jour :
ansible-playbook --extra-vars "@vaults/${USER}.yml" --inventory inventory/yaalcoop.yml main.yml --limit SERVEUR.yaal.coop --extra-vars upgrade=true --tags upgrade
Si nextcloud a été mis à jour, se rendre sur la page d'administrateur de nextcloud, onglet « vue d'ensemble » et vérifier s'il y a des interventions supplémentaires à effectuer sur la base de données.
Lire les métriques système
Se rendre sur grafana.yaal.coop, sélectionner le tableau de monitoring « Node explorer », et choisir la machine à observer.
Mesures de sécurité
Accès physique
Seules les personnes amenées à intervenir techniquement sur notre infrastructure ont un accès physique aux hyperviseurs.
Aujourd'hui il s'agit des 4 employés développeurs de la coopérative Yaal Coop, ainsi que les administrateurs du fournisseurs d'accès associatif Aquilenet.
Si l'équipe venait à évoluer, la distribution des accès évoluerait en conséquence.
Réseau
Des règles iptables ipv4 et ipv6 sont définies sur toutes les machines pour n'autoriser que les services voulus à communiquer sur internet.
Dans la mesure du possible, nous utilisons systématiquement les versions chiffrées des protocoles réseau (SMTPS, HTTPS etc.)
Mise à jour
Les mise-à-jour de sécurité sont installées automatiquement toutes les nuits sur les hyperviseurs ainsi que les VPS.
SSH
Seuls les 4 employés développeurs de la coopérative Yaal ont un accès SSH aux hyperviseurs. Ils ont la nécessité d'avoir ces accès puisqu'ils interviennent régulièrement sur l'infrastructure.
Les connexions SSH en root sont désactivées.
Les connexions SSH utilisateurs nécessitent une clé privée.
L'accès SSH aux machines se fait depuis une liste restreinte d'adresses IP.
SSL
Nous suivons les recommandations SSL « intermédiaires » de mozilla sur l'ensemble de nos services : https://ssl-config.mozilla.org/
Web
Tout le trafic web est obligatoirement chiffré en HTTPS, et tous les domaines sont inscrits dans la liste HSTS preload : https://hstspreload.org/
Mail
Nous avons mis en place un antispam, et configuré l'apprentissage de l'antispam pour protéger nos utilisateurs.
Identification unique
Nos services publics sont accessible derrière un gestionnaire d'identification unique, afin que les utilisateurs n'aient qu'un seul mot de passe à retenir. N'avoir qu'un seul mot de passe à retenir compense l'inconfort de devoir retenir un mot de passe plus long, donc plus sécurisé.