Cómo instalar y configurar Squid Proxy en Linux Debian 10

27 feb 2021 5 min di lettura
Cómo instalar y configurar Squid Proxy en Linux Debian 10
Indice dei contenuti

Introducción

Squid es un proxy 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.

En este tutorial, explicaremos cómo configurar un proxy Squid en Debian 10 Buster. También veremos cómo configurar los navegadores web Firefox y Google Chrome para usarlo.

Instalación de Squid en Debian

El paquete Squid se incluye de serie en los repositorios de Debian 10. Ejecute los siguientes comandos como usuario sudo para instalar Squid.

Actualice la lista de paquetes de Debian 10:

sudo apt update

Instalar Squid:

sudo apt install squid

Una vez que se complete la instalación, el servicio Squid se iniciará automáticamente.

Verifique que la instalación fue exitosa y que el servicio Squid se está ejecutando verificando el estado del servicio Squid:

sudo systemctl status squid

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

● squid.service - Squid Web Proxy Server
 Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
 Active: active (running) since Sat 2019-09-07 16:28:25 CEST; 2min 10s ago
 Docs: man:squid(8)
 Process: 2287 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
 Process: 2290 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS)
 Main PID: 2291 (squid)
 Tasks: 4 (limit: 2301)
 Memory: 15.8M
 CGroup: /system.slice/squid.service
 ├─2291 /usr/sbin/squid -sYC
 ├─2294 (squid-1) --kid squid-1 -sYC
 ├─2295 (logfile-daemon) /var/log/squid/access.log
 └─2296 (pinger)...

Configurar Squid

Squid se puede configurar editando el archivo de configuración /etc/squid/squid.conf. Archivo de configuración Se puede incluir separado usando la directiva "include ".

El archivo de configuración squid.conf incluye comentarios que describen la utilidad de cada opción de configuración.

Antes de realizar cualquier cambio, siempre es recomendable hacer una copia de seguridad del archivo original:

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

Para cambiar la configuración, abra el archivo en su editor de texto:

sudo nano /etc/squid/squid.conf

De forma predeterminada, Squid escucha en el puerto 3128 en todas las interfaces de red.

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

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

Las listas de control de acceso (ACL) le permiten controlar cómo los clientes pueden acceder a los recursos Web. De forma predeterminada, Squid permite el acceso sólo desde el host local.

Si todos los clientes que utilizarán el proxy tienen una dirección IP estática, la opción más sencilla es crear una ACL que incluya las direcciones IP permitidas.

En lugar de agregar las direcciones IP al archivo de configuración principal, crearemos un nuevo archivo de inclusión que almacenará las direcciones IP.

Cree el archivo de configuración permitido_ips.txt:

sudo nano /etc/squid/allowed_ips.txt

Ingrese las direcciones IP:

192.168.30.1
 # All other allowed IPs

Una vez hecho esto, abra el archivo de configuración principal. Creó una nueva ACL llamada permitidos_ips, Permita el acceso a esta ACL usando la directiva http_access.

Abra el archivo de configuración principal nuevamente:

sudo nano /etc/squid/squid.conf

Incluya las siguientes líneas:

  • acl allowed_ips src "/etc/squid/allowed_ips.txt"
  • http_access permitir permitidos_ips
#...
 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 reglas es importante. Asegúrese de agregar las líneas antes de http_access deny all.

La directiva 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 Squid

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

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

Usaremos la utilidad openssl para generar contraseñas y agregar nombre de usuario: contraseña al archivo /etc /squid /htpasswd con el comando tee como se muestra a continuación:

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

Creemos un usuario llamado "buster" con la contraseña "1dk232_Z":

printf "buster:$(openssl passwd -crypt '1dk232_Z')\n" | sudo tee -a /etc/squid/htpasswd

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

buster:iWTMPC8kxGssA

El siguiente paso es habilitar la autenticación básica HTTP. Abra el archivo de configuración principal nuevamente:

sudo nano /etc/squid/squid.conf

Incluya las siguientes líneas:

  • auth_param programa básico /usr /lib /squid3 /basic_ncsa_auth /etc /squid /htpasswd
  • auth_param proxy de reino básico
  • ACL autenticado proxy_auth REQUERIDO
  • http_access permitir autenticado

Entonces:

#...
 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

Configuración del cortafuegos

Si no usa ningún firewall, omita estos pasos y vaya al párrafo siguiente.

Los usuarios de UFW pueden abrir el puerto 3128 habilitando el perfil 'Squid':

sudo ufw allow 'Squid'

Si está utilizando nftables para filtrar las conexiones a su sistema, abra los puertos necesarios ejecutando el siguiente comando:

Si Squid se está ejecutando en otro puerto no predeterminado, deberá permitir el tráfico en ese puerto.

Configurar el navegador para usar el proxy

En esta sección veremos cómo configurar su navegador para usar el proxy Squid.

Firefox

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

  • En la esquina superior derecha, haz clic en el ícono de hamburguesa ☰ para abrir el menú de Firefox:
  • Haga clic en el enlace ⚙ Preferencias.
  • Desplácese hacia abajo hasta la sección Configuración de red y haga clic en el botón Configuración...

Una nueva ventana se abrirá.

  • Seleccione el botón de opción Configuración manual del proxy.
  • Ingrese la dirección IP del servidor Squid en el campo de host HTTP y 3128 en el campo Puerto.
  • Seleccione la casilla de verificación Usar este servidor proxy para todos los protocolos.
  • Haga clic en el botón Aceptar 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 " find is my ip " y debería ver la dirección IP de su servidor Squid.

Para restaurar la configuración predeterminada, vaya a Configuración de red nuevamente, seleccione el botón Usar configuración de proxy del sistema y guarde la configuración.

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 verificar esto, abra google.com, escriba " find is my ip " y debería ver la dirección IP de su servidor Squid.

Conclusión

Hemos cubierto los conceptos básicos de cómo instalar y configurar Squid en Debian 10 y cómo usarlo en su navegador.

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.

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.