En esta guía comprensiva, le guiaremos a través del proceso de instalación y configuración del Servidor Proxy Squid en un servidor Rocky Linux o Alma Linux 9. Cubriremos todo, desde la configuración inicial hasta las configuraciones avanzadas, asegurando que tenga un sólido entendimiento de cómo aprovechar efectivamente Squid Proxy.
Prerrequisitos
Antes de sumergirnos en el proceso de instalación y configuración, asegurémonos de tener todos los prerrequisitos necesarios:
- Un servidor ejecutando Rocky Linux 9 o Alma Linux 9.
- Una cuenta de usuario no root con privilegios sudo.
Asegúrese de que su sistema esté actualizado ejecutando el siguiente comando:
sudo dnf update
Además, necesitaremos instalar algunos paquetes de utilidades básicas. Aunque algunos de ellos pueden ya estar instalados, es una buena práctica asegurarse de que estén disponibles:
sudo dnf install wget curl nano unzip yum-utils -y
Con los prerrequisitos resueltos, podemos proceder a la instalación de Squid Proxy.
Paso 1 – Instalación de Squid Proxy
Para instalar Squid Proxy, necesitamos habilitar primero el repositorio Epel. Ejecute el siguiente comando para instalar el repositorio:
sudo dnf install epel-release
Una vez instalado el repositorio, podemos proceder con la instalación de Squid Proxy:
sudo dnf install squid
Para verificar que Squid Proxy se ha instalado correctamente, ejecute el siguiente comando:
squid --version
Debería ver la versión de Squid Cache y otra información relevante.
A continuación, necesitamos habilitar y empezar el servicio Squid:
sudo systemctl enable squid --now
Para revisar el estado del servicio, utilice el siguiente comando:
sudo systemctl status squid
Esto mostrará el estado actual del servicio Squid e indicará si está en ejecución.
Paso 2 – Configuración de Squid Proxy
Ahora que Squid Proxy está instalado, es momento de configurarlo según sus necesidades. Squid almacena su configuración en el archivo /etc/squid/squid.conf. Empecemos echando un vistazo al contenido de este archivo:
sudo grep -vE "^#|^$" /etc/squid/squid.conf
Este comando filtra todos los comentarios y líneas vacías, proporcionándole una vista clara de la configuración.
2.1 Configuración de políticas de acceso Squid
Las Listas de Control de Acceso (ACL) definen quién puede usar Squid como un proxy en su red local. Para configurar las ACL, podemos añadir reglas al archivo de configuración. Por ejemplo, para permitir el acceso a los hosts en la subred 192.168.204.0/24, agregue la siguiente regla ACL:
acl newlocalnet src 192.168.204.0/24
Para permitir el acceso a esta ACL, añada la siguiente línea debajo de la línea http_access deny all:
http_access allow newlocalnet
Recuerde que Squid lee el archivo de configuración de arriba a abajo, por lo que el orden de las reglas es importante.
2.2 Bloqueo de sitios web
Squid Proxy le permite bloquear el acceso a sitios web específicos creando una lista de dominios bloqueados. Para hacer esto, cree un archivo para almacenar los dominios que desea bloquear:
sudo nano /etc/squid/blocked-sites
Añada los sitios web que quiere bloquear a este archivo, un dominio por línea. Por ejemplo:
example.com example.net example.org
Guarde el archivo y luego abra el archivo de configuración de Squid:
sudo nano /etc/squid/squid.conf
Añada las siguientes líneas al archivo de configuración:
acl blocked_sites dstdomain "/etc/squid/blocked-sites"
http_access deny blocked_sites
Esto negará el acceso a cualquier sitio web listado en el archivo blocked-sites.
2.3 Bloquear descargas de archivos específicos
Además de bloquear sitios web, Squid Proxy también puede bloquear descargas de tipos de archivos específicos. Para lograr esto, necesitamos crear un archivo para almacenar las extensiones de archivo que queremos bloquear:
sudo nano /etc/squid/blocked-filextensions
En este archivo, liste las extensiones de archivo que desea bloquear, una extensión por línea. Por ejemplo:
.exe(?.*)?$ .bat(?.*)?$ .tar(?.*)?$ .mp3(?.*)?$ .mp4(?.*)?$
Guarde el archivo y abra el archivo de configuración de Squid:
sudo nano /etc/squid/squid.conf
Añada las siguientes líneas al archivo de configuración:
acl blockfiles urlpath_regex -i "/etc/squid/blocked-filextensions" http_access deny blockfiles
Esto negará la descarga de cualquier archivo con una extensión coincidente.
2.4 Bloquear sitios web utilizando palabras clave
Otra forma de controlar el acceso a sitios web es bloqueándolos basándose en palabras clave. Para implementar esto, necesitamos crear un archivo de configuración para almacenar las palabras clave que queremos bloquear:
sudo nano /etc/squid/banned-keywords
En este archivo, liste las palabras clave que desea bloquear, una palabra clave por línea. Por ejemplo:
porn gamble ads movie
Guarde el archivo y haga los siguientes cambios en el archivo de configuración de Squid:
acl keyword-ban url_regex "/etc/squid/banned-keywords" http_access deny keyword-ban
Esto negará el acceso a cualquier sitio web que contenga una palabra clave bloqueada.
2.5 Máscara de la dirección IP del cliente
Para anonimizar el tráfico y proteger la dirección IP del cliente, podemos configurar Squid Proxy para ocultarla. Añada las siguientes líneas al archivo de configuración de Squid:
via off forwarded_for off
Estas líneas desactivan los encabezados Via y X-Forwarded-For, evitando que la dirección IP del cliente sea expuesta.
2.6 Cambiar el puerto del Proxy Squid
Por defecto, Squid Proxy escucha en el puerto 3128. Si desea cambiar el puerto, puede hacerlo modificando el archivo de configuración de Squid. Abra el archivo para editar:
sudo nano /etc/squid/squid.conf
Localice la línea http_port 3128 y reemplácela por el número de puerto deseado. Por ejemplo:
http_port 7035
Guarde el archivo y valide la configuración:
sudo squid -k parse
Este comando verifica el archivo de configuración en busca de cualquier error.
Finalmente, reinicie el servicio Squid para que los cambios surtan efecto:
sudo systemctl restart squid
2.7 Configurar Firewall / SELinux
Si está utilizando el puerto predeterminado (3128), necesita permitirlo a través del firewall:
sudo firewall-cmd --add-service=squid --permanent sudo firewall-cmd --reload
Si ha habilitado un puerto personalizado, utilice los siguientes comandos en su lugar. Reemplace [port_number] con el número de puerto personalizado:
sudo firewall-cmd --permanent --add-port=[port_number]/tcp sudo firewall-cmd --reload
También necesita habilitar el puerto personalizado en SELinux utilizando el siguiente comando:
sudo semanage port -a -t squid_port_t -p tcp [port_number]
Con el servidor Squid Proxy configurado según sus especificaciones, es hora de configurar la autenticación básica para mayor seguridad.
Paso 3 – Configuración de la autenticación básica para Squid
Para configurar Squid Proxy para aceptar autenticación, utilizaremos la utilidad htpasswd del paquete de herramientas de Apache. Instale el paquete ejecutando el siguiente comando:
sudo dnf install httpd-tools
A continuación, cree un par de nombre de usuario y contraseña utilizando el siguiente comando:
sudo htpasswd -c /etc/squid/squid_passwd shapehost
Se le pedirá que introduzca y confirme la contraseña.
Para asegurarse de que Squid pueda leer el archivo de contraseñas, cambie la propiedad del archivo al usuario Squid:
sudo chown squid /etc/squid/squid_passwd
Ahora que hemos configurado el archivo de contraseñas, necesitamos configurar Squid para usarlo para la autenticación. Abra el archivo de configuración de Squid:
sudo nano /etc/squid/squid.conf
Añada las siguientes líneas al archivo de configuración:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Estas líneas configuran Squid para utilizar el programa auxiliar basic_ncsa_auth y especifican la ubicación del archivo de contraseñas.
Para habilitar la autenticación, reinicie el servicio Squid:
sudo systemctl restart squid
Con la autenticación básica en su lugar, sólo los usuarios con credenciales válidas podrán acceder al servidor Proxy Squid.
Paso 4 – Configuración de clientes Proxy Squid
Ahora que Squid Proxy está en funcionamiento, veamos cómo configurar los clientes para que se conecten al servidor proxy.
4.1 Configuración del Proxy en todo el sistema
Para configurar Squid Proxy para que funcione en todo su sistema, puede crear un archivo que defina la configuración del proxy. Abra el archivo para editarlo:
sudo nano /etc/profile.d/squid.sh
Añada las siguientes líneas al archivo, reemplazando 192.168.205.10:7035 por la dirección IP y el puerto de su servidor Proxy Squid:
PROXY_URL="192.168.205.10:7035" HTTP_PROXY=$PROXY_URL HTTPS_PROXY=$PROXY_URL FTP_PROXY=$PROXY_URL http_proxy=$PROXY_URL https_proxy=$PROXY_URL ftp_proxy=$PROXY_URL export HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy
Guarde el archivo y úselo para aplicar los cambios:
source /etc/profile.d/squid.sh
Para verificar la configuración, puede usar el comando wget para hacer una solicitud a un sitio web:
wget google.com
Si la solicitud se realiza con éxito, significa que la configuración del proxy está funcionando.
4.2 Configuración del Proxy en el Navegador
Para configurar Squid Proxy en navegadores web como Firefox o Chrome, puede utilizar extensiones de navegador que soporten la configuración del proxy. Una extensión popular para Firefox es “FoxyProxy Standard”, y para Chrome, puede utilizar “Proxy SwitchOmega”.
Vamos a ver cómo configurar Squid Proxy utilizando la extensión FoxyProxy Standard para Firefox.
- Instale la extensión FoxyProxy Standard desde la tienda de complementos de Firefox.
- Una vez instalado, abra las opciones de la extensión haciendo clic en el icono de FoxyProxy en la barra de herramientas de Firefox y seleccionando “Opciones”.
- En las opciones de FoxyProxy, haga clic en el botón “Añadir” para crear una nueva configuración de proxy.
- Introduzca un nombre para la configuración del proxy, la dirección IP y el puerto de su servidor Proxy Squid, y cualquier detalle de autenticación si es necesario.
- Habilite la opción “No usar para localhost y direcciones IP intranet/privadas” para prevenir conflictos con recursos locales.
- Haga clic en “Guardar” para guardar la configuración.
Con la configuración del proxy establecida, ahora puede navegar por la web utilizando el servidor Proxy Squid.
4.3 Uso de Squidclient
Si prefiere probar el servidor Proxy Squid desde la línea de comandos, puede utilizar el comando squidclient. Este comando le permite hacer solicitudes web y ver la respuesta. Aquí tiene un ejemplo de cómo utilizarlo:
squidclient https://google.com
Esto hará una solicitud a https://google.com a través del servidor Proxy Squid y mostrará la respuesta.
Para las empresas que necesitan soluciones de hosting en la nube confiables, Shape.host ofrece servicios de Linux SSD VPS. Con Shape.host, puede disfrutar de una infraestructura de hosting escalable y segura, respaldada por soporte experto. Visite Shape.host para obtener más información sobre sus servicios.