S'assurer que la bannière d'avertissement de connexion locale est correctement configurée
Définit /etc/issue (la bannière pré-connexion affichée sur les TTY locaux) sur un avertissement légal ne contenant aucune séquence d'échappement révélant l'OS ou la version (\s, \m, \r, \v, \l).
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
La bannière de connexion doit énoncer le statut légal de l'accès, nommer l'organisation propriétaire et mentionner la politique de surveillance, formulation souvent nécessaire pour poursuivre un accès non autorisé. Tout aussi important, les séquences d'échappement comme \s (nom de l'OS), \r (version du noyau) et \m (architecture) divulguent des empreintes système détaillées à quiconque se trouve devant l'invite, aidant un attaquant à choisir des exploits ciblés. Les utilisateurs autorisés obtiennent ces détails via uname -a après connexion, il n'y a donc aucun intérêt à les exposer avant authentification.
Ce que vérifie Pavois
Pavois lit /etc/issue et vérifie qu'il est non vide et exempt des échappements \[smrvlSMRVL]. Il s'agit d'un fichier statique consommé par getty à l'invite locale ; lire le fichier représente donc bien la configuration effective ici, car aucune commande d'état résolu ne s'intercale entre le fichier et ce qu'affiche le TTY.
describe file('/etc/issue') do
its('content') { should match(/\S/) }
its('content') { should_not match(/\\[smrvlSMRVL]/) }
endComment vérifier qu’elle est appliquée
Exécutez cat /etc/issue. Attendez-vous à un avis d'utilisation autorisée clair et aucun échappement antislash comme \s/\r/\m. Lors d'une connexion console, vous devez voir exactement ce texte au-dessus de l'invite login:.
Inspecter et investiguer
Aucun journal d'exécution ; la bannière est un élément d'affichage. Pour auditer les changements du fichier : journalctl _COMM=login montre les connexions locales, et ls -l /etc/issue / stat /etc/issue confirme la propriété root:root et le mode 0644.
Remédiation
pavois harden apply écrit /etc/issue avec un avis d'accès autorisé neutre, propriétaire root:root et mode 0644. La bannière ne contient délibérément aucun échappement dynamique, donc aucun détail système ne fuite. Aucun redémarrage ni redémarrage de service n'est nécessaire : getty lit le fichier à la connexion suivante.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| content | Authorized access only. All activity on this system is monitored and recorded. Disconnect immediately if you are not an authorized user. |
|---|---|
| group | root |
| mode | 0644 |
| owner | root |
| path | /etc/issue |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Cosmétique et sans risque, cela ne change que ce qui s'affiche avant l'invite de connexion locale ; aucune interruption de service. Précautions : si vous personnalisez le texte, gardez-le générique et évitez de réintroduire des échappements \ (ils réintroduisent la fuite d'empreinte de l'OS). Certains outils de provisionnement régénèrent /etc/issue au démarrage, ce qui peut annuler ce réglage : assurez-vous qu'aucun modèle cloud-init/MOTD ne l'écrase.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.6.2, 1.7.2 | direct | per OS, see the benchmark table | haute |
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.