Práctica 3 - VPNs

Práctica - VPNs

Entorno de trabajo

En esta practica se establecerán escenarios de redes privadas, para ellos cada grupo utilizara su servidor en la red 10.6.49.0/24. Consideraremos que cada grupo tiene un servidor en una empresa conectado a una red publica con IP 10.6.49.X a la que llega desde cualquier punto de Internet, es decir desde los ordenadores 10.1.1.Y del laboratorio. Cada empresa tiene su propia red interna privada en el rango de las 192.168.xx.yy. Cada grupo tendra este escenario

+---------+                       +----------+                      +----------+
| maquina |                       | servidor |                      | servidor |
| en tlm  |                       |  rupo g  |                      | interno  |
+---------+                       +----------+                      +----------+   
        |                          |        |                         |
      ip:10.1.1.x       ip:10.6.49.(10+g)   |                   ip:192.168.(10+g).3
        |                          |      ip:192.168.(10+g).1         |
        |      inet / red de       |        |                         |
        +-----  laboratorio  ------+        +------- red privada -----+
                                                  192.168.(10+g).0/24

Desde las direcciones 10.1.1.x no se debe enrutar hacia direcciones 192.168. ya que los routers de la red de laboratorio van a descartar esos paquetes.

Aparte cada grupo puede usar la red 192.168.(50+g).0/24 para sus VPNs. El servidor interno no esta bajo el control de cada grupo, pero esta configurado para creer que la red 192.168.(50+g).0/24 esta al otro lado del router 192.168.(10+g).1. Al margen de eso cada grupo no tiene control de lo que hace el servidor interno.

En el servidor interno hay un servidor web que se usara para verificar los escenarios. Comience verificando que desde el servidor del grupo puede llegar al servidor interno pero desde el ordenador del laboratorio no.

Por ejemplo al grupo 0 le corresponde el servidor 10.6.49.10 y el servidor interno 192.168.10.3. Observe que desde el ordenador del laboratorio no puede conseguir la pagina del servidor interno

$ curl http://192.168.10.3
... no responde

Pero si entra en el servidor 10.6.49.10 si

    $ ssh 10.6.49.10
mikel@10.6.49.10's password:
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.13.0-24-generic i686)

 * Documentation:  https://help.ubuntu.com/
Last login: Wed Sep 30 11:55:37 2015 from mikel.tlm.unavarra.es
mikel@s_grupo_0:~$ curl http://192.168.10.3
<html>
<head>
    <title>VPN internal server</title>
</head>
<body>
<h1>Internal server</h1>
<p>
Este servidor esta en la red 192.168.10.0/24 y no deberia ser accesible a menos que hagas una VPN
<p>
<a href="./test.php">test page</a>
</body>
</html>

En los escenarios de esta práctica se trata de extender la red 192.168 de forma que podamos acceder al servidor interno desde el ordenador del laboratorio a través de redes privadas virtuales

Se recomienda que configure en sus maquinas virtuales un interfaz con nat para llegar al exterior e instalar paquetes. En cualquier caso es recomendable tener instalado en todas las maquinas traceroute, iptables y curl o wget

En esta práctica se utilizaran tambien socat y openvpn

Tuneles con ssh

Aprenda a utilizar tuneles con las opciones -L -R de ssh. Utilícelos para ver la pagina del servidor interno en un navegador del laboratorio.

Tuneles con socat

Aprenda a usar socat y utilicelo para hacer tuneles con tun y tap transportados sobre TCP, UDP y sobre SSL

Utilice como direcciones internas del tunel direcciones de su rango asignado 192.168.(50+g).0/24

Configure el enrutamiento correctamente en el servidor para que pueda llegar al servidor interno y ver la pagina web desde un ordenador en la red 10.1.1.0

Compruebe en cuales de dichos tuneles puede ver el contenido de la pagina si observa los paquetes con tcpdump

OpenVPN

Aprenda a usar openvpn y configure VPNs punto a punto con seguridad basada en secreto compartido. Configure un tunel para que la maquina1 establezca un enlace desde la red 10.1.1.0/24 como roadwarrior en la que se le asigne un enlace con las direcciones 192.168.(50+g).0/24 para poder llegar a la subred 192.168.(10+g).0/24

Pruebe este enlace con las variaciones:

  • Usando TCP o UDP como protocolo de transporte
  • Usando tun o tap, es decir haciendo un tunel de nivel 3 o 2
  • Sin cifrar o cifrando con secreto compartido

Y utilícelo para acceder a la pagina web del servidor interno

Checkpoint 1 Muestre al profesor que tuneles ha conseguido establecer Debe probar que si pide en el navegador de la maquina virtual el siguiente URL http://192.168.(10+g).3/test.php El servidor muestra que ha recibido una peticion desde la 192.168.(50+g).x

IPsec

Aprenda a usar setkey para configurar tuneles IPsec manualmente. Establezca un tunel que permita a una maquina en la direccion 10.1.1.0 acceder a las direcciones 192.168.(10+g).0/24.

Para ello debera configurar una maquina virtual que tenga dirección 10.1.1.X sin NAT, activando el modo bridged y eligiendo una direccion libre 10.1.1.X.

Configure con setkey las politicas de seguridad y asociaciones de seguridad con setkey sin usar IKE/ISAKMP indicando una clave de cifrado manualmente Con este tunel debería ser capaz de acceder al servidor interno y el servidor interno vera como la peticion proviene de una direccion 10.1.1.X

Otra posibilidad es configurar un tunel IPsec entre las subredes de dos grupos diferentes

Checkpoint 2 Muestre al profesor que tuneles ha conseguido establecer un tunel con ipsec Debe probar que si pide en el navegador de la maquina virtual el siguiente URL http://192.168.(10+g).3/test.php El servidor muestra que ha recibido una peticion desde la 10.1.1.x O bien el servidor muestra que la peticion ha sido recibida desde la red de diferente grupo 192.168.(50+g2).x

Reto final

En la segunda sesión de la práctica se planteara un reto para llegar a una red privada. En dicha red habra un servidor que indicara un numero secreto que habra que conseguir

Avanzado

Para ir mas alla o si le interesa el tema pruebe alguna de las siguientes cosas. Estan listadas aqui para dar ideas para los trabajos finales. No deberia haber tiempo para hacerlas durante la sesión de prácticas.

  • Pruebe otras herramientas de VPN como n2n o tinc

  • Aprenda a configurar una red VPN de tipo servidor y configure una demostración en la que varios clientes puedan acceder a la VPN y obtener IPs en el rango privado utilizado. En modo servidor OpenVPN no acepta autentificación de secreto compartido y debera configurarlo con TLS y certificados y claves privadas

  • Pruebe a configurar IPsec con grestion de tuneles mediante IKE/ISAKMP, por ejemplo instalando racoon. No es muy facil de configurar pero si lo consigue deberia poder configurar un tunel ipsec con secreto compartido que se establezca automaticamente cuando haya tráfico que quiera ir por el tunel.

  • Pruebe a configurar un servidor con L2TP over IPsec en Linux y a conectarse desde un cliente

Última modificación: viernes, 9 de octubre de 2015, 11:09