Gestión básica de acceso en Apache (Parte 3: Acceso mediante autenticación resumen)

  Un método de acceso más seguro del servidor de red Apache es el de la autenticación resumen, que se emplea cuando el equipo donde se encuentra el servidor de red se encuentra en un dominio.
  La autenticación resumen ("digest", en inglés) consiste en utilizar la contraseña y otros bits de información para crear un hash que se envía al servidor para identificar. Enviar un valor resumen ("hash", en inglés) evita el principal problema de la autenticación básica, que es enviar los datos sin encriptar.
   En esta entrada del blog se verá cómo configurar el servidor de red Apache para que posea el método de autenticación resumen.

  En primer lugar, se debe comprobar que el módulo de Apache adecuado está habilitado. En este caso, el módulo se llama "auth_digest", que no suele estar habilitado por defecto, por lo que habrá que habilitarlo mediante el comando sudo a2enmod auth_digest.



  Después de esto, se reinicia el servidor de red con cualquiera de los comandos que hay en Ubuntu Server 16.04 LTS (que es el sistema operativo donde se realizarán los ejemplos que ilustren esta explicación), como sudo service apache2 restart.

  Como ejemplo ilustrativo, se supondrá que hay un dominio llamado "gestion" al que pertenecen los usuarios "admin1" y "admin2".
  En primer lugar, hay que crear el archivo de  usuarios y contraseñas en un lugar accesible para Apache, de un modo similar al que se creó cuando se crearon los usuarios del ejemplo de la entrada referente a la autenticación básica (que puede verse en este enlace). Para este tipo de autenticación, el comando de creación de usuario y archivo es htdigest -c /etc/apache2/contr_digest gestion admin1 (con un sudo delante si no se es administrador); nótese que en este comando hay que añadir el nombre del dominio antes que el del usuario.
   A continuación, se creará el segundo usuario, pero, como el archivo que se necesita para almacenar los usuarios y las contraseñas ya está creado, no se empleará el parámetro "-c".

   El paso siguiente consiste en crear un directorio para poner en él una página web, que también se creará. Evidentemente, si todo esto ya existe, no hará falta volverlo a crear, pero sí conocer la ubicación de ambos. Para crear un nuevo directorio se utilizará el comando sudo mkdir (nombre del directorio) (en esta demostración, el directorio se llamará "administradores").
  Luego, evidentemente, se creará la página web que servirá el servidor a los usuarios autorizados. Como con cualquier otro fichero, se empleará un editor (Nano, Gedit, Mousepad, Vim...) para crear el archivo, que debe tener la extensión ".html" (por ser un archivo de página web). El comando a emplear será sudo (nombre del editor) (nombre completo del archivo, es decir, con su extensión). La página se llenará con contenido en lenguaje apropiado para este tipo de archivos (en ejemplo sólo tiene lenguaje de marcas html).
  Se guardan los cambios y se cierra el editor con el archivo recién creado.
 Lo siguiente es editar el archivo "000-default.conf" (o el que se tenga para configurar el servidor), que se encuentra en la ruta "/etc/apache2/sites-available/", lo que se hará, nuevamente, con el editor de texto. En el final del archivo se añade una directiva de sección  "<Directory>" donde se agregarán las directivas de autorización apropiadas de un modo similar al que aparece en la siguiente imagen. Al terminar, se guardan los cambios y se cierra el editor.
  Puede comprobarse que en la directiva "Require" se ha puesto el valor "user admin1". Esto sólo permitirá el acceso al servidor y a la página web que se ha creado al usuario "admin1", pero a nadie más.
  A continuación, se reinicia el servidor Apache para que los cambios hagan efecto.
  El resultado de estas gestiones puede verse en el navegador de red. Se debe escribir en la barra de navegación "http://(dirección IP del servidor)/administradores)" e intentar acceder con el usuario autorizado (por ejemplo), para ver que lo logra.
  También hay que comprobar que otra gente no puede acceder, lo que aquí se probará con el usuario "admin2", por ejemplo. El proceso es el mismo de antes.
  Se pueden añadir más usuarios al valor de la directiva "Require" editando el fichero "000-default.conf" (o el que se tenga para configurar el servidor), y agregándolos en la misma línea con un espacio entre cada uno (por ejemplo "user admin1 admin2"). Además, si se pretende que puedan acceder a un recurso concreto del servidor todos los usuarios autorizados, en el valor de la directiva de autorización "Require" se le pone "valid-user" en lugar de "user (nombre de usuario autorizado)".

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.