jueves, 27 de marzo de 2014

Configuración de OpenVPN en CentOS

Autor: Joel Barrios Dueñas

Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
© 1999-2013 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro).  c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Introducción.

Acerca de OpenVPN.

OpenVPN es una solución de conectividad basada sobre equipamiento lógico (software): SSL(Secure Sockets Layer) VPN(Virtual Private Network o red virtual privada), OpenVPN ofrece conectividad punto-a-punto con validación, jerárquica de usuarios y host conectados remotamente, resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas EEI 802.11) y soporta un amplio tipo configuraciones.

Breve explicación de lo que se logrará con este documento.

Este documento describe la configuración de una VPN tipo Intranet.
Este tipo de redes es creado entre una oficina central (servidor) y una o varias oficinas remotas (clientes). El acceso viene del exterior. Se utiliza este tipo de VPN cuando se necesita enlazar a los sitios que son parte de una compañía, en este caso se compone de un servidor central para muchos clientes VPN.
esquema
Servidor de Pasarela OpenVPN con clientes (Windows/Linux) remotos
El servidor VPN hace de pasarela para que todos los clientes OpenVPN.

Instalación del equipamiento lógico necesario.

Instalación en CentOS.

Como el usuario root, desde una terminal, descargue el archivo AL-Server.repo:
wget -O /etc/yum.repos.d/AL-Server.repo \
    http://www.alcancelibre.org/al/server/AL-Server.repo
Instalar los paquetes necesarios:
yum -y install openvpn shorewall

Procedimientos.

