Qualche giorno fa mi sono accorto che i soliti bot che girano in rete tentavano in continuazione di accedere al panello di amministrazione di WordPress tentando varie combinazioni di login e password.

Normalmente la scelta di una password complessa e un nome utente diverso da Admin dovrebbe essere una buona soluzione per evitare brutte sorprese.

Nonostante tutto ho deciso di proteggere l’accesso all’admin di WordPress tramite Apache.

Dopo aver girato un po in Rete e aver letto diversi tuorial mi sono reso conto che tramite .htaccess su apache non è possibile proteggere un singolo file, per far ciò occorre modificare i suoi files di configurazione.

Con la modifica di .htaccess si riesce a proteggere senza problema l’accesso una directory ma non ad un singolo file. Nel nostro caso (WordPress) anche se andiamo a proteggere la directory /wp-admin ci accorgiamo subito che veniamo ridirezionati sul vero login che è in realta sul file wp-login.php quindi la protezione tramite htpasswd non funziona.

Per risolvere questo problema basta modificare il file di configurazione di Apache2 (httpd.conf) in questo modo:

 <FilesMatch "wp-login.php">
     AuthName "WordPress Admin"
     AuthType Basic
     AuthUserFile /PERCORSO_ASSOLUTO_AL_FILE/.htpasswd
     require valid-user
  </FilesMatch>

Ovviamente avrete bisogno di un file .htpasswd in cui viene criptata la password di accesso.

Una volta riavviato Apache2 (di solito con il comando /etc/init.d/apache2 restart ) provando ad accedere alla pagina di login vi dovreste trovare davanti alla richiesta di login e password

Non so se esistono altre tecniche per proteggere l’accesso ad un singolo file con Apache2 se conoscete qualche alternativa segnatela pure nei commenti