EXADATA – Débloquer les comptes utilisateurs

Être bloqué après avoir utilisé un mot de passe erroné est une contrainte forte dans un environnement EXADATA. Cette situation assez pénible, se règle automatiquement après un délai qui par défaut est assez conséquent. Je vous propose par le présent article de comprendre les mécanismes liés à l’authentification sur l’EXADATA et de pouvoir débloquer vous-même la situation.
Il n’est pas question de remettre en cause la complexité du mot de passe à fournir, seul le délai, à mon sens, mérite notre attention.
Si vous vérifiez le contenu du fichier « /var/log/secure », vous pouvez constater les erreurs d’authentification et la présence du module PAM :

[root@p-exa-node1 ~]# cat /var/log/secure
…
Sep 29 07:35:15 p-exa-node1 sshd[116499]: Failed password for invalid user oracle from 10.99.100.10 port 52417 ssh2
Sep 29 07:35:15 p-exa-node1 sshd[116500]: Disconnecting: Too many authentication failures for oracle
Sep 29 07:35:15 p-exa-node1 sshd[116499]: PAM 6 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=p-exa-console-admin
Sep 29 07:35:15 p-exa-node1 sshd[116499]: PAM service(sshd) ignoring max retries; 7 > 3

 
« PAM » est un service utilisé pour le verrouillage des comptes utilisateurs après un certain nombre d’échecs de connexion de type « ssh ». Son utilisation permet de conserver le nombre de tentatives d’accès et les tentatives infructueuses.
Le module PAM utilise une librairie « pam_tally2.so », et celle-ci est utilisée dans le fichier de configuration « /etc/pam.d/ssh ». Si vous ne souhaitez pas utiliser cette protection sur les intrusions, vous pouvez tout simplement supprimer la ligne correspondante à la librairie « pam_tally2 » dans ce fichier de configuration :

[root@p-exa-node1 ~]# cat /etc/pam.d/sshd
#%PAM-1.0
auth       include     system-auth
auth       required     pam_tally2.so deny=5 onerr=fail lock_time=600
account   required     pam_nologin.so
account   include     system-auth
account   required     pam_tally.so
password   include     system-auth
session   optional     pam_keyinit.so force revoke
session   include     system-auth
session   required     pam_loginuid.so
session   required     pam_limits.so

Pour modifier le temps d’attente en cas de mauvaise authentification, nous vous proposons de changer la configuration dans le fichier « /etc/pam.d/sshd ».
La plupart du temps, nous réduisons le délai de 600 secondes (10 minutes) à 10 secondes, et c’est le paramètre « lock_time » qu’il convient de modifier.

[root@p-exa-node1 ~]# vi /etc/pam.d/sshd
…
auth       required     pam_tally2.so deny=5 onerr=fail lock_time=10
…

Enfin, si vous êtes bloqué sur un serveur de database, un serveur de stockage ou bien une VM, vous pouvez vous connecter sur un autre serveur, et par l’intermédiaire des clés « ssh », accéder au serveur dont les accès ont été suspendus. En d’autres termes, il faut rebondir ailleurs pour accéder au serveur.
Une fois connecté au serveur en question, la liste des comptes bloqués s’affiche en utilisant la commande « pam_tally2 » :

[root@p-exa-node1 ~]# pam_tally2
Login           Failures Latest failure     From
root               1   09/09/15 16:09:36 p-exa-console-admin

Pour débloquer un utilisateur, il faut utiliser la commande « pam_tally2 » avec les arguments « -u » pour donner le nom de l’utilisateur et « -r » pour effectuer une réinitialisation :

[root@p-exa-node1 ~]# pam_tally2 -u root -r
Login           Failures Latest failure     From
root               1   09/09/15 16:09:36 p-exa-console-admin

Par la suite, la commande « pam_tally2 » utilisée sans argument nous montre que le blocage de l’utilisateur en question n’est plus actif car il ne retourne aucune ligne :

[root@p-exa-node1 ~]# pam_tally2

Et voilà, j’espère que cet article vous simplifiera la vie et vous permettra de sortir de situations bien pénibles.