Configurar Apache para restringir el acceso

default.jpg
Solucionex
31
Oct 14

Podemos proteger nuestros sitios web en Apache con usuario/clave, esto puede ser muy útil para restringir el acceso a sitios en los que estamos trabajando o para proteger demos que hacemos a nuestros clientes.

Tenemos dos formas muy sencillas para hacer esto.

1º Mediante el fichero .htaccess:

Es tan sencillo como colocar un fichero de texto con el nombre .htaccess en la carpeta que queramos proteger e incluimos en el fichero el siguiente contenido

AuthUserFile /etc/htpasswd/.htpasswd AuthType Basic AuthName "My Files" Require valid-use

En la directiva AuthUserFile indicamos la ruta a el fichero de usuarios/claves que dan acceso al sitio. Para generar este fichero hay montones de herramientas como por ejemplo esta.


2º Configurando el virtual host de Apache:

La segunda opción es configurando el virtual hosts de apache, en mi opinión esta forma es la mejor, porque así no es necesario modificar el fichero .htaccess de nuestro sitio ya que esto nos podría ocasionar problemas si tenemos diferentes entornos y no todos queremos protegerlos. Lo malo es que no siempre podemos utilizar este método, ya que puede que no tengamos acceso a la configuración de los virtual host.

Para restringir el acceso mediante la configuración de un virtual host añadimos en el virtual host el siguiente fragmento:

AuthType Basic AuthName "Authentication Required" AuthUserFile /etc/htpasswd/.htpasswd Order Deny,Allow Satisfy any Deny from all Allow from 192.168.1.0/255.255.255.0 Require valid-user

En la directiva AuthUserFile indicamos la ruta a en fichero de usuarios/claves que dan acceso al sitio.

Con la directiva Allow from 192.168.1.0/255.255.255.0 estamos indicando que en nuestra red local no se requiera contraseña. Esto es muy cómodo si tenemos un servidor en nuestra red local con el que por ejemplo enseñamos demos y queremos proteger con contraseña si se accede desde fuera de nuestra red.

Como veis es muy fácil configurar esto, espero que sea de utilidad :)