Aller au contenu
kcastrec.com

Architecture

Un serveur, neuf services, et aucune envie d’être réveillé la nuit

J’administre une machine modeste — moins de deux gigaoctets de mémoire vive — sur laquelle tournent neuf services. Ce n’est pas une prouesse d’échelle : c’est un terrain où chaque décision se paie comptant, ce qui est exactement ce qui rend l’exercice formateur.

La question que je me pose à chaque installation n’est pas « est-ce que ça marche », mais « qu’est-ce qui casse si ça tombe, et comment je reviens en arrière ». Voici les règles qui en découlent.

Architecture du serveur, en couchesLe trafic entre par un pare-feu, puis par un proxy inverse unique qui porte le chiffrement, les en-têtes de sécurité et la limitation de débit. Derrière lui, chaque service tourne isolé sous son propre compte système, confiné, avec un plafond mémoire. Les services qui stockent des données possèdent chacun leur base et leur rôle, sans accès croisé. Les secrets vivent hors des répertoires déployés.visiteurspare-feu — tout est fermé sauf ce qui est déclaréproxy inverse — la seule porte ouvertechiffrement renouvelé seul · en-têtes de sécurité · limitation de débitles services n’écoutent que localement — jamais sur le réseausupervisioncompte dédiéstockscompte dédiécataloguecompte dédiéportfoliocompte dédiévisiocompte dédiébase de donnéesun rôle par application · aucun accès croisésecretshors des dossiers déployéschaque service, sans exception :compte système dédié, sans droits d’administrationsystème de fichiers monté en lecture seuleélévation de privilèges interditeplafond mémoire par service
Le schéma décrit la méthode, pas la machine : ni adresse, ni chemin, ni port, ni nom de compte n’y figure.
01

Une application, un compte

Chaque service tourne sous son propre compte système, sans droits d’administration.

Aucun service ne peut lire les secrets d’un autre, ni écrire ailleurs que dans le seul répertoire qui lui est ouvert. Quand une application a besoin d’une commande privilégiée, elle obtient cette commande précise et rien d’autre. La question n’est pas de savoir si une application sera compromise, mais ce qu’un attaquant peut atteindre depuis celle-ci.

02

Confinement au niveau du système

Les unités de service interdisent l’élévation de privilèges, montent le système en lecture seule, masquent les répertoires personnels et filtrent les appels système.

Un plafond mémoire est fixé par service. Sur une machine modeste, ce n’est pas une précaution théorique : sans lui, une seule application qui dérive emporte toutes les autres. Les services qui ne peuvent pas être confinés — parce qu’ils administrent la machine — sont identifiés comme tels, et leur exception est documentée.

03

Cloisonnement des données

Un rôle de base de données par application, jamais de superutilisateur.

Chaque application possède sa base et le rôle qui va avec. Aucun accès croisé, y compris entre une application et sa propre instance de démonstration : code identique, base, compte et secrets distincts.

04

Rien d’irremplaçable sur le disque

L’état vit en base ou dans un emplacement explicitement sauvegardé, jamais dans le répertoire déployé.

Cette contrainte rend le déploiement ennuyeux, ce qui est exactement le but : un déploiement qui remplace entièrement le répertoire de l’application ne peut structurellement rien détruire. La sauvegarde tient alors en une commande.

05

Chiffrement et exposition minimale

Le proxy inverse est la seule porte ouverte ; les applications n’écoutent que localement.

Certificats renouvelés automatiquement, en-têtes de sécurité posés au niveau du proxy, limitation de débit sur les pages d’authentification, et taille des requêtes plafonnée pour les applications qui n’acceptent aucun fichier. Le pare-feu est la seconde barrière, jamais la seule.

06

Savoir ce qui tourne

Une console de supervision maison donne l’état réel des services, des ressources et des certificats.

Elle lit ce que le système déclare, pas ce que la documentation prétend — c’est ainsi que j’ai découvert que plusieurs applications écoutaient plus largement qu’annoncé. Chaque installation s’accompagne d’une procédure de retour arrière écrite avant l’installation elle-même.

Retour au parcours