5 semplici consigli per proteggere il tuo server Linux

Consigli per un server Ubuntu sicuro 00 Immagine in evidenza

I server Linux sono la spina dorsale dell’Internet moderno. Oggi, quasi ogni sito web e servizio a cui puoi accedere tramite un browser web funziona su una distribuzione Linux. Qui ti mostriamo come puoi proteggere il tuo server Linux.

Indice

    1. Rimuovere l’accesso SSH per Root
    1. Utilizzare una coppia di chiavi pubbliche per l’accesso SSH
    1. Rafforzare il firewall del tuo server Linux
    1. Creare un nuovo utente per ogni servizio
    1. Rafforzare il kernel del tuo server
  • Domande frequenti

Nota: questo tutorial è stato creato utilizzando un server Ubuntu, ma dovrebbe essere applicabile anche ad altre distribuzioni Linux, incluso il tuo server web locale.

1. Rimuovere l’accesso SSH per Root

Uno dei modi più rapidi per proteggere il tuo server Ubuntu è quello di rendere sicuro il tuo demone SSH disabilitando l’accesso SSH per Root. Per impostazione predefinita, il server OpenSSH consente a qualsiasi connessione in arrivo di accedere come utente root.

Ad esempio, eseguendo il seguente comando su un server non sicuro verrà fornito un prompt di accesso:

Consigli per un server Ubuntu sicuro 04 Accesso Root Insicuro

Questo può essere un problema, poiché lascia il tuo server aperto e vulnerabile a un attacco di forza bruta per la password. Per risolvere questo problema, accedi al tuo server Linux e aggiorna il file di configurazione del demone SSH.

Una volta all’interno del tuo server Linux, modifica il file di configurazione SSH:

sudonano/etc/ssh/sshd_config

Consigli per un server Ubuntu sicuro 07 Configurazione Sshd di Default

Cerca la variabile PermitRootLogin in GNU Nano premendo Ctrl + W e digitando PermitRootLogin.

Consigli per un server Ubuntu sicuro 08 Variabile Permitrootlogin

Cambia il valore di PermitRootLogin da “yes” a “no”, quindi salva il file premendo Ctrl + o, poi Ctrl + x.

Per applicare la nuova impostazione, ricarica il demone SSH del server tramite systemctl:

sudo systemctl restart ssh

Consigli per un server Ubuntu sicuro 09 Ricarica Server Ssh

2. Utilizzare una coppia di chiavi pubbliche per l’accesso SSH

Un altro modo rapido per proteggere il tuo server Linux è creare una coppia di chiavi pubbliche tra il tuo account locale e l’account utente SSH. Questo approccio salta il processo di accesso con password e ti autentica automaticamente con il tuo server remoto.

Per creare una coppia di chiavi pubbliche, devi prima eseguire il seguente comando sul tuo computer locale:

ssh-keygen

Il programma keygen ti chiederà vari dettagli sulla chiave che desideri creare. Puoi lasciare queste opzioni sui valori predefiniti premendo Invio tre volte.

Consigli per un server Ubuntu sicuro 10 Genera Chiave Ssh

Esporta la tua nuova coppia di chiavi pubbliche al tuo server remoto utilizzando il programma ssh-copy-id. Questo è un’utilità semplice che prepara sia la macchina locale che quella remota per l’autenticazione con chiave pubblica tramite SSH.

ssh-copy-id [email protected]

Consigli per un server Ubuntu sicuro 11 Copia Id Ssh Server

Accedi alla tua macchina remota eseguendo il seguente comando:

È anche possibile ulteriormente proteggere il tuo server Linux rimuovendo il prompt di accesso in SSH. Apri il file di configurazione del demone con il seguente comando:

sudonano/etc/ssh/sshd_config

Trova la variabile PasswordAuthentication e cambia il suo valore da “yes” a “no”.

Consigli per un server Ubuntu sicuro 13 Disabilita Autenticazione per Password

