Autenticación en dos pasos. Añadir verificación para la web desde Apache.

Vamos a ver cómo poner en nuestra web una autenticación en dos pasos, o identificación extra, sin necesidad de usar el teléfono para que nos envíen un código adicional a la hora de loguearnos en nuestra web.

Quién más o quién menos, hemos oído o leído algo de la autenticación en dos pasos. Para la web, igual que para el correo, se puede hacer con diferentes herramientas como Google Authenticator  con un plugin para wordpress  o con este otro WP 2 step verification (este último lleva más de dos años sin actualizaciones)

Todos los sistemas de verificación en dos pasos suelen recurrir al teléfono, sin embargo, haciendo uso de un sistema de autenticación para la protección de archivos y directorios en Apache, podemos crear nosotros mismos una doble verificación para nuestra administración web sin tener que dar nuestro número a nadie.

 

Antes de nada, he de agradecer a Miguel Ángel, developer y autor del blog 38 bits, que diera la pauta para este post, poniendo información sobre este sistema en el grupo WordPress_noobs en español.

 

Aquí veremos cómo proteger el wp-login.php usando un archivo de claves cifradas y el .htaccess, pero lo cierto es que no solo se puede proteger esto, se puede hacer con todo el directorio de wp-admin o con todo lo que queráis. Aunque esto parezca complicado, no lo es en absoluto, solo hay que seguir unas sencillas pautas, y para los que usáis CPanel, os añado un vídeo para que podáis ver cómo hacerlo directamente desde al panel de control en vuestro servidor.

 

  • Creamos un archivo para nuestro usuario y contraseña cifrada que será requerido al entrar en la zona de login. Por defecto se usa: .htpasswd, en mi caso como ejemplo: .htseguridad y en el caso del vídeo .wp-admin, pero podéis usar el nombre que vosotros queráis y contra menos pistas deis mejor  😉  Os recomiendo que empecéis el nombre del archivo por .ht*, esta extensión es reconocida por los servidores Apache como un archivo de información sensible y los suele ocultar por defecto.
  • Una vez nombrado nuestro archivo encriptaremos nuestra contraseña, podéis hacerlo en este enlace: HTPASSWD GENERATOR – CREATE HTPASSWD aquí tendréis que poner el usuario en el primer cuadro de texto y la contraseña en el segundo, solo cifra la contraseña, hacemos click en el botón create .htpasswd  y os genera una línea de código similar a esta:
    SeguridadyWeb: $APR1$dHjB0/..$mkTTbqwpK/0h/rz4ZeN8M0 Donde la palabra primera es el usuario, seguida de dos puntos y la clave cifrada.
  • Copiamos la línea y la pegamos en el archivo que hemos creado para las claves y lo alojamos (si no lo hemos hecho ya), en la raíz o en la carpeta que decidamos de nuestro servidor.
  • Ya tenemos topo preparado para indicar desde .htaccess el archivo al que queremos pedir una autenticación adicional
    Abrimos el .htaccess de nuestra web para editarlo. Lo podemos hacer directamente en el servidor o descargándolo con un programa FTP a nuestro ordenador y abriéndolo con el editor de texto o cualquier otro editor que usemos.
  • Colocamos el fragmento de código dentro del archivo, no creo que haya mucho problema por colocarlo en otros sitios, pero yo lo he colocado en la primera linea y casi os recomiendo hacerlo ahí.
 

FilesMatch hace referencia al archivo que se quiere proteger entre comillas.

En AuthUserFile irá la ruta completa donde esté vuestro archivo. OJO! Aseguraos que es la ruta correcta.

 

Por si tenéis alguna duda para saber cuál es la ruta completa, os dejo como crear un archivo .PHP con el que la podéis consultar.

  • Creamos un archivo .php y lo nombramos ruta (por ejemplo)
  • Insertamos este código :
 

Cambiar el nombre del .ht* por el nombre del vuestro, si hacéis la prueba en local, no se os olvide invertir la barra del $dir  “.ht*”

 

  • Una vez subido y colocado todo en vuestro hosting, al intentar acceder a la zona de login, os saldrá un mensaje emergente como este:
    Verificación apache
  • Si no hay autenticación o es errónea, dará un error 401 como este:
    Autentificación requerida

 

Una vez se introduce el usuario y la contraseña de forma correcta, el servidor la recuerda para próximas sesiones.

 

Como implementar autenticación desde el servidor con CPanel.

Esto nos ayuda a evitar ataques de fuerza bruta directamente en el login de nuestra web y aumenta la seguridad da la verificación ya que necesita pasar dos filtros para el acceso a la administración.

 

Como he dicho, esto no es exclusivo para el archivo de loging ni tampoco para WordPress, se puede usar para la seguridad de cualquier archivo e incluso para directorios enteros y de cualquier CMS.
Si lo que se desea es proteger todo un directorio, podemos crear un archivo de contraseñas propio junto con .htaccess también para el directorio, colocarlos los dos dentro de la carpeta que queramos

En este caso el .htaccess será el siguiente código.

Cambiando ruta/complete/del/directorio/.htarchivo por la ruta y el nombre de vuestro archivo con la contraseña.

Si observáis, la diferencia es que no están las etiquetas para indicar el archivo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Uso de cookies

Este sitio web utiliza cookies, tanto propias como de terceros (Google Analytics), para recopilar información estadística sobre su navegación generada a partir de las pautas de esta. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

- SÁQUEME DE AQUÍ - CERRAR