Proteger el archivo wp-login.Php con contraseña en apache

La siguiente configuración hay que añadirla al archivo principal de configuración de Apache o al del virtual host:

<Directory "/ruta/a/raiz/de/wordpress"> 
<Files "wp-login.php"> 
AuthType Basic 
AuthName "Acceso restringido" 
AuthUserFile /ruta/a/htpasswd/configfile 
Require user username 
</Files>
</Directory>

Previamente hay que generar la contraseña para el username, como se explica en este otro tutorial de voragine.net.

Seguridad adicional protegiendo el directorio wp-admin

Para una mayor seguridad hay que proteger además todo el directorio wp-admin y crear una excepción para el archivo admin-ajax.php.

<Directory "/ruta/a/raiz/de/wordpress/wp-admin"> 
AuthType Basic 
AuthName "Acceso restringido" 
AuthUserFile /ruta/a/htpasswd/configfile 
Require user username  
<Files "admin-ajax.php"> 
Order allow,deny 
Allow from all Satisfy any 
</Files>
</Directory>

Tras las modificacions queda reiniciar Apache:

service apache2 restart