Ricarica il tuo demone SSH eseguendo il seguente comando:

sudo systemctl restart sshd

3. Rafforzare il firewall del tuo server Linux

Oltre a limitare l’accesso SSH, puoi anche migliorare la sicurezza del tuo server Linux configurando il firewall. Per impostazione predefinita, una nuova macchina Linux accetterà tutte le connessioni in arrivo da qualsiasi porta.

Questo può essere un problema, poiché lascia il tuo server vulnerabile a un attacco di scansione delle porte. Ad esempio, un malintenzionato può scansionare la tua macchina per eventuali porte non sicure e utilizzare questa informazione per trovare un exploit adatto.

Consigli per un server Ubuntu sicuro 14 Esempio di Scansione delle Porte

Uno dei modi per risolvere questo problema è installare ufw, un semplice client firewall che può controllare le porte e gli indirizzi disponibili al mondo esterno.

Esegui il seguente comando per installare ufw in Ubuntu:

sudo apt install ufw

Consigli per un server Ubuntu sicuro 15 Installazione di Ufw

Imposta le regole predefinite per ufw. Queste sono le politiche che il tuo firewall seguirà per qualsiasi porta che non personalizzi. È buona prassi assicurarsi di bloccare tutte le connessioni in arrivo:

sudo ufw default deny incoming  
sudo ufw default allow outgoing

Consigli per un server Ubuntu sicuro 16 Cambiare le Regole Predefinite

Configura il tuo firewall per i servizi che desideri eseguire nella tua macchina. Ad esempio, eseguendo i seguenti comandi potrai accedere tramite SSH e ospitare un server web:

sudo ufw allow 22  
sudo ufw allow 80  
sudo ufw allow 443

Infine, devi abilitare la tua nuova configurazione del firewall eseguendo sudo ufw enable. Puoi anche controllare se il tuo firewall è attivo eseguendo questo comando:

sudo ufw status

Consigli per un server Ubuntu sicuro 17 Stato Attivo di Ufw

4. Creare un nuovo utente per ogni servizio

Per impostazione predefinita, ogni file e programma in un sistema Linux appartiene a un particolare utente e gruppo. Per modificare il sistema, è necessario avere i permessi giusti per le giuste cartelle.

Un modo per aumentare la sicurezza del tuo server Linux è creare un nuovo account utente per ogni nuovo servizio. Questo approccio ti consente di contenere i privilegi di ogni servizio nel proprio account utente.

Consigli per un server Ubuntu sicuro 18 Cartella con Molti Proprietari

Per fare ciò, esegui i seguenti comandi:

sudo useradd -s/bin/bash-d/home/new-service -m-Gsudo new-service  
sudopasswd new-service
  • Il flag -s imposta la shell di sistema per il nuovo account utente. Nel mio caso, il mio nuovo account utilizza Bash come shell.
  • Entrambi i flag -d e -m impostano la directory utente predefinita per il nuovo account.
  • Il flag -G, d’altra parte, aggiunge il nuovo account a qualsiasi gruppo secondario che specifichi. Ad esempio, aggiungere il nuovo account al gruppo sudo gli permetterà di eseguire comandi superuser.
  • Il comando passwd ti consente di impostare una nuova password per il nuovo account utente.

Una volta fatto, puoi utilizzare il tuo nuovo account utente disconnettendoti dal tuo account attuale o eseguendo su new-service.

Consigli per un server Ubuntu sicuro 19 Nuovo Utente Attivo

5. Rafforzare il kernel del tuo server

Il kernel è una delle parti più importanti di un sistema Linux e rappresenta la connessione tra l’hardware della tua macchina e il tuo software. Ad esempio, compilare il proprio kernel Linux ti consente di attivare il supporto per hardware e funzionalità esotiche.

Consigli per un server Ubuntu sicuro 20 Fai Menuconfig

Oltre a ciò, il kernel funge anche da processo radice del sistema operativo. Proteggere il kernel è uno dei passaggi più vitali per proteggere il tuo server Linux.

