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.

(Visited 1 times, 1 visits today)

Category: Enterprise Linux, openSUSE, Server, SUSE Linux Enterprise, SUSE Linux Enterprise Server, Technical Solutions
This entry was posted jeudi, 30 novembre, 2017 at 8:29
You can follow any responses to this entry via RSS.

Comments

  • pschmatz dit :

    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…

    • bdekany dit :

      Merci, bonne idée. J’utilise plus facilement le ~/.bash_logout avec une commande clear. Mais il faut utiliser bash.

  • Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *