Copyright © 2003 Nowicki Christophe
Table des matières
Introduction
Cet article explique comment mettre en place un serveur de Terminaux X sur un machine sans écran à l'aide d'un serveur X virtuel. Cela permet de faire l'économie d'un écran sur le serveur de terminaux.
Dans notre cas, le serveur de terminaux va utiliser un serveur X virtuel (Xvfb) a la place du serveur X classique. Celui-ci n'as pas besoin d'un fichier de configuration XF86Config.
Nous allons installer le serveur X virtuel et un gestionnaire de login. Il existe de nombreux gestionnaires de login pour XFree86 : xdm, gdm, kdm et wdm. Je vous propose d'utiliser xdm car c'est le plus répendu et le plus léger. Si vous avez la chance d'avoir une distribution Debian GNU/Linux il suffit d'installer les packages suivants :
#apt-get install xvfb xdm xfonts-base
Il s'agit du minimum vital pour faire tourner un serveur X virtuel. La commande apt-get va s'occuper d'installer les dépendances suivantes : libxaw7 xbase-clients xlibmesa3-gl xlibs.
Pour que votre serveur de terminaux X soit utilisable il faut installer quelques polices de caractère en plus, un gestionnaire de fenêtre et un terminal.
#apt-get install twm "xfonts-100dpi*" xterm
La configuration du serveur de terminaux X se trouve principalement au niveau du gestionnaire de login graphique. Voici comment procéder pour xdm.
Tout d'abord il faut lui préciser d'utiliser un serveur X virtuel dans le fichier "/etc/X11/xdm/Xservers". Pour cela nous allons remplacer la ligne :
:0 local /usr/X11R6/bin/X vt7 -dpi 100 -nolisten tcp
Par celle-là :
:0 local /usr/X11R6/bin/Xvfb -dpi 100 -screen 800x600x16
Vous pouvez changer la résolution du serveur virtuel a l'aide de l'option -screen. Pour les autres options je vous invite a consulter le manuel de Xvfb.
Le protocole XDMCP (X Display Manager Control Protocol) commun à tous les gestionnaires de login graphique est à la base des terminaux X. Il permet à un client X de trouver un serveur de terminaux et d'ouvrir un session. Celui-ci est désactivé par défaut pour des raisons de sécurité. Il est impossible d'encapsuler ce protocole dans un tunnel SSH sous peine d'avoir des performances désastreuses (UDP over TCP). Il ne faut surtout pas l'utiliser dans un environnement a risque. Pour activer le protocole XDMCP, il faut mettre en commentaire la dernière ligne du fichier /etc/X11/xdm/xdm-config comme ceux-ci :
! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm ! DisplayManager.requestPort: 0
Il ne nous reste plus qu'à configurer les listes d'accès de xdm dans le fichier /etc/X11/xdm/Xaccess. Celui-ci se base sur le nom de la machine pour savoir si elle a le droit ou non d'accéder au terminal X. Nous allons ajouter le nom de la machine de laquelle nous voulons nous connecter sur le serveur dans ce fichier.
#cat client_hostname >> /etc/X11/xdm/Xaccess
Avant de tester le fonctionnement du serveur de terminaux il faut relancer le gestionnaire de login graphique.
#/etc/init.d/xdm restart
Le programme Xnest permet de lancer un serveur X dans une fenêtre. Pour tester notre serveur de terminaux X sans écran il suffit donc de se placer sur une autre machine et entrer la commande suivante :
$Xnest :1 -query serveur
Si tout va bien vous devez voir le xdm du serveur dans la fenêtre Xnest. Vous pouvez vous logger sur la machine sans écran et lancer des applications graphiques.
Si nous voulez lancer l'affichage du serveur de Terminaux X sur un autre TTY ou bien en affichage principal vous pouvez le faire a l'aide du serveur X de la machine cliente :
#X :1 vt8 -dpi 100 -query serveur
Vous devez voir la fenêtre de login XDM sur la console virtuelle numéro 8. (Ctrl + Alt + F8).