General Packages Aplicaciones Networking Seguridad
Configurando OpenBSD como cliente PPTP
Introducción
Completar
¿Que es PPTP?
Completar
Configurando OpenBSD como cliente PPTP
Vamos a ver como podemos conectarnos con nuestro OpenBSDhttp://www.openbsd.org a una VPNhttp://en.wikipedia.org/wiki/VPN mediante el protocolo PPTPhttp://en.wikipedia.org/wiki/PPTP.
Vamos a considerar que ya tenemos usuario y contraseña en el RAShttp://en.wikipedia.org/wiki/Remote_Access_Service remoto y éste ya se encuentra configurado correctamente y operativo.
Entonces por nuestra parte tenemos que hacer 5 tareas:
1. Descargar el Cliente PPTPhttp://pptpclient.sf.net
2. Configurar PPP (editando el archivo /etc/ppp/ppp.conf)http://www.openbsd.org/cgi-bin/man.cgi?query=ppp&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
3. Configurar las acciones que se realizaran cuando se establezca y termine el túnel
4. Configurar el Kernelhttp://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&sektion=8&arch=i386&apropos=0&manpath=OpenBSD+Current (editando el archivo /etc/systcl.conf)
5. Crear script de conexión
Bien, ahora pongámonos a trabajar:
1) Descargar cliente PPTPhttp://pptpclient.sf.net
Descargamos el cliente PPTP desde los paquetes oficiales:
- pkg_add -vi ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/pptp-1.7.1.tgz
2) Configurar PPP
Luego de haber descargado el cliente PPTP, tendremos que editar el archivo ppp.conf con los datos de la conexión y el path del binario del cliente PPTP para que disque la conexión VPN con todo esto. Editamos el archivo /etc/ppp/ppp.conf para que quede algo parecido a esto:
default: set log Phase Chat LCP IPCP CCP tun command - VPN Lugar-Remoto PPTP lugar-remoto: set device "!/usr/local/sbin/pptp --nolaunchpppd pptp.lugar-remoto.com.ar" set authname nombreusuario set authkey password set timeout 0 set ifaddr 0 0 add 192.168.0.0/24 HISADDR disable ipv6cp
En donde “lugar-remoto:“ es el ID de nuestra conexión, “pptp.lugar-remoto.com.ar” es el nombre DNS o la dirección IP del servidor RAS, “nombredeusuario” es el nombre de usuario en el servidor RAS, “password” es la contraseña en el servidor RAS, “192.168.0.0/24” es el rango de red al cual nos conectaremos por VPN. En el archivo /etc/ppp/ppp.conf no es necesario tener mas, con estas líneas es mas que suficiente (exceptuando que estemos utilizando este archivo para otra cosa, en ese caso tendremos que dejar las lineas que sean necesarias).
3) Configurar las acciones que se realizaran cuando se establezca y termine el túnel
Lo que vamos a hacer ahora es indicarle a PPP que acciones vamos a realizar luego de que se establezca el túnel PPTP y que queremos que haga cuando lo terminemos, por ejemplo establecer rutas. Para este crearemos 2 archivos en /etc/ppp/, en ppp.linkup pondremos lo que se ejecutara cuando se establezca el túnel y en ppp.linkdown pondremos lo que se ejecutara cuando se termine el túnel. Estos son algunos ejemplos:
/etc/ppp/ppp.linkup:
lugar-remoto: ! sh -c "/sbin/route add -net 192.168.0.0 -netmask 255.255.255.0 HISADDR"
/etc/ppp/ppp.linkdown:
lugar-remoto: ! sh -c "/sbin/route delete -net 192.168.0.0 -netmask 255.255.255.0 HISADDR"
En donde 192.168.0.0 es el rango de red al cual nos conectaremos por VPN.
4) Configurar el Kernel
Para poder establecer el túnel PPTP es necesario que habilitemos el protocolo GRE en la parametrización del kernel que se encuentra en el archivo /etc/sysctl.conf, seteando la variable “sysctl net.inet.gre.allow” en 1, esto lo podemos hacer de 2 maneras:
a) Seteando la variable por comando de esta manera (habrá que hacerlo cada ves que se inicie el sistema):
- sysctl sysctl net.inet.gre.allow=1
b) Seteando la variable a través del archivo etc/sysctl.conf, para esto hay que agregar en el archivo:
sysctl net.inet.gre.allow=1
5) Crear script de conexión
Bien, estamos llegando al final, ahora hay que simplemente ejecutar el binario PPP con la parametrización correspondiente:
- /usr/sbin/ppp -ddial lugar-remoto
Para terminar el túnel tendremos que ejecutar:
- kill `cat /var/run/tun0.pid`
Donde tun0 es el túnel que se creo para la VPN, en el caso que establezcamos mas, tendremos que verificar si es tun0 o tun1 o tunN …
Ahora si ya tenemos nuestro OpenBSD configurado y listo para conectarnos al sitio remoto por VPN utilizando PPTP. No nos olvidemos de configurar nuestro PF para habilitar el tráfico saliente y entrante del túnel, en las macros podemos setear una variable para la interfase tunN que utilicemos así es mas fácil de administrar. Espero que les sea de utilidad.
Saludos!
Fuentes:
The FreeBSD Diary http://www.freebsddiary.org/pptp.php
FreeBSD Guide http://www.math.colostate.edu/~reinholz/freebsd/vpn.html
Neohapsis Archives http://archives.neohapsis.com/archives/openbsd/2005-10/0340.html
PPTPClient Documentation http://pptpclient.sourceforge.net/documentation.phtml