Si fuera necesario, cambiarse al usuario root utilizando el siguiente mandato:
su -l
Cambie al directorio /etc/openvpn:
cd /etc/openvpn/
NOTA: Todos los procedimientos necesarios para configurar un servidor con OpenVPN se realizan sin salir de /etc/openvpn/. Por favor, evite cambiar de directorio hasta haber finalizado los procedimientos descritos en este documento.
A fin de facilitar los procedimientos, se copiarán los archivos openssl-1.0.0.cnfwhichopensslcnfpkitool y vars —que se localizan dentro del directorio /usr/share/easy-rsa/— dentro del directorio /etc/openvpn/:
cp /usr/share/easy-rsa/openssl-1.0.0.cnf ./
cp /usr/share/easy-rsa/whichopensslcnf ./
cp /usr/share/easy-rsa/pkitool ./
cp /usr/share/easy-rsa/vars ./
Utilizar el editor de texto y abrir el archivo /etc/openvpn/vars:
vi /etc/openvpn/vars
De este archivo sólo hay que editar las últimas líneas, que corresponden a algo similar a lo siguiente:
export KEY_SIZE=1024
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_EMAIL=mail@host.domain
export KEY_CN=changeme
export KEY_NAME=chanegme
export KEY_OU=changeme
Hay que establecer el certificado a 2048 bits para mayor seguridad, reemplazar los valores predeterminados por los que se consideren pertinentes —sin utilizar acentos o tildes— y eliminar la línea repetida que define el correo electrónico predeterminado. Ejemplo:
export KEY_SIZE=2048
export KEY_COUNTRY="MX"
export KEY_PROVINCE="DF"
export KEY_CITY="Mexico"
export KEY_ORG="Mi Empresa, S.A. de C.V."
export KEY_EMAIL="fulanito@mi-dominio.com"
export KEY_CN=servidor.mi-dominio.com
export KEY_NAME=servidor
export KEY_OU=Sistemas
Se requiere ejecutar del siguiente modo el archivo /etc/openvpn/vars a fin de que carguen las variables de entorno que se acaban de configurar.
source /etc/openvpn/./vars
Cada vez que se vayan a generar nuevos certificados, debe ejecutarse el mandato anterior a fin de que carguen las variables de entorno definidas.
Se ejecuta el archivo /usr/share/easy-rsa/clean-all  a fin de limpiar cualquier firma digital que accidentalmente estuviera presente.
sh /usr/share/easy-rsa/clean-all
Lo anterior realiza un rm -fr (eliminación recursiva) sobre el directorio /etc/openvpn/keys, por lo que se eliminarán todas los certificados y firmas digitales que hubieran existido con anterioridad.
A fin de crear el certificado del servidor, se crea un certificado:
sh /usr/share/easy-rsa/build-ca
Se creará el archivo dh2048.pem, el cual contendrá las opciones del protocolo Diffie-Hellman, de 2048 bits:
sh /usr/share/easy-rsa/build-dh
El protocolo Diffie-Hellman permite el intercambio secreto de claves entre dos partes que sin que éstas hayan tenido contacto previo, utilizando un canal inseguro y de manera anónima (sin autenticar). Se emplea generalmente como medio para acordar claves simétricas que serán empleadas para el cifrado de una sesión, como es el caso de una conexión VPN.
Para generar la firma digital, se utilizan el siguiente mandato:
sh /usr/share/easy-rsa/build-key-server server
Finalmente se crean los certificados para los clientes. En el siguiente3 ejemplo se crean los certificados para cliente1,cliente2cliente3cliente4cliente5 y cliente6:
sh /usr/share/easy-rsa/build-key cliente1
sh /usr/share/easy-rsa/build-key cliente2
sh /usr/share/easy-rsa/build-key cliente3
sh /usr/share/easy-rsa/build-key cliente4
sh /usr/share/easy-rsa/build-key cliente5
sh /usr/share/easy-rsa/build-key cliente6
A fin de utilizar los certificados y que se configure el sistema, se crea con el editor de texto el archivo/etc/openvpn/servidorvpn-udp-1194.conf, donde servidorvpn se reemplaza por el nombre de anfitrión del sistema:
vi /etc/openvpn/servidorvpn-udp-1194.conf
Para la VPN se recomienda utilizar una red privada que sea poco usual, a fin de poder permitir a los clientes conectarse sin conflictos de red. Un ejemplo de una red poco utilizada sería 192.168.37.0/255.255.255.0, lo cual permitirá conectarse a laVPN a 253 clientes. Tomando en cuenta lo anterior, el contenido del archivo /etc/openvpn/servidorvpn-udp-1194.conf, debe ser el siguiente:
port 1194
proto udp
dev tun
#----- Sección de firma y certificados -----
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.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
Descripción de las opciones anteriores:
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 RyWcaracteres 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.
Si SELinux está activo, es necesario que el directorio /etc/openvpn y sus contenidos, tengan los contextos apropiados de esta implementación de seguridad (system_u:object_r:openvpn_etc_rw_t para ipp.txt y openvpn-status-servidorvpn-udp-1194.log y system_u:object_r:openvpn_etc_t para el resto del contenido del directorio).
Se utiliza luego el mandato restorecon sobre el directorio /etc/openvpn a fin de asignar los contextos adecuados.
restorecon -R /etc/openvpn/
Asumiendo que aún se encuentra dentro del directorio /etc/openvpn, genere los archivos ipp.txt y openvpn-status-servidorvpn-udp-1194.log utilizando el mandato touch:
touch ipp.txt
touch openvpn-status-servidorvpn-udp-1194.log
Si se tiene activo SELinux, estos últimos dos archivos requieren se les asigne contexto de lectura y escritura (openvpn_etc_rw_t).
chcon -u system_u *.txt *.log
chcon -r object_r *.txt *.log
chcon -t openvpn_etc_rw_t *.txt *.log
Los anterior cambia los contextos a usuario de sistema (system_u), rol de objeto (object_r) y tipo configuración de OpenVPN de lectura y escritura (openvpn_etc_rw_t).
Para iniciar el servicio, se utiliza el mandato service del siguiente modo:
service openvpn start
Para que el servicio de OpenVPN esté activo en el siguiente inicio del sistema, se utiliza el mandato chkconfig de la siguiente forma:
chkconfig openvpn on

Configuración de muro cortafuegos con Shorewall.

