lunes, 19 de mayo de 2014

OpenVPN - ¿Enviar todo el tráfico, o sólo el necesario? (II de II)

OpenVPN - ¿Enviar todo el tráfico, o sólo el necesario? (II de II)


ENVÍO DE TRÁFICO RUTEADO POR LA VPN

   En el post anterior hablamos de cómo enviar todo el tráfico generado por un cliente en un entorno OpenVPN (excepto las consultas DNS, que se harán directamente a los servidores 8.8.8.8 y 8.8.4.4 de google).  Ahora vamos a ver cómo sería para que sólo el tráfico dirigido explícitamente a direcciones dentro del rango de IP's donde se encuentra el servidor de OpenVPN sea enviado a través del túnel seguro VPN, pero que el resto del tráfico siga su curso habitual por la puerta de enlace configurada en nuestro equipo cliente.

   Para ilustrar lo descrito en el párrafo anterior, podemos observar las siguiente imágenes:




   La imagen superior muestra en rojo el camino que seguirá cualquier consulta al rango de IP's 192.0.1.0, automáticamente la configuración de OpenVPN redirigirá el tráfico para que "viaje" por el túnel VPN crado.  Así, podríamos entrar a un servicio web configurado en 'Server1' de forma similar a si estuviéramos trabajando en local: http://192.0.1.250 o a un Servicio de Escritorio Remoto configurado en el PC1 con la ventaja de no tener abiertos, y por tanto expuestos, múltiples puertos dirigidos a diferentes servicios dentro de nuestra infraestructura.  Hasta el momento solo hemos necesitado abrir el puerto 1194 UDP y tenemos acceso de forma cifrada a todos los recursos de nuestra red.

   Hasta este punto el modo de funcionamiento de la VPN es similar al descrito en el post de OpenVPN - ¿Enviar todo el tráfico, o sólo el necesario? (I de II) pero a partir de aquí la operativa cambia.

   Lo que queremos en este método de configuración es que únicamente el tráfico dirigido explícitamente a la VPN sea enviado por el túnel, no así el resto de tráfico con destino 'internet'.  El siguiente diagrama indica lo que ocurrirá cuando se intenta un acceso a un servicio de la web, en este caso google.com:


   Este tráfico general representado en naranja, viajará de forma normal, como si no hubiera VPN alguna configurada.

   Para poner en funcionamiento este esquema, tenemos que modificar el archivo de configuración del servidor de OpenVPN "openvpn.conf" donde añadiremos la siguiente línea:

push "route 192.0.1.0 255.255.255.0"

   La dirección IP y la Máscara están definidas para este ejemplo en particular, la descripción general consiste en establecer el rango de IP's definido en el lugar donde se encuentre el servidor VPN y la Máscara correspondiente a dicha red.  Con esta instrucción conseguiremos que al conectarse el cliente a la VPN en la interfaz virtual que se crea se asigne una ruta de acceso a las IP's correspondientes al rango 192.0.1.X consiguiendo que todo el tráfico enviado hacia dichas direcciones se envíe a través del canal seguro creado por OpenVPN.

   Un archivo 'openvpn.conf' en el servidor OpenVPN válido para este cometido sería:


dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log 15
verb 3
client-to-client
#Para conectarse a la VPN pero no navegar a traves de ella
push "route 192.0.1.0 255.255.255.0"
log-append /var/log/openvpn
comp-lzo


PROS:

   Rapidez en la navegación por internet, al ser un acceso más selectivo, la red donde se encuentra configurado el servidor de OpenVPN no se saturará demasiado, sobre todo si hubiera varios clientes al mismo tiempo.

CONTRAS:

   En redes de poca confianza como HotSpots públicos podemos ser vulnerables a ataques MITM, el acceso a cualquier servicio web dejará una huella digital con nuestra dirección IP Externa real, lo que puede llevar a localizarnos incluso geográficamente en el mapa.

No hay comentarios:

Publicar un comentario