Guida alle tecnologie

Proteggere X2Go su Ubuntu Precise con l'autenticazione a due fattori WiKID

7 min read Sicurezza Aggiornato 19 Oct 2025
X2Go su Ubuntu 12.04: 2FA con WiKID
X2Go su Ubuntu 12.04: 2FA con WiKID

Introduzione

Questo documento mostra come implementare l’autenticazione a due fattori (2FA) di WiKID per desktop remoto attraverso X2Go su un server Ubuntu 12.04 (Precise). WiKID Strong Authentication è una soluzione 2FA disponibile in versioni commerciali e open source. X2Go è una soluzione di desktop remoto basata su NX. Il flusso principale è:

  • creare un dominio sul server WiKID;
  • aggiungere il server X2Go come client di rete (RADIUS) al server WiKID;
  • configurare il server Ubuntu per usare pam_radius (libpam-radius-auth) in PAM.

Questa guida presuppone che il server WiKID sia già installato e funzionante. Se disponi già di un gateway SSH configurato con pam_radius, puoi aggiungere X2Go alla stessa infrastruttura.

Prerequisiti

  • Server WiKID installato e accessibile dalla rete interna.
  • Server Ubuntu 12.04 (Precise) con accesso root o sudo.
  • Accesso alla rete interna e indirizzo IP del server X2Go.
  • Utenti locali o directory esterna (LDAP/AD) per risolvere gli account utente.
  • Conoscenza base di PAM, SSH e amministrazione Linux.

Importante: i nomi utente devono corrispondere tra il sistema Linux e il server WiKID per l’autenticazione proxy.

Aggiungere un dominio al server WiKID

Dalla console di amministrazione WiKID, crea un nuovo dominio che ospiterà gli utenti e i token. Questo dominio servirà per separare politiche e registrazioni dei token.

Schermata della creazione del dominio su WiKID

Suggerimento: usa nomi di dominio descrittivi (es. x2go.corporate) per semplificare la gestione.

Creare un client di rete (RADIUS)

  1. Dopo aver salvato il dominio, apri la scheda Network Client e clicca Create New Network Client.
  2. Inserisci un nome chiaro per il client e l’indirizzo IP del server X2Go nella rete interna.
  3. Seleziona RADIUS come protocollo e associa il client al dominio creato.
  4. Alla pagina successiva, inserisci il shared secret (segreto condiviso) RADIUS: questo valore va copiato nella configurazione pam_radius sul server X2Go.

Schermata di creazione client di rete con impostazioni RADIUS

Pagina per inserire il shared secret RADIUS

Nota: conserva il shared secret in modo sicuro. Cambiarlo richiederà aggiornamenti sia sul server WiKID che sulla configurazione PAM dei client.

Installare e configurare X2Go su Ubuntu 12.04 (Precise)

Installare X2Go è semplice. Esegui i comandi qui sotto sul server Ubuntu:

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

Occorre inoltre un ambiente desktop. Se non ne hai installato uno:

sudo apt-get install ubuntu-desktop gnome

Oppure installa il DE che preferisci (XFCE, MATE, ecc.).

Per verificare la configurazione, installa e avvia il client X2Go lato workstation:

apt-get install x2goclient

Crea una nuova sessione con l’indirizzo IP del server X2Go e il desktop scelto. Accedi con il nome utente e la password Linux per testare l’accesso a singolo fattore prima di attivare il 2FA.

Configurare PAM RADIUS sul server X2Go

Per integrare WiKID, installa il modulo RADIUS per PAM:

$ sudo apt-get install libpam-radius-auth

Poi configura quale server RADIUS usare (in questo caso il server WiKID):

$ sudo vim /etc/pam_radius_auth.conf

Nel file sostituisci la riga di esempio del tipo:

other-server other-secret 3

con l’IP/hostname del server WiKID e il shared secret che hai creato per il client di rete. Esempio (non lasciare spazi extra):

