Guida alle tecnologie

Come configurare un terminal server in Linux con Ubuntu 9.10 e FreeNX

11 min read Guide tecniche Aggiornato 18 Oct 2025
Terminal server con Ubuntu 9.10 e FreeNX
Terminal server con Ubuntu 9.10 e FreeNX

Questo articolo guida passo passo la configurazione di un server terminal (thin‑client) su Ubuntu 9.10 usando FreeNX: installazione del sistema, requisiti minimi, rete statica, firewall con Firehol, installazione e hardening di FreeNX, configurazione client NoMachine e checklist di test e rollback. Segui le sezioni Sicurezza e Troubleshooting prima di esporre il servizio all’esterno.

Introduzione

Il paradigma desktop‑centrico ritorna spesso sotto forma di soluzioni thin‑client o terminal server. FreeNX replica il protocollo NX di NoMachine in versione open source. Rispetto al classico VNC, NX riduce l’uso di banda mantenendo una buona qualità visiva e reattività. Di default il traffico passa su SSH (porta 22), quindi le sessioni sono cifrate.

Definizione rapida: FreeNX — implementazione open source del server NX di NoMachine che fornisce remote desktop tramite SSH.

Perché usarlo: semplicità amministrativa, riuso di hardware obsoleto, controllo centralizzato delle sessioni, minore esposizione a malware rispetto a desktop distribuiti.

Nota importante: le istruzioni qui sotto sono state testate su Ubuntu 9.10. Alcuni comandi e pacchetti possono differire in versioni più recenti.

Sommario rapido dei contenuti

  • Requisiti e pacchetti necessari
  • Configurazione della rete con IP statico
  • Installazione e avvio di Firehol e fail2ban
  • Installazione e configurazione di FreeNX
  • Installazione e configurazione client NoMachine
  • Sicurezza, hardening e considerazioni di produzione
  • Test, playbook di deploy, rollback e check di accettazione

Requisiti di base

Hardware: un PC con risorse adeguate per il numero di sessioni concorrenti. Per uso domestico un desktop moderno va bene; per produzione calcola CPU, RAM e I/O disco in funzione degli utenti.

Software: Ubuntu 9.10 (Karmic Koala). Pacchetti principali: openssh-server, fail2ban, firehol, freenx (da PPA). Client: NoMachine NX Client su Windows/macOS/Linux.

Accesso: un account con privilegi sudo o accesso root.

Prima di iniziare: disclaimer e buone pratiche

Queste istruzioni funzionano nella mia esperienza. La sicurezza di rete è complessa: valuta firewall, segmentazione e procedure operative secondo le policy della tua organizzazione. Testa tutto in ambiente di staging prima di esporre il servizio in produzione.

Importante: Ubuntu 9.10 è una versione storica. Se stai pianificando rollout in produzione, considera una versione LTS supportata o una soluzione alternativa aggiornata.

Installazione del sistema operativo

Installa Ubuntu 9.10 seguendo una guida dedicata. Non ripetiamo i passaggi di installazione base qui. Consiglio di applicare gli aggiornamenti disponibili dopo l’installazione base.

Riferimento utile: https://www.howtoforge.com/the-perfect-desktop-ubuntu-9.10-karmic-koala

Prerequisiti software e primi comandi

Apri un terminale: Applicazioni -> Accessori -> Terminale.

Eleva i privilegi a root:

 sudo su -l

Aggiorna i repository e installa i pacchetti richiesti:

 aptitude update && aptitude install openssh-server fail2ban firehol

Verifica che il server SSH sia funzionante con un test locale (non proseguire la connessione):

 ssh 127.0.0.1

Dovresti vedere l’impronta RSA e la richiesta di connessione. Premi Ctrl‑C per uscire dopo aver annotato l’impronta. La confronteremo più avanti.

Configurazione rete: IP statico

Poiché si tratta di un server, è preferibile assegnare un IP statico. Puoi anche richiedere una prenotazione DHCP al server di rete.

Verifica le impostazioni correnti:

 ifconfig eth0
 cat /etc/resolv.conf
 route

Annota: IP, broadcast, netmask, nameserver e gateway.

Modifica il file delle interfacce:

 nano /etc/network/interfaces

Se trovi:

 iface eth0 inet dhcp

sostituiscilo o aggiungi la modalità statica:

 iface eth0 inet static
     address 192.168.1.253
     netmask 255.255.255.0
     network 192.168.1.0
     broadcast 192.168.1.255
     gateway 192.168.1.1
     dns-nameservers 8.8.8.8, 8.8.4.4

