Configurazione iniziale di un server Ubuntu

Introduzione Dopo aver installato il sistema operativo Ubuntu sul nostro server, ci sono alcune cose che un utente dovrebbe fare subito, per aumentare la sicurezza e per facilitare la sua […]

Avatar di GB Factory
GB Factory 28 Giugno 2021

Introduzione

Dopo aver installato il sistema operativo Ubuntu sul nostro server, ci sono alcune cose che un utente dovrebbe fare subito, per aumentare la sicurezza e per facilitare la sua gestione in futuro.

Accedere con l'Account Root

Per accedere al nostro server, dobbiamo innanzitutto conoscere l'IP pubblico del nostro server. Ci servirà anche la password dell'account root, oppure la chiave privata, se sul server sono installate le chiavi SSH per l'autenticazione.

La prima cosa da fare è connettersi al server tramite SSH, effettuando l'autenticazione con l'account root utilizzando il seguente comando (inserendo ovviamente l'IP del vostro account):

ssh [email protected]_del_server

Nel caso dovesse apparire, accentiamo l'avviso riguardo l'autenticità dell'host. Se ci stiamo autenticando tramite password, inseriamo la password del nostro account root. Invece, se stiamo utilizzando le chiavi SSH, ti verrà chiesto di inserire la frase chiave la prima volta che utilizzi la chiave per ogni sessione. Se questa è la prima volta che ti connetti al server con una password, potrebbe esserti chiesto di cambiare la password dell'account root.

L'account root

L'account root è l'utente con i privilegi amministrativi in ambiente Linux che ha permessi veramente molto elevati. Dati gli alti privilegi dell'account root, è fortemente sconsigliato l'utilizzo di questo account per l'ordinaria amministrazione del server dato che l'account root potrebbe essere causa di modifiche distruttive al server, anche solo per sbaglio.

Creare un Nuovo Account Utente

Dopo aver eseguito l'accesso come root, possiamo creare un nuovo utente che diventerà poi l'account principale da utilizzare al posto di root per la gestione del server.

Con questo codice creeremo un account chiamato pincopallino, tuttavia è possibile sostituire il nome con quello uno di vostra scelta:

adduser pincopallino

Ti verranno poste delle domande, tra cui quella di inserire la password per l'account: è sempre consigliabile l'inserimento di una password sicura. Tutte le altre domande non sono obbligatorie e possono essere saltate, per farlo basterà premere Invio.

Aggiungere all'account i Privilegi Amministrativi

A questo punto abbiamo un account con i normali privilegi. In alcuni casi, però, è necessario eseguire dei comandi con i privilegi di amministratore, per gestire il server, modificare i file di configurazione, ecc...

Per evitare di dover uscire dall'account che abbiamo appena creato e dover rientrare in quello root, si possono impostare un "superuser", ovvero avere i privilegi dell'account root nel nostro account normale. Questo ci consentirà di eseguire i comandi con i privilegi di amministratore aggiungendo prima di ogni comando la parola sudo.

Per garantire questi privilegi al nostro nuovo account, dobbiamo inserirlo all'interno del gruppo sudo. Questo perché, in Ubuntu, tutti gli utenti che appartengono al gruppo sudo hanno automaticamente accesso all'utilizzo del comando sudo.

Con il seguente comando andremo a modificare il gruppo a cui appartiene l'utente precedentemente creato. Normalmente  il gruppo sudo andrebbe a sostituire quello a cui l'utente appartiene attualmente, ma grazie al parametro -a (append), andremo semplicemente ad aggiungerlo agli altri gruppi dell'utente. Il parametro -G dice a usermod di modificare le impostazioni del gruppo dell'utente.

Esegui il seguente comando dal tuo account root per aggiungere il tuo account al gruppo sudo, ricordati di sostituire pincopallino con il nome del tuo account:

usermod -aG sudo pincopallino

Adesso il tuo utente è pronto. Nel prossimo passaggio andremo ad impostare un firewall di base per il tuo server.

Configurare un Firewall di base

Sui server con Ubuntu è possibile utilizzare il firewall UFW per consentire il traffico solamente ad alcuni servizi. Con questa applicazione possiamo configurare un semplice firewall di base.

Le applicazioni, all'installazione, registrano il loro profilo con UFW. Questi profili consentono a UFW di gestire le applicazione solamente con il nome. Possiamo vedere questo elenco con:

ufw app list
Available applications:
  OpenSSH

Nell'output del comando possiamo vedere, tra le applicazioni, anche OpenSSH, ovvero il servizio che consente all'utente di connettersi al server tramite SSH. Prima di poter abilitare il firewall è necessario consentire al traffico SSH di passare attraverso il firewall, per poter riconnetterci al server in futuro. Possiamo consentire la connessione con:

ufw allow OpenSSH

Ora possiamo abilitare il firewall con il comando:

ufw enable

Scriviamo Y e poi premiamo Invio per procedere. Infine controlliamo che le connessioni SSH siano ancora consentite con il comando:

ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Con questa configurazione il firewall sta bloccando tutte le connessioni escluse quelle SSH. Se vuoi installare e configurare altri servizi, dovrai modificare le impostazioni del firewall per consentire il traffico.

Accedere dall'esterno al nuovo account

Ora che abbiamo creato e configurato correttamente il nostro nuovo account per l'ordinaria amministrazione del server, dobbiamo essere in grado di potervi accedere tramite SSH direttamente dal nostro PC.

Attenzione: fino a quando non sarai sicuro che il nuovo account funziona correttamente e potrai utilizzare sudo per eseguire i comandi, è fortemente consigliato di non uscire dall'account root. In questo modo, possiamo risolvere eventuali problemi direttamente dal root.

Il processo di configurazione dell'autenticazione SSH per il tuo nuovo account cambia se l'account root del server utilizza l'autenticazione tramite password o tramite chiavi SSH.

Se l'account root utilizza l'Autenticazione con Password

Se hai eseguito l'accesso al tuo account root utilizzando una password, l'autenticazione tramite password sarà abilitata. Potrai quindi accedere al tuo nuovo account tramite SSH, basterà aprire una nuova finestra del terminale e utilizzare il comando ssh con il tuo nuovo nome utente:

ssh [email protected]_del_server

Dopo aver inserito la password dell'account, sarai autenticato con successo. Ricorda che se devi eseguire un comando con i privilegi di amministratore, dovrai scrivere sudo prima del comando:

sudo comando_da_eseguire

Per ogni nuova sessione (e dopo un certo tempo), ti verrà chiesto di inserire la password dell'account quando proverai ad utilizzare sudo.

Per aumentare la sicurezza del tuo account, è fortemente consigliato utilizzare delle chiavi SSH al posto dell'autenticazione con password.

Se l'account root utilizza l'Autenticazione con Chiavi SSH

Se hai eseguito l'accesso all'account root utilizzando le chiavi SSH, l'autenticazione tramite password sarà disabilitata per l'SSH. Dovrai quindi creare una copia della tua chiave pubblica locale nel file ~/.ssh/authorized_keys del nuovo utente per poter accedere.

Il sistema più semplice per copiare i file con la corretta proprietà e i giusti permessi è tramite l'utilizzo del comando rsync. Questo comando ci consente di copiare la cartella .ssh dell'utente root, preservando i permessi e modificando i proprietari del file, il tutto con un singolo comando. All'interno del comando assicurati di sostituire il nome d'esempio con quello reale del tuo account:

rsync --archive --chown=pincopallino:pincopallino ~/.ssh /home/pincopallino

Attenzione: il comando rsync tratta i percorsi con uno slash finale in modo diverso rispetto a quelli senza. Quindi stai attento che nel comando non siano presenti slash finali nel percorso indicato (~/.ssh) (assicurati di non star usando ~/.ssh/).

Ora possiamo aprire una nuova finestra del terminale sul nostro PC e provare ad accedere al nostro nuovo account tramite SSH:

ssh [email protected]_del_server

Dopo aver inserito la password dell'account, sarai autenticato con successo. Ricorda che se devi eseguire un comando con i privilegi di amministratore, dovrai scrivere sudo prima del comando:

sudo comando_da_eseguire

Per ogni nuova sessione (e dopo un certo tempo), ti verrà chiesto di inserire la password dell'account quando proverai ad utilizzare sudo.

Conclusione

A questo punto il server è stato configurato correttamente ed è pronto all'uso. Puoi subito iniziare ad installare i software di cui necessiti sul server.