Pour désactiver un compte, les mesures principales de sécurité permettant d’assurer une protection minimale sont :
- Lister les accès : serveurs et machines locales
- Réinitialisation du mot de passe du compte avec une valeur aléatoire
- Verrouillage du compte
- Retrait du compte de l’ensemble des groupes secondaires
- Créer un groupe spécial pour les comptes désactivés
Pour un compte administrateur ou un utilisateur élevé :
- Vérifier les paramètres du fichier
/etc/sudoers
- Retrait des
%sudoers
- Retrait des
%wheel
- Retrait des droits supplémentaires
- Retrait des
Création d’un nouveau groupe DISABLED
Tout utilisateur Linux doit être assigné à un groupe primaire. La création d’un groupe spécifique DISABLED est recomandé.
Création du groupe
Vérification
Le mieux étant de spécifier un ID soit-même, sachant que le fichier /etc/login.defs
précise (entre autres) les valeurs autorisées pour les GID (et UID aussi)
# cat /etc/login.defs |
Pour vérifier que le GID choisi n’est pas déjà utilisé, au choix :
# grep 4242 /etc/group |
# getent group 4242 |
Création du groupe
Pour créer un groupe en choisissant son GID :
# groupadd -g 4242 DISABLED |
Vérification :
# cat /etc/group |
# cat /etc/gshadow |
Le !
indique l’absence d’authentification par mot de passe ().
Vérifier l’intégrité
La commande grpck
avec option -r
(read-only) permet de vérifier l’intégrité des fichiers /etc/group
et /etc/gshadow
# grpck -r | grep "DISABLED" |
Pour tous les comptes
Réinitialisation du mot de passe
Réinitialisation du mot de passe du compte avec une valeur aléatoire, la commande de base est passwd <login>
.
Au choix :
# date +%s | sha256sum | base64 | head -c 42 | passwd <login> --stdin > /dev/null 2>&1 |
# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 42 | passwd <login> --stdin > /dev/null 2>&1 |
Verrouillage du compte
En utilisant passwd -l
(L’option -l
pour “lock”. Cette option va chiffrer le mot de passe et ajouter un caratère invalide, en le préfixant par “!!” dans le 2ème champs de /etc/shadow
# passwd -l <login> |
Vérification :
# passwd -S <login> |
Retrait et ajout de groupes
Suppression de tous les groupes secondaires de l’utilisateur et modification de son groupe primaire : ici le groupe DISABLED
Anciens groupes :
# groups <login> |
Changement de groupe :
# usermod -g DISABLED -G "" <login> |
Vérification :
# groups <login> |
Pour les comptes avec droits élevés
Un utilisateur appartenant à %sudoers
, %wheel
ou avec des spécificités dans /etc/sudoers
pourra quand même s’authentifier sous le compte verrouillé avec la commande sudo su <login>
Fichier sudoers
Il faut retirer le compte
Rappel
Syntaxe du fichier /etc/sudoers
, ici le compte User
peut exécuter la commande Command
en tant que John
sur le système Host
.
User Host = (John) Command |
Automatisation
Ces actions peuvent être rapidement automatisées en créant un fichier accounts.txt
qui contient tous les comptes à vérouiller :
# cat accounts.txt |
Puis lancer :
# while read account; do sudo passwd -l "$account"; sudo getent group "$account" || sudo groupadd "$account"; sudo usermod -g "$account" "$account"; sudo usermod -G "" "$account"; done < accounts.txt |
De même pour la vérification :
# while read account; do sudo cat /etc/shadow | grep "$account"; sudo groups "$account"; done < accounts.txt |
Ou alternativement :
# while read account; do sudo passwd -S "$account" | grep -i "locked" ; sudo groups "$account"; done < accounts.txt |
Documentation
https://stackoverflow.com/questions/15023432
https://www.howtogeek.com/howto/30184/
https://unix.stackexchange.com/a/46518
https://toroid.org/sudoers-syntax
midorino3142
Merci à midorino3142