El siguiente procedimiento considera que se ha configurado un muro cortafuegos apropiadamente, de acuerdo a las indicaciones descritas en el documento titulado Cómo configurar un muro cortafuegos con Shorewall y tres interfaces de red.
Edite el archivo /etc/shorewall/zones:
vi /etc/shorewall/zones
Independientemente del contenido, añada la zona rem con el tipo ipv4.
rem     ipv4
Edite el archivo /etc/shorewall/interfaces:
vi /etc/shorewall/interfaces
Independientemente del contenido, añada la zona rem asociada a la interfaz tun0, con la opción detect, para detectar automáticamente el número de dirección IP de difusión (broadcast) y la opción dhcp.
rem     tun0            detect  dhcp
Edite el archivo /etc/shorewall/policy:
vi /etc/shorewall/policy
Independientemente del contenido, añada las políticas deseadas para permitir el acceso de los miembros de la VPN hacia las zonas que se consideren apropiadas. En el siguiente ejemplo, se definen una sola política que permite el acceso desde la zona rem hacia cualquier otra zona del muro cortafuegos.
rem             all  ACCEPT
Si así lo requiere, puede definir políticas individuales hacia cada zona. En el siguiente ejemplo, se definen tres políticas que permiten el acceso desde la zona rem hacia la zonas fw, loc y net del muro cortafuegos.
rem             fw  ACCEPT
rem             net  ACCEPT
rem  loc  ACCEPT
Edite el archivo /etc/shorewall/rules:
vi /etc/shorewall/rules
Independientemente del contenido, añada una regla para abrir el puerto 1194 por UDP para todas las conexiones iniciadas desde la zona net:
ACCEPT net fw udp 1194

Nota.
Sólo si se desea transparentar el tráfico entre la VPN y la red de área local, añada las reglas para permitir enmascarar el tráfico proveniente de la interfaz del túnel de la VPN hacia la interfaz de la zona de la red de área local y viceversa.
Edite el archivo /etc/shorewall/masq:
vi /etc/shorewall/masq
Añada lo siguiente:
eth1 tun0
tun0 eth1
Edite el archivo /etc/shorewall/tunnels:
vi /etc/shorewall/tunnels
Defina la configuración de tunel tipo servidor OpenVPN operando por puerto 1194, utilizando la zona rem y permitiendo conectarse desde cualquier ubicación.
#TYPE                   ZONE    GATEWAY         GATEWAY
#                                               ZONE
openvpnserver:1194      rem     0.0.0.0/0
En lugar de 0.0.0.0/0 también puede especificar una dirección IP o bien un segmento de red desde la cual se quiera establecer las conexiones VPN.
Para aplicar los cambios, es necesario reiniciar shorewall con el mandato service, del siguiente modo:
service shorewall restart

Configuración de clientes Windows.

A través de OpenVPN GUI.

