Otra de las características interesantes que incluye Vyatta es la posibilidad de configurar el equipo Vyatta como Webproxy con caché y filtrado web (webcache + webfiltering) mediante el paquete Squid que trae instalado.

Vyatta está preparado para hacer de webproxy de una red local, funcionamiento que se lleva a cabo:

  • Mediante un proceso de filtrado web y otro de almacenamiento en cache de paginas webs (webfiltering + webcache).

    Durante el filtrado web la máquina Vyatta gestionará los accesos web según la configuración dada, permisos a grupos, horarios, permisos por IP, etc.
    Durante el almacenamiento en cache la máquina Vyatta guarda las respuestas de páginas webs hechas a los servidores webs que han pasado el filtro anterior, lo que permite que para sucesivas solicitudes de las mismas páginas éstas sean entregadas al cliente web directamente de la copia almacenada en cache sin tener que volver a solicitarla al servidor web. Por tanto este proceso permite un ahorro de ancho de banda de Internet ya que evita múltiples solicitudes redundantes.

  • Por otro lado dicho webproxy puede funcionar de forma transparente o de forma no transparente.

    La configuración por defecto es como proxy transparente, esto significa que el sistema automáticamente intercepta y redirige todo el tráfico HTTP (puerto 80) al servidor proxy web (que por defecto escucha en el puerto 3128), el cual gestiona cada una de las conexiones llevando a cabo todo el proceso descrito en los puntos anteriores. Esta configuración de Vyatta como webproxy transparente permite que no haya que configurar uno por uno los equipos de la red para que hagan sus solicitudes de conexión web a un proxy.

    También es posible hacer que Vyatta actúe como webproxy no transparente, lo que se consigue con el comando “set service webproxy listen-address disable-transparent”. Esta configuración deshabilita la captura de tráfico HTTP que vaya al puerto 80, dicho tráfico habría que dirigirlo al puerto 3128 del sistema Vyatta configurando uno a uno los equipos de la red. Una configuración mucho más tediosa pero a la vez más segura, ya que mucho del malware que se transmite por web no está preparado para saltarse este tipo de restricción. Por otra parte, la configuración de webproxy en modo no transparente también permite gestionar el tráfico a URLs seguras por HTTPS (puerto 443) mediante el webproxy. Ver un poco mas abajo la explicación del tráfico HTTPS.


A partir de aquí es necesario tener en cuenta:

  • Si tenemos configurado y habilitado el firewall en la interfaz o interfaces que va a usar el servicio de webproxy tenemos que permitir el acceso a puerto 3128 TCP con destino local a dicha interfaz, tanto si hemos configurado un webproxy transparente como no transparente.
    Por ejempo:

    vyatta@R1# show firewall name eth0local
    ...
       rule X {
           action accept
           destination {
                port 3128
           }
           protocol tcp
           state {
                new enable
           }
       }
    ...


  • El tráfico de navegación segura HTTPS (puerto 443) no puede ser gestionado por el webproxy de Vyatta Core cuando está configurado en modo transparente debido a la encriptación TLS que lleva la sesión, por lo tanto, las opciones para permitir o inhibir las conexiones HTTPS son:

    • Gestión por firewall, podemos crear un grupo de direcciones IPs correspondientes a los servidores webs seguros a los que permitimos conectar y crear una regla similar a:

      vyatta@R1# show firewall group address-group HTTPS
      	address x.x.x.x
      	address y.y.y.y
      	address x.x.y.y
      	address y.y.x.x
      ...
      vyatta@R1# show firewall name eth0in
      ...
         rule X {
             action accept
             destination {
                  group {
      		address-group HTTPS
      	    }
                  port 443
             }
             protocol tcp
             state {
                  new enable
             }
         }
      ...
      vyatta@R1# show interfaces ethernet eth0 firewall
      	in {
      	   name eth0in
      	}
      	local {
      	   name eth0local
      	}
      


    • Pagar una versión Vyatta Plus que permite gestionar por el webproxy también el tráfico HTTPS en modo transparente. También ofrece numerosas ventajas de seguridad en cuanto a clasificación de URLs maliciosas para bloqueo por categorías.

  • La versión Core de Vyatta ofrece una lista negra en la que de forma comunitaria se adjuntas IPs peligrosas, con intenciones maliciosas, etc. Esta lista está dividida en categorías, que pretenden englobar IPs de servicios webs de potencial peligrosidad o encuadrables en categorías que permitan dar acceso o limitarlo a dichas categorías, drogas, adultos, malware, ads…

  • El funcionamiento de una conexión web filtrada en Vyatta desde un cliente se hace en dos pasos, en el primero el cliente hace la solicitud de una web en cuestión y en la segunda el webproxy gestiona la conexión y establece una nueva desde Vyatta hasta el destino, por lo que en realidad es la máquina Vyatta quien sirve la página al cliente y el también quien solicita la página al servidor.





Manual webproxy Squid Vyatta