Afficher un message avant la connexion d'un utilisateur
Nous sommes habitués aux messages automatiques qui apparaissent à la connexion à un système Linux.
Bienvenue $USER Vous avez des mails non lus. Il y a 14 patchs prêts à être installés. Il y a eu 2 tentatives de connexion échouées.
Saviez-vous qu’il est aussi possible d’afficher un message avant la connexion ?
Moins connu mais tout aussi pratique ce message de pré-authentification peut par exemple :
Informer sur l’état de la machine :
Plateforme de devel, n’utilisez pas votre mot de passe SSO !
Ou alors utiliser les nudges pour faire passer des bonnes pratiques :
Dites moi, vous n’avez pas l’intention de vous connecter en root j’espère !
Ou plus formel, rappeler la loi sur la connexion frauduleuse :
Article 323-1 https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000006418316&cidTexte=LEGITEXT000006070719 Le fait d'accéder ou de se maintenir, frauduleusement, dans tout ou partie d'un système de traitement automatisé de données est puni de deux ans d'emprisonnement et de 60 000 € d'amende. Lorsqu'il en est résulté soit la suppression ou la modification de données contenues dans le système, soit une altération du fonctionnement de ce système, la peine est de trois ans d'emprisonnement et de 100 000 € d'amende. Lorsque les infractions prévues aux deux premiers alinéas ont été commises à l'encontre d'un système de traitement automatisé de données à caractère personnel mis en œuvre par l'Etat, la peine est portée à cinq ans d'emprisonnement et à 150 000 € d'amende.
Évidement ce message en lui-même n’est pas une protection.
Il faut mettre en place un export des journaux d’événements des connexions sur un autre système (type SIEM).
Si un hacker venait à prendre le contrôle de la machine, il peut tout à fait effacer ses traces.
Connexion Texte
Pour la connexion en mode texte, console ou ssh, c’est le plus simple.
Nous allons stocker le message dans un fichier qui sera affiché.
message="Le fait d'accéder ou de se maintenir…" echo $message | sudo tee /etc/issue /etc/issue.net
Puis modifier la configuration du service sshd pour afficher le message lors d’une connexion à distance.
/etc/ssh/sshd_config
Banner /etc/issue.net
Connexion graphique
Pour la connexion GUI, il va falloir ruser.
J’avais d’abord pensé à un pop-up avec l’outil intégré à Gnome : zenity.
Mais le plus simple est en fait d’incruster le texte dans l’image de fond.
Les plus créatif utiliseront TheGIMP, les autres scripteront avec ImageMagick.
message="Le fait d'accéder ou de se maintenir…" bgimage=/path/to/original_background.jpg width=`identify -format %w ${bgimage}` let width/=3 convert -background '#0008' -fill white -gravity center -size ${width} -pointsize 24 caption:"${message}" ${bgimage} +swap -gravity west -composite bgimage_with_message.jpg
Pour utiliser le fond d’écran avec gdm ou xdmcp :
gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/bgimage_with_message.jpg'
Pour utiliser le fond d’écran avec xrdp (format bmp) :
/usr/share/xrdp/bgimage_with_message.bmp
/etc/xrdp/xrdp.ini
ls_background_image=bgimage_with_message.bmp
Conclusion
Le paramétrage d’un message de bienvenue en mode graphique n’est pas aussi simple que pour le mode texte.
Mais grâce au scripting tout est possible.
Comments
Un petite astuce que je fais couramment, c’est d’allonger le /etc/issue avec des ‘/n’ pour qu’il remplisse l’écran de la console, pour empêcher de voir les dernières commandes utilisées sur la console 😉
Pas trop utile sur VM, mais peut l’être sur des machines physiques…
Merci, bonne idée. J’utilise plus facilement le ~/.bash_logout avec une commande clear. Mais il faut utiliser bash.