En esta nota, y por la gran popularidad de las notas referidas a conectar clientes a la red por VPN, veremos otra posibilidad que nos brindan las VPNs, como es conectar redes entre diferentes sitios.
Haremos una configuración que si bien parece simplificada en primera instancia, es una buena configuración de seguridad, ya que los equipos que funcionarán como servidores VPN no pertenecen a un Dominio.
Esta configuración tiene la ventaja desde el punto de vista seguridad que ante una penetración externa, no estaremos exponiendo cuentas de Dominio
Además, ya que es muy común en la empresa pequeña, consideraré que los servidores VPN comparten su conexión a Internet para que los usuarios puedan navegar por la Web
La configuración de máquinas que usaré es la que muestra el diagrama, y aunque hay capturas de pantalla de la configuración de cada una, las transcribiré para que sea más fácil leerlas
CL1 – Windows 7
Dirección IP: 192.168.2.1 / 255.255.255.0
Puerta de Enlace: 192.168.2.254
CL2 – Windows 7
Dirección IP: 192.168.4.1 / 255.255.255.0
Puerta de Enlace: 192.168.4.254
VPN1 – Windows Server 2008-R2
Interfaz Interna
Dirección IP: 192.168.2.254 / 255.255.255.0
Interfaz Externa
Dirección IP: 131.107.0.1 / 255.255.0.0
Deshabilitados todos los protocolos, salvo TCP/IPv4
Deshabilitado NetBIOS sobre TCP/IP
VPN2 – Windows Server 2008-R2
Interfaz Interna
Dirección IP: 192.168.4.254 / 255.255.255.0
Interfaz Externa
Dirección IP: 131.107.0.2 / 255.255.0.0
Deshabilitados todos los protocolos, salvo TCP/IPv4
Deshabilitado NetBIOS sobre TCP/IP
Server.isp.com – Windows Server 2008-R2
Dirección IP: 131.107.0.3 / 255.255.0.0
Tiene instalación por omisión de IIS
Comentarios adicionales sobre la configuración:
- Deshabilitar todos los protocolos salvo TCP/IPv4 sobre una interfaz pública es sólo una mínima medida de seguridad. La conexión a Internet debería estar además protegida con un cortafuegos (firewall)
- Ponerle un nombre adecuado a cada interfaz de red nos puede ayudar a no cometer errores durante la configuración. Sabremos claramente cuál es la red interna y cuál es la pública
- Usar el mismo equipo para VPN y compartir la conexión a Internet implica un riesgo de seguridad, ya que si no compartiera la conexión por omisión se configuran filtros de seguridad que permitirían únicamente los protocolos de VPN, tanto de entrada como de salida
- A los efectos de facilitar la prueba de conectividad entre las redes he deshabilitado los cortafuegos de CL1 y CL2
Configuración de VPN1
Configuración de VPN2
Configuración de CL1
Configuración de CL2
El siguiente procedimiento lo deberemos hacer tanto en VPN1, como en VPN2 exactamente de la misma manera
Consiste en la instalación del servicio de Enrutamiento y Acceso Remoto (Routing and Remote Access). Luego la configuración de cada uno será levemente diferente, podríamos decir: complementaria
Como siempre desde Server Manager, agregamos el rol de acuerdo a las siguiente figuras
Desde Administrative Tools, abrimos Routing and Remote Access, y con botón derecho sobre VPN1 elegimos Configure and Enable Routing and Remote Access y seguimos el asistente como indican las figuras
La siguiente es la que nos permite elegir que se comparta la conexión a Internet (NAT) además de servidor VPN
Cuidado con no equivocarse en la próxima 😉
Hay varias opciones para asignar IPs a los clientes de VPN, pero personalmente prefiero un rango de red diferente al de la red interna, ya que permite controlar mejor el tráfico
Tengamos en cuenta que se necesita una dirección para el servidor VPN, y una para cada servidor VPN que se conecte. Como esta demostración involucrará sólo un sitio remoto es por lo que he escogido un rango de sólo 2 IPs
Botón New, crear el rango, Ok y Next
En VPN1, usé 172.16.0.1 a 172.16.0.2
En VPN2, usé 172.17.0.1 a 172.17.0.2
Elijo la segunda opción porque la idea es aprovechar esta mismo infraestructura para luego montar un ambiente de Dominio.
Si hubiera elgido la primera opción, es sistema se configuraría como DNS-Proxy
¿Recordó hacerlo en VPN2 el mismo procedimiento? 🙂
Bueno, ahora el procedimiento es análogo en ambos servidores, pero es muy fácil confundirse, así que a partir de ahora pongo las capturas y aclaraciones en forma separada
Lo siguiente sólo en VPN1
Creamos una conexión Demand-dial
Atención ahora. Debemos crear una interfaz con el nombre del sitio remoto al que este servidor VPN se va a conectar. Éste será el “nombre de cuenta” que usará este sevidor cuando llame al sitio remoto
Colocamos la dirección pública de nuestro servidor remoto VPN2
Y atención con la que sigue. Si queremos que desde el otro sitio también se puedan comunicar debemos marcar la opción de crear localmente una cuenta así desde el sitio remoto se podrán comunicar
Indicamos cuál es la red en el sitio remoto para levantar esta conexión de VPN
Como configuramos que el sitio remoto también se podrá comunicar el sistema automáticamente creará una cuenta de usuario local con permiso de Dial-In, sólo nos pregunta por su contraseña
Ahora nos pregunta por las credenciales que usaremos desde nuestro equipo para conectarnos al sitio remoto (complementarias del anterior)
A partir de este momento, debemos hacer la configuración complementaria en VPN2
Valen las mismas observaciones, ya que el procedimiento es totalmente análogo, pero complementario
En este caso VPN2 llamará a VPN1, así que va Site1
La dirección IP de VPN1
Esta interfaz se usará para llegar a la red detrás de VPN1
Las credenciales de la cuenta local que usará VPN1
Las credenciales que usará VPN2 para conectarse a VPN1
Bien, llegamos al momento de revisar que todo ha sido configurado adecuadamente, así que vamos primero a VPN1, y tratamos de conectarnos a VPN2
Exitoso 🙂
Y luego repetimos en VPN2
Todo “perefeto”, así que ahora sólo restan las pruebas.
Vamos primero a CL1, y luego a CL2 y hagamos un PING por dirección IP al otro cliente. Debemos usar direcciones IPs porque no hemos implementado ningún sistema de resolución de nombres, y al estar en redes diferentes, no funcionará la resolución por Broadcasts
Sólo nos falta probar la conexión web
Todo ha salido de acuerdo a lo pedido 🙂
Resumiendo, hemos configurado dos servidores que en cada una de las redes de su sitio comparten la conexión a Internet, y además permiten la conexión segura entre dos sitios corporativos separados por Internet
Como consideraciones adicionales, debemos tener en cuenta que si las conexiones a Internet son asimétricas, “la que manda” es la menor
Y además que el trabajo de cifrar y descifrar además de consumir recursos, incrementa el tráfico
Aunque tengamos interconectadas ambas redes, no es lo mismo que tener todo en la misma red, o disponer de una conexión con ancho de banda garantizado
Comments
Fatal error: Uncaught Error: Call to undefined function ereg() in F:\blogs.itpro.es\wp-content\themes\notesil\functions.php:333 Stack trace: #0 F:\blogs.itpro.es\wp-content\themes\notesil\functions.php(35): notesil_commenter_link() #1 F:\blogs.itpro.es\wp-includes\class-walker-comment.php(179): notes_comments(Object(WP_Comment), Array, 1) #2 F:\blogs.itpro.es\wp-includes\class-wp-walker.php(145): Walker_Comment->start_el('', Object(WP_Comment), 1, Array) #3 F:\blogs.itpro.es\wp-includes\class-walker-comment.php(139): Walker->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #4 F:\blogs.itpro.es\wp-includes\class-wp-walker.php(387): Walker_Comment->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #5 F:\blogs.itpro.es\wp-includes\comment-template.php(2174): Walker->paged_walk(Array, '5', 0, 0, Array) #6 F:\blogs.itpro.es\wp-content\themes\notesil\comments.php(25): wp_list_comments('type=comment&ca...') #7 F:\blogs.itpro.es\wp-includes\comment-template.php(1512): require('F:\\blogs.itpro....') #8 F:\ in F:\blogs.itpro.es\wp-content\themes\notesil\functions.php on line 333