« Désactiver immédiatement les mots de passe SSH suffit à sécuriser l’administration. »
Une bonne configuration peut provoquer une panne si la clé, le compte, le pare-feu ou le VPN n’est pas validé. Le changement doit conserver une session ouverte, une console de secours et une procédure de retour arrière.
Ne ferme jamais ta session SSH actuelle avant d’avoir ouvert une seconde connexion avec la nouvelle configuration. Sur une machine distante, confirme aussi l’accès console ou hyperviseur.
01Préparer une clé utilisateur
Sur le poste d’administration :
ssh-keygen -t ed25519 -a 64 -f ~/.ssh/soria_admin
ssh-copy-id -i ~/.ssh/soria_admin.pub utilisateur@serveur-lab
ssh -i ~/.ssh/soria_admin utilisateur@serveur-lab
La passphrase protège la clé privée stockée sur le poste. L’agent SSH peut éviter de la retaper sans la supprimer.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/soria_admin
02Créer un drop-in OpenSSH
Sur le serveur de laboratoire, conserve d’abord une copie :
sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.soria.bak
sudo tee /etc/ssh/sshd_config.d/90-soria-hardening.conf >/dev/null <<'EOF'
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
MaxAuthTries 3
X11Forwarding no
EOF
sudo sshd -t
Recharge sans arrêter brutalement le service :
sudo systemctl reload ssh || sudo systemctl reload sshd
Ouvre immédiatement une seconde session avec la clé. Garde la première ouverte jusqu’à la validation complète.
03Limiter SSH au VPN et au management
Exemple de table dédiée, avec politique globale accept mais restriction ciblée du port 22 :
cat > /tmp/soria-admin-guard.nft <<'EOF'
table inet admin_guard {
chain input {
type filter hook input priority 10; policy accept;
ct state established,related accept
tcp dport 22 ip saddr { 10.254.0.0/24, 10.70.10.0/24 } counter accept
tcp dport 22 counter drop
}
}
EOF
sudo nft -c -f /tmp/soria-admin-guard.nft
sudo nft -f /tmp/soria-admin-guard.nft
sudo nft list table inet admin_guard
Si ta session actuelle n’arrive ni depuis 10.254.0.0/24 ni depuis 10.70.10.0/24, cette règle supprimera les nouvelles connexions SSH. Adapte les préfixes au plan réel et garde la console de secours.
04Auditer l’état effectif
chmod +x module4b-admin-audit.sh
sudo ./module4b-admin-audit.sh
Le script ne modifie rien. Il affiche :
Une directive écrite dans un fichier ne suffit pas. L’audit doit observer la configuration effective, le socket, la règle réseau et les journaux.
05Séparer les rôles Wi-Fi
Pour le Wi-Fi, applique au minimum :
- WPS désactivé ;
- réseau invité isolé et sans route vers les réseaux privés ;
- interface d’administration du point d’accès dans un VLAN de management ;
- WPA3-Enterprise avec 802.1X/RADIUS lorsque le matériel et l’organisation le permettent ;
- comptes individuels plutôt qu’un secret partagé durable ;
- mises à jour du firmware et sauvegarde chiffrée de la configuration.
Le mode essentiel ne simule pas la radio. Une manipulation WPA3/802.1X correcte exige un point d’accès compatible et un serveur RADIUS ; elle appartient au laboratoire complet.
06Préparer le retour arrière
sudo nft delete table inet admin_guard
sudo rm -f /etc/ssh/sshd_config.d/90-soria-hardening.conf
sudo cp -a /etc/ssh/sshd_config.soria.bak /etc/ssh/sshd_config
sudo sshd -t
sudo systemctl reload ssh || sudo systemctl reload sshd
Le retour arrière doit être écrit avant le changement, pas improvisé après une perte d’accès.
Produis la fiche d’accès d’administration
Documente sans secret :
- les réseaux autorisés et les flux nécessaires ;
- le propriétaire de chaque clé publique WireGuard et SSH ;
- la procédure de révocation ;
- la preuve
sshd -T, le socket et les compteurs nftables ; - le chemin console ou hyperviseur utilisé en secours ;
- la séparation du Wi-Fi invité, collaborateur et management.
✓Ce que tu retiens
L’administration sûre combine identité par clé, tunnel limité, filtrage réseau, validation avant reload, journalisation et accès de secours. Le Wi-Fi utilisateur n’est pas un réseau de management ; l’accès administratif doit passer par un chemin dédié et contrôlé.