Capítulo 7. Configuración del servidor proxy de caché Squid
Squid es un servidor proxy que almacena en caché el contenido para reducir el ancho de banda y cargar las páginas web más rápidamente. Este capítulo describe cómo configurar Squid como proxy para el protocolo HTTP, HTTPS y FTP, así como la autenticación y la restricción de acceso.
7.1. Configuración de Squid como proxy de caché sin autenticación Copiar enlaceEnlace copiado en el portapapeles!
Esta sección describe una configuración básica de Squid como proxy de caché sin autenticación. El procedimiento limita el acceso al proxy basándose en rangos de IP.
Requisitos previos
-
El procedimiento asume que el archivo
/etc/squid/squid.confes el proporcionado por el paquetesquid. Si ha editado este archivo anteriormente, elimine el archivo y vuelva a instalar el paquete.
Procedimiento
Instale el paquete
squid:# yum install squidEdite el archivo
/etc/squid/squid.conf:Adapte las listas de control de acceso (ACL) de
localnetpara que coincidan con los rangos de IP a los que se debe permitir el uso del proxy:acl localnet src 192.0.2.0/24 acl localnet 2001:db8:1::/64Por defecto, el archivo
/etc/squid/squid.confcontiene la reglahttp_access allow localnetque permite utilizar el proxy desde todos los rangos de IP especificados en las ACLslocalnet. Tenga en cuenta que debe especificar todas las ACL delocalnetantes de la regla dehttp_access allow localnet.ImportanteElimine todas las entradas existentes en
acl localnetque no coincidan con su entorno.La siguiente ACL existe en la configuración por defecto y define
443como un puerto que utiliza el protocolo HTTPS:acl puertos_SSL puerto 443Si los usuarios deben poder utilizar el protocolo HTTPS también en otros puertos, añada una ACL para cada uno de estos puertos:
acl Puerto SSL port_numberActualice la lista de reglas de
acl Safe_portspara configurar a qué puertos puede establecer una conexión Squid. Por ejemplo, para configurar que los clientes que utilicen el proxy sólo puedan acceder a los recursos del puerto 21 (FTP), 80 (HTTP) y 443 (HTTPS), mantenga sólo las siguientes declaraciones deacl Safe_portsen la configuración:acl Safe_ports port 21 acl Safe_ports port 80 acl Safe_ports port 443Por defecto, la configuración contiene la regla
http_access deny !Safe_portsque define la denegación de acceso a los puertos que no están definidos en las ACL deSafe_ports.Configure el tipo de caché, la ruta del directorio de la caché, el tamaño de la caché y otros ajustes específicos del tipo de caché en el parámetro
cache_dir:cache_dir ufs /var/spool/squid 10000 16 256Con estos ajustes:
-
Squid utiliza el tipo de caché
ufs. -
Squid almacena su caché en el directorio
/var/spool/squid/. -
El caché crece hasta
10000MB. -
Squid crea
16subdirectorios de nivel 1 en el directorio/var/spool/squid/. Squid crea subdirectorios
256en cada directorio de nivel 1.Si no se establece una directiva
cache_dir, Squid almacena la caché en la memoria.
-
Squid utiliza el tipo de caché
Si establece un directorio de caché diferente a
/var/spool/squid/en el parámetrocache_dir:Crear el directorio de la caché:
# mkdir -p path_to_cache_directoryConfigure los permisos para el directorio de la caché:
# chown squid:squid path_to_cache_directorySi ejecuta SELinux en modo
enforcing, establezca el contextosquid_cache_tpara el directorio de la caché:# semanage fcontext -a -t squid_cache_t "path_to_cache_directory(/.*)?" # restorecon -Rv path_to_cache_directorySi la utilidad
semanageno está disponible en su sistema, instale el paquetepolicycoreutils-python-utils.
Abra el puerto
3128en el cortafuegos:# firewall-cmd --permanent --add-port=3128/tcp # firewall-cmd --reloadHabilite e inicie el servicio
squid:# systemctl enable --now squid
Pasos de verificación
Para comprobar que el proxy funciona correctamente, descargue una página web utilizando la utilidad curl:
# curl -O -L "https://www.redhat.com/index.html" -x "proxy.example.com:3128"
Si curl no muestra ningún error y el archivo index.html se ha descargado en el directorio actual, el proxy funciona.