Enlazando redes con OpenVPN


En el presente apunto los pasos necesarios para instalar openvpn de modo de enlazar dos subredes. Hay un servidor central corriendo openvpn y uno o mas clientes (equipos o subredes) conectados al servidor central tambien a través de openvpn.

Aplicable a: centOS, fedora, Redhat

Configuración del Servidor openvpn:

Instalamos el openVPN y sus dependencias:

# yum install openvpn

Copiamos al directorio de trabajo:

# cp -R /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn/

Editamos el archivo vars:

# vi /etc/openvpn/vars

Y modificamos las últimas líneas con nuestros datos:

export KEY_COUNTRY=”US”
export KEY_PROVINCE=”CA”
export KEY_CITY=”SanFrancisco”
export KEY_ORG=”Fort-Funston”
export KEY_EMAIL=”me@myhost.mydomain”

Cargamos las variables de entorno:

# source /etc/openvpn/./vars

Limpiamos firmas digitales previas:

# sh /etc/openvpn/clean-all

Creamos certificado del servidor:

# sh /etc/openvpn/build-ca

Creamos el archivo con los parámetros del protocolo Diffie Hellman:

# sh /etc/openvpn/build-dh

Generamos la firma digital:

# sh /etc/openvpn/build-key-server server

Creamos los certificados de los clientes:

# sh /etc/openvpn/build-key cliente1
# sh /etc/openvpn/build-key cliente2
# sh /etc/openvpn/build-key cliente3

Para poder utilizar los certificados, creamos el archivo:

# vi /etc/openvpn/servidorvpn-udp-1194.conf

Adentro  detallaremos la configuración, teniendo en cuenta utilizar una subred no muy estandard para evitar conflictos:

port 1194
proto udp
dev tun
#—- Seccion de llaves —–
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
#—————————-
server 192.168.37.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status-servidorvpn-udp-1194.log
verb 3

Los parámetros anteriores significan:

Port: Especifica el puerto que será utilizado para que los clientes vpn puedan conectarse al servidor.

Proto: tipo de protocolo que se empleará en a conexión a través de VPN

dev: Tipo de interfaz de conexión virtual que se utilizará el servidor openvpn.

ca: Especifica la ubicación exacta del archivo de Autoridad Certificadora [.ca].

cert: Especifica la ubicación del archivo [.crt] creado para el servidor.

key: Especifica la ubicación de la llave [.key] creada para el servidor openvpn.

dh: Ruta exacta del archivo [.pem] el cual contiene el formato de Diffie Hellman (requirerido para –tls-serversolamente).

server: Se asigna el rango IP virtual que se utilizará en la red del túnel VPN.

Ifconfig-pool-persist: Archivo en donde quedarán registrado las direcciones IP de los clientes que se encuentran conectados al servidor OpenVPN.

Keepalive 10 120 : Envía los paquetes que se manejan por la red una vez cada 10 segundos; y asuma que el acoplamiento es abajo si ninguna respuesta ocurre por 120 segundos.

comp-lzo: Especifica los datos que recorren el túnel vpn será compactados durante la trasferencia de estos paquetes.

persist-key: Esta opción soluciona el problema por llaves que persisten a través de los reajustes SIGUSR1, así que no necesitan ser releídos.

Persist-tun: Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los guiones up/down

status: archivo donde se almacenará los eventos y datos sobre la conexión del servidor [.log]

verb: Nivel de información (default=1). Cada nivel demuestra todo el Info de los niveles anteriores. Se recomienda el nivel 3 si usted desea un buen resumen de qué está sucediendo.

0 –No muestra una salida excepto errores fatales. 1 to 4 –Rango de uso normal. 5 –Salida Ry Wcaracteres en la consola par los paquetes de lectura y escritura, mayúsculas es usada por paquetes TCP/UDP minúsculas es usada para paquetes TUN/TAP.

Creamos el archivo log:

# touch /etc/openvpn/openvpn-status-servidorvpn-udp-1194.log

Starteamos el servicio:

# service openvpn start

Definimos el servicio para que arranque automaticamente al inicio:

# chkconfig –level 2345 openvpn on

Configuración de los Clientes GNU/Linux:

Instalamos el paquete OpenVPN:

# yum install openvpn

Creamos el archivo:

# vi /etc/openvpn/cliente1-udp-1194.conf

con el siguiente contenido:

client
dev tun
proto udp
remote dominio-o-ip.del.servidor.vpn 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
#—— SECCION DE LLAVES ——–
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/cliente1.crt
key /etc/openvpn/keys/cliente1.key
ns-cert-type server
#———————————
comp-lzo
verb 3

Verificar que en la carpeta /etc/openvpn/keys del cliente tengamos los certificados que se detallan en este archivo.

(ca.crt, cliente1.crt, cliente1.key)

Starteamos el servicio en el cliente:

# service openvpn start

Con esto, el cliente, debe conectarse con el servidor.

Debemos verificar en el servidor reglas de firewall que impidan la entrada al puerto configurado.

Ante cualquier error, verificamos la salida en /var/log/messages.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s