Usa i tuoi valori di rete. Suggerimento: i DNS pubblici di Google (8.8.8.8 e 8.8.4.4) sono spesso più veloci e affidabili rispetto a DNS ISP locali.

Riavvia la rete:

 /etc/init.d/networking restart

Controlla che la navigazione internet funzioni aprendo Firefox.

Configurazione firewall con Firehol

Abilita Firehol modificando il file di default:

 nano /etc/default/firehol

Cambia:

 START_FIREHOL=NO

in:

 START_FIREHOL=YES

Aggiorna la lista di indirizzi riservati IANA:

 get-iana

Esempio minimo di regola per consentire solo SSH in ingresso (porta 22) e tutto l’uscita:

 nano /etc/firehol/firehol

Aggiungi alla fine del file:

 server ssh accept

Avvia il firewall:

 firehol start

Dovresti vedere messaggi sullo stato, ad esempio “Activating new firewall (47 rules): OK”. Verifica le regole iptables se necessario:

 iptables --list

Note: personalizza le regole in base alle esigenze aziendali. Per servizi aggiuntivi apri le porte in modo esplicito.

Installazione di FreeNX

Aggiungi il PPA di FreeNX, aggiorna e installa:

 add-apt-repository ppa:freenx-team
 aptitude update
 aptitude install freenx
 /usr/lib/nx/nxsetup --install

Questa procedura installa i binari e genera le chiavi NX predefinite.

Se il server sarà accessibile dall’esterno, valuta la generazione di chiavi personalizzate e la loro distribuzione ai client. Le chiavi personalizzate migliorano la catena di fiducia ma richiedono gestione delle chiavi lato client.

Generazione e gestione chiavi NX (opzionale)

Generare chiavi personalizzate aumenta la sicurezza, ma devi distribuire la chiave pubblica ai client. Se decidi di rigenerare le chiavi NX, fai una copia di backup delle chiavi in un luogo sicuro.

Esempio (procedura generica):

 /usr/lib/nx/nxsetup --backup
 /usr/lib/nx/nxsetup --generate

Nota: i comandi e i percorsi possono variare. Documenta sempre dove hai salvato le chiavi.

Installazione client NoMachine (NX Client)

Sul client (Windows, macOS, Linux) visita: http://www.nomachine.com/download.php

Scarica e installa il client appropriato. Quando avvii il wizard di connessione NX:

  • Dai un nome alla sessione
  • Inserisci l’indirizzo IP del server
  • Seleziona la qualità di rete (es. LAN)
  • Nel pannello Desktop environment scegli Gnome se usi GNOME su Ubuntu 9.10 (di default il wizard può proporre KDE)

Se hai chiavi personalizzate, abilita la configurazione avanzata e importa la chiave nel tab Key.

Al primo accesso verrà mostrata l’impronta RSA del server. Confrontala con quella annotata dal test SSH locale e accetta se corrisponde.

Configurare utenti e permessi

Crea utenti locali per ogni persona che dovrà connettersi:

Sistema -> Amministrazione -> Utenti e gruppi

Oppure da terminale:

 adduser nomeutente

Per sessioni multi‑utente centralizzate valuta l’uso di LDAP o Active Directory in ambienti aziendali.

Test di funzionamento

  1. Avvia una sessione NX dal client.
  2. Confronta l’impronta RSA con quella annotata.
  3. Verifica che desktop remoto si apra correttamente e che input e audio/video lavorino come atteso.
  4. Prova trasferimento file (se necessario) e stampa remota.

Sicurezza e hardening consigliati

  • Cambia porta SSH se vuoi ridurre il rumore di scansione (ricorda di aggiornare Firehol/router). Tuttavia, la sicurezza principale resta l’autenticazione e la gestione delle chiavi.
  • Usa autenticazione a chiave pubblica per SSH dove possibile. Disabilita l’autenticazione password se i client lo supportano.
  • Configura fail2ban con regole per SSH/NX per bloccare tentativi di forza bruta.
  • Limita gli utenti autorizzati a connettersi via SSH tramite il parametro AllowUsers in /etc/ssh/sshd_config.
  • Imposta umask e profile utente restrittivi per ridurre rischio di escalation.
  • Monitora i log: /var/log/auth.log e log specifici di NX.
  • Se il server è esposto all’Internet, considera una DMZ o un jump host intermedio.

