
Quand on gère plusieurs serveurs, il devient risqué (et épuisant) d’ouvrir le port SSH sur chacun. La solution ? Centraliser tous les accès SSH via un bastion, une porte d’entrée sécurisée, maîtrisée, journalisée. Et aujourd’hui, on peut même s’affranchir du NAT et des ports ouverts grâce à Tailscale.
🎯 Objectif
Créer une architecture d’accès SSH sécurisée et centralisée, permettant de :
- Limiter les points d’entrée réseau (un seul port ouvert, voire aucun),
- Superviser les connexions SSH,
- Gérer facilement les accès utilisateurs,
- Utiliser un VPN maillé privé sans configuration complexe.
🔐 Option 1 : Bastion SSH classique (Jump Host)
🔧 1. Déployer un serveur dédié comme bastion
Sur une VM Linux ou un serveur OpenBSD (recommandé pour sa sobriété et sa sécurité native).
Configurez le pare-feu pour autoriser uniquement les IP admins sur le port 22 :
sudo ufw allow from X.X.X.X to any port 22 proto tcp
🧑💼 2. Créer un compte utilisateur unique pour l’accès SSH
Exemple :
adduser bastionuser
mkdir /home/bastionuser/.ssh
chown -R bastionuser:bastionuser /home/bastionuser/.ssh
chmod 700 /home/bastionuser/.ssh
Ajoutez les clés publiques SSH autorisées dans /home/bastionuser/.ssh/authorized_keys
.
🌉 3. Configurer le saut SSH (Jump)
Depuis votre poste :
ssh -J bastionuser@bastion.domaine.fr root@serveur-interne
Ou dans ~/.ssh/config
:
Host serveur-interne
HostName 192.168.100.10
User root
ProxyJump bastionuser@bastion.domaine.fr
📜 4. Journalisation centralisée
Installez auditd ou utilisez la journalisation native (ex : sshd_config
→ LogLevel VERBOSE
).
Activez aussi Fail2Ban, alertes emails, ou centralisation des logs via Syslog/Graylog/ELK.
🌐 Option 2 : Bastion VPN chiffré avec Tailscale
Tailscale est un VPN mesh basé sur WireGuard. Il connecte tous vos serveurs à un réseau privé chiffré, sans configuration réseau manuelle.
⚙️ 1. Installer Tailscale sur chaque machine
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Connectez-vous via OAuth à votre compte.
Chaque machine obtiendra une IP privée du type 100.x.y.z
dans le réseau Tailscale.
🔗 2. Configurer l’accès SSH via Tailscale
Sur votre machine :
ssh root@100.x.y.z
Plus besoin de port 22 exposé au monde !
🔒 Vous pouvez désactiver l’accès SSH public :
sudo ufw deny 22
Mais garder l’accès via Tailscale car le VPN fait transiter les connexions en peer-to-peer chiffré.
👥 3. Gestion des utilisateurs et ACL
Depuis l’interface Tailscale, vous pouvez :
- Restreindre les accès par machine/utilisateur,
- Utiliser l’authentification 2FA,
- Gérer les groupes par domaine (Google Workspace, Microsoft 365, etc.).
✅ Résultat
Fonction | SSH Jump Host | Tailscale VPN |
---|---|---|
Port SSH public unique | ✅ | ❌ (aucun port ouvert) |
Centralisation des accès | ✅ | ✅ |
Journalisation | ✅ | Partielle via admin |
Simplicité de déploiement | ❌ | ✅ |
Traversée NAT/firewall facile | ❌ | ✅ |
🔚 En résumé
Tu peux choisir l’approche la plus adaptée :
- OpenBSD + Jump SSH : robuste, classique, contrôle total,
- Tailscale : instantané, zéro port ouvert, super pratique pour les débutants comme les pros.