Certificat par service/serveur ou certificat par serveur

Bonjour,
dans la gestion de la sécurisation des services, je me suis posé la question suivante: Faire un certificat par serveur ou faire un certificat par service par serveur?
In extenso, prenons le cas suivant:

Je dispose d’un serveur avec les services suivants:

  • SSH (port 22)
  • serveur web (port 80/443)
  • serveur webmin (port 10000)
  • Interface HAproxy-WI (port 9885)

Tous sont adressé avec la même URL: monserveur.domain.tld, seul le port change d’un service à l’autre.

  1. Si j’utilise un seul certificat pour tous, et si un service est compromis, il est possible que tous soient compromis.
  2. Si j’utilise un certificat pour chaque service, la compromission d’un service n’implique plus la compromission ds autres services.

je fais volontairement l’impasse sur l’origine et le mode opératoire de la compromission, excepté le fait que seul le service est compromis mais pas la machine entière.
Par ailleurs, le nombre de certificat que je peux avoir n’a pas d’importance.

Au plus simple tu peux oublier l’interface graphique de HAproxy et de Webmin qui sont si tu est le seul opérateur inutile pour de la gestion au jour le jour.

Sinon moi j’ai franchit le pas de gérer avec du let’s encrypt et Traefik la gestion des certificat mais faisant du Docker c’est plus naturel ainsi.
Le gros avantages de Traefik et de pouvoir proposer un certificat automatiquement (renouvellement auto par la même occasion) à chaque nouveau service proposer daéns son fichier de configuration.

Maintenant un certificat de type san avec l’ensemble des sous domaines me semble le plus simple à maintenir et à mettre en place.

Par contre je veux bien que tu m’explique en quoi un certificat va te prémunir d’une compromission, cela t’assure avant tout de dialoguer avec la bonne personne … non ?
Donc si un service d’une machine est compromis le ou les certificat mis en place seront toujours les mêmes.

Attention trop de sécurité amène systématiquement à des erreurs/oubli et à une complexité pour l’exploitation/maintenance de ces services.

PS : Les personnes que je connais et qui utilise depuis pas mal de temps un routeur maison ne cherchent pas à reconstruire un écosystème complet que l’on retrouve sur des OS spécialisé (et très fortement sécurisé) mais avant tout à répondre à certains besoin qui ne se trouve pas sur les box de FAI.

1 J'aime

Oui d’etre sur que le service est bien le bon, mais aussi à ne permettre que certains utilisateur. Pour certains service, si tu ne présentes pas un certificat client valide le service te rejette avant même que tu puisse utilise un login mot de passe (par exemple, tu arrive sur une interface web, le certificat de ton service web est reconnu par ton navigateur, mais en prime il y a la même opération dans l’autre sens, avec en prime un login/mot de passe ce qui fait:

  • validation du serveur par le client
  • validation du client par le serveur
  • authentification login/mot de passe (sachant que j’utilise des mots de passe sans mots de dictionnaires (générés aléatoirement sur 12 à 25 caractères suivant les cas).

j’aime bien Webmin, pas mal d’opération simple et rapide avec pour certains services (DHCP, DNS par exemple)
HAPROXY-WI je suis en train de tester, mais par expérience je sais que la gestion manuelle du fichier n’est pas d’une simplicité et d’une convivialité exemplaire

Traefik n’a pas d’utilité pour moi en l’état actuel des choses.
Pour ce qui est de Let’s Encrypt, c’est pour moi uniquement si je veux que d’autres ailleurs puissent acceder à des services. Mais les sites web sont tous uniquement d’administration sauf un.
de fait, j’utilise mes propres certificats, ceux-ci n’ayant pas à être reconnu par qui que ce soit d’autres.
et je suis ne suis pas très chaud à avoir des renouvellement de certificats automatique sans aucune intervention humaine, ne serait-ce que pour valider. l’incident du certificat piraté de google en a échaudé plus d’un.

je confirme d’où ma question

la box FAI ne fait rien à part l’accès, donc le changement s’imposait.
mon système prend en charge principalement les services:

  • DHCP
  • DNS
  • IDS
  • Firewall
  • reverse proxy (HAproxy)
  • proxy (squid)
  • SSH
  • StringSwan, OpenVPN
  • maltrail (peut etre)

Pour le moment ma messagerie est externe.
S’y ajoute les outils de supervision nécessaires.

On peut mettre le même certificat pour un serveur HTTPS et un serveur SSH ? Je ne savais pas.

2 J'aime

normallement oui, il n’y a pas de raison, la construction du certificat est la même c’est sont utilisation qui va être différente. Hors ce n’est pas pris en compte dans la fabrication du certificat.

Tu fais comment pour utiliser des certificats x509 avec le openssh-server de Debian ?

pas encore mis en place sur le mien 'le nouveau en cours de developpement), mais avec ca par exemple:

Non cela ne répond pas à la question.

Suffit de configurer ssh server pour utiliser des certificats. C’est dans le lien les confs à appliquer. Sinon je ne comprends pas plus que ca ta question.

Edit: je viens de comprendre. J’etais tombé sur un article sur la version de Roumen Petrov qui a fait un build de SSH qui accepte des certificats X509v3. D’où ma confusion, car la version standard elle n’accepte pas les certificats. Et de fait, je comprends mieux ta question (qui aurait pu être plus claire).

Pour des questions pratiques (et pas de sécurité) je privilégie l’utilisation d’un certificat par service. Ça m’a comme prévu simplifié la migration de certains de ces services quand j’ai finalement pris un deuxième serveur en location.

Par contre j’utilise aussi autant que possible un domaine par service, là aussi pour faciliter d’éventuelles migrations.

Avec cette approche, deux sites Web servis par une même application sont bien deux services distincts.

Bonjour,
Tout à fait, c’est aussi ce que je fais pour ce qui est de sites web ou de services web classiques.
Mais quand il s’agit de services techniques c’est plus pénible car ca peut vite grimper suivant le nombre d’interfaces techniques, par exemple, un webmin, un haproxy-wi, etc…
Qui plus st si tu as plusieurs serveurs avec les mêmes services, ca peut devenir vite compliqué.
En fait, rien n’empeche d’avoir plusieurs certificats avec le même common name (éventuellement une IP en alternate si c est un système critique ).