Guide des technologies

Sécuriser X2Go sur Ubuntu 12.04 avec l'authentification à deux facteurs WiKID

8 min read Sécurité Mis à jour 19 Oct 2025
X2Go + WiKID : 2FA sur Ubuntu 12.04
X2Go + WiKID : 2FA sur Ubuntu 12.04

Ce guide explique pas à pas comment protéger l’accès distant X2Go sur Ubuntu 12.04 (Precise) avec WiKID en utilisant PAM RADIUS. Vous trouverez les étapes de configuration côté WiKID, l’installation d’X2Go, la configuration PAM, des tests, des listes de vérification pour l’administrateur et l’utilisateur, ainsi que des scénarios de dépannage et des bonnes pratiques de sécurité.

Présentation et prérequis

Objectif principal

  • Mettre en place une authentification à deux facteurs (2FA) pour les connexions X2Go via WiKID Strong Authentication en utilisant pam-radius sur un serveur Ubuntu 12.04.

Définitions en une ligne

  • WiKID Strong Authentication : solution 2FA (commerciale/opensource) basée sur tokens et un serveur d’authentification.
  • X2Go : solution de bureau distant basée sur le protocole NX.
  • PAM RADIUS (libpam-radius-auth) : module PAM qui délègue l’authentification à un serveur RADIUS.

Prérequis techniques

  • Un serveur WiKID installé et accessible (installation .deb disponible pour Ubuntu).
  • Un serveur Ubuntu 12.04 (Precise Pangolin) avec accès root/sudo.
  • Accès réseau entre le serveur X2Go et le serveur WiKID (port UDP 1812 typique pour RADIUS ou port défini dans votre configuration).
  • Token WiKID (software ou hardware) pour les utilisateurs.
  • Connaissance du secret partagé (shared secret) entre le client réseau et le serveur RADIUS.

Important

  • Cet article suppose que votre serveur WiKID est opérationnel. Ne migrez pas les secrets ou configurations sensibles sans plan de sauvegarde.

Étape 1 — Ajouter un domaine sur le serveur WiKID

Avant d’ajouter un client réseau, créez un domaine dédié dans l’interface d’administration WiKID. Le domaine organise vos utilisateurs et paramètres d’authentification.

Interface WiKID — formulaire d'ajout de domaine

Actions recommandées

  • Donnez au domaine un nom clair (par exemple : x2go-precise.local).
  • Vérifiez les paramètres de token et les politiques de PIN.

Étape 2 — Créer un client réseau pour le serveur X2Go

Après la création du domaine, ajoutez le serveur X2Go comme client réseau.

WiKID — Création d'un client réseau avec nom, adresse IP et protocole RADIUS

Paramètres essentiels

  • Nom du client : identifiant lisible (ex. x2go-precise).
  • Adresse IP : adresse interne du serveur X2Go.
  • Protocole : sélectionnez RADIUS.
  • Domaine : le domaine créé précédemment.

Cliquez sur Ajouter (Add) pour avancer et entrer le secret partagé.

WiKID — Saisie du secret partagé RADIUS pour le client réseau

  • Entrez un secret partagé fort. Vous utiliserez ce secret dans /etc/pam_radius_auth.conf sur le serveur X2Go.
  • Conservez ce secret dans votre coffre de secrets et notez l’IP/port RADIUS.

Étape 3 — Installer X2Go sur la machine Ubuntu 12.04

Les commandes ci‑dessous installent X2Go et, si nécessaire, un environnement de bureau. Exécutez-les en tant que root ou via sudo.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession x2gobroker x2gobroker-daemon x2gobroker-authservice

Si vous n’avez pas d’environnement graphique installé, ajoutez-en un :

sudo apt-get install ubuntu-desktop gnome

ou installez le bureau de votre choix (XFCE, MATE, LXDE, etc.).

Client X2Go

  • Sur la machine cliente, installez le client X2Go (x2goclient) et créez une session pointant vers l’IP du serveur X2Go et l’environnement de bureau installé.
apt-get install x2goclient

Test initial

  • Testez la connexion normale (mot de passe statique) avant d’activer la 2FA pour valider la configuration X11/NX et le compte utilisateur.

Étape 4 — Configurer PAM RADIUS sur le serveur X2Go

Installez le module pam-radius pour déléguer l’authentification au serveur WiKID.

$ sudo apt-get install libpam-radius-auth

Configurer le fichier de connexion RADIUS

