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
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.conf
es 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 squid
Edite el archivo
/etc/squid/squid.conf
:Adapte las listas de control de acceso (ACL) de
localnet
para 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::/64
Por defecto, el archivo
/etc/squid/squid.conf
contiene la reglahttp_access allow localnet
que permite utilizar el proxy desde todos los rangos de IP especificados en las ACLslocalnet
. Tenga en cuenta que debe especificar todas las ACL delocalnet
antes de la regla dehttp_access allow localnet
.ImportanteElimine todas las entradas existentes en
acl localnet
que no coincidan con su entorno.La siguiente ACL existe en la configuración por defecto y define
443
como un puerto que utiliza el protocolo HTTPS:acl puertos_SSL puerto 443
Si 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_number
Actualice la lista de reglas de
acl Safe_ports
para 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_ports
en la configuración:acl Safe_ports port 21 acl Safe_ports port 80 acl Safe_ports port 443
Por defecto, la configuración contiene la regla
http_access deny !Safe_ports
que 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 256
Con estos ajustes:
-
Squid utiliza el tipo de caché
ufs
. -
Squid almacena su caché en el directorio
/var/spool/squid/
. -
El caché crece hasta
10000
MB. -
Squid crea
16
subdirectorios de nivel 1 en el directorio/var/spool/squid/
. Squid crea subdirectorios
256
en 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_directory
Configure los permisos para el directorio de la caché:
# chown squid:squid path_to_cache_directory
Si ejecuta SELinux en modo
enforcing
, establezca el contextosquid_cache_t
para el directorio de la caché:# semanage fcontext -a -t squid_cache_t "path_to_cache_directory(/.*)?" # restorecon -Rv path_to_cache_directory
Si la utilidad
semanage
no está disponible en su sistema, instale el paquetepolicycoreutils-python-utils
.
Abra el puerto
3128
en el cortafuegos:# firewall-cmd --permanent --add-port=3128/tcp # firewall-cmd --reload
Habilite 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.