Proteggere X2Go su Ubuntu Precise con l'autenticazione a due fattori 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.
Suggerimento: usa nomi di dominio descrittivi (es. x2go.corporate) per semplificare la gestione.
Creare un client di rete (RADIUS)
- Dopo aver salvato il dominio, apri la scheda Network Client e clicca Create New Network Client.
- Inserisci un nome chiaro per il client e l’indirizzo IP del server X2Go nella rete interna.
- Seleziona RADIUS come protocollo e associa il client al dominio creato.
- Alla pagina successiva, inserisci il shared secret (segreto condiviso) RADIUS: questo valore va copiato nella configurazione pam_radius sul server X2Go.
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
- Monitora i log di autenticazione:
tail -f /var/log/auth.log
- Avvia il token WiKID (software o hardware), seleziona il dominio creato e inserisci il PIN per ottenere l’OTP.
- 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).
- 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)
- Preparazione: verifica compatibilità dei sistemi, backup dei file di configurazione.
- Creazione dominio WiKID e client di rete con shared secret.
- Installazione X2Go e desktop environment.
- Installazione libpam-radius-auth e configurazione /etc/pam_radius_auth.conf.
- Modifica /etc/pam.d/sshd per abilitare pam_radius.
- Test funzionale con monitoring dei log.
- Rollout graduale per gruppi di utenti e monitoraggio.
- 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.
Materiali simili

Risolvere errore win32kfull.sys e schermata blu

MetaMask Learn: Corso gratuito per capire il Web3

Cambiare lingua di Cortana su Windows 10
Aggiornare Ubuntu 12.04 a 14.04 LTS

Errore 0xc000001d su Windows: cause e soluzioni