192.168.1.10 mio-shared-secret 3

Nota: il file suggerisce di copiarlo in /etc/raddb/server in alcune distribuzioni — NON farlo su Ubuntu in questo contesto.

Ora abilitiamo pam_radius per SSH (o per altri servizi PAM come il demone X2Go/sshd):

$ sudo vim /etc/pam.d/sshd

Aggiungi la seguente riga subito prima dell’inclusione dell’autenticazione standard:

auth       sufficient  pam_radius_auth.so

Ad esempio, colloca questa riga prima di:

@include common-auth

Così, se l’autenticazione RADIUS ha successo, PAM considera l’autenticazione sufficiente e non procede con gli altri moduli.

Testare l’accesso con WiKID

  1. Monitora i log di autenticazione:
tail -f /var/log/auth.log
  1. Avvia il token WiKID (software o hardware), seleziona il dominio creato e inserisci il PIN per ottenere l’OTP.
  2. Dalla workstation X2Go, avvia la sessione e inserisci come password la combinazione PIN+OTP (o la modalità specificata dalla tua policy WiKID — alcuni setup richiedono solo l’OTP).
  3. Verifica che nel log appaia la richiesta RADIUS e la risposta positiva dal server WiKID.

Importante: il nome utente che utilizzi deve esistere sia sul server Linux sia nel mapping del server WiKID (o nella directory se usi LDAP/AD).

Casi in cui questa soluzione può fallire e alternative

  • Se l’infrastruttura richiede autorizzazione basata su directory (AD/LDAP), è preferibile avere un server RADIUS intermedio che faccia il bind alla directory e poi inoltri l’autenticazione a WiKID. Questo mantiene l’autorizzazione nella directory.
  • Se il client X2Go è dietro NAT senza routing verso il server RADIUS, la comunicazione fallirà. Soluzione: configurare routing/port forwarding o usare un RADIUS gateway raggiungibile.
  • Se la policy richiede SAML/OAuth2, WiKID+RADIUS potrebbe non essere sufficiente; considera soluzioni SSO compatibili o un connettore.

Alternative:

  • Usare un server FreeRADIUS con proxy verso WiKID per policy di autorizzazione centralizzate.
  • Usare VPN con 2FA (es. OpenVPN + plugin 2FA) per limitare l’esposizione del servizio X2Go.

Mini-metodologia di implementazione (passi operativi)

  1. Preparazione: verifica compatibilità dei sistemi, backup dei file di configurazione.
  2. Creazione dominio WiKID e client di rete con shared secret.
  3. Installazione X2Go e desktop environment.
  4. Installazione libpam-radius-auth e configurazione /etc/pam_radius_auth.conf.
  5. Modifica /etc/pam.d/sshd per abilitare pam_radius.
  6. Test funzionale con monitoring dei log.
  7. Rollout graduale per gruppi di utenti e monitoraggio.
  8. Documentazione e procedure di disattivazione account.

Controlli per ruolo (checklist rapida)

Amministratore WiKID:

  • Dominio creato
  • Client di rete aggiunto con IP corretto
  • Shared secret comunicato in modo sicuro

Amministratore X2Go/Linux:

  • X2Go server installato e testato in SSO a singolo fattore
  • libpam-radius-auth installato
  • /etc/pam_radius_auth.conf aggiornato con IP e secret
  • /etc/pam.d/sshd modificato con pam_radius_auth.so
  • Log monitorati durante i test

Operatore/Helpdesk:

  • Procedures per reset/disabilitazione token
  • Documentazione su come l’utente ottiene OTP

Utente finale:

  • Token registrato nel dominio corretto
  • Test di login riuscito con PIN/OTP

