Guida alla sicurezza di Joomla. Come rendere sicuro il sito

Come ogni altra applicazione open source, anche Joomla è soggetto a continui attacchi per questo è importante prestare molto attenzione al versante della sicurezza. In questa guida alla sicurezza di Joomla sono forniti degli utili suggerimenti per proteggere adeguatamente un sito in Joomla così da minimizzare le possibilità o le conseguenze di un attacco hacker.

Guida alla sicurezza di Joomla: aggiornare Joomla e le sue estensioni

Probabilmente uno dei punti più importanti per mettere in sicurezza un sito Joomla è quello di aggiornarlo costantemente.

Per tutte le versioni di questo CMS, infatti, sono disponibili una serie di “correzioni” apportate per risolvere problemi di sicurezza.

Se aggiornare regolarmente Joomla è importante per la sicurezza del sito, altrettanto lo è aggiornare tutte le sue estensioni.

Vi sono, infatti, molte più tipologie di attacco che sfruttano le falle di sicurezza delle estensioni rispetto a quelli che si concentrano, invece, sui core file di Joomla 3.

Nella maggior parte dei casi aggiornare i moduli e i plugin è molto semplice e basta procedere nel seguente modo:

  • Accedere alla pagina di amministrazione di Joomla e andare su Extensions>Extension Manager
  • Cliccare la voce “Update” posta nella colonna di sinistra

A questo punto Joomla restituisce un elenco di tutte le estensioni per le quali sono disponibili degli aggiornamenti. Per procedere all’aggiornamento, basta mettere una spunta accanto al plugin che si desidera aggiornare e poi cliccare la voce “Update” posta in alto a sinistra della pagina.

Il secondo passo della guida alla sicurezza di Joomla è utilizzare nome utente e password forti

Il secondo suggerimento di questa guida alla sicurezza di Joomla è certamente quello di usare dei dati di accesso forti e difficili da decifrare.

Come prima cosa, quindi, evitare di utilizzare il nome utente di default, “admin” o “administrator”, in quanto si tratta di login di accesso comuni che saranno certamente impiegati da un hacker per cercare di entrare nel sito.

guida-alla-sicurezza-di-joomla-protezione-dati-accesso
Il primo suggerimento di questa guida alla sicurezza di Joomla è quello di utilizzare un nome utente e una password forti così da proteggere i propri dati di accesso

Altrettanto fondamentale è poi avere una password forte per il sito.

Molti malintenzionati, infatti, tenteranno di sferrare attacchi brute-force al sito al fine di rubare le chiavi di accesso, utilizzando una lista di password generalmente impiegate dagli utenti sino a trovare la giusta combinazione.

