RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - -- Documentation -- Documentation FreeNX, l'accès à distance sécurisé et performant - épisode 3 Eric Deschamps lundi 19 juin 2006 Résumé : Suite et fin de mes articles sur FreeNX : maintenant nous allons voir la mise en place et l'utilisation RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 1/11
Dans le dernier article nous avons compilé puis installé le serveur NX. Celui-ci suivra grossièrement le plan suivant : quelques petites explications sur ce que vous devez comprendre de la sécurisation des données en utilisant FreeNX l'installation du client sur la ou les machines qui souhaitent accéder au serveur la génération de clés DSA pour ssh personnalisées pour être un peu plus tranquille la configuration de ssh sur le serveur NX FreeNX et SSH FreeNX s'appuie sur OpenSSH pour la transmission des informations ainsi que pour l'authentification. Si vous ne connaissez pas SSH, il existe sur Internet de nombreuses ressources particulièrement brillantes, utilisez votre moteur de recherche favori pour en trouver une à votre goût. Rapidement, je peux vous dire que SSH chiffre les informations en s'appuyant sur un système de clés asymétriques (privée / publique).l'authentification se fait soit par mot de passe, soit également par clé. Dans notre cas, lorsque vous aller utiliser FreeNX, vous aller ouvrir une session SSH en utilisant l'authentification par clé, comme vous pourriez le faire en ligne de commande, et comme il est courant de le faire pour des sauvegardes, par exemple avec rsync. La clé avec laquelle vous vous identifiez ici, par défaut, et si vous avez suivi l'article précédent, est la clé NoMachine. Ce n'est pas sain de l'utiliser en production car c'est la configuration par défaut, ainsi il est possible d'utiliser cette clé pour se connecter sur votre machine. Par contre, pour la mise en place, c'est plus simple. Il ne faudra pas oublier à la fin une fois que tout sera fonctionnel de générer votre propre clé et de l'utiliser, c'est tout. Une fois ceci fait, on va s'attaquer au client à installer sur votre machine. Installation du client Allez sur le site de la société NoMachine et téléchargez le client qui correspond le mieux à votre environnement. Pour ma part, il s'agit du client pour Debian et Ubuntu, il suffit juste de l'installer avec dpkg puis d'installer la dépendance que j'ai oubliée (volontairement, hein, je suis vicieux) et tout va bien : $ sudo dpkg -i nxclient_1.5.0-141_i386.deb Password: Sélection du paquet nxclient précédemment désélectionné. (Lecture de la base de données... 104208 fichiers et répertoires déjà installés.) Dépaquetage de nxclient (à partir de nxclient_1.5.0-141_i386.deb)... dpkg : des problèmes de dépendances empêchent la configuration de nxclient : nxclient dépend de libstdc++2.10-glibc2.2 ; cependant : Paquet libstdc++2.10-glibc2.2 n'est pas installé. RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 2/11
dpkg : erreur de traitement de nxclient (--install) : problèmes de dépendances - laissé non configuré Des erreurs ont été rencontrées pendant l'exécution : nxclient On corrige les petites erreurs : $ sudo apt-get -f install Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait Correction des dépendances... Fait Les paquets supplémentaires suivants seront installés : libstdc++2.10-glibc2.2 Les NOUVEAUX paquets suivants seront installés : libstdc++2.10-glibc2.2 0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour. 1 partiellement installés ou enlevés. Il est nécessaire de prendre 329ko dans les archives. Après dépaquetage, 1384ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer O/n? Réception de : 1 http://fr.archive.ubuntu.com dapper/universe libstdc++2.10-glibc2.2 1:2.95.4-24 329kB 329ko réceptionnés en 0s (447ko/s) Sélection du paquet libstdc++2.10-glibc2.2 précédemment désélectionné. (Lecture de la base de données... 104342 fichiers et répertoires déjà installés.) Dépaquetage de libstdc2.10-glibc2.2 (à partir de.../libstdc2.10-glibc2.2_1%3a2.95.4-24_i386.deb)... Paramétrage de libstdc++2.10-glibc2.2 (2.95.4-24)... Paramétrage de nxclient (1.5.0-141)... Voilà, il nous reste plus qu'à essayer, paramétrer et être content. Utilisation et paramétrage du client $ /usr/nx/bin/nxclient?wizard RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 3/11
Les cliconautes vont se retrouver plus à leur aise, appuyez sur? Suivant... Ici, les options parlent d'elles-même. pour le moment on utilise le port ssh par défaut, et pour l'exemple, j'attaque la machine localement : Adaptez les options, vous devez savoir à quoi vous vous connectez : Et hop, c'est fini! Facile le clic... RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 4/11
On configure en adaptant mes jolies captures, et on essaie, et... c'est le drame, ça ne fonctionne pas! Ah, super l'article, hein, merci bien! Bah oui, il faut pousser un peu l'enquête. D'abord, on peut regarder l'état du serveur : # nxserver --status Puis le relancer... # nxserver?restart Ca ne change rien mais ça fait toujours une commande qu'on commence à savoir utiliser. Ensuite, on relance la configuration du serveur nx : # nxsetup --> You did select no action. FreeNX guesses that you want to _install_ the server. Type "y" to abort the installation at this point in time. RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 5/11
"N" is the default and continues installation. Use "/usr/sbin/nxsetup --help" to get more detailed help hints. Do you want to abort now? y/n --> It is recommended that you use the NoMachine key for easier setup. If you answer "y", FreeNX creates a custom KeyPair and expects you to setup your clients manually. "N" is default and uses the NoMachine key for installation. Do you want to use your own custom KeyPair? y/n Setting up /etc/nxserver...done Setting up /var/lib/nxserver/db...done Setting up /var/log/nxserver.log...done Setting up known_hosts and authorized_keys2...done Setting up permissions...done > Testing your nxserver configuration... Warning: Could not find nxdesktop in /usr/lib/nx. RDP sessions won't work. Warning: Invalid value "DEFAULT_X_SESSION=/etc/X11/xdm/Xsession" Users might not be able to request a default X session. Warning: Invalid value "COMMAND_START_KDE=startkde" Users will not be able to request a KDE session. Warning: Invalid value "COMMAND_START_CDE=cdwm" Users will not be able to request a CDE session. Error: Invalid value "COMMAND_XAUTH=/usr/X11R6/bin/xauth" Warning: Invalid value "COMMAND_SMBMOUNT=smbmount". You'll not be able to use SAMBA. Warning: Invalid value "COMMAND_SMBUMOUNT=smbumount". You'll not be able to use SAMBA. Errors occured during config check. Please correct the configuration file. Voilà ce qu'il convient d'appeler une réponse. A la limite, on se moque un peu des Warning, mais le Error nous renseigne... la variable COMMAND_XAUTH n'est pas la bonne. Normal, si l'on regarde ce que nous dit which : $ which xauth /usr/bin/xauth Mettons à jour la variable dans le fichier de configuration /etc/nxserver/node.conf COMMAND_XAUTH=/usr/bin/xauth Puis relançons ce satané serveur la configuration du serveur : # nxsetup --> You did select no action. FreeNX guesses that you want to _install_ the server. Type "y" to abort the installation at this point in time. "N" is the default and continues installation. Use "/usr/sbin/nxsetup --help" to get more detailed help hints. Do you want to abort now? y/n RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 6/11
--> It is recommended that you use the NoMachine key for easier setup. If you answer "y", FreeNX creates a custom KeyPair and expects you to setup your clients manually. "N" is default and uses the NoMachine key for installation. Do you want to use your own custom KeyPair? y/n Setting up /etc/nxserver...done Setting up /var/lib/nxserver/db...done Setting up /var/log/nxserver.log...done Setting up known_hosts and authorized_keys2...done Setting up permissions...done > Testing your nxserver configuration... Warning: Could not find nxdesktop in /usr/lib/nx. RDP sessions won't work. Warning: Invalid value "DEFAULT_X_SESSION=/etc/X11/xdm/Xsession" Users might not be able to request a default X session. Warning: Invalid value "COMMAND_START_KDE=startkde" Users will not be able to request a KDE session. Warning: Invalid value "COMMAND_START_CDE=cdwm" Users will not be able to request a CDE session. Warning: Invalid value "COMMAND_SMBMOUNT=smbmount". You'll not be able to use SAMBA. Warning: Invalid value "COMMAND_SMBUMOUNT=smbumount". You'll not be able to use SAMBA. Warnings occured during config check. To enable these features please correct the configuration file. > Testing your nxserver connection... The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. RSA key fingerprint is 7f:55:b6:cb:c1:2e:1f:ef:c7:05:b6:e7:72:fc:c5:02. ATTENTION : répondez très vite à cette question par yes ici Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts. HELLO NXSERVER - Version 1.4.0-45-SVN OS (GPL) NX> 105 quit Quit Ok, nxserver is ready. PAM authentication enabled: All users will be able to login with their normal passwords. PAM authentication will be done through SSH. Please ensure that SSHD on localhost accepts password authentication. You can change this behaviour in the /etc/nxserver/node.conf file. Have Fun! Bien, ça devrait marcher maintenant... Toujours pas! Alors? Bah vous pouvez pas l'inventer, mais j'ai la solution... Il faut modifier le fichier /etc/nxserver/node.conf pour lui indiquer où il trouvera ses polices... RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 7/11
Donc ajoutez ceci au fichier : AGENT_EXTRA_OPTIONS_X="-fp /usr/share/x11/fonts/misc/,/usr/share/x11/fonts/cyrillic/,/usr/share/x11/fonts/100dpi/:unscal ed, /usr/share/x11/fonts/75dpi/:unscaled,/usr/share/x11/fonts/type1/,/usr/share/x11/fonts/cid, /usr/share/x11/fonts/speedo/,/usr/share/x11/fonts/100dpi/,/usr/share/x11/fonts/75dpi/" Relancez nxserver et, maintenant, ça devrait fonctionner. Alors, je suis d'accord, la configuration est un peu délicate et sans mon magnifique article il y a de quoi s'énerver. C'est perfectible, certes... Mais attendez de voir les performances et vous connaissez déjà les fonctionnalités : c'est un excellent outil. Configuration de openssh Maintenant on va sécuriser gentiment ssh pour éviter que vous soyez attaqué de toutes parts. Cela n'a rien à voir avec FreeNX mais je change généralement le port du serveur Ssh sur mes serveurs en frontal sur Internet. Ce n'est pas obligatoire, mais c'est franchement pratique : vous évitez les tentatives de connections des robots (en root, mysql, etc.) toujours pénibles et qui chargent le fichier /var/log/auth.log. Il est possible de «sécuriser» autrement en ajoutant un firewall et en filtrant, par exemple sur l'ip source. Ca peut être suffisant, à chacun de voir. J'utilise également l'option AllowUsers du fichier /etc/ssh/sshd_config, afin de n'autoriser que quelques comptes (souvent un seul) à se connecter. C'est pratique mais dans ce cas, il faut autoriser l'utilisateur nx à se connecter. Si vous ne voulez pas modifier ces options (le port et les utilisateurs), il n'est pas nécessaire de modifier la configuration de OpenSSH. Dans le cas contraire, éditez le fichier /etc/ssh/sshd_config et modifiez l'option : Port 222 Puis ajoutez : AllowUsers nx monutilisateur Où bien-sûr monutilisateur est le compte utilisateur que vous souhaitez autoriser à se connecter sur cette machine. Relancez le serveur ssh pour qu'il prenne en compte les modifications : # invoke-rc.d ssh restart Ajustez la configuration du serveur nx, toujours dans le fichier /etc/nxserver/node.conf : SSHD_PORT=222 Puis modifiez la configuration de votre client FreeNX : RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 8/11
Si tout a fonctionné jusqu'ici, il ne reste plus qu'à apporter la touche finale, c'est à dire à changer la clé sur le serveur et à l'importer sur le client. Génération et mise en place de la clé DSA Avec le paquet freenx viennent quelques outils, parmi lesquels un générateur de clés. Lancez-le : # /usr/lib/nx/nxkeygen Backing up existing client key to /var/lib/nxserver/home/.ssh/client.id_dsa.key.20060605-181645 Unique key generated; your users must install /var/lib/nxserver/home/.ssh/client.id_dsa.key on their computers. Maintenant, récupérez la clé /var/lib/nxserver/home/.ssh/client.id_dsa.key dans la configuration des clients. A l'invite de FreeNX, il faut cliquer sur «configure» puis sur «key» et copier ou importer bêtement : RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 9/11
Enfin, relancez nxsetup en lui indiquant que vous souhaitez utiliser votre propre clé : # nxsetup --> You did select no action. FreeNX guesses that you want to _install_ the server. Type "y" to abort the installation at this point in time. "N" is the default and continues installation. Use "/usr/sbin/nxsetup --help" to get more detailed help hints. Do you want to abort now? y/n --> It is recommended that you use the NoMachine key for easier setup. If you answer "y", FreeNX creates a custom KeyPair and expects you to setup your clients manually. "N" is default and uses the NoMachine key for installation. Do you want to use your own custom KeyPair? y/n ysetting up /etc/nxserver... done Setting up /var/lib/nxserver/db...done Setting up /var/log/nxserver.log...done Setting up known_hosts and authorized_keys2...done Setting up permissions...done RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 10/11
> Testing your nxserver configuration... Warning: Could not find nxdesktop in /usr/lib/nx. RDP sessions won't work. Warning: Invalid value "DEFAULT_X_SESSION=/etc/X11/xdm/Xsession" Users might not be able to request a default X session. Warning: Invalid value "COMMAND_START_KDE=startkde" Users will not be able to request a KDE session. Warning: Invalid value "COMMAND_START_CDE=cdwm" Users will not be able to request a CDE session. Warning: Invalid value "COMMAND_SMBMOUNT=smbmount". You'll not be able to use SAMBA. Warning: Invalid value "COMMAND_SMBUMOUNT=smbumount". You'll not be able to use SAMBA. Warnings occured during config check. To enable these features please correct the configuration file. > Testing your nxserver connection... HELLO NXSERVER - Version 1.4.0-45-SVN OS (GPL) NX> 105 quit Quit Ok, nxserver is ready. PAM authentication enabled: All users will be able to login with their normal passwords. PAM authentication will be done through SSH. Please ensure that SSHD on localhost accepts password authentication. You can change this behaviour in the /etc/nxserver/node.conf file. Have Fun! Relancez le client et essayez de profiter? enfin - d'un programme excellent. J'espère ne rien avoir oublié, ça m'a presque mangé mon après-midi de journée de solidarité avec les anciens... En cas de souci, écrivez-moi sur notre forum, j'y passe au moins une fois par mois ;) Les autres articles : FreeNX, l?accès à distance sécurisé et performant - épisode 1 FreeNX, l?accès à distance sécurisé et performant - épisode 2 RotomaLUG - Groupe des Utilisateurs de Linux et de Logiciels Libres de Rouen - Page 11/11