Limitar el acceso a internet por horario en Squid.
No vamos a explicar que es Squid, ya realizamos una pequeña introducción en un articulo anterior, hoy nos centramos en un tema que nos puede resultar muy útil, tanto si usas squid a nivel empresarial como domestico, podrás evitar que tus empleados o hijos se conecten a internet en un horario intempestivo que no corresponde.
La configuración de esta propiedad es muy fácil, ya veras.
Comenzamos el desarrollo con un ejemplo super practico.
Pongamos que queremos restringir el acceso a Internet, pero solamente a un grupo específico de usuarios, y permitir su uso exclusivamente durante el horario que nuestra oficina esta operativa, para más inri también queremos limitar su uso de «Lunes a Viernes«, parece complejo… pero no lo es.
En el ejemplo permitiremos el acceso a Internet solamente de 8 a.m. a 18 p.m., y de lunes a viernes.
Limitar el acceso a internet por horario
Abrimos el archivo de configuración de Squid, normalmente en:
nano /etc/squid3/squid.conf
Ahora agregamos el grupo al cual bloquearemos el acceso, y la subred completa a la que se conectan. En el ejemplo usamos la 192.168.1.0, y como grupo de usuarios «miusers«.
Copia y pega en tu archivo (pon tus datos reales).
acl miusers src 192.168.1.0/24
Bien, ya bloqueamos a ese grupo de usuarios, ahora definimos el horario y los días de la semana que nos interese bloquear.
Antes de continuar… revisa esta tabla es la definición de que letra corresponde a cada día de la semana.
- M – Lunes
- T – Martes
- W – Miercoles
- H – Jueves
- F – Viernes
- A – Sábado
- S – Domingo
Una vez vista la tabla, vamos a ello (recuerda que permitiremos el acceso a Internet solamente de 8 a.m. a 18 p.m., y de lunes a viernes).
Copia y pega en tu archivo (pon tus preferencias).
acl miusers time MTWHF 08:00-17:59
Ya casi lo tenemos, solo falta un pequeño paso.
Como ultimo punto debemos aplicar la regla, pero todo depende de como tengas configurado el acceso a internet, vemos los dos casos.
1- Si por defecto tienes el acceso a internet abierto a todos los grupos y usuarios (http_access allow all), debes copiar y pegar la siguiente linea (incluye el símbolo de exclamación).
http_access deny miusers !worktime
2- Si por defecto tienes el acceso a internet cerrado a todos los grupos y usuarios (http_access deny all), debes copiar y pegar la siguiente linea.
http_access allow miusers worktime
Guarda el archivo y cierra el editor.
Reiniciamos Squid.
service squid3 reload # o systemctl reload squid3
Listo… ya lo tenemos.
Espero te resulte útil.
Buen tuto Sergio pero al ser el proxy transparente si los usuarios navegan por el protocolo https no funciona tienes alguna solución para esto ya que squid no filtra navegación por puerto 443
Hola Cesar.
Squid no puede supervisar el tráfico HTTPS encriptado. Su misión es establecer una conexión TCP con el destino y responder con un HTTP 200 en caso de que sea efectiva la conexión.
Pero ojo al detalle… no lo supervisa, pero si lo monitoriza y registra. Por tanto la solución es bastante simple, podemos montar pfSense + squid.
Creo que es viable y usa solución efectiva. Lo pruebo y si es funcional haré un tutorial.
Un saludo.
Hola Sergio,
Tengo montado el Pfsense y quisiera configurarle el squid, pero de alguna manera no se descarga ese paquete. Existira alguna forma de poder obtenerlo… ya he probado por sistema/gerente de empaquetación/ paquetes disponibles y como resultado muestra: No se puede recuperar la información del paquete.
Saludos
Gracias Sergio, y alguna forma de bloquear con centos 7 + squid y de pronto iptables ? Ya que al usar pfSense sería ya otro linux.