technique:resume

Cette page a pour but de faire une rapide présentation de l’infrastructure et des pratiques de Picasoft, principalement en redirigeant vers des pages du wiki. Comme ce dernier est un peu dense, cette page est un bon point d’entrée !

Note:

Idéalement, tout changement important est reflété dans cette page, qui est référencée sur le site de Picasoft et a notamment pour but de centraliser les éléments de conformité à la charte CHATONS sur la partie Transparence. Quelqu’un qui a des doutes sur les sauvegardes, les accès, les technos utilisées, etc, doit trouver des pointeurs ici!

Picasoft possède trois machines physiques, Alice, Bob et Caribou.

Alice et Bob sont historiquement hébergées par le FAI associatif Tetaneutral. Ces machines ont été achetées pour Picasoft par UTeam, une filiale de l’Université de Technologie de Compiègne, sur un budget recherche.

Caribou est hébergée dans la salle serveur de la DSI de l’UTC, par l’association Rhizome. Elle a été achetée grâce à une subvention du FSDIE (Fonds de solidarité et de développement des initiatives étudiantes). Alice a récemment été rapatriée dans la même salle serveur.

Note:

Tetaneutral et Rhizome sont membres de la fédération FDN.

A Savoir:

Tetaneutral a une salle associative (TLS00) hébergées dans le datacenter Fullsave. Cette salle est notamment équipées d’onduleurs (environ 5), qui permet d’éviter des coupures temporaires sur le réseau électrique et donc d’éviter la plupart des interruptions de services dues au réseau électrique.

Alice et Bob sont équipées de la technologie Intel AMT ; Caribou de iDRAC9, qui permet de les administrer à distance, même en cas de plantage de la machine.

Les données des services sont stockées simultanément sur deux disques (on dit « RAID 1 ») pour éviter qu’une défaillance matérielle ne provoque une perte des données ou une interruption de service trop importante.

A Savoir:

Le RAID 1 consiste en l’utilisation de n disques redondants (avec n ≥ 2), chaque disque de la grappe contenant à tout moment exactement les mêmes données, d’où l’utilisation du mot « miroir ». Source

Note:

L’ensemble de l’infrastructure est donc sous le contrôle total de l’association Picasoft. Des bénévoles de Tetaneutral peuvent être amenés à intervenir sur les machines lors d’intervention de maintenance, mais n’accèdent jamais aux données.

Les machines physiques sont des hyperviseurs, c’est-à-dire que leur système d’exploitation est conçu pour créer et gérer des machines virtuelles.

Ce système d’exploitation est Proxmox, version 7. Son interface graphique permet de facilement créer des machines virtuelles.

Note:

Proxmox 6 est basé sur Debian 10.

Les services tournent sur des machines virtuelles (Debian 11). Nous en hébergeons 8.

Sur Alice :

  • pica01-test, machine utilisée pour tester les services avant mise en production et tests de toutes sortes.
  • stph01, machine utilisée par Stéphane Crozat notamment dans le cadre de ses activités de recherche.

Sur Bob :

  • pica02, généraliste, sur laquelle tournent notamment l’instance principale d’Etherpad et Mattermost.
  • monitoring, machine utilisée pour les services internes (LDAP, serveur mail…) et la métrologie.

Sur Caribou :

  • pica01, généraliste, sur laquelle tournent des services peu critiques, comme les sites web statiques.
  • pica03, généraliste, sur laquelle tournent les services moyennement critiques, comme Hedgedoc et l’instance hebdomadaire d’Etherpad.
  • 42l, une machine virtuelle que nous mettons à disposition de nos ami·es du CHATONS La Contre-Voie pour le monitoring de leur infrastructure.
  • media, machine utilisée pour les services consommateurs d’espace disque (comme Peertube).
  • scenari, machine utilisée pour stocker les backups de l’association Scenari.

Tous les services (internes ou publics) sont lancés en utilisant Docker et Docker Compose. Les fichiers nécessaires pour déployer l’ensemble de nos services sont sur leurs dépôts Git.

L’ensemble des services actuellement en production est visible sur les graphes des services, générés automatiquement chaque jour. La liste des services publics est visible sur le site de l'association.

Attention:

Liste des services non-mentionnés sur le site de l’association :

Les procédures pour lancer, administrer et mettre à jour et créer des services sont répertoriées sur une partie dédiée du Wiki.

Note:

Picasoft utilise ponctuellement des machines virtuelles hébergées gracieusement par Gandi, un hébergeur et registrar de nom de domaine français reconnu pour son engagement en faveur d’un internet libre, décentralisé, éthique et solidaire.

Picasoft a loué deux noms de domaine au registar Gandi :

  • picasoft.net, pour la majorité des utilisations
  • picagraine.net, pour les activités de formation

Nous n’utilisons pas les serveurs DNS de Gandi pour gérer notre zone, mais nos propres serveurs, principalement pour des raisons de décentralisation et d’apprentissage. Un des serveurs secondaires est hébergé hors de l’infrastructure, afin de pouvoir prendre le relais en cas de panne très critique.

