VPN con el protocolo PPTP

Rafa Morales 19 Noviembre 2013
3min
0
Linux

PPTP (Point to Point Tunneling Protocol), es un protocolo de comunicaciones desarrollado por Microsoft, U.S. Robotics, Ascend Communications, 3Com/Primary Access, ECI Telematics conocidas colectivamente como PPTP Forum, para implementar redes privadas virtuales o VPN. 

La seguridad de PPTP ha sido completamente rota, utilizando un ataque "Man in the middle" mientras se intercambian las claves en el establecimiento de la conexión. Podéis aprender a hacerlo en el siguiente enlace:

http://www.elladodelmal.com/2010/07/crackear-conexiones-vpn-pptp-con-ms.html

Para comparar las características de PPTP con el resto de protocolos de conexión, podéis consultar el siguiente enlace:

http://es.giganews.com/vyprvpn/compare-vpn-protocols.html

 

Lo primero será instalar el paquete "pptpd":

apt-get install pptpd

 

El servidor utilizará los puertos 1723 TCP y 47 GRE, que tendremos que tener en cuenta a la hora de configurar nuestro cortafuegos:

iptables --append INPUT --protocol 47 --jump ACCEPT
iptables --append INPUT --protocol tcp --match tcp \
   --destination-port 1723 --jump ACCEPT

 

Tras la instalación comenzamos a configurar nuestro servidor de VPNs con PPTP.

 

Editamos el fichero /etc/pptpd.conf, para que nos quede de la siguiente manera:

ppp /usr/sbin/pppd
option /etc/ppp/pptpd-options
localip 192.168.1.1
remoteip 192.168.1.100-150

Donde localip será la IP del servidor VPN y remoteip será el rango de IPs que se le asignarán a los clientes en el momento de la conexión.

A continuación editamos el archivo /etc/ppp/pptpd-options, señalado en nuestro archivo anterior /etc/pptpd.conf:

name VPN-PPTP
require-mschap-v2
require-mppe-128
ms-dns 192.168.1.1
proxyarp
nodefaultroute
lock
  • La línea name será el nombre de nuestra VPN, que nos servirá más adelante con la autenticación. 
  • Las opciones con require establecerán los mecanismos de autenticación que utilice la VPN. 
  • La línea ms-dns son los servidores DNS que serán asignados al cliente. 
  • La línea proxyarp permite que el servidor haga de proxy para los paquetes arp entre la red remota y la local.





Continuamos configurando las cuentas de los clientes, para esto editamos el archivo /etc/ppp/chap-secrets.

cliente1  VPN-PPTP  clave-del-cliente1  *
  • cliente1: nombre del usuario.
  • VPN-PPTP: nombre de la VPN que hemos creado en el servidor.
  • clave-del-cliente1: clave del cliente
  • *: dirección IP que se asigna al cliente, con * el servidor la asigna automáticamente desde el rango.

 

Reiniciamos el servicio para que tomen efecto los cambios:

/etc/init.d/pptpd restart

 

Una vez configurado el servidor, sólo tendríamos que lanzar la VPN desde un cliente Windows, o incluso Linux, a la IP pública de nuestra conexión. Para ello podéis echarle un vistazo al siguiente manual:

Cómo configurar una VPN cliente en Windows