Práctica: Acceso Restringido con apache en profesordeinformatica.com

Práctica: Acceso Restringido con apache

Por Aitor López de Aberasturi el Lunes, 04 de Noviembre de 2013 0 Comentarios

Podemos restringir el acceso a determinados directorios de nuestro servidor, de manera que cuando accedamos a ellos con el navegador se nos pedirá un nombre de usuario y una clave. Esos usuarios y esas claves no van a guardar ninguna relación con los del sistema Linux.

Queremos que cuando accedamos al /var/www/restringido <(http://localhost/resgringido) nos pida un usuario y un password para ver su contenido.

1.- Creamos un directorio clavesapache donde vamos a guardar el fichero de usuarios y claves .clavesapache y le damos permiso de lectura, escritura y ejecución para el usuario www-data, que es el usuario por defecto de apache, lectura y ejecución para el grupo www-data y sin permisos para el resto de usuarios:

sudo mkdir /var/www/clavesapache
sudo chown www-data:www-data /var/www/clavesapache
sudo chmod 750 /var/www/clavesapache

Vamos a añadir diferentes /var/www/clavesapache y ajustamos propietario y permisos:

sudo htpasswd -c /var/www/clavesapache/.clavesusuarios usuario1

(introducimos el password y la verificación de su password, por ejemplo clave1)

sudo chown www-data:www-data /var/www/clavesapache/.clavesusuarios
sudo chmod 640 /var/www/clavesapache/.clavesusuarios

Podemos añadir más usuarios (sin el -c, ya que ya existe el fichero .clavesusuarios):

sudo htpasswd /var/www/clavesapache/.clavesusuarios usuario2

Vemos que hemos creado los usuarios con sus respectivas claves encriptadas en el fichero oculto .clavesusuarios:

cat .clavesusuario
usuario1:$apr1$e4xMiIKy$9NzX8TEmqWiMTkqGHp.0G0
usuario2:$apr1$YC5LjTlX$IyXaaKqNK997HSV78BtUF1

2.- Configuramos el fichero /etc/apache2/sites-available/default para que nos solicite un password. Para ello sustituimos AllowOverride None por AllowOverride AuthConfig:

<Directory /var/www/> Options Indexes
FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>

3.- Creamos el directorio restringido y dentro creamos el fichero /var/www/restringido/.htaccess con el siguiente contenido:

AuthType Basic
AuthName "Acceso Restringido"
AuthUserFile /var/www/clavesapache/.clavesusuarios
Require user usuario1

Además creamos el fichero index.html con una página de bienvenida y les damos permisos con el susuario y grupo www-data.

cd /var/www/restringido sudo chown www-data:www-data /var/www/restringido/.htaccess
sudo chown www-data:www-data /var/www/restringido/index.html
sudo chown www-data:www-data /var/www/restringido

4.- Reiniciamos y probamos:

/etc/init.d/apache2 restart

Entramos en el navegador a localhost/restringido e introducimos el usuario y password.

========================================== Esta práctica ha cambiado en nuevas versiones. Apache actualmente tiene como directorio raiz /var/www/html El AuthConfig hay que ponerlo en /etc/apache2/apache2.conf

Próxima entrada

Práctica: Servidores virtuales con Apache


Sobre el profe

Esta es la página web de Aitor Lopez de Aberasturi profesor de informática en ITS Ciudad Jardin. También puedes visitar mi blog de clase.