Installer un serveur de Terminaux X11 sur une machine sans écran.

Nowicki Christophe

Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.1 ou toute version ultérieure publiée par la Free Software Fondation. Pas de section inaltérable.


Table des matières

Serveur de terminaux X sans écran
Installation
Configuration
Tester

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.

Serveur de terminaux X sans écran

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.

Installation

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

Configuration

La configuration du serveur de terminaux X se trouve principalement au niveau du gestionnaire de login graphique. Voici comment procéder pour xdm.

Changer le serveur X de 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.

Activer le protocole XDMCP

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

Contrôle d'accès

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

Tester

Avant de tester le fonctionnement du serveur de terminaux il faut relancer le gestionnaire de login graphique.

#/etc/init.d/xdm restart

A l'aide de Xnest

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.

A l'aide d'un serveur X

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).