Come proteggere un server Linux

Linux Server Hardening

Il server più sicuro al mondo è quello spento e disconnesso da Internet. Ma se vogliamo utilizzare il server per le operazioni IT, dobbiamo assicurarci che il server sia protetto correttamente prima di metterlo online.

Server Hardening è il processo per rendere sicuro il sistema. Il rafforzamento del server aiuta ad affrontare i modi migliori per ridurre al minimo i punti di vulnerabilità.

In questo articolo, spiegherò alcune delle migliori pratiche per proteggere i server Linux.

Il rafforzamento del server può essere eseguito in vari livelli del sistema:

  1. Livello macchina:  protezione del BIOS/crittografia dell’unità
  2. Livello di sistema:  criteri password
  3. Livello di rete:  configurazione firewall/porta
  4. Livello di registrazione e controllo:  avvisi/registri/audit

Elenco dei controlli per la protezione avanzata del server

Ora, diamo un’occhiata ad alcune delle pratiche comuni e migliori che possiamo adottare per proteggere il sistema:

Aggiornamento regolare del sistema

Questo è uno dei passaggi cruciali nel rafforzamento del sistema perché la maggior parte dei difetti nei sistemi sono dovuti ad alcuni difetti nella definizione del software stesso. Un corretto aggiornamento del sistema aiuta a ridurre i rischi ad esso correlati.

A seconda della distribuzione GNU/Linux che utilizziamo, possiamo aggiornare il sistema con l’aiuto dei seguenti comandi:

sudo apt update -y && sudo apt upgrade -y         // For Ubuntu
sudo yum update -y && sudo yum upgrade -y         // For RHEL/CentOS

Bloccare l’accesso di root da SSH

Poiché l’utente root del sistema dispone dell’accesso amministrativo, non dovrebbe essere consentito l’accesso SSH da desktop remoti.

Per disabilitare l’accesso root, apportare le modifiche necessarie al file di configurazione SSH nella directory  /etc/ssh.

cd /etc/ssh/
sudo vi sshd_config

Modifica il file e cerca la riga:

#PermitRootLogin yes

È necessario decommentare la riga e modificare il valore su  no  per bloccare l’accesso root SSH.

PermitRootLogin no

Ora riavvia il servizio SSH per riflettere le modifiche:

sudo systemctl restart sshd.service

Applica una password complessa per root

Assicurati di impostare una password complessa per l’utente root. È meglio generare un hash per una password di testo normale e utilizzare l’hash generato per la password.

Ciò garantisce maggiore sicurezza e affidabilità del sistema.

Smetti di usare le porte predefinite

Le porte predefinite sono porte standard per qualsiasi servizio o applicazione. Sono conosciuti in tutto il mondo e chiunque può entrare nel sistema attraverso la porta se è pubblicamente accessibile.

Pertanto, dobbiamo impostare la porta casuale per ogni servizio che utilizziamo.

Per esempio:

Invece di usare la porta 22 per SSH, possiamo usare qualsiasi porta casuale che desideriamo.

Ecco come possiamo cambiare la porta SSH predefinita “22” in qualsiasi altra porta casuale. Le porte SSH sono ben note al mondo e quindi è molto importante impostarlo su un numero casuale.

Accedi come utente root e modifica il file di configurazione ssh come:

sudo -i 
cd /etc/ssh/ 
vi sshd_config

Trova il parametro ‘PORT 22’ sulla riga 17 del file (solitamente 17).

PORT 22

Modificare il valore nel numero di porta che si desidera impostare per SSH e salvare il file.

Riavvia il servizio SSH con l’aiuto del seguente comando e sei a posto.

systemctl restart sshd.service

La porta per SSH è stata modificata correttamente.

Tuttavia, se il server Linux è in esecuzione su cloud, è necessario aggiungere la nuova porta nelle Regole in entrata per l’istanza anche nel suo gruppo di sicurezza.

Porte aperte inutilizzate chiuse

Le porte aperte aprono la superficie di attacco per gli hacker. Pertanto, non dobbiamo mantenere alcun servizio o applicazione non necessaria. E se ne troviamo uno, dobbiamo disabilitare la porta o rimuovere completamente l’applicazione.

