Cómo instalar el servidor proxy Squid en Ubuntu 20.04
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 previos
- Un servidor con Ubuntu 20.04.
- Se configura una contraseña de root en el servidor.
Empezando
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 proxy de calamar
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 la 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 del equipo 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 Apache utils 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
Configure 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 primeras tres líneas que agregó en la sección anterior y agregue las siguientes líneas al comienzo 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 acceder a Internet.
Configurar la 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
Encuentre 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 proxy de calamar
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 el Editar => preferencias Como se muestra abajo:
Haga clic en el La red Ajustes sección y haga clic en el Ajustes. Deberías ver la siguiente página:
Selecciona el Manual apoderado configuración botón de opción, ingrese la dirección IP de su servidor Squid en el campo HTTP Host 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 el OK 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 su nombre de usuario y contraseña del servidor proxy Squid que ha creado anteriormente y haga clic en el OK botón. Deberías 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 el sitio web oficial de Squid. documentación.