Hardening SSH
Configuration SSH appliquée à toutes les VMs via le rôle Ansible common.
Configuration
Fichier /etc/ssh/sshd_config.d/hardening.conf :
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
MaxSessions 2
ClientAliveInterval 300
ClientAliveCountMax 0
AllowUsers mounik
Gestion des clés
- Une seule clé SSH par administrateur (pas de
authorized_keyspartagé) - La clé publique est injectée via cloud-init à la création de chaque VM
- Ansible utilise la même clé pour la configuration
- Aucun mot de passe défini sur les comptes utilisateurs
Port non standard (2222)
Le port SSH est 2222 pour réduire le bruit des scanners automatiques sur le port 22. Ce port est :
- Limité via UFW (
ufw limit 2222/tcp) - Surveillé par Fail2Ban (max 3 tentatives, bannissement 1h)
- Accessible uniquement depuis le réseau local (
192.168.1.0/24)
Déploiement Ansible
# Premier passage (port 22 — cloud-init par défaut)
ansible-playbook -i inventory/homelab.yml playbooks/00-hardening.yml \
-e 'ansible_port=22'
# Passages suivants (port 2222)
ansible-playbook -i inventory/homelab.yml playbooks/00-hardening.yml
Le rôle common applique également :
- UFW (default deny, allow 2222 limit, ICMP)
- Fail2Ban (jail SSH — port 2222, maxretry 3, bantime 3600)
- Swap désactivé
- Paquets communs (curl, htop, git, jq)
/etc/hostsavec toutes les VMs
Pour aller plus loin
- Sécurité — Vue d'ensemble — architecture defense in depth
- Matrice de flux — règles UFW détaillées
- Phase 3 — Hardening — playbook complet