1 25/04/2026 26/04/2026 8 min

Cockpit è il pannello web giusto quando vuoi gestire una macchina Linux senza trascinarti dietro una console remota per ogni operazione banale. Su Red Hat e CentOS l’installazione è semplice, ma conviene farla con criterio: prima verifichi versione del sistema, repository disponibili, stato del firewall e modalità di accesso, poi abiliti il servizio e solo dopo apri l’interfaccia all’esterno. Così eviti il classico errore di trovare il pannello installato ma irraggiungibile, oppure esposto nel posto sbagliato.

In questa guida prendo come riferimento un sistema con systemd e una distribuzione compatibile con Red Hat Enterprise Linux, quindi RHEL, CentOS Linux o CentOS Stream. Dove cambia qualcosa tra release vecchie e nuove, lo segnalo. L’obiettivo è arrivare a un’installazione funzionante, accessibile in sicurezza su https://server:9090, con un controllo finale che ti dica subito se il problema è repository, servizio, firewall o autenticazione.

Versione del sistema e repository: la prima verifica che evita false partenze

Prima di installare, identifica la famiglia della macchina. Con Cockpit il punto non è solo il pacchetto, ma anche la presenza del repository corretto e la coerenza con la release del sistema. Su RHEL e CentOS recenti il pacchetto è spesso disponibile direttamente nei repository standard; su installazioni minimali o vecchie può servire un enable esplicito.

Controlla prima la release e i repository attivi:

cat /etc/redhat-release # RHEL/CentOS 8 e successivi
sudo dnf repolist # RHEL/CentOS 7
sudo yum repolist

Se vedi repository disabilitati o un sistema minimal senza metadati aggiornati, fai prima un refresh. Su macchine con subscription manager, verifica anche che il canale sia corretto e che il sistema sia registrato. Se il repository non c’è, l’installazione fallisce subito o ti porta a un set di pacchetti incompleto.

Per capire se Cockpit è già disponibile senza cambiare nulla, puoi interrogare il pacchetto:

sudo dnf info cockpit
# oppure
sudo yum info cockpit

Se il comando restituisce informazioni sul pacchetto, il percorso è lineare. Se invece segnala che il pacchetto non è trovato, il problema non è Cockpit in sé ma la configurazione dei repository. In quel caso non forzare installazioni manuali: prima risolvi la sorgente dei pacchetti.

Installazione del pacchetto Cockpit

Quando i repository sono a posto, l’installazione è diretta. Il pacchetto base installa la console web e i componenti necessari per l’accesso amministrativo. Su molte macchine conviene installare anche il modulo per la gestione dei servizi e delle risorse di sistema, che in pratica è già incluso nel pacchetto principale o nei suoi componenti standard.

Installa Cockpit con il gestore pacchetti della release:

# RHEL/CentOS 8, 9 e derivati recenti
sudo dnf install cockpit # RHEL/CentOS 7
sudo yum install cockpit

Se vuoi verificare subito cosa è stato installato, usa la query del pacchetto:

rpm -q cockpit

Il controllo deve restituire una versione installata, non un errore di pacchetto assente. Se il pacchetto non si installa, le cause più comuni sono repository non aggiornati, subscription mancante su RHEL o mirror non raggiungibile. In questi casi il rollback è banale: non hai ancora toccato servizi o firewall, quindi basta correggere la sorgente e riprovare.

Abilitare e avviare il servizio cockpit

Installare il pacchetto non basta: il demone deve essere attivo. Su sistemi moderni Cockpit gira tramite socket activation, quindi spesso non devi avviare un servizio “classico” a mano; basta abilitare il socket e lasciare che systemd apra il listener quando serve.

Controlla prima lo stato:

systemctl status cockpit.socket

Se il socket è inattivo, abilitalo e avvialo:

sudo systemctl enable --now cockpit.socket

Verifica poi che il listener sia presente sulla porta 9090:

sudo ss -tlnp | grep 9090

Il risultato atteso è una riga in ascolto su 0.0.0.0:9090 o sull’indirizzo specifico della macchina, con processo associato a systemd/cockpit. Se non compare nulla, il problema è nel socket o in una policy locale che impedisce l’apertura della porta.

Su alcune installazioni puoi trovare anche il servizio cockpit.service, ma il riferimento operativo corretto è il socket. Se hai dubbi, controlla entrambi:

systemctl list-unit-files | grep cockpit

Se il socket è abilitato ma non parte, guarda i log del journal per capire se c’è un errore di configurazione o un conflitto sulla porta:

journalctl -u cockpit.socket -b --no-pager

Aprire la porta nel firewall senza esporre più del necessario

Il caso più frequente è questo: Cockpit è installato, il socket è attivo, ma dal browser non raggiungi nulla. In pratica il servizio funziona in locale, però il firewall blocca la 9090. Su Red Hat e CentOS il dettaglio importante è che la regola va aperta solo sul profilo pubblico o sulla zona effettivamente usata dalla scheda di rete.

