Ralentizando el acceso a determinadas páginas mediante Squid

Cuando uno administra una red corporativa se topa con algunos usuarios que hacen un uso inadecuado de la misma. No pasa nada porque de vez en cuando algún usuario entre a revisar si tiene un mail en su cuenta personal, un mensaje en facebook o a twittear una cosa, pero otros se tiran la mañana. Me se de alguno que usaba la red corporativa del hospital en el que trabajaba para descargarse gigas de discos de metalcore. Cuando la gente se pone a tirar de youtube, u otros servicios de vídeos o música, además puede consumirte bastante ancho de banda que podría ser necesario para otros menesteres.

Cortar completamente el acceso a estas webs es una solución, pero ¿es la mejor solución? Lo primero es que generará malestar en los trabajadores y mal rollo entre estos y el administrador, y sembrar discordias en un centro de trabajo nunca es una buena idea. Además ¿por qué castigar por igual al que mientras se toma el café de media mañana entra a colgar una foto de un gato jugando con un iPad que al que se ha tirado dos horas leyéndose de pe a pa la web de Marca? Hoy vamos a ver como usar las Delay Pools de Squid para solucionar esto.

Delay Pools nos permite ralentizar la velocidad de navegación de ciertos usuarios o hacia ciertos sitios (o ambas a la vez). Esto hará que el procastinador desista de su idea.

Como es obvio para poder hacer esto necesitamos que los usuarios naveguen por medio de un proxy, donde tendremos instalado Squid para controlar el tráfico y acceso a según qué páginas. Si has instalado Squid desde repositorio ya vendrá con soporte para Delay Pools, si ha sido una compilación propia entonces asegúrate de que lo tenga.

Con la instalación comprobada vamos al siguiente paso: en la carpeta /etc/squid/ (o /etc/squid3 si usas esa versión) creamos un archivo con la lista de todas las ip’s que queremos ralentizar, para el ejemplo el archivo se llamará «vaiamodo» (en gallego «ve despacio»).

Cuando tengamos el archivo con la lista de las ip a ralentizar tocará editar el archivo squid.conf, que te encontrarás dentro de /etc/squid/ (o /etc/squid3, repito, si usas esa versión) para hacer varias cosas:

Lo primero, crear una lista de control de acceso (acl) con el contenido de la lista de ip que hemos bautizado como vaiamodo, acl que llamaremos ralentizar. Luego establecemos el ancho de banda para el Delay Pools, que será de 1, que es el mínimo posible. Tras eso creamos una regla llamada capar que hará que las Delay Pools actúen sobre las url que coincidan con una expresión regular concreta (en este caso frenaremos varias webs populares y además todas las url que tengan la palabra «watch» ya que suele ir ligada a sitios donde ver vídeos). Finalmente ordenaremos que los usuarios de la primera regla vayan más lentos en la páginas definidas en la segunda. El ejemplo para Squid2 escrito es así:

acl ralentizar src "/etc/squid/vaiamodo"
delay_pools 1
delay_class 1 1
delay_parameters 1 1000/100
acl capar url_regex -i vimeo
acl capar url_regex -i watch?
acl capar url_regex -i youtube
acl capar url_regex -i youtu
acl capar url_regex -i facebook
acl capar url_regex -i twitter
acl capar url_regex -i marca

delay_access 1 allow capar ralentizar

Con esto haremos que su velocidad de conexión sea tan lenta que las páginas en cuestión sean innavegables para ellos porque cargarán a 1kbps.

Hay que tener en cuenta que podrías tener que cambiar algo en la configuración si ya estás usado control de navegación por listas blancas o si los usuarios en vez de por la ip acceden por LDAP o algún otro sistema de autentificación.

Anuncio publicitario

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.