[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: xmessage : can't open display



Salut à tous,

Et bien concernant le protocole client-serveur X11 et sa sécurité, je suis pas un spécialiste, mais quand je lis ce fil de discussion, je me dis qu'il y a du boulot pour en expliquer un peu ;-) !

Le 22/11/2010 18:06, corbie@free.fr a écrit :
ssh -X user@machine xmessage -display :0.0 "OK"
Il faut taper le mot de passe, c'est assez lourd,
mais ça marche.
Merci.
En fait, dans ce cas-là, l'option -X ne sert à rien. Cette option permet de se connecter à une machine distante (serveur SSH) et de lancer une application graphique (client X) qui va s'afficher sur le serveur X tournant sur le client SSH. C'est clair ?

Dans le cas qui nous intéresse, on veut afficher une application sur une machine (et un serveur X) distant. Donc,
ssh user@machine xmessage -display :0.0 "OK"
va suffire, à condition que user soit bien l'utilisateur propriétaire de la session graphique sur machine.

Pourtant je l'avais fait il y a environ 3 ans :
$ xmessage -display<IP_distant>  :0.0 "Hello"
sans problèmes.
Soit ... tant pis, je verrai plus tard si c'est possible.
Effectivement, ce type de commande pourrait fonctionner, s'il n'y avait pas des mécanismes de sécurité pour l'empêcher... Tout d'abord, il y a de grandes chances pour que ton serveur X n'écoute tout simplement pas sur le réseau, mais seulement sur une socket Unix locale. Il suffit de regarder les options de lancement qui doivent être indiquées dans le fichier /etc/X11/xinit/xserverrc (ou peut-être dans la conf de gdm). Si tu y vois quelque chose du genre "-nolisten tcp", c'est bien le cas. Tu peux aussi vérifier si le port TCP 6000 est en écoute sur la machine où tu veux afficher tes messages : c'est le port TCP associé au display machine:0 (port 6001 pour machine:display:1). Ensuite, il faut autoriser la connexion X depuis ta machine cliente : c'est là qu'intervient la command "xhost +", mais pour plus de sécurité, je te conseille plutôt un "xhost +<machine autorisée>". N'oublie pas que l'accès à un display ne te permet pas seulement d'afficher ce que tu veux à l'écran, mais aussi de voir ce qui est affiché et de lire tous les évènements clavier et souris. Dans un environnement que tu estimes sécurisé (petit LAN domestique) ça peut passer, mais il faut éviter ce genre de chose dès que des machines du réseau peuvent être utilisées par des gens à qui tu ne fais pas absolument confiance. Le problème, c'est que même avec "xhost +", je ne suis pas tout à fait certain que cela fonctionne. L'accès au serveur X est certainement sécurisé via un mécanisme de fichier d'autorisation : regarde du côté de la commande xauth si tu veux en savoir plus (je ne connais pas suffisamment pour pouvoir te résumer le fonctionnement de façon claire).

Au final, afficher des applications sur un serveur X distant n'est pas pas (plus) trivial en raison de considérations de sécurité. La bonne solution serait peut-être de chercher des systèmes de notification graphique en réseau. Ça existe certainement, mais je n'en connais pas. En revanche, il doit bien il y avoir des personnes ayant utilisé ça par ici..

Bonne fin de soirée.

Bonne soirée à toi aussi,
Jean-Jacques



Reply to: