Introduzione
Linux è considerato un sistema sicuro, è comunque consigliabile effettuare delle configurazioni specifiche per incrementare il livello di sicurezza del proprio sistema.
Ecco alcuni consigli per mettere in sicurezza Ubuntu.
Questa è una guida per migliorare la sicurezza del server di Ubuntu 20.04 LTS Focal Fossa.
Creare una Copia di Chiavi RSA
Le chiavi SSH sono una implementazione della crittografia a chiavi pubbliche. Esse risolvono il problema degli attacchi di tipo brute-force sulle password rendendoli impraticabili. Le chiavi SSH forniscono un modo semplice e sicuro di accedere al tuo server e sono consigliate per tutti gli utenti.
Creare una copia di chiavi sul proprio computer, dal quale vi connetterete verso il server tramite SSH.
Da terminale dare il seguente comando:
ssh-keygen
Dovresti ricevere un messaggio di output simile al seguente:
Generating public/private rsa key pair.
Enter file in which to save the key (/tua_home/.ssh/id_rsa):
Premere Invio per salvare la coppia di chiavi nella cartella .ssh/, oppure specificare un percorso alternativo.
Se le chiavi erano già state generate, dovresti ricevere un messaggio di output simile al seguente:
/home/tua_home/.ssh/id_rsa already exists.
Overwrite (y/n)?
ATTENZIONE Se si sceglie di sovrascrivere la chiave su disco, non sarà più possibile effettuare l'autenticazione utilizzando la chiave precedente.
Successivamente, dovresti ricevere un messaggio di output simile al seguente:
Enter passphrase (empty for no passphrase):
Per una maggiore sicurezza è possibile inserire una passphrase sicura, che è altamente raccomandata. Una passphrase aggiunge un ulteriore livello di sicurezza per impedire agli utenti non autorizzati di effettuare l'accesso.
Successivamente, dovresti ricevere un messaggio di output simile al seguente:
Your identification has been saved in /tua_home/.ssh/id_rsa.
Your public key has been saved in /tua_home/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3g8Vbc+Bb0Tb1Txb1Fh8dRQzehOkddxBqwVOdMnYC2g user@host
The key's randomart image is:
+---[RSA 2048]----+
| o+*^^|
| Eo+X=^|
| . .=+OB|
| o*=o|
| S .. oo|
| . . . . |
| . o |
| o |
| . |
+----[SHA256]-----+
Copiare la Chiave Pubblica sul Server Ubuntu
Il modo più rapido per copiare la tua chiave pubblica sull'host Ubuntu è utilizzare ssh-copy-id. Se non si dispone di ssh-copy-id sul computer client, è possibile utilizzare uno dei due metodi alternativi spiegati successivamente.
Per utilizzare ssh-copy-id, è sufficiente specificare l'host remoto a cui si desidera connettersi e l'account utente a cui si ha accesso tramite password SSH:
ssh-copy-id user@ip_del_server_ubuntu
Potresti ricevere un messaggio di output simile al seguente:
The authenticity of host 'INDIRIZZO_IP (INDIRIZZO_IP)' can't be established.
ECDSA key fingerprint is SHA256:E3NlUzqo/QZm8PF1QD9grtkPm8NIzyp0wHfMZGB/t6M.
Are you sure you want to continue connecting (yes/no)? yes
Significa che il tuo computer locale non riconosce l'host remoto. Questo accadrà la prima volta che ti connetti a un nuovo host. Scrivi "yes" e premi INVIO per continuare.
Successivamente, l'utilità eseguirà la scansione del tuo account locale per la chiave id_rsa.pub che abbiamo creato in precedenza. Quando trova la chiave, ti chiederà la password dell'account dell'utente remoto.
Dovresti ricevere un messaggio di output simile al seguente:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@INDIRIZZO_IP's password:
Scrivere la password e premere INVIO. Verranno copiati i contenuti della tua chiave ~/.ssh/id_rsa.pub in un file nella directory home ~/.ssh dell'account remoto denominata authorized_keys.
Dovresti ricevere un messaggio di output simile al seguente:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'user@INDIRIZZO_IP'"
and check to make sure that only the key(s) you wanted were added.
Per maggiori informazioni, consultare l'articolo dedicato: Come impostare SSH Keys su Ubuntu 20.04 LTS
Installare UFW Firewall
UFW (Uncomplicated firewall) è l'applicazione predefinita in Ubuntu per la configurazione del firewall.
UFW è installato di default su Ubuntu, se per qualche motivo è stato disinstallato, è possibile reinstallarlo con il seguente comando, da terminale:
sudo apt update
sudo apt install ufw
Abilitare le porte necessarie ad utilizzare la connessione tramite l'SSH:
sudo ufw allow ssh
sudo ufw allow http
Abilitare il firewall:
sudo ufw enable
Controllare lo stato del firewall.
sudo ufw status verbose
Per maggiori informazioni, consultare l'articolo dedicato: Come configurare UFW Firewall su Ubuntu 20.04 LTS
Configurare l'accesso SSH
Il modo migliore per proteggere SSH è utilizzare il login basato su chiave pubblica/privata. (Vedi il primo step di questo articolo)
Se è necessario utilizzare l'autenticazione della password, il modo più semplice per proteggere SSH è disabilitare l'accesso di root e cambiare la porta SSH in qualcosa di diverso rispetto alla porta standard 22.
Prima di disabilitare il login di root, creare un nuovo utente SSH e assicurati che l'utente appartenga al gruppo sudo.
Creare un nuovo utente:
adduser nuovoutente
Per impostazione predefinita, un nuovo utente è solo nel proprio gruppo, che viene creato al momento della creazione dell'account. Per aggiungere l'utente a un nuovo gruppo, possiamo usare il comando usermod:
usermod -aG sudo nuovoutente
L'opzione -aG serve per aggiungere l'utente al gruppo dichiarato prima del nome utente, in questo caso il gruppo è sudo.
Se si modifica la porta SSH mantenere il numero di porta inferiore a 1024 in quanto si tratta di porte privilegiate che possono essere aperte solo da root o da processi in esecuzione come root.
Se cambi la porta SSH, apri anche la nuova porta che hai scelto sul firewall e chiudi la porta 22.
Da terminale aprire il file di configurazione dell'SSH:
sudo vi /etc/ssh/sshd_config
Aggiungere o modificare le seguenti righe:
Port <INSERISCI LA PORTA CHE PREFERISCI>
Protocol 2
PermitRootLogin no
DebianBanner no
Salvare e chiudere il file.
Riavviare il servizio SSH:
sudo service ssh restart
Installare Fail2ban
Fail2ban estende il monitoraggio dei log ad altri servizi tra cui SSH, Apache, Courier, FTP e altro.
Fail2ban esegue la scansione dei file di registro e blocca in automatico gli IP che effettuano operazioni inaspettate, come per esempio: troppi errori di password.
Per maggiori informazioni, consultare l'articolo dedicato: Come configurare Fail2ban su Ubuntu 20.04 LTS.
La configurazione di Ubuntu 20.04 LTS Focal Fossa è terminata.