Désactiver un compte

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

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

[...]
# Min/max values for automatic gid selection in groupadd
GID_MIN 500
GID_MAX 60000
[...]

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
[...]
DISABLED:x:4242:
# cat /etc/gshadow
[...]
DISABLED:!::

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>
<login> : [GROUP1] [GROUP2] ... [GROUPn]

Changement de groupe :

# usermod -g DISABLED -G "" <login>

Vérification :

# groups <login>
<login> : DISABLED

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
TrissMerigold
Radovid
Adda
VernonRoche
Stennis
Nithral

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

Remerciements

midorino3142

Merci à midorino3142


> Partager <