$ sudo vim /etc/pam_radius_auth.conf
  • Remplacez la ligne par défaut “other-server; other-secret 3” par :
  3
  • N’écrivez pas le fichier dans /etc/raddb/server même si le commentaire suggère de le copier — gardez-le à /etc/pam_radius_auth.conf.

Modifier PAM pour SSH (et X2Go qui passe par SSH)

Éditez /etc/pam.d/sshd :

$ sudo vim /etc/pam.d/sshd

Ajoutez la ligne suivante juste avant la section d’authentification standard :

auth       sufficient  pam_radius_auth.so

Le positionnement est important : placé avant @include common-auth pour permettre à RADIUS de réussir l’authentification sans cascader sur le mot de passe local si la politique le permet.

Remarques

  • X2Go s’appuie sur SSH pour l’authentification, donc la configuration PAM pour SSH s’applique aux sessions X2Go.
  • Si vous avez un serveur SSH gateway déjà configuré avec pam-radius, vous pouvez ajouter X2Go dessus sans reconfigurer chaque hôte.

Tests, critères d’acceptation et cas de test

Procédure de test (pas à pas)

  1. Surveillez les logs :
tail -f /var/log/auth.log
  1. Sur le client WiKID, démarrez le token logiciel et sélectionnez le domaine correspondant.
  2. Entrez le PIN pour obtenir le code OTP (one-time passcode).
  3. Dans le client X2Go, lancez une session utilisant le nom d’utilisateur Linux (doit correspondre au compte WiKID).
  4. Authentifiez-vous avec le OTP (PIN + code) selon la configuration de votre token.

Critères d’acceptation

  • L’utilisateur obtient une session X2Go si et seulement si l’OTP est valide et que le compte local existe ou que l’authentification d’annuaire réussit.
  • Les tentatives d’authentification incorrectes sont consignées dans /var/log/auth.log.
  • Un administrateur peut désactiver un token côté WiKID et bloquer immédiatement l’accès.

Cas de test essentiels

  • Authentification réussie avec OTP valide.
  • Rejet pour OTP expiré ou incorrect.
  • Rejet si le secret partagé est incorrect (voir logs RADIUS).
  • Comportement si le compte utilisateur n’existe pas localement mais existe dans AD/LDAP (si PAM LDAP est activé).

Checklist rôle‑basée

Checklist administrateur (installation et mise en production)

  • Vérifier connectivité UDP/TCP avec le serveur WiKID (port RADIUS).
  • Créer un domaine WiKID dédié et y ajouter les tokens utilisateurs.
  • Ajouter le serveur X2Go comme client réseau avec un secret fort.
  • Installer X2Go et tester l’accès par mot de passe avant activation 2FA.
  • Installer libpam-radius-auth et configurer /etc/pam_radius_auth.conf.
  • Modifier /etc/pam.d/sshd pour insérer pam_radius_auth.so.
  • Tester avec tail -f /var/log/auth.log et réaliser tests de régression.
  • Documenter la procédure de désactivation de token pour l’équipe support.

Checklist utilisateur (mise en route)

  • Recevoir le token WiKID (software ou matériel).
  • Connaitre le PIN personnel et la procédure de récupération si perdu.
  • Vérifier nom d’utilisateur Linux correspond au compte WiKID.
  • Installer un client X2Go et tester la connexion.

Scénarios courants et dépannage

  1. Échec d’authentification RADIUS

    • Vérifier la correspondance du secret partagé entre WiKID et /etc/pam_radius_auth.conf.
    • Contrôler l’IP/hostname et la résolution DNS.
    • Examiner /var/log/auth.log et les logs RADIUS côté WiKID.
  2. Timeout ou pas de réponse RADIUS

    • Vérifier les règles de pare-feu : port UDP 1812 (par défaut) doit être ouvert.
    • Vérifier la latence réseau et la configuration de timeout dans pam_radius.
  3. Nom d’utilisateur non trouvé

    • Le nom d’utilisateur envoyé au serveur WiKID doit être identique au compte local ou à celui utilisé pour l’annuaire.
    • Si vous utilisez pam_ldap ou sssd, assurez-vous que la résolution d’utilisateur fonctionne avant la demande RADIUS.
  4. OTP rejeté malgré un token valide

    • Vérifier la synchronisation de l’horloge si vous utilisez des tokens temps‑basés.
    • Confirmer que le domaine sélectionné dans le token est le bon.

