15.2. Configuration FreeNX avancée

Les sections qui suivent présentent un certain nombre de fonctions avancées qui sont surtout nécessaires dans les scénarios NX complexes.

15.2.1. Configuration de l'authentification SSH en utilisant des clés client

L'authentification configurée à la Section 15.1, « Mise en route avec NX » ne repose que sur les informations du nom d'utilisateur et du mot de passe. Pour sécuriser davantage l'authentification, NX peut être configuré pour générer une paire de clés SSH. La clé client est ensuite copiée du serveur sur n'importe quel client susceptible de se loguer au serveur NX. Les clients qui ne présentent pas cette clé ne peuvent pas s'authentifier auprès du serveur NX. Cette fonction n'est prise en charge que pour la combinaison serveur FreeNX/client knx.

Pour configurer le serveur NX afin d'utiliser cette méthode d'authentification et générer la paire de clés appropriée, procédez de la manière suivante :

  1. Loguez-vous en tant qu'utilisateur root sur le serveur.

  2. Ouvrez le fichier de configuration du serveur /etc/nxserver/node.conf et assurez-vous que ENABLE_SSH_AUTHENTICATION est défini sur 1 (par défaut).

  3. Installez le serveur à l'aide de la commande suivante :

    nxsetup --install --clean --purge
  4. Réglez les autorisations d'accès sur /var/lib/nxserver/home/.ssh/authorized_keys2 :

    chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2
    
  5. Déloguez-vous.

Pour configurer knx afin d'utiliser cette clé, procédez de la manière suivante :

  1. Sur le serveur, loguez-vous en tant qu'utilisateur root.

  2. Copiez le fichier de clé à l'emplacement de la machine cliente où knx en a besoin, en remplaçant client par l'adresse du client.

    scp /var/lib/nxserver/home/.ssh/client.id_dsa.key client:/usr/share/knx/
    
  3. Loguez-vous à la machine cliente en tant qu'utilisateur root.

  4. Réglez les autorisations d'accès de la manière suivante :

    chmod 644 /usr/share/knx/client.id_dsa.key
    
  5. Déloguez-vous.

15.2.2. Configuration de l'authentification PAM

Par défaut, FreeNX permet à n'importe quel utilisateur d'ouvrir une session NX, pourvu qu'il soit présent dans la base de données des utilisateurs de votre serveur (localement ou via LDAP, NIS, etc.). Ce comportement est activé/désactivé par la variable ENABLE_PAM_AUTHENTICATION dans /usr/bin/nxserver sur le serveur. Ici, la valeur par défaut est 1. Si vous la réglez sur 0, l'authentification PAM de l'utilisateur est désactivée (PAM_AUTH) pour FreeNX.

Si ENABLE_PAM_AUTHENTICATION est défini sur 0, vous devez ajouter les utilisateurs et les mots de passe manuellement. Pour ajouter des utilisateurs NX locaux au serveur, procédez de la manière suivante :

  1. Loguez-vous en tant qu'utilisateur root sur le serveur.

  2. Assurez-vous que les utilisateurs que vous voulez ajouter existent dans la base de données système des utilisateurs locaux en vérifiant le contenu de /etc/passwd ou en utilisant le module de gestion d'utilisateurs YaST.

  3. Pour chaque utilisateur à ajouter, ajoutez le nom d'utilisateur à l'aide de la commande nxserver --adduser. Ajoutez ensuite le mot de passe de l'utilisateur à l'aide de la commande nxserver --passwd.

  4. Redémarrez le serveur à l'aide de la commande nxserver --restart et déloguez-vous.

15.2.3. Utilisation de fichiers de configuration à l'échelle du système ou d'un utilisateur

Le comportement du serveur FreeNX est contrôlé via /etc/node.conf. Vous pouvez exécuter une configuration globale du serveur NX ou exécuter le serveur avec la configuration spécifique d'un utilisateur. Cela est possible si des utilisateurs différents exécutent NX sur une même machine avec des configurations différentes.

Dans l'exemple qui suit, supposons que l'utilisateur joe souhaite que NX démarre automatiquement avec une application donnée dès qu'il ouvre une session NX. Pour activer ce comportement avec cet utilisateur seulement, procédez de la manière suivante :

  1. Loguez-vous en tant qu'utilisateur root.

  2. Accédez au répertoire /etc/nxserver :

    cd /etc/nxserver
  3. Enregistrez une copie du fichier de configuration du serveur NX (node.conf) sous joe.node.conf dans le même répertoire.

  4. Modifiez les paramètres correspondants (NODE_AUTOSTART et ENABLE_AUTORECONNECT) dans joe.node.conf. Pour plus d'informations sur ces fonctions, reportez-vous à la Section 15.2.5, « Configuration des tâches de démarrage automatique et exportation des configurations » et à la Section 15.2.4, « Mise en veille et reprise de sessions NX ».

  5. Réinstallez le serveur NX pour activer la nouvelle configuration :

    nxsetup --install --clean --purge --setup-nomachine-key

    La configuration spécifique de l'utilisateur remplace la configuration globale.

  6. Déloguez-vous.

15.2.4. Mise en veille et reprise de sessions NX

Comme avec les sessions d'un ordinateur portable mobile, il est également possible de configurer NX pour permettre la mise en veille et la reprise de sessions utilisateur. Une session mise en veille se rouvre exactement dans l'état où vous l'aviez laissée.

Pour configurer la mise en veille et la reprise des sessions NX, procédez de la manière suivante :

  1. Loguez-vous en tant qu'utilisateur root.

  2. Ouvrez le fichier de configuration du serveur, /etc/nxserver/node.conf, et modifiez-le de la manière suivante :

    ENABLE_PASSDB_AUTHENTICATION="0"
    ENABLE_USER_DB="0"
    ENABLE_AUTORECONNECT="1"
    
  3. Enregistrez et quittez le fichier de configuration et redémarrez le serveur à l'aide de la commande nxserver --restart.

  4. Déloguez-vous.

