Cómo instalar y configurar Squid Proxy en Ubuntu 20.04

1 mar 2021 6 min di lettura
Cómo instalar y configurar Squid Proxy en Ubuntu 20.04
Indice dei contenuti

Introducción

Squid es un proxy de almacenamiento en caché completo que admite protocolos de red populares como HTTP, HTTPS, FTP y otros. Se puede utilizar para mejorar el rendimiento del servidor web almacenando en caché las solicitudes repetidas, filtrando el tráfico web y accediendo a contenido restringido geográficamente.

Este tutorial explica cómo configurar un proxy Squid en Ubuntu 20.04 LTS Focal Fossa y configurar los navegadores web Firefox y Google Chrome para usarlo.

Si desea instalar Squid Proxy en un servidor remoto, siga leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar Squid en Ubuntu

El paquete squid se incluye en los repositorios estándar de Ubuntu 20.04 LTS. Para instalarlo, ejecute los siguientes comandos como usuario sudo:

sudo apt update
sudo apt install squid

Una vez que se complete la instalación, el servicio Squid se iniciará automáticamente. Para verificar esto, verifique el estado del servicio:

sudo systemctl status squid

La salida se verá así:

● squid.service - Squid Web Proxy Server
 Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
 Active: active (running) since Sat 2020-10-24 12:49:04 CEST; 15s ago
 Docs: man:squid(8)
 Main PID: 166072 (squid)
 Tasks: 4 (limit: 2286)
 Memory: 15.9M...

Configurar Squid

El servicio squid se puede configurar editando el archivo /etc/squid/squid.conf El archivo de configuración contiene comentarios que describen lo que hace cada opción de configuración. También puede poner las opciones de configuración en archivos separados, que se pueden incluir en el archivo de configuración principal mediante la directiva "incluir".

Antes de realizar cualquier cambio, se recomienda hacer una copia de seguridad del archivo de configuración original:

sudo cp /etc/squid/squid.conf{,.orginal}

Para comenzar a configurar su instancia de squid, abra el archivo en su editor de texto:

sudo nano /etc/squid/squid.conf

De forma predeterminada, squid está configurado para escuchar en el puerto 3128 en todas las interfaces de red del servidor.

Si desea cambiar el puerto y configurar una interfaz de escucha, ubique la línea que comienza con http_port y especifique la dirección IP de la interfaz y el nuevo puerto. Si no se especifica ninguna interfaz, Squid escuchará en todas las interfaces.

# Squid normally listens to port 3128
 http_port IP_ADDR:PORT
/etc/squid/squid.conf

Ejecutar Squid en todas las interfaces y el puerto predeterminado debería estar bien para la mayoría de los usuarios.

Squid le permite controlar cómo los clientes pueden acceder a los recursos web mediante listas de control de acceso (ACL). De forma predeterminada, el acceso solo se permite desde el host local.

Si todos los clientes que utilizan el proxy tienen una dirección IP estática, la opción más sencilla para restringir el acceso al servidor proxy es crear una ACL que incluya las direcciones IP permitidas. De lo contrario, puede configurar squid para usar la autenticación.

En lugar de agregar las direcciones IP en el archivo de configuración principal, cree un nuevo archivo dedicado que contendrá las IP permitidas:

sudo nano /etc/squid/allowed_ips.txt
192.168.11.11
 # All other allowed IPs
permitido_ips.txt

Una vez hecho esto, abra el archivo de configuración principal y crear una nueva ACL nombradas allowed_ips la adición de acl allowed_ips src "/etc/squid/allowed_ips.txt" y permitir el acceso a la ACL utilizando el http_access Directiva añadiendo http_access allow allowed_ips como se muestra a continuación:

 
#...
 acl allowed_ips src "/etc/squid/allowed_ips.txt"
 #...

 
#http_access allow localnet
 http_access allow localhost
 http_access allow allowed_ips
 # And finally deny all other access to this proxy
 http_access deny all

El orden de las http_access es importante. Asegúrese de agregar la primera línea http_access deny all.

La http_access funciona de manera similar a las reglas de firewall. Squid lee las reglas de arriba a abajo y cuando una regla coincide, las siguientes reglas no se procesan.

Siempre que se realicen cambios en el archivo de configuración, el servicio Squid debe reiniciarse para que los cambios surtan efecto:

sudo systemctl restart squid

Autenticación de Squid

