Parallèlement à la question " le nom d'utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé " qui expliquait les aspects programmatiques de l'erreur et proposait quelques solutions de contournement, je veux savoir: que signifie cette erreur?
X is not in the sudoers file. This incident will be reported.
La première partie de l'erreur explique clairement l'erreur. Mais la deuxième partie dit que "Cette erreur sera signalée"?! Mais pourquoi? Pourquoi l'erreur sera signalée et où? À qui? Je suis à la fois utilisateur et administrateur et n'ai reçu aucun rapport :)!
Les administrateurs d'un système sont susceptibles de vouloir savoir quand un utilisateur non privilégié essaie mais échoue à exécuter des commandes à l'aide de Sudo
. Si cela se produit, cela pourrait être un signe de
Étant donné que Sudo
ne peut à lui seul faire la distinction, les tentatives infructueuses d'utilisation de Sudo
sont portées à l'attention des administrateurs.
Selon la configuration de Sudo
sur votre système, toute tentative (réussie ou non) d'utiliser Sudo
sera enregistrée. Les tentatives réussies sont enregistrées à des fins d'audit (pour pouvoir suivre qui a fait quoi et quand) et les tentatives de sécurité ont échoué.
Sur une configuration Ubuntu assez vanille que j'ai, ceci est connecté /var/log/auth.log
.
Si un utilisateur donne trois fois le mauvais mot de passe, ou s'il ne se trouve pas dans le fichier sudoers
, un e-mail est envoyé à root (selon la configuration de Sudo
, voir ci-dessous). C'est ce que l'on entend par "cet incident sera signalé".
L'e-mail aura un sujet important:
Subject: *** SECURITY information for thehostname ***
Le corps du message contient les lignes pertinentes du fichier journal, par exemple
thehostname : Jun 22 07:07:44 : nobody : user NOT in sudoers ; TTY=console ; PWD=/some/path ; USER=root ; COMMAND=/bin/ls
(Ici, l'utilisateur nobody
a tenté d'exécuter ls
via Sudo
en tant que root, mais a échoué car il ne se trouvait pas dans le fichier sudoers
).
Aucun e-mail n'est envoyé si le courrier (local) n'a pas été configuré sur le système.
Toutes ces choses sont également configurables et les variations locales de la configuration par défaut peuvent différer entre les variantes Unix.
Jetez un œil au mail_no_user
paramètre (et connexe mail_*
settings) dans le manuel sudoers
(je souligne ci-dessous):
mail_no_user
S'il est défini, le courrier sera envoyé à l'utilisateur mailto si l'utilisateur appelant n'est pas dans le fichier
sudoers
. Ce drapeau est activé par défaut.
Dans Debian et ses dérivés, les rapports d'incidents Sudo
sont enregistrés dans /var/log/auth.log
Qui contient les informations d'autorisation système, y compris les connexions utilisateur et les mécanismes d'authentification qui ont été utilisés:
$ Sudo su
[Sudo] password for regularjohn:
regularjohn is not in the sudoers file. This incident will be reported.
[as root]
$ tail -n 1 /var/log/auth.log
Jun 21 16:30:26 marvin Sudo: regularjohn : user NOT in sudoers ; TTY=pts/19 ; PWD=/home/regularjohn ; USER=root ; COMMAND=/bin/su
Ce fichier journal n'est généralement accessible qu'aux utilisateurs du groupe adm
, c'est-à-dire aux utilisateurs ayant accès à tâches de surveillance du système :
$ ls -la /var/log/auth.log
-rw-r----- 1 syslog adm 76189 Jun 21 16:30 /var/log/auth.log
Depuis Debian Wiki :
Le groupe adm est utilisé pour les tâches de surveillance du système. Les membres de ce groupe peuvent lire de nombreux fichiers journaux dans/var/log et peuvent utiliser xconsole. Historiquement,/var/log était/usr/adm (et plus tard/var/adm), d'où le nom du groupe.
Les utilisateurs du groupe adm
sont généralement des administrateurs , et cette autorisation de groupe est destinée à leur permettre de lire les fichiers journaux sans avoir à su
.
Par défaut, Sudo
utilise la fonction Syslog auth
pour la journalisation . Le comportement de journalisation de Sudo
peut être modifié à l'aide des options logfile
ou syslog
dans /etc/sudoers
ou /etc/sudoers.d
:
logfile
définit le chemin d'accès au fichier journal Sudo
.syslog
définit la fonction Syslog lorsque syslog(3)
est utilisé pour la journalisation.La fonction Syslog auth
est redirigée vers /var/log/auth.log
Dans etc/syslog.conf
Par la présence de la strophe de configuration suivante:
auth,authpriv.* /var/log/auth.log
Techniquement, cela ne signifie pas grand-chose. De nombreux autres logiciels (sinon tous) se connectent, ont échoué ou autrement. Par exemple sshd
et su
:
Jun 21 17:52:22 somehost sshd[25807]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=::1 user=root
Jun 21 17:52:22 somehost sshd[25807]: Failed password for root from ::1 port 37268 ssh2
Jun 21 17:52:23 somehost sshd[25807]: Connection closed by ::1 port 37268 [preauth]
Jun 21 17:52:28 somehost su[25809]: pam_unix(su:auth): authentication failure; logname= uid=1000 euid=0 tty=/dev/pts/15 ruser=someuser rhost= user=root
Jun 21 17:52:28 somehost su[25809]: pam_authenticate: Authentication failure
Jun 21 17:52:28 somehost su[25809]: FAILED su for root by someuser
En outre, de nombreux systèmes disposent d'une sorte d'automatisation pour détecter les erreurs d'authentification excessives afin de pouvoir faire face à d'éventuelles tentatives de force brute, ou simplement utiliser les informations pour reconstruire les événements après l'apparition des problèmes.
Sudo
ne fait rien d'exceptionnel ici. Tout le message signifie que l'auteur de Sudo
semble avoir adopté une philosophie quelque peu agressive en communiquant avec les utilisateurs qui exécutent des commandes qu'ils ne peuvent pas utiliser.
Cela signifie simplement que quelqu'un a essayé d'utiliser la commande Sudo
(pour accéder aux privilèges d'administrateur), qui n'a pas l'autorisation de l'utiliser (car ils ne sont pas répertoriés dans le fichier sudoers). Il peut s'agir d'une tentative de piratage ou d'un autre type de risque de sécurité. Le message indique donc que la tentative d'utilisation de Sudo
sera signalée à l'administrateur système afin qu'il puisse enquêter.