Contraseña en Apache para proteger las carpetas

contraseña en apache

En ocasiones querremos proteger con contraseña algunas carpetas o directorios en nuestro servidor web Apache, de accesos no autorizados. Puedes hacerlo fácilmente siguiendo esta guía, o contactar con un servicio informático para que te ayude.

Independientemente de que el código de la propia web tenga sus propios sistemas de autenficación, como sucede en WordPress y en cualquier otro CMS, podemos añadir usuarios desde el propio Apache y proteger con contraseña algunas carpetas estratégicas. ¿Cómo funciona? Fácil, al ingresar al directorio protegido por contraseña nos saldrá un cuadro donde se nos pedirá usuario y contraseña. Le protección de carpetas, además, se puede combinar con Fail2Ban y otros mecanismos de defensa reactivos.

Tenemos que editar el fichero de configuración de apache o del host virtual en concreto, y además crear un fichero con los pares usuario:clave

Creamos el fichero de claves y lo guardamos en un sitio de nuestra elección, con el siguiente comando:

htpasswd -c /etc/apache2/passwd/passwords Leonardo

Nótese que usaremos el parámetro -c para crear un fichero nuevo, pero si el fichero ya existe y solo queremos añadir usuarios, se hará sin -c. Con esto tenemos ya el fichero de claves.

Por otra parte, hay que añadir unas líneas parecidas a éstas en la configuración del host o en un fichero .htaccess, y reiniciar el servicio de Apache:

 <Directory "/var/www/nosolosistemas.com/wordpress/wp-admin">
            AuthType Basic
            AuthName "Restricted Files"
            # (Following line optional)
            AuthBasicProvider file
            AuthUserFile "/etc/apache2/passwd/passwords"
            Require user Leonardo
    </Directory>

Tras esta sencilla intervención hemos conseguido un extra de seguridad que nunca viene mal. En el ejemplo se ve que está puesto para el panel de admin de WordPress. Combinando esto con Fail2Ban se pueden reducir los ataques de fuerza bruta y con ello aligerar un poco el servidor.

Lamentablemente, si utilizas WordPress y alguno de los plugins o el tema usan el fichero admin-ajax.php, esto no terminará de funcionar pues constamente pedirá usuario y contraseña a todos los visitantes. Puedes probarlo y salir de dudas, yo lo tengo funcionando en algunas instalaciones y en otras no.

Puedes hacerlo tú mismo o contactar con nosotros para que te echemos un cable. En NSS conocemos las mejores prácticas para proteger Apache y otros tipos de servicios, por lo que te invitamos a contactarnos si necesitas ayuda con tu proyecto.

[Total:2    Promedio:5/5]