Fortificare la Tua Fortezza Linux: Sicurezza Essenziale per Server Debian e Ubuntu

April 25, 2024 | By Pietro Dubsky

Debian e Ubuntu sono due delle distribuzioni Linux più popolari per server, apprezzate per la loro stabilità, gli ampi repository di pacchetti e il forte supporto della comunità. Tuttavia, un'installazione predefinita, sebbene funzionale, spesso non è sufficientemente "irrobustita" (hardened) contro la miriade di minacce presenti su Internet. Mettere in sicurezza il tuo server Linux è un processo critico e continuo. Questa guida tratterà i passaggi essenziali per fortificare il tuo server Debian o Ubuntu.

Perché l'Hardening del Server è Cruciale

I server, specialmente quelli esposti a Internet, sono bersagli costanti per attacchi automatizzati, hacker alla ricerca di vulnerabilità e botnet. Un server compromesso può portare a:

  • Violazioni dei dati e furto di informazioni sensibili.
  • Interruzione del servizio e tempi di inattività.
  • Utilizzo del tuo server per attività dannose (ad es. invio di spam, hosting di siti di phishing, partecipazione ad attacchi DDoS).
  • Danno reputazionale.
  • Perdite finanziarie.

L'hardening del server comporta la configurazione del sistema per ridurre la sua superficie di attacco e migliorare la sua postura di sicurezza generale.

Configurazione Iniziale del Server e Account Utente

1. Crea un Utente non-Root con Privilegi Sudo

Accedere e operare direttamente come utente root è rischioso. Un singolo errore può avere conseguenze catastrofiche. Azione: Immediatamente dopo la configurazione iniziale del server, crea un nuovo account utente e concedigli i privilegi sudo.

# Come root
adduser nuovoutente
usermod -aG sudo nuovoutente
# Quindi, disconnettiti come root e accedi di nuovo come nuovoutente
Usa sempre questo utente per l'amministrazione quotidiana, anteponendo sudo ai comandi quando sono necessari i privilegi amministrativi.

2. Disabilita l'Accesso Root tramite SSH

Una volta che il tuo utente sudo è configurato e testato, disabilita l'accesso root diretto tramite SSH per ridurre il rischio di attacchi di forza bruta mirati all'account root. Azione: Modifica il file di configurazione SSH (sudo nano /etc/ssh/sshd_config) e imposta:

PermitRootLogin no
Quindi riavvia il servizio SSH: sudo systemctl restart ssh o sudo systemctl restart sshd.

3. Usa Password Robuste (e Considera le Chiavi SSH)

Assicurati che tutti gli account utente, specialmente il tuo utente sudo, abbiano password molto robuste e uniche. Azione: Usa un gestore di password per generarle. Meglio ancora, imposta l'autenticazione basata su chiavi SSH, che è significativamente più sicura dell'autenticazione tramite password, e quindi disabilita completamente l'autenticazione tramite password per SSH (vedi sezione successiva).

Protezione dell'Accesso SSH

SSH (Secure Shell) è il modo principale per accedere e gestire da remoto i server Linux. Proteggerlo è fondamentale.

1. Usa l'Autenticazione Basata su Chiavi SSH

Le chiavi SSH consistono in una chiave pubblica (posizionata sul server) e una chiave privata (conservata in modo sicuro sulla tua macchina client). Puoi accedere solo se possiedi la chiave privata. Azione: Genera una coppia di chiavi SSH sulla tua macchina locale (ssh-keygen) e copia la chiave pubblica nel file ~/.ssh/authorized_keys del tuo utente sudo sul server. Testala, quindi considera di disabilitare l'autenticazione tramite password.

2. Disabilita l'Autenticazione tramite Password per SSH (Dopo Aver Configurato le Chiavi)

Questo previene attacchi di forza bruta contro le password SSH. Azione: In /etc/ssh/sshd_config, imposta:

PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Riavvia il servizio SSH.

3. Cambia la Porta SSH Predefinita (Sicurezza tramite Oscurità - Opzionale)

I bot automatizzati spesso scansionano SSH sulla porta predefinita 22. Cambiarla può ridurre il numero di tentativi di accesso automatizzati. Azione: In /etc/ssh/sshd_config, cambia Port 22 con una porta non standard (ad es. Port 2222). Ricorda di consentire la nuova porta nel tuo firewall prima di riavviare SSH. Nota: Questa è una misura di sicurezza minore e non dovrebbe essere considerata la tua difesa principale.

4. Implementa Fail2Ban

