Punti chiave
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.
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.
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
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:
jHackGuard: Disponibile 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.
A questo punto cliccare sul bottone “Compress File(s)” e il File Manager creerà un archivio di tutti i file e le cartelle selezionate.
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.
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
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”
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.
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.
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.