Debian11, Serveur, Verrouilage de SSH et Sudo
Je n’ai jamais besoin de me connecter à mes serveurs depuis la console et je n’ai pas besoin de reconfirmer l’identité de l’utilisateur avec un mot de passe pour utiliser la commande sudo. Du coup, je n’ai besoin d’aucune authentification par mot de passe. Il n’est possible de se connecter au serveur qu’à l’aide de ssh avec des clés, je peux donc complètement bloquer les mots de passe pour root et les utilisateurs nommés.
Pré-requis
Étapes précédentes
Variables existantes
Nous aurons besoin uniquement du nom de l’utilisateur nommé (UN), qui a déjà été définie.
Rechargement des variables dans l’environnement
Il faut charger la variable UN
définie dans le fichier de configuration décrit dans l’article Installation et configuration de Sudo. Assurons-nous que les variables soient bien chargées dans l’environnement courant :
source /root/config.env
Verrouillage du compte root
Verrouillons les connexions directes au compte root depuis la console et depuis la commande su
. Cela empêchera également
l’utilisation des paramètres de démarrage single
et recovery
depuis la console ou un KVM. C’est optionel et potentiellement
dangereux en cas de problème grave. La seule possibilité sera d’utiliser la console ou un KVM et d’ajouter un paramètre tel que
init=/bin/sh
, il faudra alors une bonne maîtrise du système.
passwd -l root
Attention, cela bloque les connexions depuis la console pour root, incluant les démarrages spéciaux tels que “single boot” ou “boot failure recovery (problèmes sur les systèmes de fichiers)”.
Verrouillage du mot de passe utilisateur
Désormais, on peut ouvrir des connexions SSH sans mot de passe au compte utilisateur nommé et au compte root, on peut donc désactiver le mot de passe de l’utilisateur et mettre les attaques par force brute en échec.
[ ! -z "${UN}" ] && passwd -l ${UN}
Pour les serveurs uniquement, ne surtout pas faire cela sur une station de travail, il deviendrait impossible de s’y connecter !
Alerte par courriel
J’ai trouvé cette astuce sur tutoriels-video 1, en Français, et j’ai aimé. Elle envoie un courriel d’alerte lorsque quelqu’un se connecte au serveur.
cat << EOF >> /etc/bash.bashrc
echo \`who\` \`date\` | mail -s "shell connection on \`hostname\`" root
EOF
-
https://www.tutoriels-video.fr/securiser-son-serveur-dedie-avec-iptables-fail2ban-et-rkhunter/ ↩