Restrigiendo Acceso con .htaccess

Configuración necesaria para restringir el acceso a directorios utilizando las directivas de Apache y el fichero .htaccess.

Este texto es un pequeño resumen de la manera de proteger el acesso a un directorio publicado con un servidor Apache. Es un mini-mini-howto... espero que sea de utilidad.

  1. Tipos de Autentificación
  2. Formato del archivos
  3. Archivos de Usuarios y Grupos

Tipos de Autentificación

Modo Básico

El modo básico es una comprobación de un archivo de contraseñas con formato user:passwd. La passwd está cifrada (por defecto) con la implementación estandar de crypt().

La transmisión de contraseñas se realiza de forma plana, es solamente un pequeño impedimento pero no una medida de seguridad.

Este sistema está ampliamente soportado por la mayoria de los navegadores.

Modo Resumen ( Digest )

El modo resumen tiene el mismo formato que el anterior modelo pero este utiliza un cifrado haciendo uso de MD5.

Las autentificaciones está basada en resumenes, lo que evita el problema de los sniffers.

Este sistema tiene poco soporte, seguramente será necesario aplicar un parche en el navegador.

Formato del archivo .htaccess

El fichero .htaccess tiene los siguentes campos:

Ejemplo de archivo .htaccess

Este ejemplo es para utilizar la autentificación básica de usuarios y grupos:

AuthType Basic
AuthName "Webcam personal"
AuthUserFile /home/chernando/testing/users
AuthGroupFile /home/chernando/testing/groups

require group amigos
          

Este ejemplo es para utilizar resumen MD5 de un archivo de usuarios:

AuthType Digest 
AuthName "Registro de visitantes"
AuthDigestFile /home/chernando/testing/digest

require valid-user
          

Archivos de Usuarios y Grupos

Creando el fichero de contraseñas básico

Mediante el comando htpasswd, incluido con apache. Se le especifica el archivo donde añadir las entradas y el nombre de usuario:

Siendo la opción -c es para crear un nuevo archivo, .htpasswd el fichero donde se guardaran los passwords y charlie el nombre de usuario a añadir.

chernando@acm$ htpasswd -c users charlie
New password: 
Re-type new password: 
Adding password for user charlie
chernando@acm$
          

En el fichero .htaccess el archivo de usuarios se declara con AuthUserFile <fichero>.

Creando el fichero de contraseñas con resumen MD5

Para ello necesitamos htdigest .
La sintaxis y la creación es la misma que en el caso anterior. Se añade la opción realm que es la misma que el valor ajustado en AuthName .

chernando@acm$ htdigest -c digest "Registro de visitantes"
chernando
Adding password for chernando in realm Registro de visitantes.
New password: 
Re-type new password: 
chernando@acm$
          

En el fichero .htaccess el archivo de usuarios se declara con AuthDigestFile <fichero> .

Fichero de grupos

Este fichero es muy sencillo de crear. Con un editor de textos creamos el fichero de la siguiente forma:
grupo : Lista de usuarios (separados por espacio).

amigos: charlie susan gregor
          

En el fichero .htaccess el archivo de grupos se declara con AuthGroupFile <fichero> (en autentificación básica) o AuthDigestGroupFile <fichero> (en autentificación por resumen).

Más información en Authentication, Authorization, and Access Control y Authentication, Authorization and Access Control (Apache 2.0).


Carlos Hernando
URL: http://chernando.eu/