Configuración de VPN de Windows
C@mpus - @cademia Linux

Introducción

Una VPN (Virtual Private Network) es actualmente uno de los métodos más comunes para enlazar oficinas remotas y clientes móviles que necesiten acceder a servidores internos manteniendo la privacidad de la informacin transmitida


Paquetes necesarios

  • PPP  2.4.2+,
  • PPTP-Server  1.4+

Configuración

PPTPd por si solo no hará el túnel, necesita de la ayuda de PPP para realizarlo. Sin embargo PPTPd si proporciona los mecanismos para realizar el enlace y la gestión del protocolo GRE.

Para lograr esto se tiene que editar el archivo /etc/pptpd.conf de una forma similar:
/etc/pptpd.conf
option /etc/ppp/options.pptpd
localip 192.168.3.3
remoteip 192.168.3.154-254

El comando option indica que se leer adems un segundo archivo con mas opciones para la creacin de la conexin.

Tanto los parmetros localip y remoteip deben estar dentro de un direccionamiento valido. El primero indica el lado local del servidor al realizar el tnel PPP y este podr ser nico como se muestra en el ejemplo o un rango como est la notacin de remoteip. Remoteip muestra el rango de direcciones que se asignarn a los clientes en sus conexiones, forzosamente tendr que ser un rango vlido.

Ninguno de los valores especificados deber existir en la red.

El archivo options.pptpd deber contener los siguientes valores:
/etc/ppp/options.pptpd

## CHANGE TO SUIT YOUR SYSTEM
lock

## change 'pptpd' to whatever you specify as your server name in chap-secrets
name pptpd
auth
proxyarp
bsdcomp 0
ms-wins 192.168.3.1
ms-dns 192.168.3.1

El parmetro lock crea un candado evitando que otro dispositivo tome control del dispositivo abierto para la conexin.

El parmetro que se le pasa a la opcin name indica un nombre con el que el servidor buscara a sus usuarios en el archivo chap-secrets. Este valor es importante recordarlo y es sensible a maysculas y minsculas.

Proxyarp le indica al sistema operativo que incluya la mac address del dispositivo remoto en su tabla ARP. De esta forma se simular el ruteo local.

Desactivamos la compresin utilizando el valor 0 al parmetro bsdcomp. Esta opcin no es obligatoria y podr probar otros valores.

Los valores ms-wins y ms-dns son los valores de los nuevos DNS y WINS que toman el control de la mquina. Para indicar ms de un servidor se debern indicar varias instancias del comando.

El archivo chap-secrets es el encargado de la autenticacin y asignacin de IPs a los clientes remotos. Bsicamente consta de cuatro campos que se separan por espacios en el siguiente orden:

   1. login de usuario
   2. nombre del parametro name o *
   3. contrasea
   4. direccin IP o *

De esta forma una lnea como la siguiente:

usuario pptpd "contrasea" *
"gato" * 39942 192.168.3.90

Indican que un login usuario con clave contrasea (las " son opcionales para poder incluir espacios) es valido para un servidor identificado con el nombre pptpd (este parmetro se especifico en el archivo options.pptpd) y se le asignar un IP aleatorio dependiendo de la disponibilidad.

La segunda lnea indica que el usuario gato tiene la contrasea 39942 y es valido para cualquier tunel sin importar su nombre (*). Adems siempre se le asignar la IP 192.168.3.90.
 El protocolo PPTPd se basa en dos tuneles para funcionar: 1723/tcp y el protocolo GRE (47). Para esto se tendr que aadir las siguientes reglas de IPTables.
Reglas de IPTables
iptables -I INPUT - 47 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports 1723 -j ACCEPT

Cabe mencionar que este es un ejemplo genrico y que en servidores mas complejos el establecimiento del lugar de las reglas cambiar.

Recordar que el inicio del servicio se podr hacer con el comando service pptpd restart