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.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Configurer la bannière locale
/etc/issue(consoles tty) - Configurer la bannière distante
/etc/issue.netet 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
Prérequis
Section intitulée « Prérequis »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.
Pourquoi des bannières d'avertissement
Section intitulée « Pourquoi des bannières d'avertissement »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 \lLa 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.
Bannière locale : /etc/issue
Section intitulée « Bannière locale : /etc/issue »/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 :
printf '%s\n' "Acces reserve aux utilisateurs autorises. Toute activite peut etre journalisee et signalee aux autorites competentes." | sudo tee /etc/issueLa règle est simple : aucun \S, \r, \v, \m, \n ni \l dans la bannière, pour ne rien divulguer du système.
Bannière distante et SSH : /etc/issue.net
Section intitulée « Bannière distante et SSH : /etc/issue.net »/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.
-
É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 -
Brancher la bannière sur SSH via la directive
Bannerdans/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 -
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.
Message du jour : /etc/motd
Section intitulée « Message du jour : /etc/motd »/etc/motd s'affiche après une connexion réussie. On y met un rappel neutre, ou on le vide :
printf '%s\n' "Acces reserve aux utilisateurs autorises. Toute activite est journalisee." | sudo tee /etc/motdDurcir les permissions
Section intitulée « Durcir les permissions »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.
sudo chown root:root /etc/motd /etc/issue /etc/issue.netsudo chmod 0644 /etc/motd /etc/issue /etc/issue.netVérifier
Section intitulée « Vérifier »Après configuration, trois contrôles confirment le durcissement :
# 1. Aucune séquence ne révèle l'OS, le noyau ou l'architecturegrep -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 distantesudo sshd -T | grep -i '^banner'# Attendu : banner /etc/issue.net
# 3. Permissions et propriétaire correctsstat -L -c '%n %a %U %G' /etc/issue /etc/issue.net /etc/motd# Attendu : 644 root root pour chaque fichierSécurité et points de vigilance
Section intitulée « Sécurité et points de vigilance »- 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.
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
| La bannière SSH ne s'affiche pas | directive Banner absente ou SSH non rechargé | ajouter Banner /etc/issue.net, systemctl reload ssh |
| L'OS apparaît encore à la connexion | séquences \S/\r toujours présentes | nettoyer /etc/issue et /etc/issue.net |
| Sur Ubuntu, le noyau s'affiche après login | scripts update-motd.d actifs | chmod -x /etc/update-motd.d/* |
sshd -T renvoie une erreur | configuration SSH invalide | sshd -t pour localiser l'erreur |
À retenir
Section intitulée « À retenir »- 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.netpuis recharger. - Retirer les séquences
\S \r \v \m \n \lqui divulguent OS, version et noyau. - Sur Ubuntu, neutraliser les scripts
update-motd.det le servicemotd-news. - Permissions cibles :
644 root:rootpour 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).