Instalar el paquete de OpenVPN para Windows desde http://openvpn.net/index.php/open-source/downloads.html.
Crear el archivo cliente1-udp-1194.ovpn, con el siguiente contenido, donde es importante que las rutas definidas sean las correctas y las diagonales invertidas sean dobles:
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 "C:\\Archivos de Programa\\OpenVPN\\config\\ca.crt"
cert "C:\\Archivos de Programa\\OpenVPN\\config\\cliente1.crt"
key "C:\\Archivos de Programa\\OpenVPN\\config\\cliente1.key"
ns-cert-type server
#---------------------------------
comp-lzo
verb 3
Descripción de las opciones anteriores:
client: Especifica el tipo de configuración, en este caso tipo cliente OpenVPN.
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.
remote: Host remoto o dirección IP en el cliente, el cual especifica al servidor OpenVPN.
El cliente OpenVPN puede tratar de conectar al servidor con host:port en el orden especificado de las opciones de la opción --remote.
float: Este le dice a OpenVPN aceptar los paquetes autenticados de cualquier dirección, no solamente la dirección cuál fue especificado en la opción --remote.
resolv-retry: Si la resolución del nombre del anfitrión (hostname) falla para -- remote, la resolución antes de fallar hace una re-comprobación de n segundos.
nobind: No agrega bind a la dirección local y al puerto.
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.
remote: Especifica el dominio o IP del servidor así como el puerto que escuchara las peticiones para servicio VPN.
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
verb: Nivel de información (default=1). Cada nivel demuestra toda la Información 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 RyWcaracteres 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.
El cliente necesitará que los archivos ca.crtcliente1.crtcliente1.key y cliente1-udp-1194.ovpn estén presentes en el directorio "C:\Archivos de Programa\OpenVPN\config\". Estos archivos fueron creados, a través de un procedimiento descrito en este documento, dentro del directorio /etc/openvpn/keys/ del servidor.
Si se quiere que los clientes de la VPN se puedan conectar a la red local, es importante considerar las implicaciones de seguridad que esto conlleva si alguno de los certificados es robado o bien el cliente se ve comprometido en su seguridad por una intrusión, virus, troyano o gusano. Es preferible que la red de la VPN sea independiente a la red local y cualquier otra red, uniendo los servidores y clientes a la VPN, independientemente de si éstos están en la red local o una red pública.
Si es imperativo hacer que los clientes de la VPN se conecten a la red local, la red desde la cual se conectan los clientes debe ser diferente a la red utilizada en la red local. Por ejemplo: si la red local detrás del servidor de VPN es 192.168.0.0/255.255.255.0, 10.0.0.0/255.0.0.0 o 172.16.0.0/255.255.0.0, los clientes que se conecten a la VPN detrás de un modem ADSL o Cable e intenten establecer conexiones con la red local, muy seguramente tendrán conflictos de red.
Para permitir a los clientes de la VPN poder establecer conexiones hacia la red local, se añaden las siguientes líneas en el archivo de configuración de OpenVPN para los clientes y que definen la ruta para la red local y un servidor DNS que debe estar presente y configurado para permitir consultas recursivas a la red de la VPN:
route 192.168.0.0 255.255.255.0
dhcp-option DNS 192.168.0.1
Opcionalmente, también se puede definir un servidor Wins.
dhcp-option WINS 192.168.26.1
Ejemplo, donde se asume que la red de área local corresponde a 192.168.26.0/255.255.255.0 y el servidor DNS y WINS corresponde a 192.168.26.1:
client
dev tun
proto udp
remote dominio-o-ip.del.servidor.vpn 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
route 192.168.26.0 255.255.255.0
dhcp-option DNS 192.168.26.1
dhcp-option WINS 192.168.26.1
#------ SECCION DE LLAVES --------
ca "C:\\Archivos de Programa\\OpenVPN\\config\\ca.crt"
cert "C:\\Archivos de Programa\\OpenVPN\\config\\cliente1.crt"
key "C:\\Archivos de Programa\\OpenVPN\\config\\cliente1.key"
ns-cert-type server
#---------------------------------
comp-lzo
verb 3

Clientes GNU/Linux.

A través del servicio openvpn.

Este es el método que funcionará en prácticamente todas las distribuciones de de GNU/Linux basadas sobre Red Hat,CentOS y Fedora. Se requiere instalar el paquete openvpn:
yum -y install openvpn
Para CentOS y Red Hat™ Enterprise Linux, se requiere haber configurado previamente el almacén YUM de AL Server, descrito con anterioridad en este mismo documento.
Para los clientes con GNU/Linux utilizando el servicio openvpn, básicamente se utiliza el mismo archivo para OpenVPN GUIpara Windows, pero definiendo rutas en el sistema de archivos de GNU/Linux. Ejemplo:
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
Si se desea enrutar hacia la red de área local detrás del servidor, se utiliza una configuración similar a la de los clientes con Windows, añadiendo las opciones resaltadas en negrita, donde se asume que la red de área local corresponde a 192.168.26.0/255.255.255.0 y el servidor DNS corresponde a 192.168.26.1:
client
dev tun
proto udp
remote dominio-o-ip.del.servidor.vpn 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
route 192.168.26.0 255.255.255.0
dhcp-option DNS 192.168.26.1
#------ 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
Este archivo se guarda como /etc/openvpn/cliente1-udp-1194.ovpn. Requiere que los certificados definidos en la configuración estén en las rutas especificadas dentro del directorio /etc/openvpn/keys/.
Para iniciar la conexión hacia la VPN, simplemente se inicia el servicio openvpn:
service openvpn start
Para que la conexión se establezca automáticamente cada vez que se inicie el sistema, se utiliza el mandado chkconfig de la siguiente manera:
chkconfig openvpn on

