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…

132 Respuestas a “SquidNT – Restriccion por sitios”
  1. Leo_on dice:

    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.

  2. Ivan dice:

    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.

  3. Leo_on dice:

    Tienes algun otro proxy instalado? si desactivas el squid que pasa en esas maquinas cuando quieres navegar?

  4. Ivan dice:

    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

  5. Ivan dice:

    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.

  6. Leo_on dice:

    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.

  7. Ivan dice:

    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

  8. Ivan dice:

    Hola Leo,
    Una pregunta dónde está el fichero para modificar las cabeceras superiores e inferiores de los mensajes de Error.
    Gracias

  9. Julio dice:

    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….

  10. Leo_on dice:

    Estas completamente seguro de que tus PCs estan usando squid para navegar?

  11. Cristian dice:

    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

  12. Pablo dice:

    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.

  13. Leo_on dice:

    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.

  14. Pablo dice:

    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.

  15. Leo_on dice:

    Entonces…

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

    Y la regla:

    http_access deny !bansit

    intentalo y me avisas.

  16. Pablo dice:

    y con http_access allow localnet que hago? la comento? http_access deny !bansit va antes o despues de http_access allow localnet?

  17. Leo_on dice:

    http_access deny !bansit
    http_access allow localnet

    Si no te funciona ponlo asi…

    http_access deny localnet !bansit

  18. Pablo dice:

    no me andan ninguna de las dos. en ningun caso logro navegar…

  19. Pablo dice:

    Hola, hay alguna otra opcion, o como puedo hacer? porfi dame una mano!!!!

  20. Pablo dice:

    yuuuuuuuuuuuuupiiiiiiiii, lo logre… puse http_acces allow all listablanca
    y andubo

  21. Pablo dice:

    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 :(

  22. Leo_on dice:

    http_access allow localnet listablanca
    http_access deny all !listablanca

  23. José dice:

    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 :(

  24. Leo_on dice:

    Tienes alguna restriccion? cuales?

    Copia y pega en un comentario tanto tus ACL,s como tus reglas de control de acceso.

  25. Joan dice:

    mis clientes se conectan a las paginas poniendo https: ( le agregan la s y entran ) como les restrinjo el acceso en ese caso?

  26. Leo_on dice:

    El puerto estandard para conecciones https es el 443 puedes bloquearlo de golpe o denegar que puedan usarlo en ciertas direcciones.

  27. Armando dice:

    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

  28. Leo_on dice:

    Armando… la verdad tampoco se como se hace eso.

  29. Armando dice:

    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

  30. Leo_on dice:

    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.

  31. Jose dice:

    Bueno acabo de leer algo a lo que a mi me pasa, como niego el puerto 443 a un grupo de usuarios, pero no a todos los usuarios

  32.  
Deja una Respuesta

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>