Table des matières

, ,

Comment mettre en place une station cliente légère ?

NOTE IMPORTANTE : le logiciel dont il est ici question est en pré-version. Vous pourriez donc ne pas en être pleinement satisfait… tant que vous n'aurez pas vous-même participé à son déboguage. Si vous recherchez une solution plus stable, reportez-vous au site du Linux Terminal Server Project, ou au tutoriel LTSP.

Qu'est ce qu'une station cliente légère ?

D'un point de vue utilisateur, une station cliente ressemble à un ordinateur de bureau banal. Pour l'administrateur en revanche, une station cliente est synonyme de machine dépourvue de capacité de stockage, facile à gérer, et pouvant offrir à l'utilisateur un certain confort informatique même avec du matériel ancien.

Comment fonctionne une station cliente ?

Réponse basique

Les stations clientes se contentent de charger en mémoire un système d'exploitation réduit et de se connecter ensuite à un serveur. Les applications s'exécutent sur le serveur mais s'affichent sur l'écran de la station cliente.

Réponse technique

Séquence de démarrage (d'un point de vue station cliente) : la station cliente peut soit disposer d'un noyau sur un média de stockage local, soit le charger depuis le serveur au travers du réseau (en utilisant les instructions appropriés, il est possible de charger le noyau linux depuis un serveur au travers d'une carte réseau de démarrage. Ainsi, la station cliente n'a plus besoin de stocker quoi que ce soit, si ce n'est sur la mémoire morte de la carte réseau.)

La carte réseau PXE lance une requête DHCP sur le réseau local. Le serveur DHCP répond en indiquant à la carte où se trouve le noyau linux. Le noyau est alors chargé au travers du réseau via le protocole TFTP.

Une fois le noyau chargé, il est exécuté, et la machine démarre sous linux. initramfs est chargé avec le noyau linux et il est monté comme système de fichiers root. Ceci procure automatiquement les pilotes nécessaires pour la carte réseau, la souris, le clavier, etc… Une fois le pilote de carte réseau chargé en mémoire, une seconde requête DHCP fournit aux clients les informations comme l'adresse IP, le masque réseau, la passerelle, le serveur DNS et le point de montage root NFS (Network File System) .

Le noyau linux exécute ubuntu initramfs, qui monte le système de fichiers root partagé du serveur, sur la machine cliente, en lecture seule. La station cliente a donc alors un noyau linux de démarrage, un système de fichiers root, comme un vrai système Linux. A partir de maintenant, quand nous parlerons du système de fichiers de la station client, il s'agira en fait du système de fichiers root du serveur monté en lecture seule. Le système de fichiers root monté par la station cliente est différent du système de fichiers root que le serveur utilise lui-même, mais il est conçu spécialement pour les stations clientes, et il est partagé entre toutes celles connectées au serveur (il est situé dans le répertoire /opt/ltsp/<arch> sur le serveur) . initramfs appelle le programme init, les paramètres du serveur X sont autodéctées et le gestionnaire de connexion ubuntu breezy ltsp, que l'on appelle ldm est exécuté.

- X nuts and bolts -

Une fois connecté, ldm crée un tunnel ssh et démarre une session X sur le serveur avec affichage sur les stations clientes via le tunnel. L'utilisation de ssh procure des avantages : vous n'avez pas à configurer le serveur X sur la station cliente, et aucun transport de données par protocole tcp non sécurisé n'est initialisée, comme cela pouvait l'être auparavant avec ltsp.

Prérequis

Il vous faut avant tout :

Pour commencer

Paramétrer le serveur DHCP

Si vous disposez déjà d'un serveur DHCP avec prise en charge des clients PXE

(Pour les versions supérieures à Breezy, le chemin de pxelinux.0 à spécifier est /ltsp/i386/pxelinux.0).

Si vous souhaitez un serveur DHCP dédié

Construction de l‘environnement d‘exécution du client léger

sudo ltsp-build-client 
sudo ltsp-build-client --mirror [WWW] file://cdrom

en n'oubliant pas de copier les sources.list du serveur en chroot. Soyez patient, selon la vitesse de votre connexion Internet et la puissance de votre serveur, la construction peut prendre plusieurs minutes …

Attention : si vous avez modifié les paramètres de dépendances d'apt pour que les paquets recommandés ne soient pas sélectionnés automatiquement, il vous manquera certains paquets avec le script. Aucune connexion avec sdm ne sera alors possible puisque certains composants du serveur X seront manquants.
apt-get install openssh-server 
sudo ltsp-update-sshkeys

Vérifier le fichier de configuration « ssh_known_hosts »

Pensez à consulter le fichier « /opt/ltsp/i386/etc/ssh/ssh_known_hosts » et assurez-vous que votre nom d'hôte est bien associé à l'adresse IP. Selon la configuration spécifiée dans le fichier « /etc/hosts », il se peut que cette association soit automatique. Si le contenu du fichier ressemble à :

servername ssh-rsa AAAAB3NzaC1yc2EAAAABI...

…ajouter alors l'adresse IP de la façon suivante :

servername,192.168.0.1 ssh-rsa AAAAB3NzaC1yc2EAAAABI...

Créer éventuellement le fichier /opt/ltsp/i386/etc/lts.conf.

Dans le cas contraire, les valeurs par défaut seront utilisées.

5. Lancer le client par PXE et observer le résultat.

Si tout se passe bien, vous devriez avoir une ouverture de session en mode graphique.

Si votre station client est dépourvue de carte réseau PXE, vous pouvez créer un cédérom ou une disquette de démarrage via le site ROM-o-matic.net. Graver alors l'image iso ou enregistrer l'image disquette, et démarrer à partir du média créé.

6. Connectez-vous avec un identifiant autorisé pour la connexion ssh à distance

et observez le résultat. Si tout fonctionne correctement, vous devriez maintenant être dans une session de travail sur le serveur.

...et pour terminer... envoyez un courriel aux développeurs d'Ubuntu pour partager vos découvertes !

Trucs & Astuces

Si vous utilisez un serveur DHCP dédié sur lequel vous ne souhaitez pas installer LTSP, vous pouvez vous contenter de rediriger la station cliente vers un serveur différent.

Dans le fichier de configuration du serveur DHCP, dhcpd.conf:

next-server 192.168.0.3; 

où 192.168.0.3 est l'adresse de votre serveur LTSP.

Bogue signalé

* Bogue 19407: OpenSSH semble ne pas attribuer correctement les ports pour faire du X forwarding, ce qui empêche de se déconnecter et de se reconnecter immédiatement après, si la prise en charge IPv6 est activée. Désactivez en ajoutant la ligne "AddressFamily inet" au fichier /etc/ssh/sshd_config, et relancez le démon openssh.

Cas d'une station cliente NAT

Ce tutoriel est en fait la synthèse d'informations diverses sur le partage d'une connexion internet entre un serveur et ses stations clientes. The latter will act as NAT/gateway.

Prérequis :

Vous aurez besoin de :

Pour commencer

Remarque : les étapes décrites ci-dessus sont très importantes ! Prenez le soin de procéder à toutes ces vérifications, ceci vous épargnera bien des tracas pour la suite. Si vous n'êtes pas sûrs des paramètres réseau, adressez-vous à l'administrateur de votre réseau local.
ip_forward=yes
spoofprotect=yes
syncookies=no

Puis lancer la commande suivante :

sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

pour autoriser immédiatement la fonction de redirection d'IP du noyau.

sudo iptables --table nat --append POSTROUTING --jump MASQUERADE  --source 192.168.0.0/24

pour autoriser NAT.

sudo sh -c 'iptables-save > /etc/ltsp/nat.conf'
up iptables-restore < /etc/ltsp/nat.conf

Vous devriez obtenir l'affichage suivant :

auto eth1
iface eth1 inet static
      address 192.168.0.1
      netmask 255.255.255.0
      broadcast 192.168.0.255
      network 192.168.0.0
      up iptables-restore < /etc/ltsp/nat.conf

pour vous assurez que les tables nat sont configurées correctement à chaque redémarrage.

  #net.ipv4.conf.default.forwarding=1   

Votre connexion internet sera maintenant également disponible après un redémarrage.


Contributeurs : * Traduction et amélioration par Gauthier. * Persistence de l'"ip forwarding" après redémarrage par vpxavier