Squid es una aplicación de proxy basada en Linux con todas las funciones que se utiliza principalmente para filtrar el tráfico, la seguridad y las búsquedas de DNS. También se utiliza para mejorar el rendimiento del servidor web mediante el almacenamiento en caché de recursos. En términos simples, un servidor Squid es una computadora que actúa como intermediario entre una computadora de escritorio e Internet que redirige las solicitudes entrantes de los clientes a un servidor donde se almacenan los datos para facilitar su recuperación. Admite varios protocolos, incluidos HTTP, FTP, TLS, SSL, Internet Gopher y HTTPS.
En este tutorial, le mostraremos cómo instalar y configurar el servidor proxy Squid en el servidor Ubuntu 20.04.
Requisitos
- Un servidor con Ubuntu 20.04.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Antes de comenzar, deberá actualizar los paquetes de su sistema a la última versión. Puede actualizarlos con el siguiente comando:
apt-get update -y
Una vez que todos los paquetes estén actualizados, reinicie su sistema para aplicar los cambios.
Instalar Squid Proxy
De forma predeterminada, el paquete Squid está disponible en el repositorio predeterminado de Ubuntu 20.04. Puedes instalarlo usando el siguiente comando:
apt-get install squid -y
Una vez que Squid está instalado, puede verificar el estado del servicio 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 Sun 2020-08-23 12:00:24 UTC; 11s ago Docs: man:squid(8) Process: 49265 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS) Process: 49282 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS) Main PID: 49283 (squid) Tasks: 4 (limit: 2353) Memory: 16.4M CGroup: /system.slice/squid.service ??49283 /usr/sbin/squid -sYC ??49285 (squid-1) --kid squid-1 -sYC ??49287 (logfile-daemon) /var/log/squid/access.log ??49288 (pinger) Aug 23 12:00:24 ubuntu2004 squid[49285]: Max Swap size: 0 KB Aug 23 12:00:24 ubuntu2004 squid[49285]: Using Least Load store dir selection Aug 23 12:00:24 ubuntu2004 squid[49285]: Set Current Directory to /var/spool/squid Aug 23 12:00:24 ubuntu2004 squid[49285]: Finished loading MIME types and icons. Aug 23 12:00:24 ubuntu2004 squid[49285]: HTCP Disabled. Aug 23 12:00:24 ubuntu2004 squid[49285]: Pinger socket opened on FD 14 Aug 23 12:00:24 ubuntu2004 squid[49285]: Squid plugin modules loaded: 0 Aug 23 12:00:24 ubuntu2004 squid[49285]: Adaptation support is off. Aug 23 12:00:24 ubuntu2004 squid[49285]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9 Aug 23 12:00:25 ubuntu2004 squid[49285]: storeLateRelease: released 0 objects
De forma predeterminada, Squid escucha en el puerto 3128. Puede verificarlo con el siguiente comando:
netstat -plunt | grep 3128
Debería ver el siguiente resultado:
tcp6 0 0 :::3128 :::* LISTEN 50017/(squid-1)
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar autenticación basada en IP
Hay varias formas de restringir el acceso del cliente a Internet. En esta sección, configuraremos Squid para que se autentique según la dirección IP del Cliente.
Puede hacerlo editando el archivo de configuración predeterminado de Squid:
nano /etc/squid/squid.conf
Agregue la siguiente línea al principio del archivo:
acl client1 src 192.168.10.10 acl client2 src 192.168.10.11 http_access allow client1 client2
Guarde y cierre el archivo cuando haya terminado. Luego reinicie el servicio Squid para aplicar los cambios:
systemctl restart squid
Dónde:
- cliente1 y cliente2 es el nombre que identificó los equipos cliente.
192.168.10.10 y 192.168.10.11 es la dirección IP de la computadora cliente.
Ahora, solo las computadoras que están configuradas con IP 192.168.10.10 y 192.168.10.11 pueden acceder a Internet.
Configurar la autenticación basada en el usuario
También puede configurar Squid para autenticarse según el usuario y la contraseña. Para hacerlo, deberá instalar el paquete de utilidades de Apache en su sistema.
Ejecute el siguiente comando para instalar el paquete de utilidades de Apache:
apt install apache2-utils -y
Una vez instalado, crea un primer usuario con el siguiente comando:
htpasswd /etc/squid/passwd client1
Se le pedirá que establezca una contraseña como se muestra a continuación:
New password: Re-type new password: Adding password for user client1
A continuación, cree un segundo usuario con el siguiente comando:
htpasswd /etc/squid/passwd client2
Establezca su contraseña como se muestra a continuación:
New password: Re-type new password: Adding password for user client2
A continuación, puede verificar a ambos usuarios con el siguiente comando:
cat /etc/squid/passwd
Deberías obtener el siguiente resultado:
client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/ client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0
A continuación, abra el archivo de configuración predeterminado de Squid:
nano /etc/squid/squid.conf
Elimine las tres primeras líneas que agregó en la sección anterior y agregue las siguientes líneas al principio del archivo:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Guarde y cierre el archivo. Luego, reinicie el servicio de proxy Squid para aplicar los cambios:
systemctl restart squid
Ahora, deberá proporcionar un nombre de usuario y una contraseña para poder acceder a Internet.
Configurar autenticación combinada
También puede configurar un Squid para autenticar a un cliente según la dirección IP y el nombre de usuario/contraseña.
Abra el archivo de configuración predeterminado de Squid:
nano /etc/squid/squid.conf
Busque las siguientes líneas que ha agregado en la sección anterior:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Y reemplácelos con las siguientes líneas:
acl client1 src 192.168.10.10 acl client2 src 192.168.10.11 auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow client1 client2 ncsa_users
Guarde y cierre el archivo cuando haya terminado, luego reinicie el servicio Squid para aplicar los cambios:
systemctl restart squid
Configurar Squid para anonimizar el tráfico
A continuación, deberá agregar algunas reglas para enmascarar las direcciones IP de los clientes de los servidores que reciben tráfico de su proxy Squid HTTP.
Puede hacerlo editando el archivo de configuración predeterminado de Squid:
nano /etc/squid/squid.conf
Agregue las siguientes líneas al principio del archivo:
forwarded_for off request_header_access Allow allow all request_header_access Authorization allow all request_header_access WWW-Authenticate allow all request_header_access Proxy-Authorization allow all request_header_access Proxy-Authenticate allow all request_header_access Cache-Control allow all request_header_access Content-Encoding allow all request_header_access Content-Length allow all request_header_access Content-Type allow all request_header_access Date allow all request_header_access Expires allow all request_header_access Host allow all request_header_access If-Modified-Since allow all request_header_access Last-Modified allow all request_header_access Location allow all request_header_access Pragma allow all request_header_access Accept allow all request_header_access Accept-Charset allow all request_header_access Accept-Encoding allow all request_header_access Accept-Language allow all request_header_access Content-Language allow all request_header_access Mime-Version allow all request_header_access Retry-After allow all request_header_access Title allow all request_header_access Connection allow all request_header_access Proxy-Connection allow all request_header_access User-Agent allow all request_header_access Cookie allow all request_header_access All deny all
Guarde y cierre el archivo cuando haya terminado, luego reinicie el servicio Squid para aplicar los cambios:
systemctl restart squid
Verificar Squid Proxy
A continuación, deberá definir su servidor Proxy en su navegador web Mozilla.
Vaya al sistema cliente, abra el navegador web Mozilla y haga clic en Editar => Preferencias como se muestra a continuación:
Haga clic en Red Configuración y haga clic en Configuración . Debería ver la siguiente página:
Seleccione el Manual representante configuración botón de radio, ingrese la dirección IP de su servidor Squid en el campo Host HTTP y 3128 en el campo Puerto y seleccione la casilla de verificación Usar este servidor proxy para todos los protocolos y haga clic en Aceptar botón para guardar la configuración.
Ahora, su navegador está configurado para navegar por Internet a través del proxy Squid.
Para verificarlo, escriba la URL https://www.whatismyip.com/. Se le pedirá que proporcione un nombre de usuario y una contraseña como se muestra a continuación:
Proporcione el nombre de usuario y la contraseña del servidor proxy de Squid que creó anteriormente y haga clic en Aceptar. botón. Debería ver la siguiente página:
En la página anterior, debería ver la dirección IP de su servidor Squid en lugar de la dirección IP de su computadora cliente.
Conclusión
¡Felicidades! Ha instalado y configurado con éxito el servidor proxy Squid en el servidor Ubuntu 20.04. También puede configurar el proxy Squid para restringir el sitio web específico según la palabra, el dominio y las direcciones IP. Para obtener más información, visite la documentación oficial de Squid.