Dungeon of Bits
Aprendiendo informática.
Dungeon of Bits

Instalación de Squid en Linux

En este tutorial instalarás el proxy Squid en un equipo con Linux.

Instalar Squid en Ubuntu 18.04 LTS.

Squid es un proxy que puede realizar las funciones de caché y filtrado de páginas web, para instalarlo simplemente ejecuta el siguiente comando:

sudo apt-get install squid

Una vez instalado Squid, el fichero de configuración estará en /etc/squid/squid.conf, para evitar problemas cuando configures Squid lo mejor es que hagas una copia de seguridad de este fichero, por ejemplo creando una copia:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.OLD

El fichero de configuración de Squid tiene muchísimas líneas, porque tiene muchas opciones de configuración, por eso de momento deja solo las opciones que vienen por defecto, puedes editar el fichero squid.conf y eliminar las líneas comentadas con #, lo puedes hacer a mano...

También puedes eliminar el fichero squid.conf y pasarle solo las líneas que no están comentadas por comando:

sudo rm -r squid.conf
sudo grep -Eiv '(^#|^$)' /etc/squid/squid.conf.OLD > /etc/squid/squid.conf

Si el comando grep te da problemas de permisos accede como root directamente:

sudo su

De esta forma tendrás una copia de seguridad en /etc/squid/squid.conf.OLD y el fichero modificado con las opciones por defecto en /etc/squid/squid.conf que será algo parecido a ésto:

Instalación de Proxy Squid

Hacer que el navegador utilice el proxy:

Para poder utilizar el proxy hay que habilitarlo en el navegador, para ello se debe entrar en configuración, por ejemplo en Firefox sería en Opciones.

Instalación de Proxy Squid

Después en configuración.

Instalación de Proxy Squid

Y por último ponemos los datos del proxy a utilizar:

Instalación de Proxy Squid

A partir de ahora el navegador realizará las peticiones de páginas web al proxy.

Hacer que Squid bloquee dominios:

Uno de los usos de Squid es hacer que ciertos dominios no sean accesibles desde los ordenadores que lo utilizan, para ello modificarás el fichero de configuración.

Como ejemplo crearás un fichero de texto con los nombres de los dominios a prohibir.

Imagina que quieres prohibir los dominios de redes sociales (facebook.com, twitter.com, instagram.com...), en el fichero rrss.txt harás una línea para cada dominio, con el . delante para indicar todo el dominio y subdominio, como en el ejemplo.

Instalación de Proxy Squid

Una vez que tengas el fichero guardado lo incluirás en una ACL dentro del fichero de configuración de squid y le dirás que no permita el acceso a esos dominios (deny), tal y como se muestra en la imagen.

Instalación de Proxy Squid

Ahora cuando intentes acceder desde el navegador a una de estas webs, al denegarse el acceso por parte del proxy verás una imagen similar a la siguiente:

Instalación de Proxy Squid

Puedes crear muchas reglas de control de acceso en Squid diferentes siguiendo la documentación de Squid para acceso de control.

Cada vez que realices un cambio recuerda reiniciar el servicio squid:

sudo service squid reload

El fichero de configuración de Squid:

Vamos a desgranar un poco la información que hay en el fichero squid.conf con los principales parámetros de configuración.

Instalación de Proxy Squid

En estas líneas se están definiendo dos ACL:

  • SSL_Ports con el puerto 443.
  • Safe_ports con los puertos 80, 21, 443, 70, 210, 1025 a 65535, 280, 488, 591 y 777.

Estos ACLs simplemente incluyen un listado de puertos y le ponen un nombre para poder aplicarles normas después.

Safe_ports:

Instalación de Proxy Squid

Con esta línea de código le decimos a Squid que cuando se pida una URL por un puerto que no sea de la lista Safe_ports (!Safe_ports) se rechace la conexión (deny).

En lenguaje de programación el símbolo de exclamación ! significa negación de lo que se escriba detrás.

SSL_Ports:

Instalación de Proxy Squid

SSL_Ports es una ACL que incluye el puerto 443.

CONNECT es una ACL que incluye los métodos de conexión HTTP, peticiones HTTP.

http_access deny CONNECT !SSL_ports es una regla que prohíbe las conexiones a todos los puertos que NO sean de la lista SSL_Ports.

Localhost y manager:

Instalación de Proxy Squid

Manager es el gestor de caché de Squid, http_access allow localhost manager indica que solamente se podrá acceder a él desde el propio servidor (localhost).

http_access deny manager rechazará el acceso al gestor de caché desde cualquier otro equipo.

http_access allow localhost significa que se permiten conexiones al proxy desde el propio servidor.

Prohibir dominios de un listado:

Instalación de Proxy Squid

En este ejemplo has creado un fichero con una serie de dominios prohibidos, el cual está en la ruta /etc/squid/rrss.txt y creas una ACL llamada redes_sociales que incluye dicho listado.

http_access deny redes_sociales significa que el servidor proxy rechazará las conexiones realizadas a estos dominios.

http_access allow all indica que se permiten todo el resto de conexiones.

TIP: Si quieres definir las conexiones que sí se pueden establecer y que el resto estén prohibidas deberás crear las reglas allow o deny que necesites y finalizar con http_access deny all.

Puerto de acceso al proxy:

Instalación de Proxy Squid

El puerto de acceso al proxy por defecto es 3128, para cambiarlo debemos modificar el fichero indicándolo tras la directiva http_port.