Server Linux

Guida all'Hardening di Ubuntu 24.04 LTS (Noble Numbat) e Sicurezza Joomla

Garantire la sicurezza di un server aziendale richiede un approccio a più livelli. Questa guida illustra le procedure essenziali per rendere sicuro un sistema Ubuntu 24.04 LTS e analizza le misure fondamentali per proteggere le applicazioni web ospitate, con un focus specifico sulla recente e critica vulnerabilità del componente JCE Editor per Joomla.

1. Aggiornamento e Gestione delle Vulnerabilità OS

Il primo pilastro della sicurezza consiste nel mantenere il sistema costantemente aggiornato per mitigare i difetti noti.

Aggiornamento Iniziale

Esegui l'allineamento dei pacchetti ai repository ufficiali:

sudo apt update && sudo apt upgrade -y

Automatizzazione delle Patch di Sicurezza

Per evitare che il server rimanga esposto a vulnerabilità zero-day, installa ed abilita il pacchetto per gli aggiornamenti automatici:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

Verifica che il file /etc/apt/apt.conf.d/50unattended-upgrades includa la dicitura "${distro_id}:${distro_codename}-security" per scaricare tempestivamente le patch critiche.


2. Hardening di OpenSSH con File Drop-in

In Ubuntu 24.04 LTS, la best practice prevede l'abbandono delle modifiche dirette al file /etc/ssh/sshd_config, preferendo l'utilizzo dei file di configurazione modulari (drop-in).

Crea un file dedicato alle tue regole di hardening:

sudo nano /etc/ssh/sshd_config.d/hardening.conf

Incolla le seguenti direttive per disabilitare l'accesso root e l'autenticazione tramite password, forzando l'uso delle sole chiavi SSH:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2

Testa la sintassi prima di riavviare il servizio per evitare il blocco degli accessi:

sudo sshd -t
sudo systemctl restart ssh

3. Configurazione del Firewall (UFW) e Fail2Ban

Un corretto isolamento della rete riduce drasticamente i tentativi di scansione e intrusione.

Definitione delle Regole UFW

Imposta una policy restrittiva che blocchi tutto il traffico in ingresso tranne quello strettamente necessario (SSH, HTTP, HTTPS):

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Protezione Brute-Force con Fail2Ban

Installa Fail2Ban per analizzare i log e bandire automaticamente gli IP che falliscono ripetutamente l'autenticazione:

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

4. Ottimizzazione dei Parametri del Kernel (Sysctl)

Modificare i parametri di rete a livello di kernel protegge il sistema da attacchi di tipo Spoofing, Denial of Service (DoS) e reindirizzamenti maligni.

Crea un file di configurazione personalizzato:

sudo nano /etc/sysctl.d/99-security-hardening.conf

Aggiungi i seguenti controlli per la sicurezza di rete:

# Protezione contro l'IP Spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Disabilita l'accettazione di pacchetti Source Routed
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# Mitigazione degli attacchi SYN Flood
net.ipv4.tcp_syncookies = 1

# Ignora i reindirizzamenti ICMP (evita attacchi MITM)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

Rendi effettive le modifiche senza riavviare:

sudo sysctl --system

5. Sicurezza del CMS: Il Caso Joomla e JCE Editor

L'hardening del sistema operativo è vanificato se le applicazioni web eseguite sul server presentano vulnerabilità critiche. Un esempio lampante è rappresentato dalla recente vulnerabilità di esecuzione remota di codice (RCE) che ha preso di mira il componente JCE Editor (Joomla Content Editor).

La Minaccia: RCE non Autenticata

La falla permette ad attaccanti remoti e non autenticati di sfruttare l'endpoint di importazione dei profili (/index.php?option=com_jce&task=profiles.import) per creare profili abusivi. Tramite questi profili, i malintenzionati possono aggirare i controlli e caricare file PHP malevoli (Webshell), ottenendo l'esecuzione remota di codice (RCE) e il controllo totale del server.

Misure di Mitigazione Obbligatorie:

  • Aggiornamento Immediato: Accedi al pannello amministrativo di Joomla, vai su Sistema → Aggiornamenti Estensioni e aggiorna JCE Editor all'ultima versione di sicurezza rilasciata (versione 2.9.99.5 o superiori).
  • Ispezione dei Profili: Controlla la lista dei profili all'interno del componente JCE per assicurarti che non vi siano voci anomale o create automaticamente.
  • Analisi dei File e Log: Verifica l'assenza di script PHP sospetti all'interno delle cartelle /images/ o /media/ di Joomla ed esamina i log del web server alla ricerca di richieste POST non autorizzate verso la stringa profiles.import.

Hardening del Web Server per mitigare i CMS

Per impedire l'esecuzione di codice anche in caso di caricamento fraudolento di file, disabilita l'esecuzione di script PHP nelle directory destinate ai media. Se usi Apache, aggiungi un file .htaccess nella cartella /images/ contenente:

<FilesMatch "\.php$">
    Require all denied
</FilesMatch>

Conclusioni e Audit Strumentale

Dopo aver completato l'hardening, è fondamentale testare l'efficacia delle misure adottate utilizzando tool di auditing indipendenti come Lynis:

sudo apt install lynis
sudo lynis audit system

Il tool fornirà un punteggio complessivo di hardening ed elencherà ulteriori suggerimenti specifici per blindare l'ambiente di produzione.

Related Articles