Proteggi il Tuo Sistema: Guida Completa all'Hardening di Linux
Il termine “hardening” si riferisce al processo di miglioramento della sicurezza di un sistema riducendo le sue vulnerabilità e rafforzandone le difese contro gli attacchi diminuendo anche la disponibilità di superficie per un attacco. Hardening di Linux significa configurare il sistema operativo in modo che sia il più sicuro possibile contro le minacce interne ed esterne. Questo articolo esplorerà diverse tecniche e best practice per l’hardening di un sistema Linux.
Introduzione
In un articolo precedente, ho condiviso alcuni consigli su come migliorare la sicurezza del proprio sistema Linux. In questo nuovo articolo, esploreremo ulteriori suggerimenti da integrare a quelli già discussi, per rendere il vostro sistema ancora più robusto e sicuro.
Policy di Password
Impostare politiche di password forti è essenziale. Utilizzare pam_pwquality
per forzare l’uso di password complesse.
1
sudo nano /etc/security/pwquality.conf
Impostare parametri come:
1
2
3
minlen = 12
dcredit = -1
ucredit = -1
Disabilitare i Servizi Inutilizzati
Ogni servizio in esecuzione su un sistema Linux rappresenta una potenziale vulnerabilità. Identificare e disabilitare i servizi non necessari.
1
2
3
4
sudo systemctl list-units --type=service --state=running
# Disabilitare un servizio
sudo systemctl disable nome_servizio
sudo systemctl stop nome_servizio
Permessi e Proprietà dei File
Assicurarsi che i file di sistema critici abbiano i permessi corretti (prenderemo per l’esempio il path che gestisce le configurazioni per il secure shell).
1
2
sudo chmod 600 /etc/ssh/sshd_config
sudo chown root:root /etc/ssh/sshd_config
Montaggio Sicuro delle Partizioni
Montare le partizioni con opzioni che aumentano la sicurezza, come noexec
, nosuid
, e nodev
.
1
2
3
sudo nano /etc/fstab
# Esempio di configurazione sicura:
tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
Monitoraggio e Logging
Configurazione di Syslog
Assicurarsi che il sistema di logging sia configurato correttamente per monitorare attività sospette.
1
2
3
4
sudo nano /etc/rsyslog.conf
# Abilitare log di auth, kernel, ecc.
auth,authpriv.* /var/log/auth.log
kern.* /var/log/kern.log
Strumenti di Monitoraggio
Lynis
Lynis è uno strumento di auditing di sicurezza che analizza il sistema per identificare potenziali vulnerabilità e suggerire miglioramenti. Alcuni amministratori di sistema creano immagini “golden” da sistemi che hanno superato una “pulizia” con Lynis per poter distribuire un’immagine pulita. Naturalmente, dovrebbe essere eseguito regolarmente e con periodicità per mantenere questo stato.
Un job pianificato con cron è una buona soluzione per creare report regolari anche.
1
2
sudo apt install lynis
sudo lynis audit system
per cercare e correre ai ripari delle possibili vulnerabilità del vostro sistema verificare i suggerimenti indicati dallo scan nel file lynis.log
1
sudo grep Suggestion /var/log/lynis.log
RKHunter
(Rootkit Hunter) è uno strumento per rilevare rootkit, backdoor e exploit locali.
1
2
sudo apt install rkhunter
sudo rkhunter --check
AIDE
(Advanced Intrusion Detection Environment) è uno strumento per monitorare l’integrità dei file. Consente di rilevare modifiche non autorizzate ai file di sistema.
1
2
3
4
5
6
sudo apt install aide
sudo aideinit
# Copiare il file di database iniziale
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# Eseguire una verifica di integrità
sudo aide --check
ricordatevi che ad ogni nuova operazione/aggiornamento da parte vostra dovrà essere aggiornato anche il db aide con il seguente comando:
1
sudo aide --update
Protezione dalle Scansioni delle Porte con Portsentry
Le scansioni delle porte portscans
sono un metodo comune utilizzato dagli attaccanti per individuare le porte aperte e i servizi in esecuzione su un sistema. Proteggere il sistema dalle portscans è un aspetto cruciale dell’hardening di Linux. Portsentry è uno strumento efficace per rilevare e bloccare le scansioni delle porte in tempo reale.
Installazione e Configurazione di Portsentry
Portsentry può essere utilizzato per monitorare e bloccare gli IP che effettuano scansioni delle porte della vostra server linux.
1
sudo apt install portsentry
Modifica il file di configurazione di Portsentry per configurare il monitoraggio delle porte e l’azione da intraprendere in caso di rilevamento di una scansione.
1
sudo nano /etc/portsentry/portsentry.conf
Porte a rischio (modifica le porte in base alle tue esigenze):
1
2
3
# Ports to monitor for suspicious activity
TCP_PORTS="1,11,15,23,79,80,110,113,119,135,139,143,256,512,513,514,1080,1524,2000,6667,12345,12346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320"
UDP_PORTS="1,7,9,69,161,162,512,513,514,2000,31337,32770,32771,32772,32773,32774,40421,49724,54320"
Un’azione da prendere in considerazione potrebbe essere il blocco dell’IP rilevato; di default, il valore qui riportato è 1 (che significa bloccare), mentre 0 indica l’opposto.
1
2
BLOCK_UDP="1"
BLOCK_TCP="1"
1
2
sudo systemctl start portsentry
sudo systemctl enable portsentry
Puoi testare esegui una scansione delle porte dal tuo stesso sistema o da un altro dispositivo nella rete. Usa nmap
per effettuare una scansione:
1
nmap -sS -p 1-1024 localhost <---- ip o host
Portsentry dovrebbe rilevare la scansione e bloccare l’IP di origine, aggiornando i file di configurazione del firewall per impedire ulteriori tentativi di connessione.
L’hardening di un sistema Linux è un processo continuo che richiede attenzione costante e aggiornamenti regolari. Seguendo le pratiche descritte in questo articolo, inclusi l’utilizzo di strumenti come Lynis, RKHunter e AIDE, è possibile ridurre significativamente le vulnerabilità e proteggere il sistema da molteplici minacce. Mantenere un sistema sicuro richiede una combinazione di configurazioni corrette, aggiornamenti regolari, e un monitoraggio attivo.