LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


opensuse:freenxtyrtamos
no way to compare when less than two revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.


opensuse:freenxtyrtamos [2018/11/17 12:54] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== Accès à distance graphique multi-utilisateur par FreeNX ======
  
 +
 +
 +
 +===== Problème à résoudre =====
 +
 +Accéder à  distance (réseau local ou internet) à une machine linux, à  partir d'une machine cliente windows ou linux, par un accès graphique (bureau), sécurisé SSH, en utilisant FreeNX.
 +
 +Le serveur FreeNX est la version libre du serveur "nxserver" de nomachine (http://www.nomachine.com ). Elle fait partie du package Suse jusqu'en version 11.2 
 +http://software.opensuse.org/search?q=freenx&baseproject=openSUSE%3A11.2&lang=fr&exclude_filter=home%3A&exclude_debug=true.
 +
 +Comme pour vnc lané par xinetd, cette liaison permet d'accéder à un compte existant sur la machine linux, et de la piloter en mode graphique (kde ou gnome) comme si on était devant.
 +
 +Comme linux est multi-utilisateurs (contrairement à windows), plusieurs personnes peuvent accéder à la même machine linux et y travailler en même temps. De même, un seul utilisateur peut ouvrir plusieurs sessions de son compte en même temps.
 +
 +Bien entendu, comme pour vnc, les jeux et applications qui demandent l'accélération 3D de la carte graphique nécessitent qu'on soit devant la machine serveur!
 +
 +FreeNX est vraiment très rapide (plus rapide que vnc) et malgré tout sécurisé par ssh. Il contient plusieurs niveaux de compression qui permettent de s'adapter au mieux àdes debits de lignes très différentes, y compris en passant par internet. Le son peut etre transmis par "esound". Le copier/coller fonctionne dans le sens serveur -> client.
 +
 +Comme mon pc linux est à la cave, j'utilise freenx le plus souvent possible!
 +
 +
 +===== Références documentaires =====
 +
 +  * Manuel de référence de la suse: voir liens utiles
 +
 +  * Site de "nomachine": [[http://www.nomachine.com]]
 +
 +
 +
 +===== Mode opératoire =====
 +
 +==== Installation du serveur FreeNX sur machine linux ====
 +
 +Sur la suse, il suffit d'installer le package rpm "freenx".
 +
 +En principe, les relations de dépendance entrainent l'installation d'openssh qui est nécessaire à son exécution.
 +
 +La doc de freenx se trouve ici: /usr/share/doc/packages/FreeNX.
 +
 +Il faut ensuite initialiser le service par (en console sous root):
 +
 +  # nxsetup --install --clean --purge --setup-nomachine-key  
 +
 +Après cela, nxserver apparait dans les processus actifs dans:
 +
 +  * menu -> système -> moniteur -> surveillance système de kde -> table des processus
 +
 +Le fichier de configuration du serveur nx est "/etc/nxserver/node.conf", mais je n'ai pas eu à le modifier (sauf pour activer le fichier .log).
 +
 +Au démarrage de la machine linux qui portera le nxserver, vous n'avez pas besoin d'aller plus loin que la page de login si vous n'avez pas besoin de travailler physiquement devant son écran.
 +
 +==== Trace de fonctionnement (fichiers .log) ====
 +
 +Si vous voulez tracer la communication, il faut activer le fichier log dans le fichier de configuration /etc/nxserver/node.conf:
 +
 +  * il faut définir votre niveau de traçage en décommentant NX_LOG_LEVEL et en lui affectant une valeur de 1 à 7 (valeur par défaut=0, c'est à dire pas de tracage). Essayer la valeur 4 pour avoir la trace du protocole de communication client-serveur.
 +
 +  * le tracage voulu sera désormais enregistré dans /var/log/nxserver.log. Il n'est pas nécessaire de relancer freenx.
 +
 +==== Ouverture du parefeu sur le serveur nx ====
 +
 +Si pour accéder au serveur nx, il faut traverser un parefeu, il faut ouvrir certains ports.
 +
 +Dans tous les cas, il faut ouvrir le port 22 TCP, nécessaire à SSH, actif en début de session pour les mécanismes d'autorisation.
 +
 +Pour le reste, tout dépend de la configuration du client nx:
 +
 +  * si la case " Enable SSL encryption of all traffic" est cochée, alors tout le flux est crypté par SSL, et tout passe par le port 22 TCP!
 +
 +  * si cette cas n'est pas cochée, il faut ouvrir d'autres ports, et là , c'est un peu plus compliqué. Le manuel de la suse 10.1 dit qu'il faut ouvrir les ports 5000 à  5009 et 7000 à 7009, mais ça ne marche pas, et ça n'est pas conforme à la notice de freenx. Par contre, l'ouverture de 5000 à 5199 TCP et 7000 à 7199 TCP fonctionne. Il faut se reporter, pour ca, ainsi que pour des réglages plus complexes, à la note /usr/share/doc/packages/FreeNX/NX-Firewall.txt. Les ports à ouvrir se calculent facilement à partir des données du fichier de configuration /etc/nxserver/node.conf. Attention, certains services nécessitent l'ouverture de ports supplémentaires, comme les partages samba (8000 à 8199), si vous voulez que ces partages passent par freenx.
 +
 +Mais en fait, le problème est simple:
 +
 +  * si vous voulez accéder par internet, utilisez l'encryptage SSL, et vous n'avez que le port 22 TCP à ouvrir!
 +
 +  * Au sein de votre réseau local, vous n'avez en général pas besoin de parefeu entre vos machines
 +
 +==== Installation du client nx sur pc Windows ====
 +
 +Il faut télécharger le "client nx" windows. Attention: le client doit avoir la même version que le NX (=le proxy) du serveur.chercher "nxclient-*.*.*-*.exe" avec google.
 +
 +Sur la page correspondant au lien de nomachine, demandez les instructions d'installation: c'est très bien fait.
 +
 +Et installez comme précisé.
 +
 +==== Installation du client nx sur machine linux ====
 +
 + Pour la suse, il s'agit du rpm: freenx-client-0.9-71.4.x86_64.rpm ou freenx-client-0.9-71.4.i586.rpm selon votre plateforme
 +
 +Pour installer, utilisez yast. Si vous avez une version de suse dont le yast refuse d'installer un paquet isolé, il faut faire l'installation en console. Placez le rpm quelque part (dans /ressources/rpmsup/nxclient ou /usr/local/nxclient par exemple). Ouvrez une console sous root et placez vous dans ce répertoire. Faites alors:
 +
 +  # rpm -ivh freenx-client-0.9-71.4.x86_64.rpm
 +
 +==== Configuration des clients nx de nomachine (windows ou linux): ====
 +
 +En double-cliquant sur l'icone NX (qui devrait être sur votre bureau), il apparait une petite fenètre
 +
 +La "session", c'est le nom de la session que vous voulez definir: donnez, par exemple, le nom du compte linux ("tyrtamos" pour moi).
 +
 +Entrez les login et password du compte linux en question
 +
 +Cliquez sur le bouton "configure" -> create -> il apparait une fenètre de configuration avec plusieurs onglets:
 +
 +Onglet "General":
 +
 +  * Host = l'adresse ip de votre machine nxserveur. Si vous ètes au sein de votre réseau local, c'est l'adresse locale (p ex 192.168.0.200). Utilisez l'adresse ip pour gagner le temps de résolution de nom, ce qui suppose, bien sur, une adresse ip fixe!
 +
 +  * port = laisser le port 22 qui est le port SSH
 +
 +  * desktop = Unix et KDE (vous voyez que vous pourriez avoir gnome)
 +
 +  * vous choisissez la liaison ("LAN" pour un réseau local rapide ethernet) qui détermine le niveau de compression des données
 +
 +  * display = pour ma part, je choisis "fullscreen"
 +
 +  * je laisse "use default image encoding"
 +
 +Onglet "Advanced"
 +
 +  * Network = je laisse comme c'est
 +
 +  * Cache: comme j'ai de la mémoire, je met tout au maxi
 +
 +  * Keyboard: je met un clavier français
 +
 +Onglet "Services"
 +
 +  * Je ne mets pas "enable printer and file sharing" parce que j'ai déjà  ca sur samba
 +
 +  * Je clique sur "enable multimedia support" pour avoir le son
 +
 +Onglet "Environnement"
 +
 +  * Je laisse comme c'est
 +
 +Vous faites "save" et vous cliquez sur "login" pour lancer la connection
 +
 +==== Autorisation à la 1ère connexion ====
 +
 +A la 1ére connexion, le client nx donne un message d'alerte: il dit qu'il n'est pas absolument sur que la machine à laquelle il accède est bien celle que vous voulez, et il vous affiche le "fingerprint" (une clé de 16 octets) de la machine en question pour vous permettre de le vérifier:
 +
 +  The authenticity of host 'xxx.xxx.xxx.xxx' (xxx.xxx.xxx.xxx)' can't be established.
 +  RSA key fingerprint is xx.xx.xx. .... xx.xx.
 +  Are you sure you want to continue connecting (yes/no)?  
 +
 +Si vous répondez "yes", le programme répond:
 +
 +  Warning: Permanently added 'xxx.xxx.xxx.xxx' (RSA) to the list of known hosts 
 +
 +et demande le mot de passe du login.
 +
 +A partir de ce moment, la machine cliente nx (windows ou linux) conservera dans le fichier "known_hosts" les données concernant la machine serveur nx et saura la reconnaître la prochaine fois sans vous reposer la question. Sur une machine cliente nx "windows", ce fichier est: C:\Documents and Settings\votrelogin\.ssh\known_hosts. Sur une machine cliente nx "linux", ce fichier est: /home/jeanpaul/.ssh/known_hosts. Dans ce fichier se trouve la liste des machines serveur nx reconnues, avec une longue ligne par machine telle que:
 +
 +  192.168.0.200 ssh-rsa AAAAB3NzaC1yc2EAAA......ABIwAA=  
 +
 +Vous pouvez d'ailleurs effacer la ligne, et, à la prochaine session, le client nx vous redemandera si la machine qu'il a trouvée est bien celle que vous voulez.
 +
 +C'est normal: pour lutter contre les tentatives d'usurpation d'adresse, il faudrait procéder avant à un tranport de clés du serveur nx au client nx pour que cette reconnaissance soit certaine. Si vous êtes méfiant, vous pouvez vous donner le moyen de vérifier si c'est la bonne machine gràce à son "fingerprint" que vous devez connaître avant la 1ère connexion. Sur le serveur nx, placez-vous en console sous root dans le répertoire /etc/ssh qui contient les clés.
 +
 +Lancez (le paramètre est un "L" minuscule):
 +
 +  # ssh-keygen -l  
 +
 +le programme demande de quelle clé vous voulez le fingerprint. Répondez:
 +
 +  # ssh_host_rsa_key.pub  
 +
 +Le programme vous donne alors le fingerprint de la clé en question. Quelque chose comme:
 +
 +  # 1024 d7:57:d2:5a:94:2c:49:6b:45:d0:1c:0d:fd:ac:08:95  
 +
 +Prenez note de ce fingerprint, et vérifiez lors de la 1ère connexion que c'est bien cette valeur qui est présentée à votre approbation.
 +
 +NB: selon la config de SSH, il est possible que ce soit le fingerprint de la clé dsa (ssh_host_dsa_key.pub) et non celle de rsa qui soit demandée.
 +
 +==== Utilisation ====
 +
 +Pour lancer la liaison NX, vous lancez l'icone "NX client" située sur le bureau (windows ou linux).
 +
 +Vous choisissez le nom de session que vous voulez établir, et vous cliquez sur le bouton "login".
 +
 +Le protocole de connexion se déroule, et le bureau du compte demandé se retrouve sur l'écran de votre pc client nx.
 +
 +Pour avoir la pleine accélération, je vous conseille de ne pas avoir de papier peint. Pour ma part, j'ai mis un écran bleu uni RGB (0,0,128).
 +
 +Quand vous étes en plein écran, comment revenir à votre écran normal de la machine client?
 +
 +  * Avec une machine cliente windows, vous faites simplement [alt]-[esc], ou [alt][F4].
 +
 +  * Avec une machine cliente windows ou linux, vous cliquez sur le dernier pixel en haut et à droite de l'écran
 +
 +Pour revenir à l'écran de la machine serveur, il suffit de réactiver la fenètre "NX" à partir de la barre des tàches.
 +
 +==== Pour terminez la connexion ====
 +
 +Alors que vous êtes sur votre machine cliente (windows ou linux) et que vous avez l'écran de votre machine serveur linux, vous demandez simplement le log-out au menu afin d'arréter proprement la session en cours.
 +
 +Je vous déconseille de supprimer seulement la fenétre linux, parce que des morceaux de programme linux peuvent continuer à s'exécuter, qui pourraient géner lors d'une future re-connexion. Par exemple, firefox peut alors vous demander à la connection suivante de créer une autre session firefox, parce que la session habituelle est occupée. Le problème est que vous n'avez plus alors vos bookmarks. La seule solution est de supprimer firefox dans les processus en fonctionnement sous votre compte, et ça marche de nouveau.
 +
 +Mais la vrai solution est: sortez proprement par log-out en ayant arrété avant toutes les applications!
 +
 +
 +
 +==== Pour avoir le son ====
 +
 +Pour avoir les fonctions "multimedia" (son et image), il faut cocher la case "multimedia" dans la configuration du client nx.
 +
 +Pour avoir le son, il faut avoir installé le rpm "esound" et, dans chaque logiciel, rediriger le module de sortie du son sur "esound" (ou "esd") et non sur "alsa".
 +
 +Curieusement, la notice de nomachine dit qu'on doit utiliser "esound" quand le nx client est windows, et "aRts" quand le nx client est linux. Ce n'est pas ce que je constate: même avec nx client linux, c'est esound qui marche et non aRts.
 +
 +Par exemple sur xmms: préférences -> plugin de sortie -> esound et vous pouvez écouter la musique sur votre machine cliente nx (windows ou linux), en ayant les fichiers musicaux et le logiciel de lecture sur la machine serveur nx linux... Idem avec Amarok, à condition d'avoir le moteur xine et de le configurer avec esound.
 +
 +Vous pouvez faire cela aussi avec la lecture vidéo.
 +
 +Par exemple avec xine: page setup -> onglet audio -> pilote audio à utiliser = "esd". Vous voyez ainsi, par exemple, un film (image et son) sur votre machine cliente nx (windows ou linux) avec les fichiers video et le lecteur video sur la machine serveur nx linux. Mais ca demande une liaison ethernet performante, sinon, c'est un peu saccadé! Chez moi, le son est bon, mais la video manque de fluidité (ou alors, il faut réduire la taille de la fenètre).
 +
 +Si tout cela c'est possible, ce n'est pas forcément une bonne idée, parce que le flux prend une bonne partie de la bande passante du réseau, et cela rend les autres opérations beaucoup moins fluides.
 +
 +En tout cas, je n'ai pas réussi à avoir les notifications musicales de KDE. Par contre, j'ai la "cloche": mystère de l'informatique...
 +
 +==== Copier-coller ====
 +
 +Vous pourrez vérifier que le copier-coller fonctionne dans le sens "serveur nx" -> "client nx". Par contre, je n'ai pas réussi à le faire fonctionner dans l'autre sens.
 +
 +==== Plus fort: avoir en même temps kde et gnome ====
 +
 +Imaginez que vous ayez installé en mếme temps kde et gnome. C'est facile: quand vous avez kde (bureau par défaut), vous installez gnome avec yast (sélection de packages -> gnome).
 +
 +A partir de là, normalement, c'est à la page de login de connexion que vous pouvez choisir (en bas à gauche). Attention: il faut empécher avant le login automatique.
 +
 +**Conséquences sur freenx:**
 +
 +  * Que vous ayez franchi ou non cette page de login sur la machine serveur nx, vous pouvez choisir entre kde et gnome lors de la configuration de votre client nx!
 +
 +  * Encore mieux, vous pouvez ouvrir une session nx-kde et une session nx-gnome en même temps sur votre machine cliente nx.
 +
 +  * Et rien ne vous empèche, après avoir ouvert une session nx-kde, de réouvrir à l'intérieur de cette session, une 2ème session nx-gnome... ou le contraire.
 +
 +Fantastique, non?
 +
 +Sincérement, je me demande comment linux est capable de faire cela sans se mélanger les pinceaux...
 +
 +===== Et si ça ne marche pas? =====
 +
 +==== Problème d'établissement de la connexion ====
 +
 +En modernisant mon matériel windows, je viens de découvrir que freenx et nxclient-windows peuvent rencontrer des difficultés.
 +
 +On cite sur le web 2 problèmes connus:
 +
 +  * difficultés de nxclient-windows avec cygnus si celui-ci tourne déjà sur la machine cliente windows.
 +    * Le site de nomachine décrit la solution à adopter. En gros, il s'agit pour nxclient d'utiliser les dll cygnus déjà  installées.
 +
 +  * difficultés de nxclient-windows avec les pilotes de webcam logitec.
 +    * Pas de solution citée, à part de désinstaller la webcam. Au coup par coup, on peut se contenter d'arréter le processus "LVPrcSrv.exe" comme mentionné ici: [[http://www.nomachine.com/tr/view_notes.php?commid=107&id=TR06D01417]]
 +
 +Si ca ne marche vraiment pas, revenez à VNC (avec ou sans SSH). Celui-ci est peut-être un peu moins rapide, mais il est plus tolérant avec les config.
 +
 +==== Problème de clavier azerty. ====
 +
 +Si vous n'avez qu'un clavier qwerty dans la connexion nx alors que vous avez le clavier azerty sur votre pc client ainsi que sur votre pc serveur, il y a une astuce qui marche chez moi:
 +
 +  * Ajouter à la fin du fichier /etc/nxserver/node.conf la ligne:
 +
 +  AGENT_EXTRA_OPTIONS_X="-xkbdir /usr/share/X11/xkb" 
 +
 +  * Je crois qu'il y a aussi une seconde condition: KDE ne doit pas gérer son propre clavier. Donc, dans la "configuration personnelle" de KDE, aller à la "Régionalisation & accessibilité" puis à "Disposition du clavier" et désactivez  le clavier KDE (=décochez toutes les cases du haut pour les 3 onglets) ou vérifiez que c'est fait.
 +
 + 
opensuse/freenxtyrtamos.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1