WordPress® è un ottimo sistema di gestione dei contenuti (CMS), soprattutto se sei nuovo nel blog o nel coding. Tuttavia, a causa dell'elevato numero di installazioni di WordPress, Wordpress è diventato un bersaglio per gli aggressori. La buona notizia è che ci sono molti passaggi che puoi fare per rendere più sicura la tua installazione di WordPress.
Utenti Linux e autorizzazioni
È comune per gli utenti che non conoscono WordPress impostare le loro autorizzazioni completamente aperte (impostare 777 autorizzazioni) quando vedono un Permission Denied
errore da WordPress. Questa configurazione consente a qualsiasi utente (soprattutto il processo del server Web) di modificare i file nell'installazione di WordPress. Per bloccarlo, ti consigliamo di creare un utente per ogni installazione di WordPress come utente FTP (File Transfer Protocol) per il sito. Questo articolo presuppone che tu abbia un unico sito e che il nome di questo server sia wp-user
.
Utilizzare il comando seguente per creare questo utente:
sudo useradd wp-user -d /home/wp-user -m -s /bin/false
Nota :Si consiglia di utilizzare solo l'autenticazione con chiave Secure Shell (SSH). Se prevedi di utilizzare l'autenticazione tramite password per FTP, devi creare una password complessa per l'utente.
Imposta autorizzazioni
Dovresti rendere un utente, diverso dall'utente del sistema del servizio web, il proprietario della radice del documento del tuo sito. Dovresti anche negare le autorizzazioni di scrittura al servizio web. Il servizio Web richiede solo l'autorizzazione di lettura per fornire il contenuto e l'assegnazione di autorizzazioni di scrittura o esecuzione ad esso lascia un vettore di attacco per gli estranei. Tuttavia, poiché WordPress deve essere in grado di caricare file e aggiornare il proprio codice, è necessario piegare leggermente queste regole.
Ad esempio, dovresti impostare la proprietà dell'intera directory come wp-user:www-data
.
Questa impostazione significa che wp-user
ha la proprietà dell'utente e www-data
(l'utente di sistema per il server Web Apache®) ha la proprietà del gruppo. A seconda del tuo sistema operativo, questo utente potrebbe anche essere chiamato httpd
o apache
. Se stai usando nginx®, l'utente è nginx
. Per impostare le autorizzazioni, esegui il comando seguente, sostituendo il valore di esempio /var/www/example.com/
con la radice del documento del tuo sito:
sudo chown -R wp-user:www-data /var/www/example.com/
Utilizza le seguenti autorizzazioni di base per la tua installazione di WordPress:
- 755 (drwxr-xr-x) per le cartelle
- 644 (-rw-r–r–) per i file
Queste autorizzazioni concedono wp-user
la possibilità di modificare qualsiasi cosa e l'accesso in sola lettura al server web.
L'esempio seguente mostra come assegnare queste autorizzazioni:
find /var/www/example.com/ -type d -exec sudo chmod 755 {} \;
find /var/www/example.com/ -type f -exec sudo chmod 644 {} \;
Queste autorizzazioni concedono wp-user
la possibilità di modificare qualsiasi cosa e l'accesso in sola lettura al server web. Sebbene questa sia una pratica comune per i siti statici, ci sono alcuni file a cui WordPress deve essere in grado di accedere ed eseguire per funzionare correttamente. L'elenco seguente mostra le eccezioni e le autorizzazioni che è necessario impostare, assumendo la stessa radice del documento:
find /var/www/example.com/wp-content/uploads -type d -exec sudo chmod 775 {} \;
find /var/www/example.com/wp-content/upgrade -type d -exec sudo chmod 775 {} \;
find /var/www/example.com/wp-content/themes -type d -exec sudo chmod 775 {} \;
find /var/www/example.com/wp-content/plugins -type d -exec sudo chmod 775 {} \;
find /var/www/example.com/wp-content/uploads -type f -exec sudo chmod 664 {} \;
find /var/www/example.com/wp-content/upgrade -type f -exec sudo chmod 664 {} \;
find /var/www/example.com/wp-content/themes -type f -exec sudo chmod 664 {} \;
find /var/www/example.com/wp-content/plugins -type f -exec sudo chmod 664 {} \;
sudo chmod 775 /var/www/example.com/wp-config.php
WordPress utilizza queste directory per gli aggiornamenti di sistema, temi e plugin e per il caricamento di allegati di blog (più comunemente immagini).
Utente amministratore di WordPress
Simile all'utente root di Linux®, l'installazione di WordPress viene fornita con un amministratore utente. Poiché si tratta di un utente amministrativo che esiste in quasi tutte le installazioni di WordPress, gli hacker lo prendono di mira con attacchi di forza bruta. Il modo più semplice per chiudere questo vettore di attacco è rimuovere l'utente amministratore. Ti consigliamo di creare un utente con un nome diverso, assegnare a quell'utente i privilegi di amministratore e quindi eliminare l'utente amministratore.
Aggiornamenti protetti
FTP è intrinsecamente insicuro, soprattutto quando si utilizza l'autenticazione basata su password. È molto più sicuro impostare gli aggiornamenti delle chiavi SSH invece di utilizzare le password. Utilizzare i seguenti passaggi per impostare gli aggiornamenti delle chiavi SSH:
-
Assicurati che i pacchetti necessari siano installati sul tuo sistema. Su Ubuntu® o Debian®, esegui i seguenti comandi:
sudo apt-get update sudo apt-get install php5-dev libssh2-php libssh2-1-dev
-
Configura il tuo accesso SSH, eseguendo i seguenti passaggi come
wp-user
. Perché non hai consentito l'accesso comewp-user
, devi aprire una shell usando il seguente comando sudo:sudo -u wp-user /bin/bash
-
Usa i seguenti comandi per passare a
wp-user
home directory e configurare le chiavi SSH:cd ~ ssh-keygen -t rsa -b 4096 mkdir ~/.ssh; cd ~/.ssh echo 'from="127.0.0.1"' cat ~/.ssh/id_rsa.pub > authorized_keys exit
-
Quindi, assicurati di impostare le autorizzazioni correttamente utilizzando i seguenti comandi:
sudo chmod 700 /home/wp-user/.ssh sudo chmod 040 /home/wp-user/.ssh/* sudo chmod 644 /home/wp-user/.ssh/authorized_keys
-
Aggiungi le seguenti righe al tuo /var/www/example.com/wp-config.php file:
define('FTP_PUBKEY','/home/wp-user/id_rsa.pub'); define('FTP_PRIVKEY','/home/wp-user/id_rsa'); define('FTP_USER','wp-user'); define('FTP_PASS',''); define('FTP_HOST','127.0.0.1:22');
Dovresti essere in grado di aggiornare WordPress, plug-in e temi senza che ti vengano richieste le informazioni di accesso.
Plug-in
Ti consigliamo di utilizzare il minor numero possibile di plug-in per ottenere i risultati desiderati. Tuttavia, ti consigliamo di utilizzare i seguenti plug-in per promuovere la sicurezza:
- WP Security Pro :si tratta di un plug-in all-in-one dotato di funzioni di protezione come protezione dell'accesso, scanner di malware, autenticazione a due fattori e firewall.
- Disabilita XML-RPC :Puoi bloccare XML-RPC usando un .htaccess file. Tuttavia, a meno che tu non abbia un motivo convincente per aver bisogno del controllo remoto dell'installazione di WordPress, è meglio disabilitarlo per prevenire attacchi di pingback.
- Disqus :Poiché il sistema di commenti degli utenti integrato in WordPress è molto incline allo spam, ti consigliamo di disabilitare la registrazione aperta. A tale scopo, vai a Impostazioni> Generali , quindi deselezionando Chiunque può registrarsi . Quindi usa Disqus per moderare i commenti e chiedi agli utenti di autenticarsi sui loro account Facebook® o Google®.