Aller au contenu
Sécurité medium

Bannières d'avertissement Linux : issue, issue.net et motd

8 min de lecture

Par défaut, un serveur Linux annonce sa distribution, sa version et son noyau dès l'écran de connexion, et n'affiche aucun avertissement légal. Les bannières corrigent les deux problèmes : elles présentent un message de mise en garde avant l'accès (dissuasion et base juridique) et, bien configurées, cessent de renseigner l'attaquant sur le système, coupant court au banner grabbing. Ce guide montre comment configurer /etc/issue (console), /etc/issue.net (réseau et SSH) et /etc/motd (après connexion), puis durcir leurs permissions. Pour administrateurs Linux, sur Debian/Ubuntu et RHEL/AlmaLinux. Aligné CIS Benchmarks. Toutes les sorties proviennent d'un test réel.

  • Configurer la bannière locale /etc/issue (consoles tty)
  • Configurer la bannière distante /etc/issue.net et la brancher sur SSH
  • Neutraliser le message du jour /etc/motd (et les scripts dynamiques Ubuntu)
  • Retirer les séquences qui divulguent l'OS, la version et le noyau
  • Durcir les permissions de ces fichiers

Un accès root (ou sudo), et un serveur SSH installé si vous voulez afficher la bannière aux connexions distantes. Ces réglages se font à chaud, sans redémarrage.

Le réflexe est double. D'un côté, un avertissement légal affiché avant l'authentification dissuade les accès non autorisés et fournit une base à d'éventuelles poursuites. De l'autre, le contenu par défaut de ces fichiers est un cadeau pour un attaquant. Sur Debian, /etc/issue ressort ceci :

Debian GNU/Linux 12 \n \l

La distribution et sa version sont annoncées en clair, avant même de saisir un identifiant. Les séquences comme \n (nom d'hôte) et \l (ligne tty) sont interprétées par getty à l'affichage. D'autres, plus bavardes, révèlent encore plus : \S lit le nom de l'OS dans /etc/os-release, \r donne la version du noyau (uname -r), \v la date de build, \m l'architecture. Ce fingerprinting facilite le ciblage de failles connues.

/etc/issue s'affiche sur les consoles locales (tty), avant la connexion. On remplace son contenu par un texte légal neutre, sans aucune séquence d'échappement :

Fenêtre de terminal
printf '%s\n' "Acces reserve aux utilisateurs autorises. Toute activite peut etre journalisee et signalee aux autorites competentes." | sudo tee /etc/issue

La règle est simple : aucun \S, \r, \v, \m, \n ni \l dans la bannière, pour ne rien divulguer du système.

/etc/issue.net est la bannière des connexions réseau. Contrairement à /etc/issue, SSH peut l'afficher avant l'authentification, mais seulement si on l'active explicitement, car SSH n'affiche aucune bannière par défaut.

  1. Écrire la bannière distante (même texte neutre) :

    Fenêtre de terminal
    printf '%s\n' "Acces reserve aux utilisateurs autorises. Toute activite peut etre journalisee et signalee aux autorites competentes." | sudo tee /etc/issue.net
  2. Brancher la bannière sur SSH via la directive Banner dans /etc/ssh/sshd_config (ou un fichier sous /etc/ssh/sshd_config.d/) :

    Fenêtre de terminal
    echo "Banner /etc/issue.net" | sudo tee /etc/ssh/sshd_config.d/60-banner.conf
  3. Recharger SSH pour appliquer :

    Fenêtre de terminal
    sudo systemctl reload ssh # Debian/Ubuntu : service "ssh" ; RHEL : "sshd"

Le contenu de /etc/issue.net est alors envoyé au client avant la demande de mot de passe. La valeur none désactive la bannière.

/etc/motd s'affiche après une connexion réussie. On y met un rappel neutre, ou on le vide :

Fenêtre de terminal
printf '%s\n' "Acces reserve aux utilisateurs autorises. Toute activite est journalisee." | sudo tee /etc/motd

Si ces fichiers sont modifiables par un utilisateur non privilégié, n'importe qui peut altérer la bannière (supprimer l'avertissement, afficher un message trompeur). La cible est 644 root:root : lecture pour tous, écriture pour root seul.

Fenêtre de terminal
sudo chown root:root /etc/motd /etc/issue /etc/issue.net
sudo chmod 0644 /etc/motd /etc/issue /etc/issue.net

Après configuration, trois contrôles confirment le durcissement :

Fenêtre de terminal
# 1. Aucune séquence ne révèle l'OS, le noyau ou l'architecture
grep -E '\\(S|s|r|v|m|n|l)' /etc/issue /etc/issue.net /etc/motd
# Attendu : aucune ligne
# 2. SSH affiche bien la bannière distante
sudo sshd -T | grep -i '^banner'
# Attendu : banner /etc/issue.net
# 3. Permissions et propriétaire corrects
stat -L -c '%n %a %U %G' /etc/issue /etc/issue.net /etc/motd
# Attendu : 644 root root pour chaque fichier
  • Ne jamais inclure d'informations système dans une bannière : c'est l'erreur la plus fréquente, et elle annule tout le bénéfice.
  • Le texte légal doit être validé par votre organisation (mention de la journalisation, interdiction d'accès non autorisé). Adaptez-le à votre contexte juridique.
  • La bannière SSH s'affiche avant l'authentification : n'y mettez rien de confidentiel, elle est visible par quiconque ouvre une connexion.
SymptômeCause probableSolution
La bannière SSH ne s'affiche pasdirective Banner absente ou SSH non rechargéajouter Banner /etc/issue.net, systemctl reload ssh
L'OS apparaît encore à la connexionséquences \S/\r toujours présentesnettoyer /etc/issue et /etc/issue.net
Sur Ubuntu, le noyau s'affiche après loginscripts update-motd.d actifschmod -x /etc/update-motd.d/*
sshd -T renvoie une erreurconfiguration SSH invalidesshd -t pour localiser l'erreur
  • Trois fichiers : /etc/issue (console), /etc/issue.net (réseau/SSH), /etc/motd (après login).
  • SSH n'affiche aucune bannière par défaut : activer la directive Banner /etc/issue.net puis recharger.
  • Retirer les séquences \S \r \v \m \n \l qui divulguent OS, version et noyau.
  • Sur Ubuntu, neutraliser les scripts update-motd.d et le service motd-news.
  • Permissions cibles : 644 root:root pour empêcher toute altération.
  • Mesure alignée CIS Benchmarks (sections bannières : 1.6.x sur Ubuntu 24.04, 1.7.x sur RHEL 9 ; vérifier le numéro selon la version du benchmark).

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn