{{tag>tutoriel BROUILLON VÉTUSTE}} ---- ====== 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 [[http://www.ltsp.org|Linux Terminal Server Project]], ou au [[:ltsp|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.) * Séquence de démarrage - 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/ 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 : * Une machine sous ''Ubuntu Breezy 5.10'' qui jouera le rôle de serveur, * au moins une machine avec démarrage ''PXE'' qui jouera le rôle du client, * un espace libre sur le disque dur, * un connexion internet rapide, un mirroir local pour ''Breezy'', ou beaucoup de patience, * un serveur ''DHCP'' capable de supporter des clients ''PXE'', ou un segment de réseau séparé où vous pouvez lancer un serveur ''DHCP'' dédié, * une certaine aisance avec la ligne de commande, * un certain goût du risque, * et un désir brûlant d'envoyer vos commentaires aux développeurs d'Ubuntu ! ===== Pour commencer ===== ==== Paramétrer le serveur DHCP ==== === Si vous disposez déjà d'un serveur DHCP avec prise en charge des clients PXE === * Le configurer de façon à obtenir un fichier de démarrage ''/ltsp/pxelinux.0'' et un chemin root vers ''/opt/ltsp/i386''. (Pour les versions supérieures à Breezy, le chemin de pxelinux.0 à spécifier est ''/ltsp/i386/pxelinux.0''). * Avec ISC DHCPD, utiliser les options suivantes : filename "/ltsp/pxelinux.0"; option root-path "/opt/ltsp/i386"; * [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **ltsp-server** sur le serveur. === Si vous souhaitez un serveur DHCP dédié === * [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **ltsp-server-standalone** sur le serveur. * Si besoin, adapter le fichier de configuration « /etc/ltsp/dhcpd.conf » (configuré par défaut pour un serveur d'adresse IP 192.168.0.1 relié à des clients 'PXE') * Si un firewall est présent sur le serveur, il vous faudra autoriser ''TFTP'' et ''NFS'' (et ''DHCP'' si vous exécutez un serveur standalone). Assurez-vous également que ''portmap'' n'est pas limité à l'interface de bouclage (loopback) dans /etc/default/portmap (commentez la ligne "-i 127.0.0.1" si elle existe). Editez éventuellement `/etc/hosts.allow' pour limiter l'accès à portmap, rpc.mountd, rpc.statd, et in.tftpd, uniquement depuis le réseau local : portmap: 192.168.0.0/24 rpc.mountd: 192.168.0.0/24 rpc.statd: 192.168.0.0/24 in.tftpd: 192.168.0.0/24 * Relancer le sous-système ''nfs'' : sudo invoke-rc.d nfs-kernel-server restart sudo invoke-rc.d nfs-common restart sudo invoke-rc.d portmap restart ==== Construction de l‘environnement d‘exécution du client léger ==== sudo ltsp-build-client * Ce script est prévu pour fonctionner avec un mirroir spécial Ubuntu. Mais vous pouvez également le modifier si vous avez un miroir plus proche ou un cédérom : 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 [[http://www.rom-o-matic.net/|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 : * un poste client serveur entièrement configuré, disposant d'au moins deux interfaces réseaux, la première connectée à internet, la seconde connectée au réseau interne. Pour les étapes suivantes, nous supposerons que votre serveur est également configuré en ''gateway'' réseau. ==== Pour commencer ==== * Vérifier que les 2 interfaces sont bien configurées dans « /etc/network/interfaces », * Vérifier avec la commande ''ifconfig'' qu'elles sont toutes deux actives, * Assurez-vous que le serveur peut se connecter à internet. 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. * [[:tutoriel:comment_editer_un_fichier|Éditer le fichier]] **/etc/network/options** et autoriser l’''ip_forward''. Vous devriez obtenir ceci : 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. * Activer le masquage d'adresse. Par défaut, le réseau ltsp utilise l'adresse 192.168.0.0/24. N'oubliez de la modifier pour être cohérent avec votre réseau, en utilisant la commande : sudo iptables --table nat --append POSTROUTING --jump MASQUERADE --source 192.168.0.0/24 pour autoriser ''NAT''. * Entrez votre login sur une des stations clientes et appréciez les joies de l'internet. Si cette étape échoue, essayez de remplacer ''​%%--%%append'' par ''​%%--%%delete'' dans la commande ci-dessus. * Pour fixer les règles NAT d'''iptables'', lancez les commandes suivantes : sudo sh -c 'iptables-save > /etc/ltsp/nat.conf' * [[:tutoriel:comment_editer_un_fichier|Éditer le fichier]] **/etc/network/interfaces** et ajouter la ligne suivante à l'interface interne stanza : 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. * Ensuite, il faut s'assurer que le paramètre ip_forward qui a été autorisé (mis à "1", voir plus haut) soit conservé après le redémarrage. Pour cela, [[:tutoriel:comment_editer_un_fichier|éditez le fichier]] **/etc/sysctl.conf** et décommentez la ligne (en retirant le "**#**): #net.ipv4.conf.default.forwarding=1 Votre connexion internet sera maintenant également disponible après un redémarrage. ---- //Contributeurs : * [[https://wiki.ubuntu.com/ThinClientHowto|Traduction et amélioration]] par [[utilisateurs:Gauthier]]. * [[https://wiki.ubuntu.com/ThinClientHowto|Persistence de l'"ip forwarding" après redémarrage]] par [[utilisateurs:vpxavier]] //