You are on page 1of 3

LINUX-ING DE SISTEMAS

Ing. Marco A. Adarme J. e-mail: m_adarme@bari.ufps.edu.co

PROTECCION DE DIRECTORIOS WEB CON APACHE UTILIZANDO


HTACCESS

El “.htaccess” es un archivo de configuración en un servidor Web, y contiene comandos


en el lenguaje del servidor que le indican cómo debe comportarse en ciertas situaciones.
Alguno de los usos más comunes de un archivo htaccess son la restricción del acceso a
determinados archivos o carpetas en Internet (o en una intranet) mediante el uso de
contraseñas.

El archivo .htaccess permite proteger directorios, cada vez que Apache reciba una
solicitud revisara si existe un archivo con nombre .htaccess ; cabe señalar que en
ocasiones no es utilizado el nombre .htaccess para este archivo, muchos administradores
de sistemas cambian este nombre debido al uso extenso de .htaccess ,pero esto solo es
medida de seguridad. El parámetro AccessFileName dentro del archivo de configuración
Apache (httpd.conf), indica el nombre del archivo que debe ser buscado para controlar el
acceso a un directorio, que como se mencionó toma un valor "default" de .htaccess.

Suponga que se tiene el siguiente VirtualHost definido en su máquina(ya registrado en su


servidor de nombre de dominio-DNS):

NameVirtualHost 192.168.3.35
<VirtualHost 192.168.3.35>
DocumentRoot /var/www/midominio
ServerName www.midominio.com
ErrorLog /var/log/midominio.log
</VirtualHost>

1. Activar el directorio que desea proteger por ejemplo el directorio


/var/www/midominio, añadir en el httpd.conf:

<Directory "/var/www/midominio">
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Las etiquetas <Directory /path/to/directory> y </Directory> se usan para agrupar


directivas de configuración que sólo se aplican a ese directorio y sus subdirectorios.
Cualquier directiva aplicable a un directorio puede usarse en las etiquetas <Directory>.
La opciòn AllowOverride establece qué directivas Options puede obviar un fichero
.htaccess. Por defecto, tanto el directorio raíz como DocumentRoot están configurados
para no permitir la prevalencia de .htaccess, el parametro “ALL” le indica al servidor que
cargue toda la configuraciòn que encuentra en un archivo .htaccess. La opción Order:
controla el orden en que allow y deny se evaluan. El servidor está configurado para
LINUX-ING DE SISTEMAS
Ing. Marco A. Adarme J. e-mail: m_adarme@bari.ufps.edu.co

evaluar Allow antes que deny para el directorio DocumentRoot. Allow: Especifica qué
peticionario puede acceder un directorio dado. El peticionario puede ser all, un nombre de
dominio, una dirección IP, una dirección IP parcial, un par de máscaras de red, etc. El
directorio DocumentRoot está configurado para permitir peticiones de all (cualquiera).
Deny funciona como allow, pero especifica a quién se niega el acceso. DocumentRoot no
está configurado para rechazar peticiones de nadie.

2. Genere el fichero /var/www/midominio/.htaccess(vi /var/www/midominio/.htaccess),


el archivo debe ser ubicado en el directorio que desea proteger:

AuthName "Solo usuarios autorizados para mi dominio"


AuthType Basic
require valid-user
AuthUserFile /var/claves

El parámetro AuthName indica un mensaje que debe ser desplegado en la ventana que
solicita la autorización, AuthType siempre toma un valor Basic (tipo único), mientras que
AuthUserFile indica la ubicación del archivo que contiene los nombres y contraseñas del
sistema (definido anteriormente) y la ultima linea require valid-user especifica el usuario
que tendrá acceso a este directorio, el parametro valid-user valida todos los usuarios que
se tengan en el archivo /var/claves.

3. Generar el archivo claves (en el caso de la configuración planteada en /var/claves, se


recomienda que sea un archivo oculto dentro de un directorio que solo tenga acceso
el superusuario).

3.1 Si es la primera vez que crea usuarios en el archivo claves:


htpasswd -c claves otro

La opciòn -c-->Indica el nombre del archivo donde se va almacenar la contraseña para el


usuario otro.

3.2 Si el archivo esta creado solo hay que indicarle el archivo donde se almacenará el
nuevo usuario:
htpasswd claves otro2

En cualquiera de los dos casos , el sistema solicita New-Password y su confirmaciòn.

3.3 Asignar permisos y usuario de acceso del sistema:


chmod 600 /var/claves
chown apache:apache /var/claves

4. Arrancar el servicio:
cd /etc/init.d
./httpd restart
LINUX-ING DE SISTEMAS
Ing. Marco A. Adarme J. e-mail: m_adarme@bari.ufps.edu.co

ó utilice el comando service:


service httpd restart

5. Probar la configuración: Utilice cualquier navegador y cargue www.dominio.com

Tomado de:
• http://httpd.apache.org/docs/2.0/es/sections.html
• http://www.linuxparatodos.net/geeklog/staticpages/index.php?page=18-como-
apache-htaccess