En este artículo veremos cómo instalar Squid en Ubuntu 18.04 LTS Bionic Beaver paso a paso, de modo que puedas tener tu propio servidor proxy listo para trabajar en tu red local y proporcionar (o restringir) acceso a Internet a otras máquinas independientemente de su sistema operativo.
Contenido
Antes de instalar Squid en Ubuntu 18.04 LTS
Si tienes intención de completar los pasos de esta guía de instalación de Squid en Ubuntu 18.04 LTS debes partir de las siguientes condiciones:
- Un sistema Ubuntu 18.04 LTS Bionic Beaver actualizado.
- Un usuario con privilegios de sudo.
- Acceso a Internet.
- Equipos en red con los que probar el proxy.
Cómo instalar Squid en Ubuntu 18.04 LTS
Para instalar Squid en Ubuntu 18.04 LTS usaremos los paquetes disponibles en los repositorios de la distribución, así que actualizaremos su información:
~$ sudo apt update
El paquete que necesitamos es squid, que instalaremos con la herramienta apt:
~$ sudo apt install -y squid
Al terminar la descarga e instalación de Squid y sus dependencias se crea un nuevo servicio en Ubuntu 18.04, llamado squid.service o squid, que queda en ejecución y habilitado para iniciar automáticamente con cada arranque del sistema.
Puedes comprobar el estado del servicio Squid en cada momento con el comando systemctl status squid
:
El servicio queda a la escucha en el puerto 3128 TCP.
Cómo configurar el firewall UFW para Squid en Ubuntu 18.04
Si tienes activado el firewall UFW en Ubuntu 18.04 necesitarás añadir una regla para permitir las conexiones desde la red. Es tan sencillo como lanzar el siguiente comando:
~$ sudo ufw allow squid
Comprobar Squid en Ubuntu 18.04
Para probar el nuevo servicio proxy de Squid desde alguna máquina de red debemos tener en cuenta que algunas aplicaciones usan una configuración de proxy personalizada, mientras que otras usan la configuración global del sistema.
Podemos configurar el navegador de alguna máquina en red y ajustar su configuración de conexión a través de proxy:
Una vez que tengamos configurada la aplicación o el sistema, podemos intentar acceder a algún servicio o ubicación en Internet. En este tutorial como ejemplo hemos configurado un navegador como Firefox y accedemos a nuestro propio sitio web:
Aunque no obtenemos la página web que hemos solicitado, sin embargo vemos que Squid sí esta funcionando, sólo hay que hacer algunos ajustes de configuración.
Cómo configurar Squid en Ubuntu 18.04
A la hora de configurar Squid en Ubuntu 18.04 debemos trabajar principalmente sobre el archivo squid.conf, ubicado en /etc/squid/.
Para dar acceso a los sistemas en red que configuramos anteriormente es necesario crear una acl (lista de control de acceso) y darle permiso de acceso explícitamente.
Editamos el archivo de configuración:
~$ sudo nano /etc/squid/squid.conf
Buscaremos la sección de las directivas acl para especificación de redes y añadiremos una nueva para nuestra propia red:
... # 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) machines acl mi_red_local src 192.168.1.0/24 ...
Hecho esto, permitiremos el acceso al servicio mediante una directiva http_access, que situaremos junto a la que permite el acceso a la máquina local Ubuntu 18.04 y antes de la que deniega el acceso a todas las demás:
... # 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 mi_red_local # And finally deny all other access to this proxy http_access deny all ...
Guardamos los cambios, cerramos el archivo y recargamos la configuración de Squid:
~$ sudo systemctl reload squid
Para probar la nueva configuración bastará con recargar el navegador con el que estábamos haciendo las pruebas:
¡Así de fácil!
Cómo bloquear sitios web con Squid
Es posible que quieras bloquear el acceso a ciertos sitios web, para lo que Squid facilita el uso de listas de sitios bloqueados. Comenzaremos creando un archivo con la lista de sitios que queremos bloquear:
~$ sudo nano /etc/squid/sitios-bloqueados.lst
Incluye el dominio de cualquier sitio que quieras bloquear:
.facebook.com .instagram.com .twitter.com
Guardado el archivo, editaremos squid.conf y crearemos una nueva acl de tipo dstdomain:
... #acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machi$ acl mi_red_local src 192.168.1.0/24 acl sitios_bloqueados dstdomain "/etc/squid/sitios-bloqueados.lst" ...
Igual que en la configuración anterior, una vez definida una acl tendremos que especificar qué queremos hacer con ella. Añadiremos una directiva http_access para denegar el acceso al contenido de esta acl, pero la colocaremos justo antes de la que definimos para permitir el acceso a nuestra red:
... http_access allow localhost http_access deny sitios_bloqueados http_access allow mi_red_local ...
Guardamos los cambios y recargamos el servicio:
~$ sudo systemctl reload squid
Intentamos acceder a un dominio prohibido y…
Cómo bloquear palabras en Squid
Puedes bloquear accesos también por palabras o, para ser más exactos, expresiones regulares.
Al igual que en el caso anterior, creamos un archivo para guardar las palabras y expresiones prohibidas:
~$ sudo nano /etc/squid/palabras_bloqueadas.lst
Con las palabras prohibidas que consideres necesarias:
torrent porn
Guardamos los cambios y editamos squid.conf, donde crearemos un acl nueva del tipo url_regex:
... acl sitios_bloqueados dstdomain "/etc/squid/sitios_bloqueados.lst" acl palabras_bloqueadas url_regex "/etc/squid/palabras_bloqueadas.lst" ...
Y crearemos la directiva http_access correspondiente para prohibir las palabras:
... http_access allow localhost http_access deny palabras_bloqueadas http_access deny sitios_bloqueados http_access allow mi_red_local ...
Guardamos los cambios, cerramos el archivo y recargamos la configuración de Squid:
~$ sudo systemctl reload squid
Podemos comprobar qué ocurre si accedemos a un sitio permitido:
Y veamos qué ocurre si accedemos a una dirección que contenga alguna de las palabras o expresiones prohibidas, por ejemplo la URL https://www.gamestorrents.nu:
Justo lo que esperábamos.
Conclusión
Ahora que sabes cómo instalar Squid en Ubuntu 18.04 LTS Bionic Beaver puedes proporcionar acceso a Internet a las máquinas de tu red que no tengan acceso directo, filtrando este acceso según tus necesidades.
¿Alguna duda o pregunta? ¿Tienes sugerencias de mejora de este artículo o crees que necesita actualización? ¿Tal vez quieras notificar algún error? Deja un comentario y le echaré un vistazo tan pronto como pueda.
¡Apoya comoinstalar.me!
Si ya tienes el servicio de proxy activado gracias a esta guía de instalación de Squid en Ubuntu 18.04 LTS es posible que te apetezca agradecérnoslo. En caso afirmativo, puedes hacerlo dejando tan solo 1 $ de propina para invitarme a una CocaCola desde PayPal:
¡Gracias!