Bonnes pratiques de sécurité

  • Utilisez toujours un secret partagé fort pour les clients RADIUS et stockez‑le dans un coffre à secrets.
  • Séparez l’autorisation (dans votre AD/LDAP) et l’authentification WiKID. Utilisez un serveur RADIUS intermédiaire pour l’annuaire si nécessaire.
  • Préparez une procédure de révocation de token rapide (désactivation côté WiKID) pour les comptes compromis.
  • Limitez l’accès SSH par adresse IP ou via un jump host si possible.
  • Envisagez d’activer des alertes en cas de tentatives répétées d’authentification échouées.

Confidentialité et conformité

Points à considérer pour le RGPD et la vie privée

  • Les logs d’authentification contiennent des identifiants et des horodatages. Limitez l’accès aux logs et appliquez une politique de rétention.
  • Ne stockez pas de secrets en clair dans des dépôts de configuration accessibles.
  • Documentez la base légale du traitement (ex. sécurité d’accès) et informez les utilisateurs sur la gestion de leurs tokens.

Glossaire en une ligne

  • OTP : mot de passe à usage unique.
  • PIN : code secret personnel utilisé avec un token WiKID.
  • RADIUS : protocole d’authentification réseau souvent utilisé pour 2FA.

Méthodologie en bref (mini‑méthode)

  1. Préparer et tester X2Go sans 2FA.
  2. Configurer WiKID : domaine → client réseau → secret.
  3. Installer pam-radius et pointer vers WiKID.
  4. Tester, documenter, mettre en production.

Diagramme de décision pour le dépannage

flowchart TD
  A[Démarrage du test] --> B{La connexion SSH/X2Go échoue ?}
  B -- Non --> C[Valider logs et usage normal]
  B -- Oui --> D{Réponse RADIUS reçue ?}
  D -- Non --> E[Vérifier réseau/pare‑feu/port UDP 1812]
  D -- Oui --> F{RADIUS rejette l'authentification ?}
  F -- Oui --> G[Vérifier secret partagé, utilisateur, domaine du token]
  F -- Non --> H[Valider compte local/LDAP et journalisation]
  E --> G
  G --> I[Corriger et retester]
  H --> I
  C --> I

Exemples de messages et interprétations dans les logs

  • “PAM RADIUS: RADIUS server returned Access-Accept” → Authentification réussie.
  • “Access-Reject” → OTP ou PIN invalide, ou mauvaise configuration côté WiKID.
  • Erreurs de timeout → problème réseau ou serveur RADIUS injoignable.

Résumé et étapes suivantes

Résumé

  • L’intégration X2Go + WiKID via pam-radius fournit une 2FA solide indépendante du mot de passe local.
  • Positionnez PAM RADIUS avant la validation locale pour faire confiance à WiKID quand approprié.
  • Testez systématiquement en environnement de préproduction, documentez la procédure de désactivation et surveillez les logs.

Étapes recommandées pour la mise en production

  • Planifier fenêtres de maintenance pour basculer les environnements en 2FA.
  • Sensibiliser les utilisateurs sur l’usage des tokens et la récupération de PIN.
  • Mettre en place des sauvegardes de configuration et un plan de reprise.

FAQ

Q: Le nom d’utilisateur doit-il être identique sur le serveur Linux et sur WiKID ?

A: Oui, sauf si vous utilisez un mécanisme d’association entre annuaire et WiKID ; par défaut le nom envoyé à WiKID doit correspondre au compte local ou au compte annuaire.

Q: Puis‑je utiliser un serveur RADIUS intermédiaire ?

A: Oui. La meilleure pratique est d’effectuer l’autorisation dans votre annuaire (AD/LDAP) et de faire répéter/proxy les requêtes vers le serveur WiKID depuis un serveur RADIUS dédié.

Q: Que faire si un utilisateur perd son token ?

A: Désactivez immédiatement le token côté WiKID et suivez votre procédure de réémission. Documentez l’incident et vérifiez les logs pour d’éventuelles tentatives suspectes.

Auteur
Édition

Matériaux similaires

Corriger l'erreur 0xc000001d sur Windows
Dépannage

Corriger l'erreur 0xc000001d sur Windows

Vider et régler Recent Places sur Mac
macOS

Vider et régler Recent Places sur Mac

Corriger erreurs Windows 10 0x80070057 et Cortana
Windows

Corriger erreurs Windows 10 0x80070057 et Cortana

Supprimer des mises à jour Windows problématiques
Dépannage Windows

Supprimer des mises à jour Windows problématiques

Organiser onglets et sessions : Firefox et Chrome
Productivité

Organiser onglets et sessions : Firefox et Chrome

Dossier FOUND.000 sur Windows 10 — explication
Windows

Dossier FOUND.000 sur Windows 10 — explication