A través de NetworkManager.

NetworkManager es una implementación que permite a los usuarios configurar interfaces de red de todos los tipos, sin necesidad de contar con privilegios de administración en el sistema. Es la forma más flexible, sencilla y práctica de conectarse a una red VPN.
Se requiere que los clientes Linux tengan instalado el paquete NetworkManager-openvpn, mismo que debe estar incluido en lo almacenes YUM de Fedora y distribuciones recientes de GNU/Linux. CentOS y Red Hat™ Enterprise Linux carecen los paquetes necesarios para utilizar NetworkManager-openvpn, por lo que solo podrá conectarse a la VPN a través del método anterior, con el servicio openvpn.
Para instalar a través del mandato yum en distribuciones basadas sobre Fedora 9 en adelante, se hace de la siguiente manera:
yum -y install NetworkManager-openvpn
Se puede reiniciar el sistema para que tengan efectos los cambios o simplemente reiniciar el servicio NetworkManager:
service NetworkManager restart
Lo anterior cerrará y volverá a establecer las conexiones de red existentes.
Al igual que el método anterior, para los clientes con GNU/Linux con NetworkManager, básicamente se utiliza el mismo archivo para OpenVPN GUI para Windows, pero definiendo rutas en el sistema de archivos de GNU/Linux. Ejemplo:
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
Este archivo se puede utilizar con la interfaz gráfica de NetworkManager. Solo hay que hacer clic sobre el icono en el Área de notificación del panel de GNOME y luego hacer clic en Configurar VPN.
En la ventana que abre a continuación, hay un botón que permite importar el archivo de configuración.
Si los certificados y firma digital son colocados en la ruta /etc/openvpn/keys/ con SELinux activo, éstos funcionarán adecuadamente. Si los certificados y firma digital son almacenados dentro del directorio de inicio del usuarios, es necesario establecer la política openvpn_enable_homedirs con valor 1 (que equivale a on o activa):
setsebool -P openvpn_enable_homedirs 1
Personalmente recomiendo crear una configuración nueva desde la interfaz de NetworkManager. Desde la ventana de redes VPN de la interfaz de NetworkManager, hacer clic en Añadir.
Aparecerá un diálogo donde se debe seleccionar que se trata de una VPN con OpenVPN.
En la siguiente ventana de diálogo, se define el nombre de la conexión, dirección IP o nombre del servidor donde está instalado OpenVPN y los certificados a utilizar. Si se siguieron los procedimientos de ese documento, se deja en blanco el campoContraseña de clave privada.
Luego, se hace clic en Avanzado para especificar que se utilizará compresión LZO.
Para evitar conflictos de conectividad, se hace clic en la pestaña Ajustes IPV4 y se define un servidor DNS que permita al cliente navegar a través de Internet y dentro de la red de la VPN.
Se hace clic en Rutas para abrir otra ventana de diálogo y se seleccionan las casillas de las opciones Ignorar las rutas obtenidas automáticamente y Usar esta conexión solo para los recursos de su red. Opcionalmente se pueden añadir las rutas estáticas para tener conectividad con la red local detrás del servidor de VPN, tomando en cuenta que la red local desde la cual se está conectado el cliente debe ser diferente a la de la red local detrás del servidor de VPN, a fin de evitar conflictos de red.
Finalmente se hace clic en aplicar. Para conectarse a la red VPN, solo basta hacer clic sobre el icono de NetworkManageren el Área de notificación del panel de GNOME y seleccionar la red VPN recién configurada.

Bibiliografía.

Este documento se basa sobre los manuales titulados VPN en servidor Linux y clientes Windows/Linux con OpenVPN + Shorewall [Parte 1] y VPN en servidor Linux y clientes Windows/Linux con OpenVPN + Shorewall [Parte 2], por William López Jiménez, publicados en Alcance Libre, cumpliendo cabalmente con los términos de la licencia Creative CommonsReconocimiento-NoComercial-CompartirIgual 2.1.