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


Personal Tools