Fail2Ban è un framework software di prevenzione delle intrusioni che monitora i file di log (ad es. per SSH, Apache) e banna gli indirizzi IP che mostrano segni dannosi, come troppi tentativi di password falliti. Azione: Installa e configura Fail2Ban:

sudo apt update
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local # Configura le impostazioni, specialmente per SSH
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Configurazione del Firewall

Un firewall controlla il traffico di rete in entrata e in uscita in base a regole di sicurezza predefinite.

1. Usa UFW (Uncomplicated Firewall) o nftables

Debian e Ubuntu spesso includono UFW, un frontend user-friendly per la gestione delle regole del firewall (che utilizza nftables o iptables sottostanti). Azione:

  • Installa UFW se non presente: sudo apt install ufw
  • Imposta le policy predefinite: sudo ufw default deny incoming e sudo ufw default allow outgoing.
  • Consenti i servizi necessari (ad es. SSH sulla tua porta personalizzata, HTTP, HTTPS):
    sudo ufw allow 2222/tcp  # O la tua porta SSH personalizzata
    sudo ufw allow http
    sudo ufw allow https
  • Abilita UFW: sudo ufw enable
  • Controlla lo stato: sudo ufw status verbose

Aggiornamenti di Sistema e Gestione delle Patch

Mantenere aggiornato il tuo sistema e i pacchetti installati è uno dei modi più efficaci per proteggersi da vulnerabilità note. Azione:

  • Aggiorna regolarmente il tuo sistema:
    sudo apt update
    sudo apt upgrade
    sudo apt full-upgrade # Occasionalmente, per aggiornamenti del kernel ecc.
    sudo apt autoremove   # Rimuovi i pacchetti non utilizzati
  • Considera di abilitare unattended-upgrades per l'installazione automatica degli aggiornamenti di sicurezza: sudo apt install unattended-upgrades e configuralo (sudo dpkg-reconfigure --priority=low unattended-upgrades).

Minimizza il Software Installato (Riduci la Superficie d'Attacco)

Ogni software installato sul tuo server aumenta potenzialmente la sua superficie d'attacco. Azione: Disinstalla qualsiasi pacchetto e servizio non necessario. Se non lo usi, rimuovilo.

sudo apt list --installed # Per vedere cosa è installato
sudo apt remove nome_pacchetto
sudo apt purge nome_pacchetto # Per rimuovere anche i file di configurazione

Logging e Monitoraggio

I log di sistema sono cruciali per rilevare attività sospette, risolvere problemi e per l'analisi forense dopo un incidente. Azione:

  • Familiarizza con le posizioni comuni dei file di log (ad es. /var/log/auth.log per l'autenticazione, /var/log/syslog per i messaggi di sistema generali).
  • Assicurati che servizi come rsyslog siano in esecuzione.
  • Considera il logging centralizzato se gestisci più server.
  • Installa strumenti come logwatch per ottenere riepiloghi giornalieri dell'attività dei log.

Sistemi di Rilevamento delle Intrusioni (IDS)

Un IDS può monitorare le attività di rete o di sistema per attività dannose o violazioni delle policy e segnalarle. Azione: Considera IDS basati su host (HIDS) come:

  • Tripwire (AIDE è un'alternativa gratuita): Monitora l'integrità del filesystem per modifiche non autorizzate.
  • OSSEC o Wazuh: Soluzioni HIDS più complete che offrono analisi dei log, controllo dell'integrità, rilevamento di rootkit e avvisi in tempo reale.

Audit di Sicurezza Regolari

Rivedi periodicamente la configurazione di sicurezza e i log del tuo server. Azione:

  • Esegui strumenti come lynis (sudo apt install lynis quindi sudo lynis audit system) per eseguire un audit di sicurezza e ottenere suggerimenti per l'hardening.
  • Controlla le porte in ascolto: sudo ss -tulnp o sudo netstat -tulnp.
  • Rivedi gli account utente e i privilegi sudo.

Sicurezza Fisica (Se Applicabile)

Se gestisci server fisici, assicurati che si trovino in un luogo sicuro con accesso limitato.

Conclusione

Mettere in sicurezza un server Debian o Ubuntu è un impegno continuo, non un compito una tantum. Il panorama delle minacce è in continua evoluzione, quindi vigilanza costante, aggiornamenti regolari e revisioni periodiche della sicurezza sono essenziali. Implementando questi passaggi fondamentali di hardening, puoi migliorare significativamente la postura di sicurezza dei tuoi server Linux e proteggerli da una vasta gamma di attacchi comuni. Ricorda di adattare queste raccomandazioni al ruolo specifico del tuo server e ai tuoi requisiti di sicurezza.

« Back to Blog