Uno dei modi più rapidi per proteggere il tuo kernel è tramite sysctl. Questa è un’utilità integrata che ti consente di modificare le opzioni di runtime del kernel Linux.

Consigli per un server Ubuntu sicuro 21 Pagina Man di Sysctl

Tuttavia, è importante notare che sysctl non coprirà l’intero processo di indurimento del kernel, poiché la protezione del kernel dipenderà in larga misura da ciò di cui hai bisogno.

Sapendo ciò, puoi eseguire i seguenti comandi per impedire al tuo kernel di segnalare qualsiasi informazione diagnostica:

sudo sysctl kernel.kptr_restrict=2  
sudo sysctl kernel.dmesg_restrict=1  
sudo sysctl kernel.kexec_load_disabled=1

Consigli per un server Ubuntu sicuro 22 Ottimizzazioni Sysctl Kernel

Puoi anche eseguire i seguenti comandi per dire al tuo kernel di ignorare eventuali richieste di connessione false fatte al tuo server:

sudo sysctl net.ipv4.tcp_syncookies=1  
sudo sysctl net.ipv4.tcp_rfc1337=1

Consigli per un server Ubuntu sicuro 23 Ottimizzazione Sysctl Net Flood

Questi comandi, d’altra parte, costringeranno il kernel a convalidare ciascuna connessione in arrivo alla macchina:

sudo sysctl net.ipv4.conf.all.rp_filter=1  
sudo sysctl net.ipv4.conf.default.rp_filter=1

Consigli per un server Ubuntu sicuro 24 Filtri Connessioni Net Sysctl

Infine, il seguente insieme di comandi previene qualsiasi connessione in arrivo dal reindirizzare il traffico di rete a un gateway diverso. Questo impedirà al tuo sistema di cadere vittima di un attacco man-in-the-middle.

sudo sysctl net.ipv4.conf.all.accept_redirects=0  
sudo sysctl net.ipv4.conf.default.accept_redirects=0  
sudo sysctl net.ipv4.conf.all.secure_redirects=0  
sudo sysctl net.ipv4.conf.default.secure_redirects=0  
sudo sysctl net.ipv6.conf.all.accept_redirects=0  
sudo sysctl net.ipv6.conf.default.accept_redirects=0  
sudo sysctl net.ipv4.conf.all.send_redirects=0  
sudo sysctl net.ipv4.conf.default.send_redirects=0

Consigli per un server Ubuntu sicuro 25 Prevenzione Mitm Net Sysctl

Suggerimenti: oltre ai suggerimenti di cui sopra, puoi anche utilizzare questi strumenti open-source per proteggere il tuo server Linux.

Domande frequenti

Ho perso la mia macchina locale. È ancora possibile accedere al mio server Ubuntu tramite SSH?

Per la maggior parte, non dovrebbe essere possibile accedere tramite SSH se stai utilizzando solo l’autenticazione con chiave pubblica. Tuttavia, potrebbe essere comunque possibile accedere al prompt SSH se non hai disabilitato la variabile PasswordAuthentication.

Oltre a questo, potresti accedere fisicamente alla macchina e aggiornare “/etc/ssh/sshd_config” oppure accedere alla console root dal tuo fornitore VPS.

Il mio server ha sia iptables che ufw. Devo configurare entrambi per il mio firewall?

No! Sia iptables che ufw sono software firewall che controllano gli stessi intervalli di indirizzi e porte. Devi solo configurare uno di essi per avere un firewall funzionante nel tuo server Linux.

È possibile rimuovere i privilegi di superuser di un utente che ho creato?

Sì! È possibile rimuovere un utente esistente da un gruppo. Usa l’utilità usermod. Ad esempio, eseguendo usermod -G video new-service rimuoverai l’utente “new-service” dal gruppo “sudo” e lo aggiungerai al gruppo “video”.

Crediti immagine: Unsplash. Tutte le modifiche e le schermate di Ramces Red.