Sécurisation de Cockpit (interface web serveur)
Objectif
Renforcer la sécurité de l’interface Cockpit (port 9090
) en :
- Restreignant les connexions à un compte dédié uniquement.
- Ajoutant une protection contre les tentatives de connexion échouées via Fail2Ban.
- Empêchant les utilisateurs non autorisés d’accéder à l’interface.
1. Créer un utilisateur dédié à Cockpit
Créer un utilisateur avec un nom aléatoire :
sudo adduser monutilisateurdedie
Lui donner les droits sudo si nécessaire :
sudo usermod -aG sudo monutilisateurdedie
2. Restreindre l’accès Cockpit à ce seul utilisateur
Créer un groupe dédié :
sudo groupadd cockpit-admins
sudo usermod -aG cockpit-admins monutilisateurdedie
Modifier le fichier PAM de Cockpit :
sudo nano /etc/pam.d/cockpit
Ajouter en haut du fichier :
# Autoriser uniquement les utilisateurs du groupe cockpit-admins
auth required pam_succeed_if.so user ingroup cockpit-admins
3. Bloquer les autres utilisateurs explicitement
Créer un fichier d’exclusion :
sudo nano /etc/cockpit/disallowed-users
Ajouter :
root
autresusersinterdits
Ce fichier est pris en compte automatiquement par Cockpit si la directive
pam_listfile
est active dans/etc/pam.d/cockpit
.
4. Ajouter une règle Fail2Ban pour Cockpit
Créer le filtre :
sudo nano /etc/fail2ban/filter.d/cockpit.conf
Contenu :
[Definition]
failregex = .*sssd\[.*\]: pam_unix(cockpit:auth): authentication failure;.*rhost=<HOST>
.*cockpit-ws.*Failed login.*remote address <HOST>.*
ignoreregex =
Puis dans jail.local
:
sudo nano /etc/fail2ban/jail.local
Ajouter la règle :
[cockpit]
enabled = true
filter = cockpit
backend = systemd
journalmatch = _SYSTEMD_UNIT=cockpit.service
maxretry = 2
findtime = 60
bantime = -1
action = iptables[name=cockpit, port=9090, protocol=tcp]
Redémarrer Fail2Ban :
sudo systemctl restart fail2ban
5. Vérifier l’état
Voir les jails actives :
sudo fail2ban-client status
Voir les tentatives sur Cockpit :
sudo fail2ban-client status cockpit
6. Tester la sécurité
- Se connecter uniquement avec le compte
monutilisateurdedie
. - Toute tentative avec un autre utilisateur → rejetée par PAM.
- Plusieurs tentatives échouées → IP bannie via iptables (Fail2Ban).
Conclusion
Cette configuration renforce considérablement la sécurité de Cockpit, en limitant l’accès à un seul compte autorisé, tout en assurant une protection réseau via bannissement des IP après tentatives infructueuses.