Picasoft utilise également son propre serveur mail pour envoyer des mails (notifications, lien d’inscription, etc).

Accès aux machines

Les accès à l’infrastructure sont centralisés grâce à un annuaire LDAP. Chaque membre sur l’annuaire a :

  • Un groupe d’accès (simple visiteur, administrateur Docker ou administrateur système)
  • Une liste des machines autorisées (machine de test, machine de services, hyperviseurs, etc)

Accès aux identifiants

Les accès aux mots de passe de l’association (administration d’un service, mot de passe root des machines…) sont gérés par vaultwarden. Chaque mot de passe est chiffré individuellement pour toutes les personnes qui y ont accès, ce qui évite un mot de passe ou une clé partagée, moins sûre.

Important:

Tous les membres autorisés à accéder à l’infrastructure sont membres de l’association et ont reçu une formation de l’équipe technique. Les accès sont donnés suite à un vote à la majorité absolue de tous les membres.

Note:

Les accès sont régulièrement vérifiés et mis à jour. Les mots de passe critiques sont renouvelés chaque semestre, conformément au règlement intérieur.

Machines

Toutes les machines ont un pare-feu qui refuse les connexions entrantes, sauf sur les ports autorisés.

fail2ban est également installé sur toutes les machines, pour bannir les IP tentant de forcer une connexion SSH.

Les mises à jour de sécurité Debian sont appliquées automatiquement, une fois par jour.

Les commandes privilégiées exécutées sur les machines sont enregistrées et centralisées sur la machine monitoring, grâce à auditd et rsyslog.

Services

Picasoft utilise TLS sur l’ensemble de ses services.

Dans le cas des services web, l’activation de HTTPS est systématique et automatique, grâce à Traefik, un reverse-proxy pour Docker.

A Savoir:

Un reverse proxy est un serveur vers lequel sont redirigées toutes les requêtes qui entrent vers un ordinateur. Nous utilisons Traefik comme un reverse-proxy web, c’est-à-dire que toutes les requêtes HTTP qui arrivent sur nos machines passent par Traefik. Ce dernier se charge de forcer HTTPS et d’ajouter des headers de sécurité.

Note:

Les services Picasoft sont notés B ou plus par le Mozilla Observatory. La politique CSP est systématiquement absente, ce qui est améliorable.

Dans le cas des services non-web (Mumble, LDAP, serveur mail…), les certificats TLS sont gérés automatiquement par un outil maison, TLS Certs Monitor.

Vérification automatique des mises à jour

Il existe un service qui s’occupe de vérifier automatiquement l’existence de mises à jour sur les services de Picasoft. Pour cela il récupère les versions des logiciels qu’on lui indique par les API des forges logicielles ou par un flux RSS (Atom 2005 pour être tout à fait exact et éviter les abus de langage). Ensuite il notifie les membres de l’équipe technique de la mise à jour disponible.

Les étapes de mise à jour restent manuelles, ce bot ne fait que signaler les possibilités.

Services

Les services (volumes, bases de donnée, configurations, secrets…) sont sauvegardés plusieurs fois par jour à l’aide de restic. La configuration peut être amenée à évoluer, mais Picasoft garde en général un backup par heure sur la dernière journée, puis un backup par jour sur la dernière semaine, un backup par semaine sur le dernier mois, et un backup par mois sur la dernière année.

Important:

En particulier, cela signifie que les messages et pads supprimés par les utilisateurices sont conservés dans les backups jusqu’à leur rotation automatique.

Machines virtuelles

Les machines virtuelles sont à présent trop volumineuses pour être sauvegardées en intégralité. Si une machine virtuelle venait à tomber, elle devrait être reconstituée à la main à partir des sauvegardes des services et des informations présentes sur ce wiki.

A Savoir:

La métrologie, dans laquelle on retrouve la notion de mètre/métrique, est le fait d’obtenir, de garder et de tracer la valeur numérique d’une charge. Par exemple le pourcentage de CPU utilisé sur un serveur, le nombre de personnes connectées sur une site web, le trafic sortant et entrant sur un switch. Source

Pour collecter des métriques, Picasoft a mis en place une pile de métrologie, qui collecte :

  • Des métriques système (CPU, RAM, stockage…)
  • Des métriques service (nombre d’utilisateurs sur Mattermost, nombre de pads sur Etherpad…)
  • Des métriques réseau (volume échangé, erreurs…)

Ces métriques sont consultées sous forme de graphiques dans Grafana.

Un système d’alertes permet de prévenir l’équipe technique lorsqu’une métrique remplit une certaine condition (e.g. un disque est rempli à plus de 95%). permet de déclencher des alertes et alertmanager traite ces alertes et les transmet sur Mattermost.

Picasoft a une activité annexe d’aide à des structures amies. De temps à autre, on leur rend service. Par exemple :

  • Hébergement d’une machine virtuelle de monitoring pour la Contre-Voie ;
  • Hébergement des vidéos de l'association Scenari ;
  • Hébergement d’un NextCloud pour le syndicat Solidaires étudiant-e-s Compiègne ;
  • Hébergement des backups de l’association [Scenari].
  • technique/resume.txt
  • de qduchemi