Squid es un servidor proxy web de almacenamiento en caché y reenvío para sistemas operativos basados en Linux.
Es compatible con los protocolos HTTP, HTTPS y FTP y se utiliza para mejorar el rendimiento del servidor web almacenando en caché solicitudes repetidas. También se utiliza para controlar el acceso a Internet y proteger tu red de tráfico desconocido.
Generalmente, se coloca un servidor proxy entre el cliente e Internet. Todas las solicitudes de la máquina cliente se enrutan a través de un servidor proxy.
Características
Squid tiene las siguientes características principales:
- Acelera el rendimiento del servidor web.
- Comparte la conexión a Internet en la red local.
- Filtra el tráfico de Internet según las reglas.
- Oculta tu dirección IP real.
En este tutorial te mostraremos cómo configurar un servidor proxy con Squid en Debian 10.
Requisitos
Para seguir este tutorial, necesitarás:
- Un sistema corriendo con Debian 10.
- Un sistema de escritorio con Firefox instalado.
Ok, ¡comencemos!
Instala Squid Proxy
Por defecto, el paquete Squid se incluye en el repositorio predeterminado de Debian 10. Puedes instalarlo ejecutando el siguiente comando:
# apt install squid -y
Una vez que se haya instalado Squid, inicia el servicio Squid y habilítealo para que se inicie al reiniciar el sistema:
# systemctl start squid
# systemctl enable squid
Puedes verificar el estado del Squid con el siguiente comando:
# systemctl status squid
Deberías obtener el siguiente resultado:
● squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-01-20 05:05:54 UTC; 40s ago
Docs: man:squid(8)
Main PID: 1343 (squid)
Tasks: 4 (limit: 2359)
Memory: 16.1M
CGroup: /system.slice/squid.service
├─1343 /usr/sbin/squid -sYC
├─1345 (squid-1) --kid squid-1 -sYC
├─1346 (logfile-daemon) /var/log/squid/access.log
└─1362 (pinger)
Jan 20 05:05:54 debian10 squid[1345]: Using Least Load store dir selection
Jan 20 05:05:54 debian10 squid[1345]: Set Current Directory to /var/spool/squid
Jan 20 05:05:54 debian10 squid[1345]: Finished loading MIME types and icons.
Jan 20 05:05:54 debian10 systemd[1]: /lib/systemd/system/squid.service:7: PIDFile= references path below legacy directory /var/run/, updating /
Jan 20 05:05:54 debian10 squid[1345]: HTCP Disabled.
Jan 20 05:05:54 debian10 squid[1345]: Pinger socket opened on FD 14
Jan 20 05:05:54 debian10 squid[1345]: Squid plugin modules loaded: 0
Jan 20 05:05:54 debian10 squid[1345]: Adaptation support is off.
Jan 20 05:05:54 debian10 squid[1345]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9
Jan 20 05:05:55 debian10 squid[1345]: storeLateRelease: released 0 objects
Cambia el Puerto por defecto de Squid
Por defecto, Squid escucha en el puerto 3128. Puedes verificarlo con el siguiente comando:
# ss -antpl | grep 3128
Deberías ver el siguiente resultado, si no te sale es muy probable que sea porque tengas el puerto cerrado en el Firewall:
LISTEN 0 128 *:3128 *:* users: ("squid",pid=1345,fd=12))
Puedes cambiar el puerto por defecto de Squid editando el archivo /etc/squid/squid.conf.
# nano /etc/squid/squid.conf
Cambia la siguiente línea con el puerto deseado:
http_port 3128
Guarda y cierra el archivo y después reinicia el servicio de Squid para aplicar los cambios:
# systemctl restart squid
Aviso
Recuerda que debes abrir el puerto 3128 en el firewall del servidor.
Configura Squid para permitir todo el tráfico
Por defecto, el servidor proxy de Squid rechaza todo el tráfico entrante, por lo que tendrás que permitir todo el tráfico en el servidor proxy.
Para ello, tienes que editar el archivo de configuración principal de Squid:
# nano/etc/squid/squid.conf
Comenta la línea http_access deny all y añade el http_access allow all como se muestra más abajo:
http_access allow all
http_access deny all
Guarda y cierra el archivo y después reinicia el servicio Squid para aplicar los cambios:
# systemctl restart squid
Bloqueo de algunos Sitios Web
Si estás utilizando el servidor proxy Squid en tu red interna para compartir Internet, es una buena idea bloquear algunos sitios web.
Puede hacerlo editando el archivo de configuración principal de Squid:
nano /etc/squid/squid.conf
Agrega la siguiente línea justo encima de "permitir todas las reglas" para bloquear los sitios web facebook.com y yahoo.com:
acl backlist1 dstdomain facebook.com
acl backlist2 dstdomain yahoo.com
http_access deny backlist1
http_access deny backlist2
Guarda y cierra el archivo y después reinicia el servicio Squid para aplicar los cambios:
# systemctl restart squid
Configura el navegador del cliente para usar Proxy
A continuación, deberás configurar el navegador web Firefox en cada PC cliente para utilizar el servidor proxy Squid.
Sigue los pasos a continuación para configurar el proxy en el navegador web Firefox:
Paso 1: abre el navegador web Firefox. En la esquina superior derecha, haz clic en el icono "hamburguesa" => Preferencias. Deberías ver la siguiente pantalla:
Paso 2: desplázate hacia abajo hasta la sección "Configuración de red" y haz clic en "Configuración". Deberías ver la siguiente pantalla:
Paso 3: selecciona "Configuración manual del proxy" y proporciona la IP y el puerto de tu servidor proxy, luego seleccione la casilla de verificación "Usar este servidor proxy para todos los protocolos" y haz clic en el botón "OK" para guardar la configuración.
Realiza los pasos anteriores en todos los navegadores del cliente.
Prueba el Proxy de Squid
En este punto, tu navegador web está configurado para usar el servidor proxy Squid.
Ahora abre tu navegador web y accede a la URL https://whatismyipaddress.com/. Debería ver la dirección IP de tu servidor proxy en la siguiente pantalla:
Ahora intenta acceder a http://facebook.com y http://yahoo.com/ en tu navegador web. Deberías obtener el error de acceso denegado como se muestra a continuación:
Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites, consúltanos!