Cristina Alcantarilla
INFORMÁTICA & DISEÑADORA
Instalación y configuración de Openvpn, Ubuntu 12.04

Una red privada virtual (VPN de las siglas en inglés de Virtual Private Network) es una tecnología de red que permite una extensión segura de la red local sobre una red pública o no controlada. Ahora veremos la instalación y configuración de OpenVPN en ubuntu 12.04.

apt-get install openvpn

Luego de la instalación de openvpn, se deben copiar los scripts de configuración de ejemplo al directorio /etc/openvpn:
cd /usr/share/doc/openvpn/examples/easy-rsa
cp -a 2.0/ /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

Estos scripts permiten la creación automática de una autoridad certificante (CA) autofirmada, lo cual simplifica mucho la instalación. Ya que OpenVPN está basado en SSL, se utiliza openssl para la autenticación mutua de clientes y servidores. La CA se utiliza para expedir certificados para el servidor de VPN y los clientes.

Antes de comenzar a crear la CA y los certificados se deben configurar algunas variables de entorno. Editar el archivo vars:

nano vars

Se deben configurar correctamente los parámetros KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, y KEY_EMAIL.

En “Ubuntu 12.04.1 LTS” es necesario modificar el script whichopensslcnf para que funcione correctamente (no así en Debian 6, ya que detecta la versión de openssl correctamente):

nano whichopensslcnf

Eliminar todas las apariciones de la siguiente cadena (en la versión “OpenVPN 2.2.1 x86_64-linux-gnu” son 3 apariciones):

[[alnum:]]

Luego de configurar el archivo vars es posible generar el certificado y clave para la Autoridad Certificante (CA):

. ./vars
./clean-all
./build-ca

El script build-ca crea el certificado de la CA utilizando los parámetros configurados en vars. Verificar que los parámetros entre corchetes estén correctos, modificar en caso contrario. Luego es posible generar el certificado y clave para el servidor de VPN:

./build-key-server server

El CN (Common Name) debe ser “server”, responder ‘y’ dos veces para firmar y commit del certificado.

Generar los certificados para los clientes (es importante que los certificados de los clientes y del servidor estén firmados por la misma CA):

./build-key client1
./build-key client2
./build-key client3

Nota: cada vez que se reinicia la sesión, se debe ejecutar “. ./var” para configurar las variables de entorno nuevamente.

Responder ‘y’ dos veces para firmar y commit del certificado.

Finalmente se deben generar los parámetros Diffie-Hellman:

./build-dh

Archivos de configuración para el servidor y clientes

Luego de construir nuestra PKI (Public Key Infrastructure), es decir nuestra infraestructura de autenticación y encriptación mediante clave pública, se deben copiar los archivos de configuración de ejemplo al directorio /etc/openvpn:

cp -a /usr/share/doc/openvpn/examples/sample-config-files/ /etc/openvpn/

Configuración del servidor

Descomprimir el archivo de configuración del servidor:

cd /etc/openvpn/sample-config-files/
gunzip server.conf.gz

Editar el archivo de configuración del servidor:

nano server.conf

Modificar las siguientes líneas:

proto tcp
;proto udp
ca easy-rsa/keys/ca.crt
cert easy-rsa/keys/server.crt
key easy-rsa/keys/server.key # This file should be kept secret
dh easy-rsa/keys/dh1024.pem
server 10.8.0.0 255.255.255.0

De esta forma el servidor dará acceso a la red 10.8.0.0/24 y tomará la dirección IP 10.8.0.1 (los clientes tendrán una IP en el rango 10.8.0.2 a 10.8.0.254).

Si es necesario enviar reglas de ruteo a los clientes se debe agregar (por ejemplo para poder llegar a la red 10.9.0.0/24 que se encuentra detrás de la VPN):

push “route 10.9.0.0 255.255.255.0”
Por último copiar el archivo de configuración al directorio /etc/openvpn:

cp server.conf ../
cd /etc/openvpn

Configuración de los clientes

Editar el archivo de configuración de los clientes:

cd /etc/openvpn/sample-config-files
nano client.conf

Modificar las siguientes líneas:

proto tcp
;proto udp
remote 192.168.122.169 1194

En este ejemplo la dirección IP 192.168.122.169 es la dirección en la cual el servidor escucha pedidos de conexión a la VPN 10.8.0.0/24 en el puerto 1194 (puerto por defecto de OpenVPN).

Empaquetar el archivo de configuración junto con los certificados y clave:

cd /etc/openvpn
mkdir client1
cp sample-config-files/client.conf client1/
cp easy-rsa/keys/ca.crt client1/
cp easy-rsa/keys/client1.crt client1/client.crt
cp easy-rsa/keys/client1.key client1/client.key
zip -Z deflate -r client1.zip client1/*
Repetir el procedimiento para el resto de los clientes.

Iniciar el servidor para verificar la conectividad

Nota: antes de iniciar el servidor debe habilitarse IP forwarding para que funcione el ruteo de paquetes.

Habilitar IP forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward
Iniciar el servidor de VPN:
cd /etc/openvpn/
openvpn server.conf

Share Button

Deja un comentario