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.
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
0 comentarios