Crear un VPN Road Warrior o bajo demanda

Siguiendo con los mini – howto explicaré como crear un VPN bajo demanda empleando para ello pptp. Es bastante simple, sin embargo a veces cuando lo instalo me olvido de algunos detalles y debo empezar a recordar cosas que espero no volver a recordar así que para eso redacto este artículo.

He instalado esto bajo RedHat, Slackware, Debian / Ubuntu y no recuerdo que otros más, en todos los casos los pasos a realizar son similares. Aquí explicaré mi última experiencia con Ubuntu, el proceso se resume a estos simples pasos:

1. Tener el sistema instalado, este tutorial no tocará los temas previos de instalación, configuración, puesta a punto y lo que sea que se requiera previamente, para más de estos detalles ve a google.

2.  Usaremos APT, sin embargo también puedes descargar los fuentes desde http://www.poptop.org, si usas otra distribución ve y descarga los fuentes y compilas. En este caso usaré.

apt-get install pptpd

3. Editaremos el archivo /etc/pptpd.conf, siendo el contenido principal lo que aquí aparece:

ppp /usr/sbin/pppd
option /etc/ppp/pptpd-options
debug
logwtmp
localip  192.168.0.90-92
remoteip 192.168.20.10-12

Los parámetros localip y remoteip indican la cantidad de conexiones que habilitaremos y las IP que se crearán -origen y destino- por cada conexión que generen los usuarios remotos. En mi caso son 3 conexiones.

4.  Editar el archivo /etc/ppp/pptpd-options, en mi caso lo principal es esto:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
debug
lock
nobsdcomp

Más detalles de cada opción y del por qué en google.

5. Ahora ejecutamos el comando pptpd y observamos mediante netstat -l -n -v si el servicio está escuchando, en este caso debo observar que el port 1723 se encuentra escuchando.

tcp        0      0 0.0.0.0:1723            0.0.0.0:*               LISTEN

6. Ahora falta afinar algunas cosas en el firewall que como mínimo debe tener esto:

iptables -t nat -A PREROUTING -i ppp+ -j ACCEPT

iptables -I INPUT -p 47 -j ACCEPT
iptables -I OUTPUT -p 47 -j ACCEPT
iptables -I INPUT -p tcp –dport 1723 -j ACCEPT
iptables -I FORWARD -p tcp –dport 1723 -j ACCEPT

iptables -I FORWARD -p tcp –sport 1723 -j ACCEPT

iptables -A FORWARD -i ppp+ -j ACCEPT

Como puedes observar, debes tener el soporte para ip_gre -no necesitas instalar nada, por lo menos con las distros que mencioné antes el soporte viene en el kernel- ahora debes convocarlo mediante

modprobe ip_gre

Esto puedes convocarlo desde el inicio del sistema así te evitas de hacerlo manualmente.

7. para los casos que tengas un sólo IP y este se encuentre en el router deberás pasar la solicitud de conexión que llegue al router hacia el servidor GNU/Linux, algo de esto lo toqué en un artículo anterior sobre VPN basado en SSL. Si posees un enlace con IP pública dinámica, el artículo anterior aplica sin problema alguno.

8. Ahora en el cliente con MS Windows, debes configurar la conexión para conectarte al server que has instalado, si no sabes como aquí hay un artículo que se encuentra en el mismo poptop http://poptop.sourceforge.net/dox/pptp_winxp/VPN_Verbindungsaufbau_mittels_PPTP.pdf , está en alemán -yo no sé nada de alemán ni de las alemanas, pero con los grafiquitos es más que suficiente, si aún no entiendes tienes dos posibilidades: estudiar alemán o buscar otro artículo en google, wtf-

9. Ahora creas los usuarios que realizarán la conexión, edita /etc/ppp/chap-secrets

# client        server  secret                  IP addresses
usuario1           *       clave               192.168.20.10
usuario2         *       clave                192.168.20.11

Aquí indico que usuario y con que clave se permitirá la conexión, también indico que IP se asignará a dicha conexión, lee los archivos de configuración en la parte donde dice remoteip.

Yo además de esto meto algo de QoS para asegurar mínimos de ancho de banda y priorizar tráfico, de esta manera logro una mejor performance y evito saturaciones. Aquí no tocaré QoS.

11. Cuando realices la conexión desde un terminal remoto observarás que se crea una interfaz pppX por cada conexión vpn. Si tienes problemas mira en.

tail -f /var/log/messages

tail -f /var/log/syslog

12. Ya puedes pasar por caja, cobrar tu cheque y ser felíz. Si te sirvió el artículo, haz una donación para comprarme un Audi A6, ya me falta poco.

Una respuesta para “Crear un VPN Road Warrior o bajo demanda”

  1. Interesante…

Escribe un comentario