sábado, 10 de julio de 2010

How-To: Bloquear acceso a internet con excepcion de algunas paginas y durante cierto tiempo con Squid3

Como hemos visto en posts anteriores, Squid ofrece una solución ideal para el control de la navegacion en Internet en el lugar de trabajo o nuestro hogar.

En esta ocasión vamos a ver cómo nos permite bloquear por defecto todo el acceso a paginas de internet con algunas excepciones que especificaremos y durante un horario. Esto del horario es porque sería realmente desagradable y poco motivador bloquear todo el día el trafico, puesto que todos necesitamos en alguno momento revisar el correo y distraernos un poco en horario de almuerzo o de receso.

Luego de haber configurado Squid3 ya sea en nuestro servidor proxy transparente o de forma no transparente, podemos definir patrones en un archivo de texto plano como los siguientes:

admin@server:~$ sudo nano /etc/squid3/sitiosadmitidos

dgii.gov.do
dida.gob.do
datacredito.com.do
tss.gov.do
jce.gov.do

Luego editamos el archivo squid3.conf para agregar la Lista de Control de Acceso y la Regla de Control de Acceso correspondientes:

admin@server:~$ sudo nano /etc/squid3/squid.conf

acl sitiosadmitidos url_regex "/etc/squid3/sitiosadmitidos"
acl almuerzo time MTWHF 12:00-14:00
http_access allow sitiosadmitidos
http_access allow all almuerzo
http_access deny all

La primera acl define los sitios web que siempre podrán accesarse a cualquier hora del día. La segunda acl define el horario de almuerzo de 12 del mediodia a 2 de la tarde de lunes a viernes. La primera regla permite los sitios adminitidos en nuestra lista. La segunda regla permite todo el acceso a internet durante el horario de almuerzo y, finalmente denegamos todo el acceso que no cumpla con las condiciones anteriores.

Todo debe colocarse en el orden en que esta aqui, pues Squid lee el archivo de arriba hacia abajo y si ponemos el http_acces deny all de primero, este denegará todo el acceso y las demas reglas serán inválidas.

Para finalizar reiniciamos el daemon de squid3:

admin@server:~$ sudo  /etc/init.d/squid3 restart

2 comentarios:

  1. Hola. Me llamo Cesar, y escribo esto desde Buenos Aires, Argentina. Muy interesante y simple de entender. Pero tengo una duda algo diferente: uso mi PC con cuentas de usuarios para internet (correo, facebook, videos, etc). Me gustaría regular la velocidad de descarga de cada uno de ellos (por ejemplo, facebook utilize un 20% del ancho de banda, correo un 10%, videos hasta un 50%, etc) y un usuario sin acceso (a o desde) internet. ¿Se puede hacer? No se trata de diferentes PCs (donde se asigna a cada IP un cierto ancho), sino a usuarios en la misma PC utilizando ttys independientes (correo en :0, facebook en :1, etc). Te agradeceré mucho si podés comentar este tema. Saludos.

    ResponderEliminar
    Respuestas
    1. Me temo que eso no es posible, ya que son los navegadores los que pueden pasar por el proxy, directamente o mediante autenticación si es mandatoria.

      Eliminar