Criteri di accettazione e test

  • Un utente con token WiKID valido può aprire una sessione X2Go usando PIN+OTP.
  • Le richieste RADIUS risultano accettate sui log WiKID e sui log del server X2Go.
  • Un utente disabilitato su WiKID non può più autenticarsi.
  • In caso di rete interrotta verso il server WiKID, il fallback è documentato (es. account locale con permessi emergency).

Esempio di flusso decisionale (diagramma)

flowchart TD
  A[Avvio sessione X2Go] --> B{Autenticazione PAM}
  B -->|pam_radius_auth| C[Invio richiesta RADIUS a WiKID]
  C --> D{Risposta WiKID}
  D -->|Accettata| E[Accesso consentito]
  D -->|Rifiutata| F[Accesso negato]
  B -->|Non configurato| G[Usa common-auth locale]
  G --> H{Utente locale valido?}
  H -->|Sì| E
  H -->|No| F

Hardening e suggerimenti di sicurezza

  • Usa un shared secret forte e ruotarlo periodicamente.
  • Limita l’accesso al server WiKID e al server RADIUS tramite firewall (solo IP dei client autorizzati).
  • Abilita logging centralizzato per rilevare anomalie e tentativi ripetuti.
  • Considera la cifratura di canali di management e backup delle configurazioni.
  • Valuta un piano di emergenza per accesso amministrativo (account break-glass) con controllo e audit.

Privacy e note GDPR

  • Tratta i log di autenticazione come dati personali quando contengono identificatori utente: abilita retention policy e accesso limitato.
  • Documenta il trattamento dei dati di autenticazione e il periodo di conservazione secondo le policy aziendali.
  • Se usi dati personali in WiKID o directory collegate, assicurati che il processo di disattivazione degli account sia rapido e tracciabile.

Risoluzione problemi comuni

  • Errore di timeout RADIUS: controlla con tcpdump/ssldump la connettività UDP verso il server WiKID e le regole firewall.
  • Risposta RADIUS rifiutata: verifica shared secret, tempo di sistema (drift non è generalmente problem ma controlla le policy WiKID), mapping utente.
  • Utente non trovato: verifica che il nome utente corrisponda esattamente tra Linux e WiKID/directory.
  • Nessuna voce in auth.log: assicurati che sshd stia usando il file /etc/pam.d/sshd (alcune build custom possono differire).

Comandi utili di diagnostica:

sudo tail -f /var/log/auth.log
sudo tcpdump -n -i any port 1812
sudo radtest username password 127.0.0.1 0 mio-shared-secret

(Il comando radtest richiede stazioni di test e può essere usato contro il server RADIUS locale o remoto.)

Riepilogo

La combinazione X2Go + WiKID tramite pam_radius fornisce un solido controllo di accesso a due fattori per desktop remoti. Implementando il flusso indicato — dominio WiKID, client RADIUS, configurazione pam_radius e test — puoi proteggere i tuoi server X2Go con un secondo fattore basato su token. Completa il rollout con controlli di sicurezza, piani di emergenza e procedure di privacy per mantenere l’ambiente sicuro e conforme.

Importante: prima di implementare in produzione, esegui un rollout pilota e verifica la procedura di disattivazione degli account per gestire facilmente la revoca degli accessi.

Autore
Redazione

Materiali simili

Risolvere errore win32kfull.sys e schermata blu
Windows

Risolvere errore win32kfull.sys e schermata blu

MetaMask Learn: Corso gratuito per capire il Web3
Web3

MetaMask Learn: Corso gratuito per capire il Web3

Cambiare lingua di Cortana su Windows 10
Windows 10

Cambiare lingua di Cortana su Windows 10

Aggiornare Ubuntu 12.04 a 14.04 LTS
Guide.

Aggiornare Ubuntu 12.04 a 14.04 LTS

Errore 0xc000001d su Windows: cause e soluzioni
Windows

Errore 0xc000001d su Windows: cause e soluzioni

Svuotare e gestire Luoghi recenti su macOS
macOS

Svuotare e gestire Luoghi recenti su macOS