29.5. Configuración de un alterno transparente

El método habitual de trabajo con los servidores alternos es el siguiente: el navegador Web envía solicitudes a un puerto concreto del servidor alterno y éste proporciona los objetos solicitados, estén o no almacenados en caché. Al trabajar en red, pueden darse varias situaciones:

En todos estos casos, puede utilizarse un alterno transparente. El principio es muy sencillo: el alterno intercepta y responde a las solicitudes del navegador Web, por lo que el navegador Web recibe las páginas solicitadas sin saber de dónde proceden. Como su propio nombre indica, todo el proceso se lleva a cabo de forma transparente.

29.5.1. Opciones de configuración de /etc/squid/squid.conf

Las opciones que debe activar en el archivo /etc/squid/squid.conf para que el alterno transparente funcione correctamente son las siguientes:

  • httpd_accel_host virtual

  • httpd_accel_port 80

    Número de puerto donde se encuentra el servidor HTTP real

  • httpd_accel_with_proxy on

  • httpd_accel_uses_host_header on

29.5.2. Configuración de cortafuegos con SuSEfirewall2

Ahora se redireccionarán todas las solicitudes entrantes mediante el cortafuegos, con la ayuda de una regla de reenvío de puertos orientada al puerto de Squid. Para ello, utilice la herramienta SuSEfirewall2 incluida, descrita en la Sección 4.1.4.1, “Configuración con YaST”. Su archivo de configuración se encuentra en /etc/sysconfig/SuSEfirewall2. El archivo de configuración está compuesto por entradas bien documentadas. Para establecer un alterno transparente, deberá configurar varias opciones del cortafuegos:

  • Dispositivo dirigido a Internet: FW_DEV_EXT="eth1"

  • Dispositivo dirigido a la red: FW_DEV_INT="eth0"

Defina en el cortafuegos los puertos y servicios (consulte /etc/services) a los que se debe acceder desde las redes no fiables (externas) como Internet. En este ejemplo, sólo se ofrecen al exterior servicios Web:

FW_SERVICES_EXT_TCP="www"

Defina en el cortafuegos los puertos o servicios (consulte /etc/services) a los que se debe acceder desde la red segura (interna), mediante TCP y UDP:

FW_SERVICES_INT_TCP="domain www 3128"
FW_SERVICES_INT_UDP="domain"

En este ejemplo, se permite el acceso a los servicios Web y a Squid (cuyo puerto por defecto es el 3128). El servicio “domain” significa DNS (servicio de nombres de dominio). Este servicio se utiliza muy frecuentemente. Si no es así, basta con borrar las entradas anteriores y establecer el valor no en la siguiente opción:

FW_SERVICE_DNS="yes"

La opción más importante es la número 15:

Ejemplo 29.1. Configuración de cortafuegos: opción 15

# 15.)
# Which accesses to services should be redirected to a local port
# on the firewall machine?
#
# This can be used to force all internal users to surf via your
# Squid proxy, or transparently redirect incoming Web traffic to
# a secure Web server.
#
# Choice: leave empty or use the following explained syntax of
# redirecting rules, separated with spaces.
# A redirecting rule consists of 1) source IP/net,
# 2) destination IP/net, 3) original destination port and
# 4) local port to redirect the traffic to, separated by a colon,
# e.g. "10.0.0.0/8,0/0,80,3128 0/0,172.20.1.1,80,8080"

Los comentarios anteriores muestran la sintaxis que debe seguirse. En primer lugar, introduzca la dirección IP y la máscara de red de las redes internas que acceden al cortafuegos del alterno. En segundo lugar, introduzca la dirección IP y la máscara de red a las que los clientes envían las solicitudes. En el caso de los navegadores Web, especifique las redes 0/0, un comodín que significa “a todas partes”. Después de eso, introduzca el puerto original al que se envían las solicitudes y, finalmente, el puerto al que se redireccionan todas las solicitudes. Dado que Squid es compatible con otros protocolos además de HTTP, redirija al alterno las solicitudes de otros puertos, como FTP (puerto 21), HTTPS o SSL (puerto 443). En este ejemplo, los servicios Web (puerto 80) se redireccionan al puerto del alterno (puerto 3128). Si hay más redes o servicios que añadir, deben separarse mediante un espacio en blanco en la entrada respectiva.

FW_REDIRECT_TCP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"
FW_REDIRECT_UDP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"

Para iniciar el cortafuegos y la nueva configuración, modifique una entrada del archivo /etc/sysconfig/SuSEfirewall2. La entrada START_FW debe tener el valor "yes" (Sí).

Inicie Squid tal y como se describe en la Sección 29.3, “Inicio de Squid”. Para comprobar si todo funciona correctamente, acceda a los registros de Squid en /var/log/squid/access.log. Para comprobar que todos los puertos están configurados correctamente, lleve a cabo una exploración de puertos en el equipo desde cualquier equipo que esté fuera de la red. Sólo debe estar abierto el puerto de los servicios Web (el 80). Para explorar los puertos con nmap, la sintaxis del comando es nmap -O dirección_IP.