Con firewalld, apri la porta in modo esplicito:

sudo firewall-cmd --permanent --add-service=cockpit
sudo firewall-cmd --reload

Se la definizione del servizio non è presente nel sistema, apri la porta TCP direttamente:

sudo firewall-cmd --permanent --add-port=9090/tcp
sudo firewall-cmd --reload

Controlla la configurazione effettiva:

sudo firewall-cmd --list-all

L’output deve mostrare cockpit tra i servizi oppure 9090/tcp tra le porte aperte. Se non compare, hai modificato la zona sbagliata o il firewall non è quello attivo sul sistema. In quel caso verifica la zona associata all’interfaccia:

sudo firewall-cmd --get-active-zones

Se la macchina è dietro un security group, un firewall perimetrale o una policy cloud, la regola locale non basta: la 9090 deve essere consentita anche fuori dal server. Questo è uno dei punti in cui l’errore sembra di Cockpit ma in realtà è di rete.

Accesso web: login, certificato e primo avvio

A questo punto puoi aprire il browser e raggiungere l’interfaccia su https://IP_DEL_SERVER:9090 oppure https://hostname:9090. La connessione usa HTTPS, quindi al primo accesso è normale vedere un certificato autofirmato o un avviso del browser se non hai ancora installato una PKI interna o un certificato valido.

Il login usa le credenziali di sistema: utente locale con permessi adeguati, oppure un account autorizzato tramite policy della macchina. Per l’amministrazione quotidiana è più pulito usare un account con privilegi limitati e ricorrere a sudo quando serve, invece di navigare sempre come root.

Se la pagina non si apre, non saltare subito alle conclusioni. Fai una verifica minimale dal server o da un client della stessa rete:

curl -kI https://127.0.0.1:9090
curl -kI https://IP_DEL_SERVER:9090

Se in locale risponde ma da remoto no, il problema è quasi sempre firewall, routing o ACL esterna. Se non risponde nemmeno in locale, torna al socket e ai log del journal.

Controlli finali: capire subito se tutto è a posto

Un’installazione fatta bene non si misura solo dal pacchetto presente, ma dalla catena completa: pacchetto, unità systemd, porta in ascolto, regola firewall e accesso web. Se uno di questi punti manca, il pannello non è davvero pronto.

Fai questo controllo finale in ordine:

  1. Verifica il pacchetto: rpm -q cockpit
  2. Verifica il socket: systemctl is-active cockpit.socket
  3. Verifica la porta: ss -tlnp | grep 9090
  4. Verifica il firewall: firewall-cmd --list-services oppure firewall-cmd --list-ports
  5. Verifica l’accesso HTTP(S): curl -kI https://127.0.0.1:9090

Se tutto è verde ma il browser continua a mostrare errore, il punto successivo è quasi sempre DNS, proxy o certificato lato client. Se invece il browser apre la pagina ma il login fallisce, controlla l’utente e i privilegi locali: Cockpit non inventa credenziali, usa quelle del sistema.

Disinstallazione o rollback pulito se qualcosa non torna

Se durante il setup hai aperto la porta sbagliata o vuoi tornare indietro, il rollback è semplice e reversibile. Prima disabilita il socket, poi chiudi la regola firewall e infine rimuovi il pacchetto se non ti serve più.

sudo systemctl disable --now cockpit.socket
sudo firewall-cmd --permanent --remove-service=cockpit
sudo firewall-cmd --permanent --remove-port=9090/tcp
sudo firewall-cmd --reload
sudo dnf remove cockpit

Se usi RHEL/CentOS 7, sostituisci dnf con yum. Il blast radius è basso: tocchi solo il pannello web e la sua esposizione, non la configurazione del sistema ospite. Assunzione: la macchina usa firewalld e non ha policy esterne che riscrivono le regole al reboot.

Note pratiche su RHEL, CentOS Linux e CentOS Stream

Su RHEL il tema principale è la disponibilità dei repository corretti e, se necessario, della subscription. Su CentOS Linux e CentOS Stream il pacchetto è in genere più immediato, ma la differenza vera la fa la versione: su release più vecchie trovi spesso yum, su quelle recenti dnf. La procedura non cambia, cambia solo lo strumento di gestione pacchetti.

Se stai lavorando su una macchina minimale, considera anche l’impatto operativo: Cockpit è comodo, ma non sostituisce un piano di accesso amministrativo. Se la rete o il firewall vengono configurati male, rischi di perdere l’accesso remoto proprio mentre pensi di semplificarlo. Per questo conviene sempre verificare localmente prima di esporre la porta al resto della rete.

In breve: installa il pacchetto, abilita il socket, apri la porta corretta, verifica con curl e solo dopo usa il browser. È il modo più rapido per distinguere un problema di installazione da un problema di rete o autenticazione, senza perdere tempo in tentativi alla cieca.