Per proteggere i propri dati di accesso e renderli quanto più impenetrabili possibile, è bene seguire queste indicazioni:

  • Non utilizzare per le password parole comuni come “amore”, “pass”, “admin”, “admin123” etc.
  • Evitare di usare nelle password informazioni personali come il proprio nome o quello della propria famiglia
  • Non utilizzare i generatori di password, in quanto questi impiegano una serie di algoritmi per creare le password, algoritmi che potrebbero essere compromessi dagli hacker
  • Utilizzare nelle password i caratteri speciali (come *!@#$), i numeri e le maiuscole

Altro step della guida alla sicurezza di Joomla è utilizzare le corrette autorizzazioni per file e cartelle

Un’altro punto importante per mettere in sicurezza un sito in Joomla 3 è quello di impostare le giuste autorizzazioni per i file e le cartelle di Joomla.

guida-alla-sicurezza-di-joomla-impostazione-permessi
Un altro step di questa guida alla sicurezza di Joomla è quello di impostare i corretti permessi per quanto concerne l’accesso alle cartelle e ai file del sito

Si raccomanda, quindi, di seguire i seguenti suggerimenti:

  • Impostare le autorizzazioni per le cartelle di Joomla a 755
  • Impostare le autorizzazioni per i file di Joomla a 644
  • Impostare le autorizzazioni per il file configuration.php a 444
  • Non utilizzare mai le autorizzazioni 777 (full access)

Vediamo ora come modificare i permessi di file e cartelle.

Tutti i file UNIX (inclusi LINUX e le altre varianti di UNIX) hanno dei permessi. In questo modo il sistema operativo sa come gestire le richieste di accesso ai file.

Ci sono tre tipi di accesso:

  • Read: Indicati con R, i file con accesso “Read” possono essere visualizzati dall’utente
  • Write: Indicati con W, i file con accesso “Write” possono essere modificati dall’utente
  • Execute: Indicati con X, i file con accesso “Execute” possono essere eseguiti come programmi dall’utente

Le tipologie di accesso sono impostate per tre gruppi di utenti:

  • User: Il proprietario dei file
  • Group: Altri tipi di file che si trovano nella stessa cartella o gruppo
  • World: Tutto il resto

Il web server ha necessità di leggere le pagine web al fine di visualizzarle nel browser.

I seguenti permessi devono essere impostati così da consentire al sito di funzionare correttamente.

  • Tutti i file HTML e le immagini devono essere leggibili da altri utenti. Il valore per questo è 644 (leggibili da User, Group e World e scrivibili da User). Tale valore è impostato automaticamente quando si carica un file
  • Tutte le cartelle devono essere eseguibili da altri utenti. Il valore per questo è 755 (leggibili da User, Group e World, eseguibili da User e World). Questo valore è impostato automaticamente quando si ora una nuova cartella
  • Tutti i file CGI (tutti i file nella cartella cgi-bin) devono essere eseguibili da altri utenti. Il valore per questo è 755 (leggibili da User, Group e World, scrivibili da User, eseguibili da User, Group e World). Tale valore non è impostato automaticamente quando si carica un file; è quindi necessario cambiare manualmente i permessi dei file

Vediamo come fare:

  • Step 1: Aprire File Manager e navigare tra i file e le cartelle che si desidera modificare
  • Step 2: Cliccare sul nome del file o della cartella
  • Step 3: Cliccare sul link “Change Permissions” nel menù in alto della pagina File Manager
  • Step 4: Cliccare sulle caselle di controllo richieste per creare i giusti permessi. I numeri di autorizzazione sotto le caselle di controllo saranno aggiornati automaticamente
  • Step 5: Cliccare la voce “Change Permissions” quando si è pronti. Il nuovo livello di autorizzazione viene salvato e il display update aggiornato per mostrare i file modificati
guida-alla-sicurezza-joomla-impostrare-permessi-file
Modificare e impostare in maniera corretta i permessi per file e cartelle è un passaggio fondamentale di questa guida alla sicurezza di Joomla

 

Utilizzare Joomla Security Extension, altro punto importante di una guida alla sicurezza di Joomla

Utilizzare delle estensioni di sicurezza è un altro semplice modo per aumentare la sicurezza di un sito Joomla.

Di seguito è possibile trovare un elenco delle più popolari estensioni di sicurezza per Joomla:

jHackGuardDisponibile gratuitamente, jHackGuard è un plugin di sicurezza per Joomla che filtra i dati in ingresso degli utenti e implementa ulteriori impostazioni di sicurezza PHP. Allo stesso tempo questo plugin è disattivato per gli amministratori autenticati così che i suoi filtri non vadano a interferire con le quotidiane attività amministrative. Questa estensione di sicurezza è pre-configurata con un set di regole indicate per la maggior parte dei siti Joomla. Tuttavia se si desidera apportare delle modifiche è possibile farlo tramite l’area amministrazione di Joomla. jHackGuard ha anche un proprio registro ed è possibile eseguire il debug di qualunque comportamento imprevisto

Akeeba Admin Tools consente di eseguire attività di manutenzione e allo stesso tempo protegge da attacchi hacker e contribuisce a ottimizzare il sito. Grazie a questo plugin è possibile ottimizzare le tabelle del database, pulire le directory temporanee ed eseguire ogni attività di manutenzione ordinaria. Il Web Application Firewall protegge il sito dalla maggior parte degli attacchi, il PHP File Change Scanner monitora i cambiamenti dei file PHP del sito, mentre con .htaccess Maker è possibile creare un sofisticato .htaccess senza bisogno di essere degli esperti. Akeeba Admin Tools avvisa tramite email quando sono disponibili degli aggiornamenti mentre grazie alla funzione URL Redirect è possibile re-indirizzare facilmente le URL

jomDefender è un plugin di sicurezza per difendere un sito Joomla dagli attacchi hacker. Questo plugin, infatti, nasconde e protegge le applicazioni Joomla al fine di salvaguardare il sito da attacchi random. jomDefender permette inoltre di salvaguardare il sito grazie a una serie di funzioni aggiuntive come quella che protegge la pagina di login con un’ulteriore schermata di accesso o quella che banna o blocca gli IP da front end e backend. Tra le altre funzioni di sicurezza di jomDefender vanno ricordate il controllo di integrità dei file, la prevenzione di login/logout CSRF, la rimozione di generato tag, dello spazio bianco HTML e dell’intestazione Joomla!PHP

jSecure è un plugin di sicurezza per Joomla che salvaguarda il sito da tentativi di accesso indesiderati, proteggendo la pagina di login. Le funzioni offerte dal plugin sono numerose e comprendono; l’installazione di Secure Google reCAPTACHA così da aggiungere un ulteriore livello di protezione per la pagine di login, l’installazione di Secure Image Authentication per la protezione delle immagini, la funzione Spam IP Protection che  individua e blocca gli IP spam, la funzione Country Block che consente di impostare dei blocchi per determinati paesi, la funzione Email Scan che permette all’amministratore di creare una blacklist di email spam o, ancora, Auto Ban IP Address che consente di bloccare uno specifico IP

Guida alla sicurezza di Joomla: effettuare backup frequenti

Una guida alla sicurezza di Joomla, non può mancare di un consiglio sulla conservazione dei dati. E’ indispensabile effettuare frequentemente un backup del proprio sito Joomla, così da avere sempre una copia dei file del sito e del database da utilizzare in caso di necessità.

Vediamo, quindi, come eseguire un backup manuale di Joomla.

Per creare un backup manuale di Joomla è necessario archiviare le due parti del software, tutti i file di Joomla e il database.

I file e la cartella di Joomla possono essere trasferiti via FTP a un hard drive locale. Tuttavia Joomla conta oltre 3000 core file il che significa che il trasferimento via FTP potrebbe richiedere un pò di tempo.

Un modo più efficace per trasferire i file Joomla è comprimerli in un file ZIP utilizzando il tool File Manager nel cPanel.

Per farlo è necessario andare nella cartella principale di Joomla, selezionare i file e cliccare la voce “Compress” nella parte superiore della pagina.

guida-alla-sicurezza-di-joomla-eseguire-backup-file
Altro passo di questa guida alla sicurezza di Joomla è fare un backup dei file del sito, utilizzando il tool File Manager in cPanel

A questo punto cliccare sul bottone “Compress File(s)” e il File Manager creerà un archivio di tutti i file e le cartelle selezionate.

guida-alla-sicurezza-di-joomla-creare-backup-file
Come illustrato in questa guida alla sicurezza di Joomla creare un backup per i file e le cartelle del sito con File Manager è semplice e veloce

Una volta creato l’archivio dei file è possibile scaricarlo via FTP client o navigarlo usando un normale browser per scaricarlo sul disco rigido.

Per il backup del database di Joomla vi sono due strade.

La prima è via SSH, mentre la seconda opzione è utilizzare phpMyAdmin in cPanel.

Per entrambe le modalità è necessario conoscere il nome del database MySQL di Joomla, l’username e la password. Per avere queste informazioni, aprire il file configuration.php nella root directory di Joomla e cercare le seguenti stringhe che contengono le credenziali del database:

public $user = ‘user_joomlat‘;

public $password = ‘password‘;

public $db = ‘user_joomlatut‘;

Ottenute queste informazioni è possibile procedere al backup del database.

Per creare un backup del database di Joomla via SSH è innanzitutto necessario accedere al proprio account. Fatto questo, navigare tra le cartelle del sito utilizzando il comando mysqldump e le informazioni ottenute dal file configuration.php per creare un backup del database:

mysqldump -uuser_joomlat -ppassword user_joomlatut > db-backup.sql

Infine navigare con il proprio browser yourjoomlasite.com/db-backup.sql e scaricare il backup del database localmente.

Per effettuare il backup del database di Joomla con phpMyAdmin è necessario collegarsi a cPanel e aprire phpMyAdmin tool che è posto nella sezione Databases.

guida-alla-sicurezza-di-joomla-backup-database
In questa guida alla sicurezza di Joomla sono illustrate due modalità per effettuare il backup del database: via SSH e con php My Admin

A questo punto è necessario selezionare il database del quale si vuole eseguire il backup. Tutti i database sono elencati nella parte sinistra del menu di phpMyAdmin; è necessario conoscere il nome del database attuale prendendolo dal file configuration.php

guida-alla-sicurezza-di-joomla-fare-backup-database
Guida alla sicurezza di Joomla: come effettuare il backup del database con phpMyAdmin

Selezionare il database di Joomla e cliccare il bottone “Export” posto nella parte superiore del menu di phpMyAdmin

Lasciare le impostazioni di default e premere il bottone “Go”

guida-alla-sicurezza-di-joomla-salvare-backup-database
Come visto in questa guida alla sicurezza di Joomla effettuare e salvare localmente un backup del database del sito è molto semplice

A questo punto phpMyAdmin genererà un backup del database di Joomla che può essere scaricato e conservato localmente sul pc.

Proteggere la pagina di amministrazione, altro punto importante di una guida alla sicurezza di Joomla

Un altro accorgimento molto importante per migliorare notevolmente la sicurezza di un sito Joomla è limitare l’accesso all’admin area.

Come prima cosa è consigliato proteggere la cartella administrator con una password.

Per farlo selezionare Password Protect Directories nella pagina principale di cPanel. Apparirà una lista di directory.

guida-alla-sicurezza-di-joomla-proteggere-administrator-area
Una guida alla sicurezza di Joomla davvero efficace non può prescindere da una adeguata protezione della pagina di amministrazione

Selezionare la directory per la quale si desidera limitare l’accesso. In una nuova pagina creare un username e una password per l’utente. Selezionare un nome che apparirà nella pagina di login e cliccare sul bottone “Save” per attivare la protezione.

Da notare che è necessario creare una directory prima di abilitare la password di protezione. E’ consigliato utilizzare una sola directory per la funzione di protezione con la password e di aggiungere questo livello di protezione com password anche al webroot.

Una volta protetta la cartella administrator sarà necessario inserire una password ulteriore per visualizzare il form di login.

guida-alla-sicurezza-di-joomla-protezione-area-amministrazione
L’ultimo passo di questa guida alla sicurezza di Joomla è quello di proteggere la propria administrator area impostando una ulteriore password di sicurezza e restringendo l’accesso solo al proprio IP

Fatto questo si può restringere l’accesso alla directory administrator soltanto al proprio indirizzo IP.

Se non vi è un file nominato “.htaccess” nella directory administrator, si deve procedere a crearne uno e a caricarlo via FTP oppure si può inserire inserire la seguente stringa di codice alla fine del file .htaccess:

Deny from ALL

Allow from x.x.x.x

Si noti che bisogna sostituire x.x.x.x con il proprio indirizzo IP pubblico. Per trovare il il proprio indirizzo IP è possibile utilizzare What Is My IP.

Per aggiungere più IP si deve replicare il comando “Allow from x.x.x.x” e cambiare l’indirizzo IP.

Nota: Se il proprio internet service provider fornisce un indirizzo IP dinamico, la restrizione per IP appena illustrata può non essere adatta in quanto è poi necessario editare il file .htaccess ogni volta che si cambia indirizzo IP.