Cómo instalar Squid en Debian 9 Stretch

En este artículo veremos cómo instalar el proxy Squid en Debian 9 Stretch paso a paso, de modo que puedas dar acceso a Internet a redes que no tienen acceso directo y/o filtrar y bloquear accesos a Internet no deseados.

Antes de instalar Squid en Debian 9 Strech

Para seguir esta guía de instalación y configuración de Squid en Debian 9 Stretch sólo necesitas cumplir estos requisitos:

  • Una máquina Debian 9 Stretch actualizada.
  • Acceso a consola con root o un usuario con permisos de sudo.
  • Conexión a Internet.
  • Otros sistemas en red con los que hacer pruebas.

Cómo instalar Squid en Debian 9 Stretch

Vamos a instalar el proxy Squid en Debian 9 Stretch desde los repositorios de la distribución, por lo que es interesante antes que otra cosa actualizar las listas de paquetes:

~$ sudo apt update

El paquete que necesitamos en esta ocasión es squid, que instalaremos con apt:

~$ sudo apt install -y squid

Tras la descarga e instalación de Squid y sus dependencias se creará un nuevo servicio en Debian 9 Stretch, llamado squid.service, o squid si prefieres el nombre corto.

El servicio Squid queda en ejecución y habilitado para su inicio automático en cada arranque de Debian 9.

Puedes comprobar en cualquier momento el estado del servicio con el comando systemctl status squid:

como instalar squid en debian 9 stretch

Cómo configurar el firewall UFW para Squid en Debian 9

Si tienes activado el firewall UFW en Debian 9 bloqueará las conexiones entrantes, por lo que debes añadir una regla para permitir conexiones a Squid:

~$ sudo ufw allow squid

Cómo probar Squid

Para probar el servicio Squid en Debian 9 desde tu red local, abre un navegador en alguna máquina de la red y despliega sus opciones de configuración.

En general, la configuración de proxy en una aplicación se basa en proporcionar la dirección del servidor proxy, que en este caso será la dirección IP o dominio del servidor Debian 9, y el puerto, que para Squid por defecto es el 3128.

instalar squid en debian 9 stretch

Aplicada la configuración en el navegador de prueba, si intentamos acceder a algún sitio web obtendremos esto:

instalacion de squid en debian 9 stretch

Aunque no se sirve la página que solicitamos, el mensaje de error lo genera Squid, lo que quiere decir que el servicio funciona.

Cómo configurar Squid en Debian 9 Stretch

Para configurar Squid en Debian 9 Stretch hemos de tener en cuenta que su configuración se encuentra bajo la ruta /etc/squid/, siendo el archivo principal squid.conf.

El archivo de configuración es enorme, unos 284 kB en su versión por defecto, así que puede ser caótico encontrar algunas cosas.

Lo primero que debemos hacer es definir una acl o lista de control de acceso para las máquinas a las que queremos permitir la conexión. Normalmente se tratará de la red local, así que si tu dirección de red es, por ejemplo 192.168.0.0/24 definiríamos la acl de la siguiente forma:

...
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
#acl localnet src fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machi$
acl red_local src 192.168.0.0/24
...

Esto sólo es la definición de una red, pero para que Squid conceda el acceso habrá que permitir dicha red, ya que por defecto Squid sólo permite conexiones locales.

Buscaremos en la configuración la directiva http_access con el valor allow y añadiremos otra línea permitiendo nuestra red:

...
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
http_access allow localhost
http_access allow red_local
...

Aplicamos los cambios recargando la configuración de Squid:

~$ sudo systemctl reload squid

Ahora volvemos a intentar acceder desde el navegador de pruebas:

como configurar squid en debian 9 stretch

¡Funciona! Ya sabemos cómo crear listas de acceso y cómo permitirlas.

Cómo bloquear sitios web

Una de las características más importantes de un servidor proxy como Squid es que pueda bloquear el tráfico hacia sitios web concretos. Esto se logra creando un archivo con la lista de dominios restringidos:

~$ sudo nano /etc/squid/sitios-restringidos.squid

En este archivo simplemente nos encargaremos de enumerar uno tras otros los dominios que queramos prohibir:

.facebook.com
.twitter.com
.instagram.com
.youtube.com

Tantos sitios como quieras. Guardados los cambios, volvemos a squid.conf y creamos una nueva acl:

...
acl red_local src 192.168.0.0/24
acl sitios-restringidos dstdomain "/etc/squid/sitios-restringidos.squid"

Y añadimos una directiva http_access para denegar la nueva lista:

...
http_access deny sitios-restringidos
http_access allow red_local
...

Coloca esta nueva directiva antes de la directiva que permite el acceso general y no después, o no funcionará. Las directivas que modifican el acceso deben enumerarse de más concretas a más generales, y no al revés (así funciona Squid).

Guardamos los cambios y recargamos Squid. Al probar uno de los sitios restringidos ocurrirá lo esperado:

configurar squid en debian 9 stretch

Cómo bloquear palabras restringidas

Por muy extensa que sea la lista de sitios bloqueados nunca están todos los que querríamos. Una forma de ayudar a bloquear sitios de los que ni siquiera conocemos su existencia es bloqueando por palabras. Para ello crearemos un archivo para la lista de palabras restringidas:

~$ sudo nano /etc/squid/palabras-restringidas.squid

Y añadiremos todas aquellas palabras que consideremos que no se ajustan al uso permitido:

palabra1
palabra2
palabra3
...

Guardamos los cambios y volvemos a squid.conf.

Añadimos una nueva lista para el archivo de palabras restringidas:

...
acl red_local src 192.168.0.0/24
acl sitios-restringidos dstdomain "/etc/squid/sitios-restringidos.squid"
acl palabras-restringidas url_regex "/etc/squid/palabras-restringidas.squid"
...

Y una nueva directiva http_access para bloquear la lista:

...
http_access deny sitios-restringidos
http_access deny palabras-restringidas
http_access allow red_local
...

Guardados los cambios, hay que recargar el servicio squid para aplicarlos.

Cabe señalar que este bloqueo se aplicará si la palabra aparece en el dominio o la URI, pero no en los parámetros de la URL.

Conclusión

Ahora ya sabes cómo instalar y configurar Squid en Debian 9 Stretch, un servidor proxy eficaz que bloqueará accesos a Internet no deseados fácilmente en redes de trabajo, educativas o incluso domésticas.

Si tienes alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario.

Y si gracias a esta pequeña guía de instalación y configuración de Squid en Debian 9 Stretch ya estás filtrando el tráfico de tu red local, y quieres agradecérmelo, puedes hacerlo dejando 1 $ de propina para una CocaCola desde PayPal:

¡Gracias!

 

5/5 - (1 voto)

2 comentarios en «Cómo instalar Squid en Debian 9 Stretch»

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.