VPN PPTP con DD-WRT

El título lo deja bastante claro, montar una VPN (de la modalidad PPTP) con routers que utilicen el firmware DD-WRT.

¿Qué es una VPN? Pues eso una red privada virtual. El que
quiera más información que lo busque en la wikipedia, tan sólo decir que
a grandes rasgos sirve para unir dos o más redes locales (dos o más
LANs) por medio de internet (o cualquier otro tipo de WAN)

¿Para qué quiero unir dos LANs? En mi caso concreto esta
problemática surge porque una de las empresas para las que trabajo abre
una nueva oficina en Barcelona. El probelma es que la central, que está
en Totana, dispone de un servidor con Active Directory (incluidos
prefiles móviles) y Exchange. Eso quiere decir que tanto los correos de
los usuarios, como sus documentos, como los archivos compartidos para
todos los usuarios están en el servidor, y por supuesto, también la
información de las cuentas de usuario. Por supuesto, todos los equipos,
tanto los de Totana como los de Barcelona forman un único dominio, y por
supuesto el controlador de dominio es el servidor que está en Totana.
En resumen, que cuando un usuario inicie sesión en un equipo en
Barcelona, este usuario debe autenticarse contra el controlador de
dominio que está en Totana. Pero no sólo eso, sino que una vez
autenticado, el usuario debe poder acceder a sus documentos y su email,
que residen en el servidor de Totana. Además debe tener acceso a las
carpetas compartidas de otros equipos de la organización,
independientemente de si los equipos están en Totana o Barcelona. Para
eso necesito yo una VPN.

Disclaimer: Antes de continuar me gustaría dejar claro que este tipo concreto de VPN, la VPN PPTP,
es totalmente insegura. Su cifrado se puede romper fácilmente con un
ataque pasivo, por lo que todo aquel que la use debe conocer sus
debilidades e implementar políticas de seguridad adicionales. Una buena
alternativa es OpenVPN, la cual también es soportada por el firmware
DD-WRT.

Empecemos. Primero necesitamos dos routers capaces de ejecutar DD-WRT. En mi caso me decanto por los Buffalo WHR-HP-G54 ya que me han dado resultados espectaculares en todas mis instalaciones.

Uno de ellos hará las veces de servidor VPN (el de Totana) y otro
hará de cliente VPN (el de Barcelona). Por supuesto, podríamos tener
tantos clientes VPN como deseemos; sin ir más lejos, en mi estructura
hay otros dos clientes VPN que son portátiles con Windows 7 que se
mueven de un sitio para otro, pero eso es otra historia y una de las
razones por las que opté por PPTP en lugar de OpenVPN.

Lo primero que tenemos que hacer es flashear nuestros flamantes
Buffalos WHR-HP-G54 con el último firmware DD-WRT disponible, pero no
cualquier versión, sino la versión específica para VPN. Esta versión
incluye servicios tanto para PPTP como para OpenVPN.

 

Lo primero a tener en cuenta es que las redes no se solapen. Puedes compartir la misma familia de red con subneting, pero para simplificar el ejemplo vamos a utilizar dos familias diferentes.

Red de Totana: 192.168.0.0/24

Red de Barcelona: 192.168.3.0/24

En ambas redes el router DD-WRT tendrá la ip 254, es decir, en Totana será 192.168.0.254 y en Barcelona será la 192.168.3.254

Además, cada una de las oficinas, debería tener ip fija o tener ip
dinámica asignada a un dominio fijo, algo que conseguiremos fácilmente
con una cuenta gratuita No-ip.com

Así, para nuestro caso tendríamos dos dominios, totana.no-ip.org y barcelona.no-ip.org y configuraríamos cada uno de los routers para que se encargase de mantener actualizados dichos hosts.

 

¿Qué tenemos que hacer en el router que haga de servidor VPN (192.168.0.254)?


1.
Configurarlo como servidor VPN con encriptación, teniendo en cuenta que como Server IP debemos asignar una ip libre, y que no sea la propia ip del router,
un error muy común que aparece en algunos tutoriales y que según la
configuración puede funcionar o no. El problema es que si utilizamos la
ip del router (192.168.0.254) como ip del servidor VPN es que la
interfaz de ppp0 no podrá añadirse al bridge que DD-WRT crea por
defecto. Así, en nuestro caso asignaremos la ip 192.168.0.253 al
servidor PPTP, como vemos en la imagen.

Mucho ojo al campo Server Ip, que no es la dirección del router. Cabe destacar también que los Clients ip(s)
no deben de solaparse con el rango de ips del servidor DHCP para evitar
problemas. Con el rango actual, 40-43, podré conectar un máximo de 4
clientes VPN.

Te pudes estar dando cabezazos para ver por qué no funciona si no
habilitas el tráficon PPTP en el firewall que trae integrado DD-WRT.

2. Debemos de crear unas redirecciones de puertos para que todo funcione. De igual modo que en el caso del Server Ip,
es posible que funcione sin hacer esto, pero será de casualidad,
simplemente porque vuestro router está abierto a todos los puertos. Lo
correcto es mappear los puertos 1792 y 1723 hacia el propio router; imprescindible si tienes configurada una DMZ.

Imprescindible notar la dirección a la que mapeamos los puertos, la dirección de nuestro propio router, y no la dirección del Server Ip (192.168.0.253)

 3. Para terminar con la configuración en el router que
hará las veces de servidor, debemos indicarle qué tiene que hacer con
los paquetes cuyo destino sea la red 192.168.3.x; deberá enviarlos a
Barcelona, y no al proveedor de internet (ISP) que es lo que haría si no
configuramos esta entrada en la tabla de enrutamiento.

 

 


¿Qué tenemos que hacer en el router que haga de cliente VPN (192.168.3.254)?

1. Configuramos los parámetros VPN

2. Configuramos una entrada en la tabla de enrutamiento para
que sepa qué hacer con los paquetes de la red 192.168.0.x y no se los
envíe al ISP.

3. Configurar el firewall para que permita el tráfico PPTP

 

Con esto, ya tenemos nuestra VPN funcionando. Para probarlo podemos
hacer ping al servidor (192.168.0.1) que está en Totana desde cualquier
equipo de Barcelona (192.168.3.x) y recibiremos respuesta. Además,
podemos comprabar las conexiones PPTP en la interfaz web de DD-WRT (en el servidor VPN) en el apartado Status -> LAN.

Fácil ¿verdad?