Cómo instalar y configurar Squid Proxy en Ubuntu 18.04

27 feb 2021 6 min di lettura
Cómo instalar y configurar Squid Proxy en Ubuntu 18.04
Indice dei contenuti

Introducción

Squid es un proxy en caché completo que admite protocolos de red populares como HTTP, HTTPS, FTP y otros. Squid se utiliza principalmente para mejorar el rendimiento del servidor web al almacenar en caché las solicitudes repetidas, filtrar el tráfico web y acceder a contenido restringido geográficamente.

Este tutorial lo guiará a través del proceso de configuración de un proxy Squid en Ubuntu 18.04 y la configuración de los navegadores web Firefox y Google Chrome para usarlo.

Instalar Squid en Ubuntu

El paquete Squid se incluye en los repositorios predeterminados de Ubuntu 18.04. Para instalarlo, ingrese 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 que la instalación fue exitosa y que el servicio Squid se está ejecutando, escriba el siguiente comando que imprimirá el estado del servicio:

sudo systemctl status squid

Debería recibir un mensaje de salida similar al siguiente:

● squid.service - LSB: Squid HTTP Proxy version 3.x
 Loaded: loaded (/etc/init.d/squid; generated)
 Active: active (running) since Wed 2020-01-08 12:15:21 CET; 9h ago
 Docs: man:systemd-sysv-generator(8)
 Tasks: 5 (limit: 2299)
 CGroup: /system.slice/squid.service
 ├─23948 /usr/sbin/squid -YC -f /etc/squid/squid.conf
 ├─23950 (squid-1) -YC -f /etc/squid/squid.conf
 ├─23951 (logfile-daemon) /var/log/squid/access.log
 ├─23952 (pinger)
 └─23965 (basic_ncsa_auth) /etc/squid/htpasswd

 Jan 08 12:15:21 TEST-SERVER-1 systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
 Jan 08 12:15:21 TEST-SERVER-1 squid[23898]: * Starting Squid HTTP Proxy squid
 Jan 08 12:15:21 TEST-SERVER-1 squid[23898]:...done.....

Configurar Squid

Squid se puede configurar editando el archivo /etc/squid/squid.conf También puede usar archivos separados con opciones de configuración que se pueden incluir usando la directiva include.

El archivo de configuración contiene comentarios que describen lo que hace cada opción de configuración.

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 editar el archivo, ábralo 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

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

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

En Squid, puede controlar cómo los clientes pueden acceder a los recursos web mediante las listas de control de acceso (ACL).

De forma predeterminada, Squid solo permite el acceso desde el host local.

Si todos los clientes que usarán el proxy tienen una dirección IP estática, puede crear una ACL que incluirá las direcciones IP permitidas.

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

sudo nano /etc/squid/allowed_ips.txt

Agregue una o más direcciones IP:

192.168.22.22
 # All other allowed IPs

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

Una vez hecho esto, abra el archivo de configuración principal y cree una nueva ACL llamada allowed_ips y permita el acceso a esa ACL usando la directiva http_access

sudo nano /etc/squid/squid.conf

Agrega las siguientes líneas:

#...
 acl allowed_ips src "/etc/squid/allowed_ips.txt"
 #...
 #http_access allow localnet
 http_access allow localhost
 http_access allow allowed_ips
 http_access deny all

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

El orden de las http_access es importante. Asegúrese de agregar las líneas antes de 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 con 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

Squid puede usar diferentes backends, incluidos Samba, LDAP y autenticación básica HTTP para usuarios autenticados.

En este tutorial, configuraremos Squid para usar la autenticación básica. Es un método de autenticación simple integrado en el protocolo HTTP.

Usaremos openssl para generar las contraseñas y agregaremos el par de username:password /etc/squid/htpasswd usando el tee como se muestra a continuación.

1390fh19 un usuario llamado " alice " con la contraseña "1390fh19":

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

Debería recibir un resultado similar al siguiente:

alice:HDWEnTTbcud1A

Ahora que se creó el usuario, el siguiente paso es habilitar la autenticación básica HTTP e incluir el htpasswd.

Abra la configuración principal:

sudo nano /etc/squid/squid.conf

Agregue y edite parámetros como este:

#...
 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 crean una nueva ACL denominada autenticada y la última línea permite el acceso a los usuarios autenticados.

Reinicie el servicio Squid:

sudo systemctl restart squid

Configurar el firewall

Suponiendo que está utilizando UFW para administrar el firewall, debe abrir el puerto Squid. Para hacer esto, habilite el perfil "Squid " que incluye las reglas para los puertos Squid predeterminados.

sudo ufw allow 'Squid'

Para comprobar el tipo de estado:

sudo ufw status

La salida se verá así:

Status: active

 To Action From
 -- ------ ----
 22/tcp ALLOW Anywhere
 Squid ALLOW Anywhere
 22/tcp (v6) ALLOW Anywhere (v6)
 Squid (v6) ALLOW Anywhere (v6)

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 ⚙ 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 Manual proxy configuration
  • Ingrese la dirección IP del 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, 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 de Network Settings predeterminada, 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 ingresando la dirección IP del servidor en el que instaló Squid:

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"

Si hay algún problema, verifique que la ruta al archivo de inicio de Google Chrome sea correcta.

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, abra google.com y escriba " cuál es mi ip ". La IP que se muestra en el navegador debe ser la dirección IP de su servidor.

Conclusión

Ha aprendido cómo instalar Squid en Ubuntu 18.04 y cómo configurar su navegador para usarlo.

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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

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.