El comando “HttpAuth” nos permite administrar los usuarios con permiso para acceder a páginas protegidas con el método de autenticación HTTP, además de controlar la activación de esta capa adicional de seguridad en las páginas de acceso a herramientas como phpMyAdmin y wp-admin o wp-login. Basicamente consiste en proteger algunas secciones de tu sitio solicitando un usuario y contraseña para poder acceder a su contenido.
Si quieres conocer un poco más sobre este método de autenticación, te recomiendo leer el artículo de Wikipedia sobre la Autenticación de Acceso Básica.
Sintaxis:
sudo httpauth <opcion>
Opciones:
- -add
- -delete
- -list
- -path
- -whitelist
- -wp-admin
Ejemplos:
# Crear usuario
sudo httpauth -add
# Desactivar WP Auth
sudo httpauth example.com -wp-admin=off
# Proteger una carpeta/archivo
sudo httpauth example.com -path=/folder
Crear un usuario
Para crear un usuario y contraseña para el acceso a las secciones protegidas con Autenticación HTTP usa este comando.
sudo httpauth -add
# Tip - También podemos pasar los datos directamente.
sudo httpauth -add=[user,password]
Puedes crear un usuario con acceso limitado para un dominio o sitio en especifico.
sudo httpauth example.com -add
Una vez que has creado uno o más usuarios para un dominio en especifico, SOLAMENTE estos usuarios tendrán acceso en este dominio, los usuarios con acceso global serán deshabilitados para este sitio.
Eliminar un usuario
Para eliminar un usuario usa el siguiente comando.
sudo httpauth -delete
# Tip - También podemos pasar los datos directamente.
sudo httpauth -delete=user
# Elimianr un usuario de un dominio en especifico.
sudo httpauth example.com -delete
Listas para todo
Despliega una lista de todos usuarios creados con acceso a la Autenticación HTTP.
sudo httpauth -list
Siempre puedes usar la opción -raw
para remover los colores y formato de la lista.
# Remover formato de una lista.
sudo httpauth -list -raw
# Lista de usuario de un dominio en especifico.
sudo httpauth example.com -list
# Lista de las áreas o directorios protegidos de un dominio.
sudo httpauth example.com -list=protected
# Lista de IP's seguras.
sudo httpauth -whitelist -list
Autenticación HTTP en WordPress Login
Por default en la instalación inicial esta capa de seguridad se encuentra activada para el directorio wp-admin
.
El motivo de tener esta doble autenticación para el acceso a las secciones de administración de WordPress, aunque sabemos que la Autenticación HTTP no es el método más confiable de seguridad, pero si uno muy sencillo de implementar y usar por los clientes finales, se debe a la gran cantidad de ataques automatizados que reciben este tipo de páginas.
Si tienes algun sitio WordPress que ya tenga algo de tiempo en linea y revisas tus registros o logs de acceso en el servidor, estoy seguro que encontrarás una considerable cantidad de intentos fallidos por acceder a esta sección. Por tratarse de “bots” automatizados y que rastrean practicamente de manera aleatoria toda la web, al encontrarse con esta capa extra de seguridad pierden el interes y continuan su camino.
Cabe mencionar que este tipo de seguridad no te protegerá de ataques mas sofisticados o de alguien con un interés genuino y con los conocimientos necesarios para realizar este tipo de ataques maliciosos. La seguridad informática es un tema muy serio y si consideras que tu servidor y sitio web almacenan datos o información sensible, lo recomendable es acudir con un experto en seguridad.
En WordPress la REST API, las contraseñas de aplicaciones y XML-RPC, pudieran no funcionar cuando la Autenticación Básico está activada. Pudiera requerir de ajustes adicionales para hacerlo funcionar.
Sabemos que en ocasiones esta capa extra de seguridad puede ser molesta para algunos usuarios, si necesitas activar/desactivar (on/off) la Autenticación HTTP en las páginas de acceso a WordPress en un sitio existente:
sudo httpauth example.com -wp-admin=off
- Puede desactivar esta función desde el Archivo de Configuración de Webinoly.
- También puede agregar sus direcciones a la lista de IP’s seguras para omitir selectivamente la autenticación.
Proteger un directorio o archivo
Puedes proteger con Autenticación HTTP cualquier directorio o archivo.
sudo httpauth example.com -path=/folder
Usa -path=/
para proteger un sitio o dominio completo.
También puedes especificar la opción -exact
para especificar una coincidencia exacta.
¿Qué hace la opción "EXACT"?
Ruta: /news
https://example.com/news (match)
https://example.com/news/local/our-city (match)
Usando la opción "EXACT":
https://example.com/news (match)
https://example.com/news/local/our-city (no-match)
# Para proteger un archivo en específico la opción "exact" es recomendada:
sudo httpauth example.com -path=/folder/file.php -exact
# Soporte para sitios en Subfolder
sudo httpauth example.com -path=/one/folder/ -subfolder=/one
Si se omite el parámetro -subfolder
en una ruta que se encuentra dentro de un subdirectorio configurado como sitio se producirán redirecciones inesperadas, especialmente en sitios PHP y WP.
Para eliminar un directorio o archivo de la lista protegida deberás usar la opción -purge
.
# Remover un directorio
sudo httpauth example.com -path=/folder -purge
# Remover todo
sudo httpauth example.com -path=all -purge
No es necesario especificar el parámetro -exact
cuendo se use -purge
, simplemente se removerán todos los “path” que coincidan.
Lista de IP’s seguras
Para agregar una IP a la lista segura o “whitelist” y de esta manera no se pregunte por tus credenciales cada vez que la Autenticación HTTP sea requerida.
sudo httpauth -whitelist
También puedes pasar la IP directamente de la siguiente manera: sudo httpauth -whitelist=10.126.196.2
Puedes pasar múltiples direcciones usando “coma” como delimitador: sudo httpauth -whitelist=1.1.1.1,2.2.2.2
Si deseas remover una IP de la lista:
sudo httpauth -whitelist -purge
Si tienes alguna sugerencia, idea o comentario, por favor visita y únete a nuestra Comunidad.