Esempi di snippet consigliati per /etc/ssh/sshd_config:

 PermitRootLogin no
 PasswordAuthentication no  # usa solo se hai chiavi pubbliche gestite
 AllowUsers amministratore alice bob
 PermitEmptyPasswords no
 X11Forwarding no

Dopo modifiche a sshd_config:

 /etc/init.d/ssh restart

Fail2ban: regole di esempio

Un’implementazione base di fail2ban aiuta a ridurre tentativi di accesso automatizzati. Configura jail per sshd e monitora i log.

Quando questa soluzione non è adatta (controesempi)

  • Ambienti che richiedono applicazioni a livello di kernel su client remoti.
  • Siti con requisiti di conformità che obbligano a VPN con autenticazione forte e audit completo: in alcuni casi una VPN gestita è preferibile.
  • Se hai banda uplink molto limitata e molte sessioni multimediali contemporanee.

Approcci alternativi

  • RDP (Remote Desktop Protocol): integrato in Windows, buone prestazioni su LAN, ma meno efficiente di NX su connessioni lente.
  • X2Go: alternativa open source a NX, buona compressione e supporto per sessioni multiple.
  • VNC: semplice ma meno efficiente sulla banda e meno sicuro se non incapsulato in SSH.

Maturità e compatibilità

FreeNX su Ubuntu 9.10 fornisce una soluzione matura per l’epoca, ma considera che 9.10 non riceve più aggiornamenti ufficiali. Valuta migration path verso distribuzioni supportate (es. Ubuntu LTS recenti) o soluzioni moderne come NoMachine Enterprise o X2Go per funzionalità e sicurezza aggiornate.

Playbook di deployment (SOP sintetico)

  1. Preparazione server: installa Ubuntu e applica aggiornamenti.
  2. Configura rete statica e DNS.
  3. Installa openssh-server, fail2ban e firehol.
  4. Configura Firehol per consentire solo porte necessarie (SSH in ingresso).
  5. Installa FreeNX dal PPA: add-apt-repository, aptitude update, aptitude install freenx.
  6. Esegui /usr/lib/nx/nxsetup –install e, se necessario, genera chiavi NX personalizzate.
  7. Crea gli account utente e verifica sessioni locali.
  8. Testa connessioni con client NoMachine.
  9. Abilita monitoraggio dei log e backup delle chiavi.
  10. Documenta la procedura di rollback.

Procedura di rollback rapida

  • Se l’installazione di FreeNX causa problemi: rimuovi il pacchetto e ripristina la configurazione di SSH e firewall.

Esempio:

 aptitude remove --purge freenx
 /etc/init.d/firehol restart
 /etc/init.d/ssh restart

Ripristina i file di configurazione da backup se necessario.

Test, criteri di accettazione e casi di prova

Casi di test essenziali:

  • Login remoto riuscito con credenziali valide.
  • Confronto impronte RSA corrispondente (verifica di sicurezza).
  • Avvio di un ambiente desktop Gnome stabile.
  • Apertura di applicazioni complesse (es. browser) e verifica latenza/interattività.
  • Test di riconnessione dopo caduta della rete.
  • Test di fail2ban: tentativi di login falliti devono portare al ban temporaneo.

Criteri di accettazione (esempi):

  • Il 100% dei tester autorizzati può connettersi e usare applicazioni di base.
  • Nessun accesso non autorizzato dopo 20 tentativi di forza bruta (blocked by fail2ban).
  • Tempo di risposta interattivo accettabile su LAN (soggettivo). Non fissare numeri non verificabili.

Checklist ruolo‑based

Amministratore di sistema:

  • Configurare firewall e fail2ban
  • Gestire chiavi NX/SSH
  • Monitorare log e aggiornamenti

Helpdesk:

  • Creare account utente
  • Fornire istruzioni di connessione ai client
  • Eseguire test di base e raccogliere log per escalation

Utente finale:

  • Ricevere file di configurazione per sessione NX
  • Seguire le istruzioni per importare chiave se fornita
  • Segnalare problemi con screenshot e descrizione dettagliata

Troubleshooting comune

Problema: il client mostra un avviso sull’impronta RSA che è cambiata.

  • Possibili cause: reinstallazione server, rigenerazione delle chiavi, attacco MITM.
  • Azioni: verifica fisica dell’impronta sul server, confronta con il backup, indaga prima di accettare il nuovo fingerprint.

