Autenticación HTTP

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
# 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

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.