Si limitar el acceso por IP no funciona para su caso de uso, puede configurar squid para usar un backend para autenticar usuarios. Squid admite autenticación básica de Samba, LDAP y HTTP.

En esta guía usaremos autenticación básica. Es un método de autenticación simple integrado en el protocolo HTTP.

Para generar una contraseña cifrada, utilice la herramienta openssl El siguiente comando agrega el par USERNAME:PASSWORD /etc/squid/htpasswd:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

Por ejemplo, para crear un alice usuario con contraseña 1390fh19, debe ejecutar:

printf "alice:$(openssl passwd -crypt '1390fh19')\n" | sudo tee -a /etc/squid/htpasswd
alice:6cUiorPyrNGN6

El siguiente paso es habilitar la autenticación básica HTTP e incluir el archivo que contiene las credenciales del usuario en el archivo de configuración de squid.

Abra la configuración principal y agregue o edite las siguientes líneas resaltadas:

sudo nano /etc/squid/squid.conf
 
#...
 auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
 auth_param basic realm proxy
 acl authenticated proxy_auth REQUIRED
 #...

 
#...
 #http_access allow localnet
 http_access allow localhost
 http_access allow authenticated
 # And finally deny all other access to this proxy
 http_access deny all

Las primeras tres líneas resaltadas crean una nueva ACL denominada authenticated y la última línea resaltada permite el acceso a los usuarios autenticados.

Reinicie el servicio Squid:

sudo systemctl restart squid

Configurar el firewall

Para abrir los puertos Squid, habilite el UFW "Squid":

sudo ufw allow 'Squid'

Si Squid se está ejecutando en otro puerto no predeterminado, por ejemplo, 8888, puede permitir el tráfico en ese puerto con:

sudo ufw allow 8888/tcp

Configurar el navegador para usar el proxy

Ahora que ha configurado Squid, el último paso es configurar su navegador favorito para usarlo.

Firefox

Los pasos a continuación son los mismos para Windows, macOS y Linux.

  1. En la esquina superior derecha, clic en el ícono de hamburguesa ☰ para abrir el menú de Firefox:
  2. Haga clic en el enlace ⚙ Preferences
  3. Desplácese hacia abajo hasta la Network Settings y haga clic en el botón Settings...

Una nueva ventana se abrirá.

  • Seleccione el botón de Manual proxy configuration
  • Ingrese la dirección IP de su servidor Squid en el campo HTTP Host 3128 en el campo Port
  • Seleccione la casilla de verificación Use this proxy server for all protocols
  • Haga clic en el OK para guardar la configuración.

En este punto, su Firefox está configurado y puede navegar por Internet a través del proxy Squid. Para verificar esto, abra google.com, escriba "cuál es mi ip" y debería ver la dirección IP de su servidor Squid.

Para restaurar la configuración predeterminada, vaya a Network Settings, seleccione el Use system proxy settings y guarde la configuración.

Hay varios complementos que también pueden ayudarlo a configurar los ajustes de proxy de Firefox, como FoxyProxy.

Google Chrome

Google Chrome utiliza la configuración de proxy del sistema predeterminada. En lugar de cambiar la configuración del proxy del sistema operativo, puede usar un complemento como SwitchyOmega o iniciar el navegador web Chrome desde la línea de comandos.

Para iniciar Chrome usando un nuevo perfil y conectarse al servidor Squid, use el siguiente comando:

Linux:

/usr/bin/google-chrome \
 --user-data-dir="$HOME/proxy-profile" \
 --proxy-server="http://SQUID_IP:3128"

Mac OS:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
 --user-data-dir="$HOME/proxy-profile" \
 --proxy-server="http://SQUID_IP:3128"

Ventanas:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
 --user-data-dir="%USERPROFILE%\proxy-profile" ^
 --proxy-server="http://SQUID_IP:3128"

El perfil se creará automáticamente si no existe. De esta forma, puede ejecutar varias instancias de Chrome al mismo tiempo.

Para confirmar que el servidor proxy funciona correctamente, abre google.com y escribe "cuál es mi ip". La IP que se muestra en su navegador debe ser la dirección IP de su servidor.

Conclusión

Squid es uno de los servidores de caché proxy más populares. Mejora la velocidad del servidor web y puede ayudarlo a restringir el acceso de los usuarios a Internet.

Le hemos mostrado cómo instalar y configurar Squid en Ubuntu 20.04 LTS Focal Fossa y cómo configurar su navegador para usarlo.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.