En este artículo voy a explicar cómo instalar OpenVPN y cómo conectarse a una red privada virtual (VPN) en FreeBSD. Es decir, utilizar a un sistema FreeBSD como cliente de una VPN.



Si recuerdan bien, en el artículo Instalación y configuración de OpenVPN expliqué cómo instalar y configurar un servidor de VPN en Debian, utilizando OpenVPN. Además expliqué como conectarse a la VPN desde clientes Windows. Esta vez voy explicar cómo conectarse a la VPN desde un sistema FreeBSD. Nunca publiqué un artículo explicando cómo conectarse desde clientes GNU/Linux, aunque el procedimiento es similar al que describe este artículo.

Antes de comenzar es necesario instalar el paquete openvpn:

root@fbsd10:~ # portmaster security/openvpn

Una vez compilado e instalado, sólo resta habilitar el servicio en el archivo de configuración del sistema:

root@fbsd10:~ # nano /etc/rc.conf

Agregar la siguiente línea:

openvpn_enable="YES"

En FreeBSD, la configuración del servicio OpenVPN se ubica en el directorio /usr/local/etc/openvpn. Si dicho directorio no existe, es necesario crearlo:

root@fbsd10:~ # mkdir /usr/local/etc/openvpn
root@fbsd10:/usr/local/etc/openvpn # cd /usr/local/etc/openvpn

El directorio /usr/local/share/examples/openvpn/sample-config-files/ posee archivos de configuración de ejemplo. Aunque, si ya han configurado un servidor OpenVPN, y poseen el par de claves para un cliente válido, sólo será necesario copiar y descomprimir los archivos necesarios desde el servidor (a modo de ejemplo, client1.zip):

root@fbsd10:/usr/local/etc/openvpn # unzip ~/client1.zip

Se observa que he traído desde el servidor los archivos ca.crt (certificado de la CA autofirmada), client.crt (certificado del cliente firmado por la CA), client.key (clave privada del cliente) y client.conf (archivo de configuración del servicio):

root@fbsd10:/usr/local/etc/openvpn # ll
total 20
-rw-r--r--  1 root  wheel  1346 Mar  2 12:31 ca.crt
-rw-r--r--  1 root  wheel  4046 Mar  2 12:31 client.crt
-rw-------  1 root  wheel   887 Mar  2 12:31 client.key
-r--r--r--  1 root  wheel  3430 Mar  2 12:42 client.conf

Revisar el archivo de configuración:

root@fbsd10:/usr/local/etc/openvpn # nano client.conf

Las opciones de configuración mas importantes son las siguientes:


client

dev tun

proto tcp

remote vpn.linuxito.com 1194

ca ca.crt
cert client.crt
key client.key

El resto de las opciones son las que vienen por defecto.

Si todo está correcto, es posible iniciar OpenVPN en modo cliente. Pero antes es necesario renombrar el archivo de configuración, ya que, tanto en GNU/Linux como en FreeBSD, debe llamarse openvpn.conf:

root@fbsd10:/usr/local/etc/openvpn # mv client.conf openvpn.conf

Iniciar el servicio ejecutando:

root@fbsd10:/usr/local/etc/openvpn # /usr/local/etc/rc.d/openvpn start
Starting openvpn.

Si todo es correcto, luego de unos segundos aparecerá la nueva interfaz TUN con la dirección IP y rutas configuradas correctamente:

root@fbsd10:/usr/local/etc/openvpn # ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet6 fe80::e269:95ff:fe56:f60e%tun0 prefixlen 64 scopeid 0x3 
        inet 192.168.234.18 --> 192.168.234.17 netmask 0xffffffff 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        Opened by PID 72176

Verificar que la conexión a la red privada virtual funcione correctamente (por ejemplo mediante un ping a un host en una red accesible sólo desde la VPN):

root@fbsd10:/usr/local/etc/openvpn # ping 10.10.15.11
PING 10.10.15.11 (10.10.15.11): 56 data bytes
64 bytes from 10.10.15.11: icmp_seq=0 ttl=63 time=1.077 ms
64 bytes from 10.10.15.11: icmp_seq=1 ttl=63 time=1.002 ms
^C
--- 10.10.15.11 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.002/1.039/1.077/0.038 ms

De esta forma verificamos que tanto la conexión como el ruteo funcionen adecuadamente.

En caso de errores, es posible verificar el archivo de mensajes del sistema:

# less /var/log/messages

Para mayor información:

# man openvpn


Tal vez pueda interesarte


Compartí este artículo