Per verificare quali porte sono aperte nel server, possiamo usare il comando:

netstat -tulpn

Mantieni le cose pulite e ordinate

Non dovremmo mai dimenticare che  Meno pacchetti = Meno vulnerabilità

Rimuovere qualsiasi pacchetto non necessario installato e non installare mai alcun pacchetto non necessario. I pacchetti dell’applicazione possono contenere vulnerabilità che possono causare seri danni al sistema.

Per rimuovere qualsiasi pacchetto installato, possiamo usare il comando:

sudo apt-get remove <nome-pacchetto> --purge // Ubuntu
yum -y remove <nome-pacchetto> // RHEL/CentOS

Assicurati anche di ripulire tutte le vecchie directory e file che non sono più in uso.

Rafforzamento del kernel Linux – /etc/sysctl.conf

Per apportare una modifica permanente, è necessario configurare il file sysctl.conf che si  trova all’interno della  directory /etc/ 

Accedi come utente root e modifica il file:

sudo -i
vi /etc/sysctl.conf

Può essere utilizzato per configurare vari parametri di sicurezza e ottimizzazione delle prestazioni come:

Controllo dell’inoltro dei pacchetti IP:

I server che fungono da router o gateway devono inoltrare i pacchetti e quindi questa funzione deve essere abilitata in questi casi. Tuttavia, in tutti gli altri server non è necessario e può essere disabilitato aggiungendo le seguenti righe in sysctl.conf.

net.ipv4.ip_forward = 0

Verifica dell’indirizzo IP di origine

Aiuta a controllare gli attacchi di spoofing. Aggiungi le seguenti righe a sysctl.conf  per abilitare la verifica dell’indirizzo IP di origine.

net.ipv4.conf.all.rp_filter = 1

Protezione Exec Shield

Exec Shield è una patch di sicurezza del kernel Linux per evitare worm e altri problemi. Aggiungi le seguenti righe a sysctl.conf  per abilitare la protezione Exec Shield.

kernel.exec-shield = 1 
kernel.randomize_va_space = 1

Prevenzione dagli Smurf attack

L’attacco Smurf si riferisce allo sfruttamento dell’indirizzo IP broadcast per creare un attacco DoS/DDoS tramite pacchetti di messaggi ICMP.

Possiamo fermare l’attacco Smurf disabilitando l’indirizzo di trasmissione come:

net.ipv4.icmp_echo_ignore_broadcasts = 1

Protezione contro SYN flood

Nell’attacco SYN Flood, il sistema viene inondato da una serie di pacchetti SYN.

Quindi, il sistema emette una risposta SYN+ACK e attende l’ACK (handshake a 3 vie).

Poiché l’attaccante non restituisce mai l’ACK, l’intera risorsa del sistema viene riempita, nota come coda di backlog. E una volta che la coda è piena, ignora le ulteriori richieste da parte di utenti legittimi per vari servizi come http/mail ecc.

Per impedire al sistema di essere attaccato con un SYN Flood, è necessario abilitare i cookie SYN nel  file sysctl.conf  aggiungendo quanto segue:

net.ipv4.tcp_syncookies = 1

Imposta banner di accesso

L’impostazione di un banner non contribuisce a proteggere il sistema.

Tuttavia, i banner possono essere utilizzati per mostrare alcuni messaggi o avvisi quando qualcuno sta stabilendo una connessione SSH al server.

Per abilitare il banner in SSH, prima di tutto dobbiamo creare un  file banner  in  /etc/mybanner.

Questo sarà un nuovo file e riempilo con il messaggio desiderato e salva ed esci dal file.

sudo vi /etc/mybanner

Ora, dobbiamo puntare questo file banner impostando il percorso del file sul file di configurazione SSH. Cerca il patternBanner‘ e decommentalo e imposta il valore sul percorso del file del tuo banner come:

Banner /etc/mybanner

Riavvia il servizio SSH:

sudo service sshd restart

Riavviando il servizio, se ha funzionato, il banner viene visualizzato sopra il messaggio di benvenuto.

Fonte: https://divband.com/2022/11/04/linux-server-hardening/

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.