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…

Entradas (RSS)
Antes que nada deverias verias verificar que efectivamente las maquinas esten navegando por medio de squid, ya que si no es asi, cualquier regla de acceso que implementes sera inutil.
Hola Leo,
En la configuración de los clientes del proxy los navegadores apuntan contra el puerto 8080 o 3128, y tienen conexión a internet solo si Squid esta activado (poniendo cualquier de los dos puertos) o sin estar el proxy configurado en los exploradores, por lo que deduzco que me pasan por squid, me funciona pero no me capa.
Muchas Gracias por responder.
Tienes algun otro proxy instalado? si desactivas el squid que pasa en esas maquinas cuando quieres navegar?
Hola Leo,
He mirado si proxy y no hay ninguno.
El enrutamiento en mi caso lo hice a traves del Windows Server 2003 con la aplicacion de “Enrutamiento y Accesso Remoto” en el apardo de “Herramientas Administrativas” de “Inicio”.
Es correcto o el enrutamiento lo ha de hacer el propio Squid?
Somos garrulos informaticos. jeje
Gracias
Volvemos a ser nosotros,
Somos un Colegio http://www.escola-laboure.com y tenemos problemas con los accesos de los alumnos a paginas sociales como faceebook o Tuenti y paginas a las que el Colegio no quiere que puedan acceder.
Por eso nuestra urgencia para incorporar el proxy en la red y filtrar.
Muchisimas gracias y perdona las molestias.
Desconosco esa herramienta, pero ivan, antes de ir por los posibles errores en la configuracion de squid hay que estar seguro de que las maquinas estan entrando a internet por squid, en caso contrario forzar que las maquinas entren a internet por squid, de otro modo lo que hagas en squid sera inutil.
Repito, desconosco esa herramienta, necesitas forzar a que las maquinas no puedan entrar a paginas web si no es por squid, por medio de un router les bloqueas el puerto, pero con esa herramienta que mencionas la verdad desconosco.
Hola Leo,
Ya nos funciona todo correctamente y nos restringe bien las páginas.
Teníamos un error en el fichero squid.conf que nos impedia capar y enrutamiento paralelo con el servidor por el cual teníamos acceso sin Proxy, donde Internet pasaba por Squid y a través de windows.
Muchas gracias por tu ayuda
Hola Leo,
Una pregunta dónde está el fichero para modificar las cabeceras superiores e inferiores de los mensajes de Error.
Gracias
Esa info la puedes encontrar aqui.
http://leo-on.redimidas.com/squidnt/squid-parametros-basicos-optimizacion/
Hola Leo,
mi mas cordial saludo, estube buscando en internet informacion acerca de como restringir URL con el squid y bueno encontre tu pagina y he estado leyendo varias cosas y me parecen muy interesantes todos los temas que tratas. la concreta es que he tratado de aplicar la regla de restrincion por sitios pero no me funciona y lo he hecho tal como explicas incluso cuando mando a correr el proxy despues de la modificacion lo hace sin problemas pero no me restringe nada si me pudieras ayudar te estaría muy agradecido….
Estas completamente seguro de que tus PCs estan usando squid para navegar?
no puedo bloquear las paginas, he seguido todos los pasos que se detallan pero no me funciona….El squid trabaja perfectamente ya hice las pruebas mi proble es en el bloqueo de las paginas
Hola, como estas? mira, he hecho segun describes pero yo sigo pudiendo navegar tanto en los sitios que figuran en el archivo bansit.txt como en los que no. Que puedo hacer?
Saludos.
Primero tienes que hacer una prueba y corroborar que la regla este funcionando.
No se cuantos sitios tengas en tu archivo, pero pon unod 5 o 6 en la regla pero en lugar de tenerlos en el archivo ponlos en una sola linea.
Reinicias squid y corroboras que esten bloqueando, si no se bloquean revisa bien tu sintaxis, y el orden de las reglas, incluso puedes correr “squid -z” para ver si tienes errores en la sintaxis.
Hola, muchas gracias por tu ayuda, me falto agregar “url_regex” a la acl. De esta forma me quedo squid configurado con la politica de que puedo navegar todo menos lo que figura en el archivo bansit. El tema es que yo lo necesito al reves, no permitir navegar nada solo lo que esta en el archivo bansit. asi seria.
Ahora bien, como hago eso?
Gracias y disculpa la molestia.
Entonces…
acl bansit url_regex “C:/squid/etc/bansit.txt”
Y la regla:
http_access deny !bansit
intentalo y me avisas.
y con http_access allow localnet que hago? la comento? http_access deny !bansit va antes o despues de http_access allow localnet?
http_access deny !bansit
http_access allow localnet
Si no te funciona ponlo asi…
http_access deny localnet !bansit
no me andan ninguna de las dos. en ningun caso logro navegar…
Hola, hay alguna otra opcion, o como puedo hacer? porfi dame una mano!!!!
yuuuuuuuuuuuuupiiiiiiiii, lo logre… puse http_acces allow all listablanca
y andubo
Bueno, fue un engaña pichanga….. no me anda….. ahora me navegan toooooodas las paginas….
Alguien me puede ayudar porfavor!!!! o bien cambio de proxy que pena
http_access allow localnet listablanca
http_access deny all !listablanca
Hola, tengo una duda, ya logré conectar todas mis maquina a internet mediante el proxy, pero ahí tengo un problema, aca utilizamos un sistema web cuyo servidor estar en otro estado, la ip que utilizamos acá era por decir 15.22.45.X y teniamos acceso al sistema que tenia una IP 192.168.1.125, ahora con el proxy tengo una subred donde todas mi IPs estan bajo 192.168.1.X, pero no puedo conectarme al sistema que te comentó, y no sé como solucionar el problema
Tienes alguna restriccion? cuales?
Copia y pega en un comentario tanto tus ACL,s como tus reglas de control de acceso.
mis clientes se conectan a las paginas poniendo https: ( le agregan la s y entran ) como les restrinjo el acceso en ese caso?
El puerto estandard para conecciones https es el 443 puedes bloquearlo de golpe o denegar que puedan usarlo en ciertas direcciones.
Hola, tengo una duda que no he podido resolver como poner en squid para windows un pagina web por de fault en todas la red, saludos gracias por la ayuda
Armando… la verdad tampoco se como se hace eso.
Hola leo_on gracias por las atenciones, aun no he podido, bueno ahora tengo otro problema, como le hago para bloquear ultrasurf y programas parecidos!!!! que dolor de cabeza. saludos
Supuestamente es asi…
acl ultrasurf port 9666
http_access deny ultrasurf
Aunque tal vez desde squid para windowos no puedas porque parece ser que necesitas meter codigo en el firewall.