Cómo crear una VPN con PPTP en CentOS 6.x

En algunas ocasiones tenemos la necesidad de conectarnos con nuestros equipos remotos, como pueden ser servidores virtuales, a través de Internet, y además necesitamos hacerlo de una forma segura. La solución perfecta para ello es utilizar una red privada virtual o VPN (Virtual Private Network)

En este tutorial veremos que, con unos sencillos pasos, podemos crear nuestra propia VPN.
Vamos a realizar el siguiente esquema:

vpn1

Las IPs públicas (eth0) variarán pero lo importante es tener claro que salimos a internet a través de eth0.
Creando el servidor PPTP
Empezaremos en el servidor PPTP (Point to Point Tunneling Protocol), el cual tiene una red privada y una pública (conexión a internet).

Lo primero de todo será añadir a nuestra lista el repositorio de pptp:

rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm

Ahora instalaremos el servicio con el siguiente comando:

yum -y install pptpd

La VPN es otra red distinta a las que tenemos en el servidor (ppp0), con lo que usa otra ip, es decir, el servidor se quedará al final con 3 ips, dos físicas (eth0 y eth1) y una virtual (ppp0).
Editaremos el archivo pptpd.conf, y al final del archivo añadiremos la ip virtual que usará el servidor para conectarse a la VPN y el rango de IPs que se le asignarán a los clientes:

vi /etc/pptpd.conf

vpn2
Para que los clientes se puedan conectar al servidor, necesitarán un usuario y contraseña. Lo definimos en el archivo chap-secrets:

vi /etc/ppp/chap-secrets

vpn3
También podemos establecer IPs estáticas en el mismo archivo como se puede ver en la imagen.
Editaremos el archivo options.pptpd para añadir los DNSs

vi /etc/ppp/options.pptpd

vpn4

Iniciaremos el servicio pptpd:

service pptpd start

Estableceremos que el servidor pueda redirigir los paquetes entre la IP pública y la IP privada. Para ello editaremos el archivo sysctl.conf y pondremos el forward a 1:

vi /etc/sysctl.conf

vpn5

Aplicaremos los cambios con el siguiente comando:

sysctl -p

Ya lo único que nos queda es establecer que los clientes puedan ver la red privada, para ello hay que aplicar una regla en el firewall que «enmascare» lo que vaya a la red privada eth1:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Guardaremos esta regla para que si reiniciamos el servicio iptables o el servidor, no tengamos que volver a ponerla:

iptables-save

Conectando a los clientes

 
Lo primero de todo será instalar el cliente:

yum -y install pptp

Añadiremos el modulo necesario del kernel:

modprobe ppp_mppe

Y crearemos un archivo llamado vpnserver en /etc/ppp/peers:

vi /etc/ppp/peers/vpnserver

En dicho archivo pondremos lo siguiente:

pty «pptp 185.5.126.35 –nolaunchpppd»
name cliente
password FvD%REtt
remotename PPTP
require-mppe-128

Sustituyendo 185.5.126.35 por la ip pública del servidor pptp.
Ahora estableceremos la conexión:

pppd call vpnserver

Podremos comprobar si se ha conectado haciendo un ifconfig en el cliente. Si vemos la interfaz ppp0 es que todo ha ido bien:

ifconfig

vpn6
Tenemos acceso al servidor pptp, pero nosotros queremos ir más allá de ese servidor, queremos adentrarnos en su red privada. Para ello, en el cliente estableceremos una ruta que diga que todas las peticiones de la red interna de los servidores (en este caso 10.1.1.48/28) vaya a través del interfaz ppp0:

ip route add 10.1.1.48/28 dev ppp0

Para comprobar si todo funciona correctamente haremos ping al servidor final:

ping 10.1.1.52

vpn7

Esperamos que este tutorial os haya servido de ayuda, y si tenéis dudas sobre cualquier paso siempre podéis contactar con nuestro soporte técnico enviándonos un e-mail a soporte@azn.cloud o por teléfono en el 91 82 83 888 donde responderemos todas vuestras preguntas.

Facebook
LinkedIn
Email
WhatsApp