Usuarios y Passwords en Apache





Todos nos encontramos mas de una vez en alguna pagina web que requeríamos entrar pero nos pedía un User/Password. Esto es una de las virtudes de apache, sin interoperar con el sistema ya sea windows o Linux/Unix, Apache crea y puede modificar su lista de usuario para una pagina determinada. Para esto es necesario usar el Shell en linux para dar de alta los usuarios y algunas modificaciones en el archivo de configuración httpd.conf.

Usuarios y Passwords en Apache

La primera acción es crear un archivo que contenga una lista de usuarios:contraseñas, luego definir que directorio va a ser protegido y donde deberá buscar el servidor este archivo.

 

Las posibilidades para proteger un directorio con este método son 2:

 

–      Indicar en el archivo de configuración general el directorio donde buscar el archivo de passwords y cual va a ser el área protegida

–      Utilizar un archivo dentro del directorio que queremos proteger con las directivas necesarias

 

Metodo 1

 

Crear el archivo de contraseñas fuera del árbol de documentos de apache para que no pueda ser accedido por los clientes web (Iexplorer, Netscape, Opera, Firefox, etc.)

 

Por ejemplo, creamos el directorio /usr/local/apache/access donde almacenar este archivo…

 

# mkdir /usr/local/apache/access

 

Para crear las contraseñas y los usuarios utilizamos el utilitario de apache llamado htpasswd ubicado en el directorio “bin”.

 

Creamos entonces en este nuevo directorio el archivo “usuarios” con el usuario pablo al que asignamos la contraseña pablo1.

 

         # cd /usr/local/apache/access

            # /usr/local/apache/bin/htpasswd –c usuarios pablo

            # New password: dfghdfgh

               Re-type new password: pablo1

Adding password for user pablo

 

Ya tenemos al nuevo usuario y su contraseña, solo resta incluir en la configuración general este dato y que directorio queremos proteger.

 

Creamos el directorio que queremos proteger…

 

# mkdir /usr/local/apache/htdocs/privado

 

Editamos el archivo de configuración httpd.conf

 

            # vi /usr/local/apache/conf/httpd.conf

 

e incluimos dentro en una directiva <Directory> las líneas necesarias para proteger este directorio y dando permiso de acceso al usuario creado.

 

<Directory /usr/local/apache/htdocs/privado>





AuthType Basic
AuthName “Espacio Privado”
AuthUserFile /usr/local/apache/access/usuarios
Require valid-user

            </Directory>

 

 

Metodo 2

 

En esta opción de configuración, colocamos un archivo en el directorio que queremos proteger, con las líneas necesarias que indiquen donde encontrar el archivo que contiene los usuarios/contraseñas.

 

            # cd /usr/local/apache/htdocs/privado

# vi .htaccess

 

El archivo por defecto que apache contempla para este tipo de configuración se llama .htaccess

 

Dentro de este archivo escribimos…

 

AuthType Basic
AuthName “Espacio Privado”
AuthUserFile /usr/local/apache/access/usuarios
Require valid-user

 

Como vemos, las directivas son las mismas que para la opción anterior, la diferencia es que en este caso están dentro del archivo .htaccess
Este tipo de configuración es mas flexible que el Metodo 1 ya que solamente es necesario incluir esta archivo .htaccess en el directorio que deseamos proteger o quitarlo cuando ya no queramos utilizarlo, no siendo necesario modificar el archivo de configuración general (httpd.conf) y reiniciar el apache para que tome los cambios realizados.

 

Es necesaria alguna configuración adicional, este archivo .htaccess es accesible, por estar en el espacio de documentos (htdocs) escribiendo la dirección en un navegador, por ejemplo… si alguien escribe la dirección:

http://<dominio>/.htaccess

 

el contenido del archivo .htaccess será mostrado en el navegador. Podemos impedir esto, configurando en el archivo general (httpd.conf) lo siguiente…

 

<Files ~ “^\.ht”>

    Order allow,deny

    Deny from all

</Files>

 

Con esta opción denegamos la posibilidad de desplegar todos los archivos cuyo nombre comience con .ht (^\.ht) Otra cosa que debemos configurar en el archivo general es que apache le otorgue privilegios al archivo .htaccess para realizar las tareas de protección. Esto se realiza, indicando en el archivo general…

 

AllowOverride All

 

de esta forma apache reconocerá todos las directivas indicadas en el archivo .htaccess

 

Descripción de las opciones de configuración

 

AuthName

Es la descripción que nos desplegara cuando nos pregunte el cuadro de dialogo el usuario y el password. Siempre tenemos que tener en cuenta esta directiva, debido a que nos describirá por ejemplo a donde estamos intentando entrar.

 

AuthType

Tipo de validación. En el caso de “basic” utiliza la validación básica de apache donde la contraseña es enviada, entre el cliente y el server, sin encriptar. Otra opción mas segura es “digest” aun en fase experimental.

 

AuthUserFile

Nos permite especificar que archivo es el que contiene los usuarios y claves para entrar al sitio, en nuestro caso el archivo “usuarios”

 

Require valid-user

Setea los requerimientos de la entrada al sitio. Todo usuario que este en el archivo .htpasswd  podrá ingresar al sitio, siempre y cuando valide su contraseña





Dejar un comentario

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