Imposer l'usage de pam_wheel avec le paramètre de groupe pour l'authentification su
Active pam_wheel.so use_uid dans /etc/pam.d/su afin que seuls les membres d'un groupe d'administration de confiance (par ex. wheel/sudo) puissent utiliser su pour devenir un autre utilisateur, généralement root.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
su permet à un utilisateur de basculer vers une autre identité, généralement root, en fournissant le mot de passe cible. Sans pam_wheel, n'importe quel utilisateur local qui découvre ou force le mot de passe root obtient un shell root. Restreindre su à un groupe d'administration défini avec pam_wheel.so use_uid ajoute un contrôle d'appartenance par-dessus le mot de passe, appliquant le moindre privilège et garantissant que l'élévation de privilèges se limite à un ensemble de comptes intentionnel et auditable.
Ce que vérifie Pavois
Pavois recherche dans le fichier de service PAM actif /etc/pam.d/su une ligne pam_wheel.so ... use_uid non commentée. C'est le fichier que PAM charge réellement lors de l'exécution de su, donc le lire reflète la politique en vigueur ; use_uid est requis pour que le contrôle se base sur l'UID réel de l'appelant, et non sur une identité supposée.
describe command('grep -qrE \'^[^#]*pam_wheel.so.*use_uid\' /etc/pam.d/su 2>/dev/null && echo ok || echo ko') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez grep -E '^[^#]*pam_wheel.so.*use_uid' /etc/pam.d/su. La sortie attendue est une ligne active telle que auth required pam_wheel.so use_uid. Testez en tentant su - en tant qu'utilisateur non membre du groupe d'administration, cela doit être refusé.
Inspecter et investiguer
Les tentatives su et les décisions PAM sont journalisées dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (RHEL), et via journalctl. Une tentative refusée apparaît sous la forme pam_wheel(su:auth): ... not in the trusted group.
Remédiation
Aucun plan de durcissement automatisé n'est défini ; cela doit donc être appliqué manuellement : dans /etc/pam.d/su, décommentez ou ajoutez auth required pam_wheel.so use_uid (éventuellement group=wheel/group=sudo), et assurez-vous que vos administrateurs sont membres de ce groupe. Les changements prennent effet immédiatement pour les nouveaux appels à su.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | sed -ri 's/^#\s*(auth\s+required\s+pam_wheel\.so.*use_uid)/\1/' /etc/pam.d/su; grep -qE '^[^#]*pam_wheel\.so.*use_uid' /etc/pam.d/su || echo 'auth required pam_wheel.so use_uid' >> /etc/pam.d/su |
|---|---|
| name | pam-wheel-su |
| not_if | grep -qE '^[^#]*pam_wheel\.so.*use_uid' /etc/pam.d/su |
| resource | exec |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Si vous activez pam_wheel avant d'ajouter vos comptes administrateurs au groupe de confiance, ces utilisateurs perdent la possibilité de faire su vers root, ce qui peut compliquer la récupération sur les systèmes sans sudo fonctionnel. Avant d'appliquer, peuplez le groupe (usermod -aG wheel <admin> ou sudo sur Debian/Ubuntu), gardez une session root ou sudo ouverte, et vérifiez qu'un membre peut toujours faire su - avant de vous y fier.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.2.6, 5.2.7 | direct | per OS, see the benchmark table | haute |
| PCI DSS | 2.2.6 | support | 4.0.1 | moyenne |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.