SquidNT – Restriccion por sitios

Actualizado el dia 14 de Octubre de 2008

Esta obra está bajo una licencia de Creative Commons.
Autor: Francisco Leonel Rubio Quintanilla (rubioq)

Este documento es una adecuación de el manual: Cómo configurar Squid: Restricción de acceso a Sitio de Red de: Joel Barrios Dueñas.

Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra
para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.

Haciendo caso a la petición de Andrés Sarmiento, me puse a investigar como hacer restricciones por sitio en Squid para Windows (SquidNT), el procedimiento es muy similar al usado dentro de la versión Linux.

Partiendo del principio que se necesita restringir nuestra red para que los usuarios puedan salir solo a ciertas direcciones y de este modo optimizar el ancho de banda. Respecto a lo ético del asunto se puede debatir ampliamente sobre esto, pero la realidad es que aun en mi red personal (la de mi casa) yo haría esto para evitar que entren en sitios que les llenarían de spyware sus PCs. Dejo este procedimiento para que
lo use quien lo considere conveniente.

Requerimientos:

1.- SquidNT ya funcionando. (Si aun no lo tienes lee, mi HOWTO)

2.- Lista de lo que queremos evitar que visiten nuestros usuarios.

El primer paso es hacer un archivo de texto con las direcciones que no queremos que visiten nuestros usuarios. Recomiendo poner este archivo dentro de la carpeta etc. de Squid, ponle un nombre descriptivo al
archivo, para este caso use bansit.txt.

El archivo quedaría algo así: “C:\squid\etc\bansit.txt”.

www.elchat.com
www.amigos.com
www.astalavista.com
www.bride.ru
www.playboy.com

Ahora, si lo que quieres es restringir determinadas palabras la semantica es la misma, solo que en lugar de dominios pondras palabras: “C:\squid\etc\banwords.txt”.

xxx
porn
lolitas
teens
xxx
amateur
swinger

Abre el archivo squid.conf, localizado en “c:\squid\etc” y buscas estas líneas.

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl net src 192.168.0.0/255.255.255.0

Al final agregas la siguiente ACL (regla).

acl bansit url_regex “C:/squid/etc/bansit.txt”

Y/O para palabras.

acl banwords url_regex “C:/squid/etc/banwords.txt”

Al hacer esto estas agregando una regla para los sitios comprendidos dentro del archivo de texto que creamos.

Después de esto modificaremos la regla de control de acceso para nuestra RED, así que busca la línea:

http_access allow net

Y le agregas el !bansit, quedando de este modo.

http_access allow net !bansit

O en su caso…

http_access allow net !banwords

Cuando agregas un símbolo de ! (admiración) antes de poner el nombre de una regla ACL previamente creada estas negando la regla, es decir permites que tus red acceda a Internet siempre y cuando lo que quiera hacer no coincida con la regla negada.

Dicho lo siguiente tal vez puedas navegar tú localmente si tener la restricción, pero quisieras
que no pase esto entonces buscas la línea:

http_access allow manager localhost

Cuando o termines de configurar estos parámetros será necesario reiniciar el servicio de squidNT. Echo esto a disfrutar del tiempo libre que te dan las restricciones.

Este manual es una migración del manual original de Cómo configurar Squid: Restricción de acceso a Sitio de Red, de Linux Para Todos. Aplicado a Squid Para Windows (SquidNT)

NOTA: En mis pruebas el comando me funciona con la siguiente semantica: acl bansit url_regex “C:/squid/etc/bansit.txt”, pienso que tiene que ver con la configuracion regional de windows el que funcione con diagonal / o la otra diagonal \, pero no puedo asegurarlo, si a ti no te funciona informalo…