telemaintenance

Lionel Porcheron lionel.porcheron at ubuntu.com
Mar 21 Aou 06:26:34 UTC 2007


Hello,

Michel D'HOOGE a écrit :
> Le lundi 20 août 2007 12:20:52, romain écrivait :
>   
>> pour information après avoir modifier la variable display. je lance une
>> applications graphique comme gaim puis j'ai le message suivant:
>> Gtk-WARNING **: cannot open display:
>> si çà peut aider à trouver le problème
>>     
>
> Depuis un certain temps déjà, les accès à un serveur X11 sont authentifiés. Il 
> faut savoir que contrairement à Windows (par exemple et au hasard), un 
> serveur X11 est vraiment un serveur. Ça veut dire que potentiellement 
> n'importe qui peut se connecter au serveur pour afficher n'importe quoi. 
> Ainsi, il y a encore 10 ans (je le sais car ça m'amusait à l'époque... 
> désolé...), il était possible de lancer une appli sur l'écran du voisin.
>
> Maintenant, avec l'avénement d'internet, cette pratique serait carrément 
> suicidaire et le rêve de tout phisheur. Donc, entre en scène 
> l'authentification. Ceci pour dire que si tu n'as pas la clé cryptographique 
> attendue par le serveur, impossible d'afficher quoi que ce soit.
>
> Les pages de manuel à lire sont xhost & xauth et tout particulièrement la 
> variable d'environnement XAUTHORITY.
>
> Petit exemple dans une console graphique (xterm...) : 
> - sans rien faire, il est possible de lancer une autre appli (par exemple 
> xeyes).
> - maintenant, on fait pointer XAUTHORITY ailleurs que sa place par défaut :
> export XAUTHORITY=/
> et impossible de lancer xeyes.
>
> Donc pour pouvoir afficher sur un écran, il faut avoir accès au contenu du 
> fichier ~/.Xauthority. Ou bien autoriser n'importe qui à se connecter, comme 
> à la belle époque, avec "xhost +". Et en fait, maintenant que j'y pense, je 
> crois que cette commande était déjà indispensable à l'époque susmentionnée.
>
> Suite de l'exemple : toujours avec un "export XAUTHORITY=/" actif. Dans une 
> autre console, faire "xhost +". Il est alors possible de se connecter de 
> n'importe où... Puis faire "xhost -" et on referme la porte.
>
> Donc, pour répondre à la question, si tu te connectes avec le même profil que 
> celui qui possède le serveur, juste un DISPLAY doit suffire. Sinon, le moins 
> risqué est de donné un accès en lecture au contenu du fichier ~/.Xauthority 
> puis de configurer en conséquence la variable XAUTHORITY.
>   
Tu as tout à fait raison Michel, mais les connexions TCP sont par défaut
désactivées sur les serveurs Xorg d'Ubuntu (et de Debian, je ne sais pas
pour les autres distributions). Si on regarde la commande qui lance X :
/usr/bin/X :0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7

(bon, à partir de là, je n'ai pas testé les manipulations, je n'avais
pas sous la main de PC à casser).

Romain, pour faire ce que tu veux, il faudrait je pense :
- éditer le fichier /etc/gdm/gdm.conf et changer le "DisallowTCP=True"
en "DisallowTCP=False"
- relancer le serveur X (de la machine à laquelle tu veux te connecter)
- ssh la machine
- export DISPLAY=:0.0
- export XAUTHORITY=~/.Xauthority
- lancer ton application X

Je n'ai pas parlé des différents problèmes de firewall, il faut
évidemment que les ports SSH et X de la machines distantes soient ouverts.

Attention, X n'est pas crypté, donc ssh va te donner une "fausse"
impression de sécurité et tout ce que tu taperas dans les fenêtres X
passera en clair sur le net. D'autre part, c'est malheureusement lourd
(en terme de consommation réseau) comme protocole.

A ta place, j'utiliserai le "bureau à distance" inclus dans GNOME (si tu
n'utilises pas un autre dérivé d'Ubuntu) qui est justement conçu pour
ça. Pour l'activer, tu vas dans "Systèmes -> Préférences -> Bureau à
distance"). La connexion distante se fait ensuite par VNC. Tu récupères
dont le bureau complet de la personne en face et tu peux voir ce qu'elle
fait et l'aider le cas échéant.

Lionel





Plus d'informations sur la liste de diffusion ubuntu-fr