Pour mettre en veille une session lorsque vous la quittez, cliquez sur le X qui se trouve dans l'angle supérieur droit de votre fenêtre NX et sélectionnez Veille pour mettre en veille votre session et quitter le client. Lors du login, vous êtes invité à préciser si vous souhaitez reprendre l'ancienne session ou en démarrer une nouvelle.

15.2.5. Configuration des tâches de démarrage automatique et exportation des configurations

FreeNX offre une fonction de démarrage automatique qui permet de lancer certaines tâches lorsque vous démarrez ou reprenez une session NX, pourvu que l'application sous-jacente prenne en charge les propriétés de démarrage et de reprise. Par exemple, vous pouvez nettoyer automatiquement le bureau ou effectuer d'autres tâches de démarrage automatique lorsque vous démarrez FreeNX. Cela est particulièrement pratique lorsque vous vous reloguez à une session, même à partir d'un client NX différent (où vous ne pouvez pas utiliser les mécanismes KDE ou GNOME standard).

Pour configurer les fonctions de démarrage automatique, procédez de la manière suivante :

  1. Loguez-vous en tant qu'utilisateur root sur le serveur.

  2. Ouvrez le fichier de configuration du serveur /etc/nxserver/node.conf et modifiez la variable NODE_AUTOSTART, en remplaçant myprogram par le programme devant être exécuté au démarrage ou lors de la reprise d'une session NX :

    NODE_AUTOSTART=myprogram
         
  3. Enregistrez et quittez le fichier de configuration.

  4. Redémarrez le serveur à l'aide de la commande nxserver --restart et déloguez-vous.

    Le programme spécifié démarre à présent chaque fois qu'une session démarre ou est reprise.

Vous pouvez également exporter les variables NX_USERIP et NX_SESSIONID pour les rendre accessibles dans l'environnement de l'utilisateur. Cela permet, par exemple, de placer une icône sur le bureau avec le contenu générique et d'accéder à un serveur Samba exécuté sur le client léger de l'utilisateur. Pour mettre le contenu d'une disquette du lecteur du client léger à la disposition de l'utilisateur, procédez de la manière suivante :

  1. Activez l'exportation des variables NX_USERIP et NX_SESSIONID du côté du serveur :

    1. Loguez-vous en tant qu'utilisateur root sur le serveur.

    2. Ouvrez le fichier de configuration du serveur, /etc/nxserver/node.conf, et définissez les variables suivantes :

      EXPORT_USERIP="1"
      EXPORT_SESSIONID="1"
      
    3. Enregistrez et quittez la configuration du serveur et redémarrez-le à l'aide de la commande nxserver --restart.

    4. Déloguez-vous.

  2. Du côté du client, ouvrez une session, exportez le lecteur de disquette via SMB et créez une icône sur le bureau :

    1. Exportez le contenu de votre lecteur de disquette par l'intermédiaire de Samba en utilisant votre gestionnaire de fichiers (Nautilus ou Konqueror).

    2. Créez un fichier floppy.desktop dans le répertoire Bureau et entrez la ligne suivante :

      Exec=smb://$NX_USERIP/floppy

      Le serveur exporte l'adresse IP du client léger, pour permettre d'accéder au lecteur de disquette du client léger à l'aide de l'icône dans la session NX.

15.2.6. Création d'une chaîne de serveurs NX

Une chaîne de serveurs NX permet de traverser des pare-feu et de gérer le masquage d'IP. Un serveur « passerelle » externe peut être utilisé pour transférer les logins entrants vers un serveur interne masqué derrière un pare-feu.

Pour configurer une chaîne de serveurs NX, procédez de la manière suivante :

  1. Configurez le serveur interne comme décrit à la Section 15.2.1, « Configuration de l'authentification SSH en utilisant des clés client » et distribuez la clé privée du serveur (client.id_dsa.key) vers /usr/NX/share/ sur la passerelle.

  2. Sur le serveur passerelle, procédez de la manière suivante :

    1. Loguez-vous en tant qu'utilisateur root.

    2. Définissez les variables suivantes dans /etc/nxserver/node.conf, en remplaçant myinternalhost par l'adresse IP du serveur NX interne :

      ENABLE_SERVER_FORWARD="1"
      SERVER_FORWARD_HOST="myinternalhost"
      SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"
    3. Redémarrez le serveur externe pour appliquer la configuration modifiée à l'aide de la commande nxserver --restart et déloguez-vous.

      Un login entrant est envoyé au serveur interne.

15.2.7. Installation et exécution de FreeNX et de NoMachine sur le même serveur

Vous pouvez installer et exécuter FreeNX et le serveur commercial NoMachine NX sur la même machine sans interférence. Cela est implémenté dans FreeNX en transférant le login à la NoMachine installée sur la même machine.

Pour activer cette fonction, procédez de la manière suivante :

  1. Loguez-vous en tant qu'utilisateur root sur le serveur.

  2. Ouvrez le fichier de configuration du serveur de FreeNX sous /etc/nxserver/node.conf et définissez la variable suivante :

    ENABLE_NOMACHINE_FORWARD="1"
  3. Enregistrez ce fichier et redémarrez le serveur FreeNX à l'aide de la commande nxserver --restart.

  4. Déloguez-vous.

Pour vous loguer au serveur NoMachine, utilisez les informations standard de nom d'utilisateur et de mot de passe. Pour vous loguer au serveur FreeNX, ajoutez freenx. au nom d'utilisateur normal (par exemple, freenx.joedoe) et utilisez le mot de passe habituel.