2 de febrero de 2011

Entrar mediante usuario y contraseña en Squid

Algo que veo realmente indispensable en un filtro es la opción de entrar mediante un usuario y una contraseña para poder navegar.



Podríamos, de manera muy básica (hay programas dedicados para ello) crear un tipo de hotspot que deniegue todo el tráfico pero que mediante el uso de cuentas de usuario permita la navegación.



Squid permite ésta opción, y es que, por muy básica que sea, se ajusta perfectamente a las necesidades.

Seguir leyendo 'Entrar mediante usuario y contraseña en Squid'


Puesta en escena

Imaginemos que tenemos montado un hotspot y queremos que cuando alguien entre en el pida un usuario y contraseña para poder navegar.

En squid, podríamos crear usuarios y contraseñas y habilitarlos y de ésta forma, controlar un poco más el tráfico que realizan nuestros clientes y dar una capa más de seguridad a nuestro proxy.


Puesta en marcha

Haremos uso de regla tipo password para habilitar el acceso mediante cuentas de usuario en squid.

Lo primero que vamos a hacer es crear el archivo de configuración en el que iremos guardando los usuarios.

Como realizaremos todo el trabajo desde la carpeta de squid nos movemos a esa ruta y creamos el fichero:

   cd /etc/squid
   touch usuarios

Ahora, cambiamos los permisos del archivo (como adminstador) para que solamente el pueda modificar los usuarios.

   chmod 600 usuarios

Una vez hecho ésto, ya podemos crear los usuarios. Ésto lo haremos mediante el programa htpasswd, que podremos instalar mediante la órden (en ubuntu):

   sudo apt-get install htpasswd 


y creamos nuestro primer usuario:

   htpasswd usuarios usuario1

Nos fijamos en que el usuario que hemos creado se llama usuario1 y se ha añadido a nuestro fichero de usuarios. Si todo ha ido bien, tras haber lanzado ésta orden el sistema habrá pedido que introduzcamos una contraseña.


Una vez creado el usuario, podremos configurar nuestro servidor proxy para que pida contraseña cada vez que alguien entre a navegar.

La siguiente regla la añadimos debajo de la configuración básica de squid en el archivo /etc/squid/squid.conf


auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/usuarios

para que use el archivo usuarios para comprobar los usuarios y contraseñas.



Ahora pasamos a crear el acl que indique que se requiere de contraseña:

acl password proxy_auth REQUIRED



Lo único que nos falta ahora es decirle a squid a quíen debe pedir contraseña. Para poner un ejemplo, tengo configurado dos acl's:

   acl all 0.0.0.0/0.0.0.0
   acl red 192.168.10.0/255.255.255.0

y a red le permito navegar y a all no (para que no se metan intrusos desde otra red).

   http_access allow red
   http_access deny all


Ahora, si queremos que red tenga acceso pero mediante el uso de contraseña, dejamos la línea de ésta forma:

   http_access allow red password


Listo, reiniciamos nuestro servidor squid y ya podremos acceder mediante usuario y contraseña.

Abajo os dejo mi configuración de squid para que véis como ha quedado la configuración de squid mediante usuario y contraseña.


http_port 3128
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/usuarios

#Definir acceso:
acl all src 0.0.0.0/0.0.0.0
acl red src 192.168.10.0/255.255.255.0
acl password proxy_auth REQUIRED

#Permitir o bloquear:
http_access allow red password
http_access deny all

2 de Febrero de 2011

2 comentarios:

  1. Excelente artículo, gracias por compartirlo.

    ResponderEliminar
  2. Como cierra el usuario la sesión entre el navegador y el squid?

    ResponderEliminar