Buscar en este blog

13.8.07

Servidor de VPN (pptp)

Encontrado en la web oficial del proyecto "Linux PoPToP":
http://www.poptop.org/

Buscando la forma mas sencilla de crear un servidor VPN, resumo esta maravillosa receta para hacerlo sobre Debian.

Lo mejor es que con el avance en el desarrollo del kernel, ya no hay que andar parcheando ni buscando paquetes de software no-Debian para conseguir una VPN segura (encriptación de la comunicación) y que pueda ser conectada directamente con las herramientas incluidas en los sistemas Windows (principalmente enfocado a XP)

Plataforma:
Debian Etch. Utilizando una instalación mínima se puede tener todo operativo en muy pocos minutos.

Procedimiento:
Cargar el módulo de encriptación necesario. Desde 2.6.15 (creo), está incluido ya en la versión original del kernel. Por tanto basta con hacer:
modprobe ppp-compress-18

Instalar el demonio PoPToP, disponible en los repositorios de Debian Etch.

apt-get install pptpd
Configurar el archivo "/etc/pptpd.conf". Aquí se definen las direcciones IP del servidor (localip) y el rango que se ofrecerá a los clientes (remoteip, como si fuera un servidor DHCP). Las lineas necesarias ya están incluidas en el archivo, solo hay que descomentarlas y adaptarlas a las necesidades de la red:

localip x.x.x.x #Interfaz de red por la que da servicio VPN el servidor
remoteip x.x.x.x-x.x.x.x #Rangos: x.x.x.x-x.x.x.x IPs: x.x.x.x,x.x.x.x,x.x.x.x,...

Reiniciar el servicio pptpd para que tome la nueva configuración:
/etc/init.d/pptpd restart

Añadir usuarios que pueden conectarse a la VPN. Hay varios métodos para hacer esto. El más sencillo consiste en incluir directamente lineas con usuario y contraseña en el archivo "/etc/ppp/chap-secrets". Los nombres de usuario no tienen que ser necesariamente usuarios del sistema y las lineas deben tener el formato
nombre_usuario pptpd contraseña *

Los usuarios se pueden incluir en caliente. El sistema tardará un tiempo (unos pocos segundos) en volver a leer el archivo y aceptar las credenciales. No es necesario reiniciar el servicio.

Realmente con esto es suficiente. Basta con dar de alta usuarios para que se conecten sin más. Para tener un sistema de autentificación más completo en entornos más complejos, se puede mezclar esto con la autentificación de Samba y según creo, también con el sistema PAM de Linux. De momento con esto voy más que servido.


En los clientes Windows no es necesario tocar nada respecto a la configuración por defecto que el sistema hace para nuevas conexiones VPN ("Conectarse a la red de mi lugar de trabajo"). Al conectarse, se le asignará una dirección de las especificadas en el rango "remoteip" y el router hará de puente entre el equipo cliente y la red de VPN.

Esta configuración da un acceso completo a la red local del servidor. Normalmente esto no será un problema en la mayoría de entornos, aunque si las restricciones de seguridad son estrictas, se pueden establecer sin problemas reglas de filtrado netfilter-iptables para los clientes de la VPN.


Fuente original: http://poptop.sourceforge.net/dox/debian-howto.phtml
(Muchas gracias a todo el proyecto PoPToP y al autor original, James Cameron, por su excelente trabajo. Y gracias, Debian, por hacernos la vida un pelín más sencilla.)