Squid es un servidor proxy para web con caché. Es una de las aplicaciones más populares y de referencia para esta función, software libre publicado bajo licencia GPL. Entre sus utilidades está la de mejorar el rendimiento de las conexiones de empresas y particulares a Internet guardando en caché peticiones recurrentes a servidores web y DNS, acelerar el acceso a un servidor web determinado o añadir seguridad realizando filtrados de tráfico.
Aunque orientado principalmente a HTTP y HTTPS soporta también otros protocolos como FTP e incluso Gopher. Implementa cifrado SSL/TLS tanto en la conexión al servidor web como a los navegadores y cualquier cliente web que lo soporte.
Instalación de SQUID
Antes de realizar ninguna configuración vamos a instalar el paquete apt install squid3
y ahora procedemos a la configuración del proxy
Configuración proxy en firefox
Nos dirigimos a Preferencias - Avanzado - Red - Conexión - Configuración
y tiene que quedar asi:
Especificaciones configuración
Queremos instalar un servidor proxy/cache en nuestro servidor. Con ello vamos a poder controlar las páginas web a las que accedamos, además de acelerar nuestra navegación.
Nos piden la configuración de un proxy/cache/filtro en nuestra infraestrucutra. Hemos elegido como proxy/cache squid3, y como filtro de contenido dansguardian. Tenemos que tener en cuenta las siguientes consideraciones:
El proxy/cache solo admite conexiones de la red local
Vamos a editar el fichero de configuración /etc/squid3/squid.conf
, introducimos lo siguiente:
#Acl: acl localnet src 172.22.0.0/16 #Y en la seccion de access: http_access allow localnet
Creación de usuarios y credenciales
Ahora creamos los usuarios y le asignamos una contraseña:
#Profesor htpasswd -c /etc/squid3/passwd profesor New password: Re-type new password: Adding password for user profesor #Alumnos htpasswd /etc/squid3/passwd alumno New password: Re-type new password: Adding password for user alumno
Deniega cualquier conexión que no este autentificada con los usuarios creados anteriormente
Para la autenticación descomentamos y completamos estas lineas en el fichero /etc/squid3/squid.conf
:
#Primero añadimos, arriba del documento auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours #Mas abajo añadimos la siguiente linea(Justo debajo de acl safe_ports) acl usuario proxy_auth REQUIRED #Y por ultimo añadimos la siguiente linea(Justo debajo de insert) http_access allow usuario
Se quieren limitar las siguientes conexiones
Anteriormente hemos añadido una acl
en la cual englobamos los dos usuarios, ahora vamos a crear dos acl
mas en la cual vamos a separar alumnos y profesores:
acl alumnos proxy_auth alumno acl profesores proxy_auth profesor
Para los profesores y alumnos
No se pueden bajar ficheros que se puedan instalar (exe,msi,rar,zip,bin,iso).
#Donde se encuentran todas las acl (Debajo de acl CONNECT) acl archivos urlpath_regex -i .zip .exe .msi .iso .bin .rar #Donde se encuentra los http_access (Justo debajo de INSERT...) http_reply_access deny archivos
Y reinicio el servicio systemctl restart squid3
Al intentar descargar un archivo por ejemplo .exe
o .zip
No tienen acceso a Internet los fines de semana
#Donde se encuentran todas las acl (Debajo de acl CONNECT) acl weekend time AS 00:00-23:59 #Donde se encuentra los http_access (Justo debajo de INSERT...) http_reply_access deny weekend
Y reinicio el servicio systemctl restart squid3
Para los alumnos
No pueden ver contenido multimedia
#Donde se encuentran todas las acl (Debajo de acl CONNECT) acl archivos_multimedia urlpath_regex -i \.mp3$ \.mp4$ \.wma$ \.avi$ \.wmv$ \.mov$ \.mpg$ \.mpeg$ \.ram$ \.vob$ acl req_mimetype_audio req_mime_type -i ^audio/mp3$ ^audio/mp4$ ^audio/mpeg$ ^audio/wav$ ^audio/x-mp3$ ^audio/x-mp4$ acl rep_mimetype_audio rep_mime_type -i ^audio/mp3$ ^audio/mp4$ ^audio/mpeg$ ^audio/wav$ ^audio/x-mp3$ ^audio/x-mp4$ acl req_mimetype_video req_mime_type -i ^video/avi$ ^audio/mpeg$ ^video/ogg$ ^video/quicktime$ ^video/x-ms-wmv$ acl rep_mimetype_video rep_mime_type -i ^video/avi$ ^audio/mpeg$ ^video/ogg$ ^video/quicktime$ ^video/x-ms-wmv$ acl req_mimetype_flash req_mime_type -i ^video/flash$ ^video/flv$ ^video/x-flv$ ^video/x-shockwave-flash$ ^video/x-swf$ acl rep_mimetype_flash rep_mime_type -i ^video/flash$ ^video/flv$ ^video/x-flv$ ^video/x-shockwave-flash$ ^video/x-swf$ #Donde se encuentra los http_access (Justo debajo de INSERT...) http_access deny archivos_multimedia alumnos http_access deny req_mimetype_audio alumnos http_access deny req_mimetype_video alumnos http_access deny req_mimetype_flash alumnos http_reply_access deny rep_mimetype_audio alumnos http_reply_access deny rep_mimetype_video alumnos http_reply_access deny rep_mimetype_flash alumnos
Y reinicio el servicio systemctl restart squid3
Cuando intentemos acceder a un video con formato .mp4
nos solicitara un nuevo logueo, como solo hemos prohibido a los alumnos si te logueas como profesor podras ver el video.
Sólo tienen conexión de 8:00 h. a 14:00 h.
#Donde se encuentran todas las acl (Debajo de acl CONNECT) acl horario_1 time MTWHF 14:01-23:59 acl horario_2 time MTWHF 00:00-07:59 #Donde se encuentra los http_access (Justo debajo de INSERT...) http_reply_access deny horario_1 http_reply_access deny horario_2
Y reinicio el servicio systemctl restart squid3
Filtrar dominios por medio de un fichero
Para poder filtar varios dominios a la vez vamos a crear una lista negra la cual vamos a llamar black_domain.acl
y añadimos las siguiente lineas en el fichero /etc/squid3/squid.conf
:
#Donde se encuentran todas las acl (Debajo de acl CONNECT) acl no_domain url_regex "/etc/squid3/black_domain.acl" #Donde se encuentra los http_access (Justo debajo de INSERT...) http_access deny no_domain
Creamos el fichero /etc/squid3/black_domain.acl
y insertamos la siguiente linea:
.youtube.com
Y reinicio el servicio systemctl restart squid3
Orden de http_access
Es muy importante el orden de los http_access por lo tanto todo lo explicado anteriormente tendrá el siguiente orden para que funcione a la perfección.
Asi quedaria el fichero sin los comentarios
#Parámetros autentificación auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours #ACL acl archivos urlpath_regex -i \.zip$ \.exe$ \.msi$ \.iso$ \.bin$ \.rar$ acl usuario proxy_auth REQUIRED acl alumnos proxy_auth alumno acl profesores proxy_auth profesor acl weekend time AS 00:00-23:59 acl horario_1 time MTWHF 14:01-23:59 acl horario_2 time MTWHF 00:00-07:59 acl no_domain url_regex "/etc/squid3/black_domain.acl" acl archivos_multimedia urlpath_regex -i \.mp3$ \.mp4$ \.wma$ \.avi$ \.wmv$ \.mov$ \.mpg$ \.mpeg$ \.ram$ \.vob$ acl req_mimetype_audio req_mime_type -i ^audio/mp3$ ^audio/mp4$ ^audio/mpeg$ ^audio/wav$ ^audio/x-mp3$ ^audio/x-mp4$ acl rep_mimetype_audio rep_mime_type -i ^audio/mp3$ ^audio/mp4$ ^audio/mpeg$ ^audio/wav$ ^audio/x-mp3$ ^audio/x-mp4$ acl req_mimetype_video req_mime_type -i ^video/avi$ ^audio/mpeg$ ^video/ogg$ ^video/quicktime$ ^video/x-ms-wmv$ acl rep_mimetype_video rep_mime_type -i ^video/avi$ ^audio/mpeg$ ^video/ogg$ ^video/quicktime$ ^video/x-ms-wmv$ acl req_mimetype_flash req_mime_type -i ^video/flash$ ^video/flv$ ^video/x-flv$ ^video/x-shockwave-flash$ ^video/x-swf$ acl rep_mimetype_flash rep_mime_type -i ^video/flash$ ^video/flv$ ^video/x-flv$ ^video/x-shockwave-flash$ ^video/x-swf$ #HTTP_ACCESS http_access deny weekend http_reply_access deny horario_1 alumnos http_reply_access deny horario_2 alumnos http_access deny archivos_multimedia alumnos http_access deny archivos http_access deny req_mimetype_audio alumnos http_access deny req_mimetype_video alumnos http_access deny req_mimetype_flash alumnos http_reply_access deny rep_mimetype_audio alumnos http_reply_access deny rep_mimetype_video alumnos http_reply_access deny rep_mimetype_flash alumnos http_access deny no_domain
Muy interesante e importante amigo Juanlu Ramirez, y esta bien explicado, pondré en practica esta tu publicación.
Gracias