Problema: nessuna connessione, timeout.

  • Controlla: stato servizio SSH (/etc/init.d/ssh status), regole Firehol, forwarding porta sul router se connesso dall’esterno.
  • Usa: telnet server-ip 22 o nmap per verificare porta.

Compatibilità e migrazione da Ubuntu 9.10

Ubuntu 9.10 è obsoleto. Per migrare:

  • Valuta una distribuzione LTS supportata (es. Ubuntu 20.04/22.04) o alternative aziendali.
  • Controlla disponibilità di FreeNX o sue alternative nei repository della nuova versione.
  • Pianifica migrazione di utenti e backup delle chiavi.

Consiglio operativo: testa la migrazione in laboratorio con un subset di utenti.

Privacy e conformità (note generali)

  • Tratta i dati degli utenti secondo le leggi locali (es. GDPR in Europa). Minimizza la memorizzazione di dati sensibili su server non adeguatamente protetti.
  • Documenta quali dati vengono trasferiti/archiviati durante le sessioni remote.

Glossario 1 riga

  • SSH: protocollo sicuro per shell remota e tunnel crittografati.
  • NX: protocollo per remote desktop efficiente in banda, tipicamente incapsulato in SSH.

Diagramma decisionale: devo esporre il server a Internet?

flowchart TD
    A[Devo esporre il server a Internet?] -->|Sì| B{Hai firewall e DMZ?}
    A -->|No| Z[Lascia in rete interna]
    B -->|Sì| C{Generi chiavi e distribuisci ai client?}
    B -->|No| Y[Configura DMZ / jump host prima]
    C -->|Sì| X[OK: limita accesso, monitora log]
    C -->|No| W[Non esporre: rischi di sicurezza]

Box dei fatti (senza numeri non verificati)

  • Porta di default usata: 22 (SSH).
  • FreeNX è un’implementazione open source del server NX.
  • Il traffico NX è tipicamente incapsulato in SSH e cifrato.
  • Client NoMachine è disponibile per Windows, macOS, Linux e Solaris.

Esempi di file e snippet utili

Esempio minimal /etc/network/interfaces (già mostrato sopra). Snippet essenziale sshd_config:

# Esempio minimal
 PermitRootLogin no
 PasswordAuthentication no
 AllowUsers amministratore alice

# Riavvia servizio dopo modifica
 /etc/init.d/ssh restart

Suggerimento per il deploy in azienda

  • Usa ambienti di staging per testare aggiornamenti.
  • Automatizza configurazioni con strumenti come Ansible/Puppet per coerenza.
  • Monitora risorse (CPU, memoria, I/O) e scala orizzontalmente dove necessario.

Annuncio breve (100–200 parole)

Ho configurato un server terminal su Ubuntu 9.10 con FreeNX per accedere ai desktop in modo centralizzato. Il server usa SSH per cifrare le sessioni, Firehol per il firewall e fail2ban per mitigare i tentativi di forza bruta. I client si collegano con NoMachine NX Client. Questa soluzione permette di riutilizzare hardware obsoleto, semplificare la gestione e ridurre la superficie d’attacco rispetto ai desktop distribuiti. Prima di esporre il servizio in produzione, applica le misure di hardening descritte (autenticazione a chiave pubblica, LimitUsers, monitoraggio log) e valuta la migrazione a una distribuzione supportata per un supporto a lungo termine.

Sintesi e passaggi successivi

  • Segui la playbook per la configurazione iniziale.
  • Applica le regole di sicurezza e test approfonditi.
  • Considera la migrazione da Ubuntu 9.10 a una versione supportata.

Grazie per aver letto. Se hai bisogno, posso fornire file di configurazione più dettagliati, template Ansible per automatizzare l’installazione o un runbook di incident response per NX.

Autore
Redazione

Materiali simili

Limitare banda di Windows Update
Windows

Limitare banda di Windows Update

Velocizzare il browser: guida pratica e strumenti
Browser

Velocizzare il browser: guida pratica e strumenti

Scaricare giochi su PS4 da remoto
Gaming

Scaricare giochi su PS4 da remoto

Ronggolawe: guida di difesa contro il ransomware
Sicurezza informatica

Ronggolawe: guida di difesa contro il ransomware

Spegnere automaticamente il Nest quando fuori è più fresco
Casa Intelligente

Spegnere automaticamente il Nest quando fuori è più fresco

Disattivare il Wi‑Fi automaticamente con Ethernet
Rete Windows

Disattivare il Wi‑Fi automaticamente con Ethernet