Está en la página 1de 21

INTRODUCCIÓN

OpenVPNes una solución de conectividad basada en software: SSL(Secure Sockets Layer) VPNVirtual Private
Network [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 una amplia configuración, entre ellas balanceo de cargasentre otras.

Está publicado bajo licencia de código-libre (Open Source).

Tipo de configuración.

En esta ocasión se realizará una configuración tipo VPN 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 nuestro caso será compuesto por un servidor Central que conectará a muchos clientes VPN
entre si.

La información y aplicaciones a las que tendrán acceso los directivos móviles en el VPN, no serán las mismas
que aquellas en donde pueden acceder los usuarios que efectúan actividades de mantenimiento y soporte,
esto como un ejemplo de lo que se podrá realizar con esta configuración.

Ademas de que podrá conectarse vía Terminal Server [en el caso de clientes Linux] a terminales Windows de
la red VPN así como de Clientes Windows a computadoras con el mismo sistema operativo [mediante RDP].

Nota Importante: Enfocado a esta configuración .. Una vez que los clientes [Win/Linux] se conecten a la red
VPN quedarán automáticamente sin conexión a Internet, lo cual NO podrán acceder a la red mundial. Esto
puede ser modificable en el servidor VPN.

1
Servidor de Pasarela OpenVpn con clientes [Win/Linux] remotos

El servidor VPN hace de pasarelapara que todos los clientes [Windows/Linux] puedan estar comunicados a través
del túnel OpenVpn, estos al conectarse por medio de Internet al túnel automáticamente quedan sin lineaa la red
mundial quedando como una red local, esto claro esta a través del VPN.

Cada cliente se encuentra en lugares diferentes [ciudad/estado/país] con diferentes tipos de segmento de red, al
estar conectados mediante el túnel VPN se crea un red virtual y se asigna un nuevo segmento de red proporcionada
por el servidor principal en este caso con segmento [10.10.0.0/255.255.255.255].

INSTALACIÓN VPN CON OPENVPN

Actualización del Sistema

Antes que nada debemos actualizar todo nuestro sistema, si cuenta con acceso a Internet así como también
correctamente configurado sus depósitos yum se hará de la siguiente forma:

yum -y update

Lo anterior bajará lo paquetes actualizados de Internet así como sus dependencias en caso de ser necesario.

Paquetes Requeridos

Instalación a partir de RPM

Se necesita los paquetes OpenVPN y lzo, se podrá hacer de la siguiente forma, si cuenta en sus depósitos con
la paquetería AL Desktop:

yum -y install openvpn lzo

Instalación a partir de paquete TAR.

En caso de no contar con paquetes RPMpuede hacerlo de forma manual.

Se requiere utilizar la compresión sobre el enlace VPN, para esto instale la biblioteca LZO
[http://www.oberhumer.com/opensource/lzo/].

Si utiliza un Linux 2.2 o anterior descargue el controlador TUN/TAP [http://vtun.sourceforge.net/tun/].

Los usuarios de Linux 2.4.7 o superior deberían tener el controlador TUN/TAP ya incluido en su kernel.

Usuarios de Linux 2.4.0 -> 2.4.6 deberían leer la advertencia al final del fichero INSTALL.

Descargue ahora la última release de OpenVPN:

[http://prdownloads.sourceforge.net/openvpn/]

Instalar desde paquete .tar, descomprima el paquete donde x.x-x es la versión del Openvpn:

tar zxvf openvpn-x.x-x.tar.gz

Compilar OpenVPN:

2
cd openvpn-x.x.
./configure
make
make install

Si no se descargó la biblioteca LZO, añada --disable-lzoal comando configure. Se pueden habilitar otras opciones
como el soporte para pthread(./configure --enable-pthread) para mejorar la latencia durante los intercambios
dinámicos de clave SSL/TLS.

Si desea mas información acerca de todas las opciones de configuración para OpenVPN puede usar el
comando.

./configure –help

Preparación de guiones (script) RSA.

Para la administración de la PKI (Infraestructura de Llave Publica - Public Key Infrastructure) usaremos los
guiones que vienen junto con OpenVPN (easy-rsa) la versión reciente trae consigo muchas mejoras, es esta
easy-rsa 2.0.

cp -Rp /usr/share/doc/openvpn-x.x-x/easy-rsa/ /etc/openvpn


cp /etc/openvpn/easy-rsa/openssl.cnf /etc/openvpn

A continuación será modificar la Autoridad Certificadora ( CA) para generar las llaves, para esto se edita el
fichero /etc/openvpn/easy-rsa/vars de la siguiente forma, por ejemplo:

export KEY_COUNTRY=MX
export KEY_PROVINCE=MiEstado/Provincia
export KEY_CITY=MiCiudad
export KEY_ORG="midominio.com"
export KEY_EMAIL="fulanito@modominio.com"

• KEY_COUNTRY: Especifica el país donde se encuentra el servidor vpn

• KEY_PROVINCE: Provincia o estado donde se encuentra este.

• KEY_CITY: Ciudad ubicado el servidor vpn.

• KEY_ORG: Dominio o departamento de la organización/Empresa.

• KEY_MAIL: Correo electrónico de la organización/empresa.

Importante: Se deben de llenar todos los parámetros ya que son indispensables para los certificados que serán
creados.

Seguidamente se ejecutarán los guiones (scripts) para general las llaves correspondientes de la siguiente forma:

Inicializando Autoridad Certificadora el CA

Para generar el CA deberá realizar los siguientes pasos:

3
cd /etc/openvpn/
source easy-rsa/2.0/./vars
sh easy-rsa/2.0/clean-all
sh easy-rsa/2.0/build-ca
cd /etc/openvp

Generando Parametros Diffie Hellman.

Los parámetros Diffie Hellmandeben de ser generados en el Servidor OpenVPN, para realizar esto deberá
ejecutar el guión de la siguiente forma:

sh easy-rsa/2.0/build-dh

Generación de llaves.

Para generar el certificado y llave privada para el servidor será de la siguiente forma:

sh easy-rsa/2.0/build-key-server miservidor

En donde [miservidor] es una variable para identificar la llave privada del servidor.

Para generar el certificado y llave para los clientes se hará de la siguiente forma:

Recomendación: Cada cliente deberá tener su propia llave.

sh easy-rsa/2.0/build-key cliente
sh easy-rsa/2.0/build-key cliente1
sh easy-rsa/2.0/build-key cliente2

Una ves que se han generado las llaves correspondientes a los clientes y servidor, se podrá rescatar estas en el
directorio /etc/openvpn/easy-rsa/2.0/keys

CONFIGURACIÓN.

Configuración del Servidor Linux VPN

Para la creación del servidor OpenVPN se deberá crear un archivo de configuración udppara el este en el
directorio /etc/openvpn/ con el nombre servidorvpn-udp-1194.conf

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 10.11.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120

4
comp-lzo
persist-key
persist-tun
status openvpn-status-servidorvpn-udp-1194.log
verb 3

Descripción:

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 fichero de Autoridad Certificadora [.ca].

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

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

dh: Ruta exacta del fichero [.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: Fichero 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: fichero 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.

5
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.

Para la configuración del Servidor VPN necesitamos insertar el módulo (tun) para controlar los interfaces
/dev/net/tunXque se necesiten en le sistema, así pues creamos el directorio /var/emptypara hacer chroot y
seguidamente reiniciamos el servicio OpenVPN:

Cargamos el módulo:

modprobe tun

Y habilitamos el IP forwarding:

echo 1 > /proc/sys/net/ipv4/ip_forward

Comprobamos que tenemos /dev/net/tun, si no existelo lo creamos con:

mknod /dev/net/tun c 10 200

A continuación se creará un directorio para hacer chroot [jaula], en el cual solamente seráusado para
configuración de clientes Linux (no-Windows), de la siguienteforma:

mkdir /var/empty

Ahora signamos el tipo de usuarios y grupo como [nobody]..

chown nobody.nogroup /var/empty

Para la ejecución del servidor OpenVPN puede utilizar el siguiente guión y guardarlo con el nombre de
[iniciovpnserver], tendrá el siguiente contenido:

#!/bin/bash
#
#-- Variables --
RUTACONFIG=”/etc/openvpn/”
NOMCONFIG=”servidorvpn-udp-1198.conf”
#
#-- Ejecuciónde la configuraciónpara el servicioOpenVPN
#
$RUTACONFIG./$NOMCONFIG
#
exit 0

Y damos los permiso de ejecución correspondientes:

6
chmod +x iniciovpnserver

Para ejecutar nuestro guión al inicio del sistema (arranque), puede colocar lo siguiente dentro del fichero
/etc/rc.local

#inicia la configuración OpenVPN


/donde/este/tu/fichero/iniciovpnserver

Configuración del cortafuego [Shorewall]

Acerca de shorewall

Shorewall(Shoreline Firewall) es una robusta y extensible herramienta de alto nivel para la configuración de muros
cortafuego. Shorewall solo necesita se le proporcionen algunos datos en algunos ficheros de texto simple y éste
creará las reglas de cortafuegos correspondientes a través de iptables. Shorewallpuede permitir utilizar un sistema
como muro cortafuegos dedicado, sistema de múltiples funciones como puerta de enlace, dispositivo de
encaminamiento y servidor.

URL: http://www.shorewall.net/

En esta ocasión se supone que el servidor VPN se encuentra en el mismo Firewall.

Procedimiento

Fichero de configuración /etc/shorewall/zones

En este fichero se definirá las zonas que se administrarán con Shorewall. La zona fwestá presente en el
fichero /etc/shorewall.conf como configuración predefinida. En el siguiente ejemplo se registrarán las zonas
de Internet (net), Red Local (loc) y el túnel virtual tunpara el vpn (rem):

#ZONE DISPLAY OPTIONS


fw firewall
net ipv4
loc ipv4
# OpenVPN ----
rem ipv4
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT
REMOVE

Fichero de configuración /etc/shorewall/interfaces

En éste se establecen cuales serán las interfaces para las tres diferentes zonas. Se establecen las interfaces que
corresponden a la Internet, virtual tuny Red Local.

A continuación se cuenta con una interfaz ppp0 para acceder hacia Internet, una interfaz eth0 para acceder
hacia la LANy una interfaz rem para acceder hacia la red virtual tun, y en todas se solicita se calcule
automáticamente la dirección de transmisión (Broadcast):

#ZONE INTERFACE BROADCAST OPTIONS


GATEWAY
net ppp0 detect
loc eth0 detect
# OpenVPN ----

7
rem tun0 detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT
REMOVE

Fichero de configuración /etc/shorewall/policy

En este fichero se establece como se accederá desde una zona hacia otra y hacia la zona de Internet.

#SOURCE DEST POLICY LOG LIMIT:BURST


loc net ACCEPT
fw net ACCEPT
# OpenVpn ----
rem fw ACCEPT
fw rem ACCEPT
net rem ACCEPT
rem net ACCEPT
# ------------
net all DROP info
all all REJECT info
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT
REMOVE

Lo anterior hace lo siguiente:

1. La zona de la red local puede acceder hacia la zona de Internet.

2. La zona virtual tun (rem) puede acceder hacia el cortafuegos, viceversa y también hacia
la zona de Internet.

3. El cortafuegos mismo puede acceder hacia la zona de Internet.

4. Se impiden conexiones desde Internet hacia el resto de las zonas.

5. Se establece una política de rechazar conexiones para todo lo que se haya omitido.

Fichero de configuración /etc/shorewall/tunnels

En éste se establecen el tipo de conexión vpn. Puesto que es un servidor VPN se le indicará a al cortafuego
que en el servidor vpn se utilizará el puerto que nosotros le indiquemos así como también la IP donde se
encuentra este, en nuestro caso siguiendo el tipo de configuración será en la red 192.168.2.0/24:

#TYPE ZONE GATEWAY GATEWAY


# ZONE
openvpnserver:1194 rem 192.168.2.0/24
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT
REMOVE

8
Fichero de configuración /etc/shorewall/rules

Todos los puertos están cerrados de modo predefinido, así que se deberá habilitar el puerto configurado para el
túnel vpn en el cual fue especificado en la configuración del servidor OpenVpn. Esto debe ser especificado con la
acción [ACCEPT] en [rules].

ACCEPT

La acción ACCEPT se especificará que se permiten conexiones para el puerto OpenVpn desde o hacia una(s)
zona (s) un protocolo(s) y puerto(s) en particular. A continuación se permiten conexiones desde Internet hacia
el firewall y viceversa por el puerto UDP [1194]. Los nombres de los servicios se asignan de acuerdo a como
estén listados en el fichero /etc/services.

#ACTION SOURCE DEST PROTO


DEST
#
PORT
# OpenVPn ---
ACCEPT net fw udp 1194
ACCEPT fw net udp 1194
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT
REMOVE

Configuración de Clientes VPN con OpenVPN.

Clientes Windows

Para la configuración de clientes OpenVPN utilizaremos el programa OpenVPN GUI para Windows.

OpenVPN GUI para Windowscorre normalmente en una ventana de consola, al ser conectado al servidor
remoto/local VPN le da un aviso en el área de notificación (el área de abajo a la derecha por el reloj en la barra ),
desde allí puede tener el control de iniciar/parar el Cliente OpenVPN, consultar los avisos (log), incluso cambiar su
contraseña.

Puede ser descargado en el sitio OpenVPN GUI for Windows [http://openvpn.se].

Preparativos y configuración

A continuación deberá copiar los siguientes ficheros:

• ca.crt.

• cliente1.crt.

• cliente1.csr.

• cliente1.key

Estos fueron creados en el directorio /etc/openvpn/easy-rsa/2.0/keys y deberán ser colocados en la máquina


cliente dentro de C:Program FilesOpenVPNconfig o a su vez en C:|Archivos de Programa|OpenVPN|config

Se creará un fichero de configuración cliente para el OpenVPN dentro del directorio C:|Archivos de
ProgramaOpenVPNconfigcon el nombre de cliente1-udp-1194.ovpn.

Tendrá la siguiente configuración:

9
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 ca.crt
cert cliente.crt
key cliente.key
ns-cert-type server
#---------------------------------
comp-lzo
verb 3

Descripción:

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:porten 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 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 fichero de Autoridad Certificadora [.ca].

cert: Especifica la ubicación del fichero [.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.

10
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
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.

Una ves configurado el cliente VPN con Windows, deberá ir al área de notificación (el área de abajo a la derecha por
el reloj en la barra de Windows) y dar un click derecho al icono del cliente OpenVPN, allí aparecerá un menú en el
cual podrá elegir la opción conectar [connect].

11
Como configurar servidor Punto Multipunto con
OpenVPN y cliente en Windows ó Linux.
Software gratis para VPN
Conecte PCs entre sí creando su red privada virtual. Fácil y seguro.
www.LogMeIn.com/ES/

OpenVPN es un software basado en la filosofía de software libre, que permite crear


conexiones VPN entre equipos Linux, Windows, MacOSX, *BSD, *nix y Dispositivos
móviles como Windows Mobile a traves de redes inseguras como internet o redes
inalámbricas.

OpenVPN puede funcionar de varias maneras una de ellas de punto a punto, punto a
multipunto y en modo bridge.

 Punto a Punto: solo realiza una conexión segura entre 2 equipos, esta conexión
puede usarse para compartir archivos entre 2 equipos en internet.
 Punto a multipunto: Permite conectar a diversos dispositivos a un servidor OpenVPN
el cuál permitirá redigir las peticiones remotas a una red interna a traves de una red
como internet. El uso de este modo es factible para dar acceso a aplicaciones dentro de
una red local a equipos que se encuentran en alguna parte de internet.
 Modo Bridge: OpenVPN permite crear conexiones entre 2 redes remotas, de tal
forma que OpenVPN funciona como gateway de un punto y otro para poder unificar las
redes, esto es muy factible cuándo se tienen oficinas remotas y se desea unificarlas, una
de sus ventajas se da para las aplicaciones de Voz sobre IP, Bases de Datos, etc.Nuestro
caso: Punto a Mutipunto.

Este tipo de modo de OpenVPN en mi caso es el que más uso, ya que me dedico a
desarrollar aplicaciones para dispositivos móviles los cuáles se conectan a internet a
traves de conexiones GPRS(Movistar y Telcel en México), de tal forma que les instalo
un cliente OpenVPN a los móviles y de esta forma se conectan a un servidor OpenVPN,
esto para poder acceder a las bases de datos, a los web services, servidores FTP, etc., de
una forma muy segura sin comprometer la información en redes públicas.

Para comenzar con OpenVPN necesitamos descargar el instalador para Windows de


OpenVPN, el cuál puede obtenerse de la siguiente URL:

http://openvpn.net/release/openvpn-2.0.9-install.exe

Esto probablemente nos instale el software de OpenVPN en el siguiente directorio: C:\


Archivos de Programa\OpenVPN

Abrir la consola de Windows Inicio->Ejecutar->CMD

12
Ya en la consola de Windows ir al directorio easy-rsa de OpenVPN cd C:\Archivos de
Programa\OpenVPN\easy-rsa\

Lo primero que se hará es crear un Certificado de Autoridad (CA) Ejecutar : #Inicia el


proceso
init-config

#Aqui pedirá valores como Pais, Estado, Ciudad, Organización, Depto, Nombre del
Servidor y Correo, todos estos valores se repetirán a excepción del nombre del host que
en la parte de configuración de las llaves del cliente en la parte última.
vars
clean-all
build-ca

#Al finalizar esta parte se crearán varios archivos en directorio


C:\Archivos de Programa\OpenVPN\easy-rsa\keys

#Copiar el archivo keys\ca.crt al directorio


C:\Archivos de Programa\OpenVPN\config
copy keys\ca.crt ..\config\

Con lo anterior habremos creado el Certificado de Autoridad.

El siguiente paso es crear la llave privada y certificado del servidor.

Ejecutar en el directorio easy-rsa el siguiente comando


vars
build-key-server phylevn.mexrom.net

#dónde phylevn.mexrom.net es el nombre del servidor dónde se está instalando


OpenVPN.

#Aquí de igual pedirá datos, los cuáles deben ser los mismos introducidos
anteriormente, también pedirá un password, este mismo password debe ser usado
cuándo se creen las llave de los clientes.

#Luego ejecutar el siguiente comando

build-dh

#Con esto se habrán creado otros archivos en el directorio keys.

#Copiar los siguientes archivos del directorio easy-rsa\keys a ..config\


C:\Program Files\OpenVPN\easy-rsa> copy keys\phylevn.mexrom.net.crt ..\config\
C:\Program Files\OpenVPN\easy-rsa> copy keys\phylevn.mexrom.net.key ..\config\
C:\Program Files\OpenVPN\easy-rsa> copy keys\dh1024.pem ..\config\

#Ahora hay que configurar el servidor para luego iniciarlo.

13
#Dentro del archivo de configuración de OpenVPN
C:\Program Files\OpenVPN\config

#Crear un archivo llamado server.ovpn y dentro de ese archivo introducir lo siguiente

port 1194

proto udp

dev tun

ca “C:\Archivos de programa\OpenVPN\config\ca.crt” cert “C:\Archivos de programa\


OpenVPN\config\phylevn.mexrom.net.crt”

key “C:\Archivos de programa\OpenVPN\config\phylevn.mexrom.net.key” # Este


archivo debe mantenerse en secreto

dh “C:\Archivos de programa\OpenVPN\config\dh1024.pem”

server 192.168.20.0 255.255.255.0

#Segmento de red que tomarán los clientes remotos

ifconfig-pool-persist ipp.txt

push “dhcp-option DNS 208.67.222.222″

push “dhcp-option WINS 192.168.20.1″

push “route-gateway 192.168.20.1″

client-to-client

push “route 192.168.1.0 255.255.255.0″

#Segmento de la red local interna

duplicate-cn

#Con esta opción no es necesario crear una llave por cada cliente

comp-lzo

#Comprime los datos envíados y recibidos

max-clients 60

persist-key persist-tun

verb 3

14
status openvpn-status.log

keepalive 10 120

suppress-timestamps

route-delay 10 10

#Ya con la configuración realizada solo basta darle click con el botón derecho del
mouse al archivo server.ovpn y seleccionar la opción de Start with OpenVPN.

#Pero antes de lo anterior hay que editar el registro de windows en la siguiente llave y
reiniciar Windows. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\Tcpip\Parameters

#Y en la opción de IPEnableRouter configurarlo a 1, esto para que se le permita a


OpenVPN hacer el ruteo del segmento de la red privada a la red local interna.

#Ahora si iniciar el servidor de OpenVPN

#Si todo salió bien se abrirá una ventana de comandos y al final indicará
Initialization Sequence completed

#Con esto ya tenemos el servidor de OpenVPN echado andara, ahora falta crear las
llaves de los clientes, para esto realizar lo siguiente

#En la consola de comandos ir a :


C:\Archivos de programa\OpenVPN\easy-rsa

#Introducir los siguientes comandos


vars
build-key phylevn

#dónde cliente es el nombre del cliente remoto, debe cambiar por cada cliente remoto
configurado en caso de que se creen múltiples llaves.

#Al momento de ejecutar build-key hay que repetir la información anteriormente


capturada a excepción del nombre del host que debe ser el nombre del equipo cliente,
también en password debe ponerse el password que se dió al crear la llave privada y
certificado del servidor de OpenVPN.

#En seguida hay que crear los archivos al directorio config del servidor OpenVPN
copy keys\phylevn.crt ..\config
copy keys\phylevn.key ..\config

#Y también estos archivo hay que pasarlos a la máquina remota, solo hay que tener un
modo seguro para envío de estas llaves a las máquinas remotas, los arhivos que debe
tener la máquina remota deben ser los siguientes
ca.crt

15
phylevn.crt
phylevn.key

Dónde phylevn es el nombre de la llave para el host especificado, en caso de que se


permita la duplicación de llaves, no importaría el nombre del archivo cliente que se pase
en caso de que se tengan varios.

#Ahora en las máquinas clientes también hay que tener instalado el software OpenVPN

#Y se debe crear un archivo de configuracion llamado cliente.ovpn en el directorio


config de OpenVPN
C:\Archivos de programa\OpenVPN\config\

#El archivo cliente.ovpn debe contener lo siguiente:

client proto udp

dev tun

remote 201.123.42.174 1194

#Dirección IP Pública del servidor OpenVPN

resolv-retry infinite

nobind persist-key

persist-tun

ca “C:\Archivos de programa\OpenVPN\config\ca.crt” cert “C:\Archivos de programa\


OpenVPN\config\phylevn.crt” key “C:\Archivos de programa\OpenVPN\config\
phylevn.key” comp-lzo verb 3

#Ya que esté guardado el archivo, solo basta presionar el botón derecho del mouse y
presionar Start With OpenVPN, con esto el cliente se intentará validar con el servidor
remoto, si todo salió bien, entonces el cliente tendra una nueva interfaz de red y le será
asignada una IP en el segmento 192.168.20.x, con esto ya podrá hacer ping al servidor
remoto, de igual forma a las IPs del segmento de la red local interna dónde se encuentra
el servidor de OpenVPN.

16
#Con Linux son los mismos pasos, a excepto de las rutas, pero el proceso es el mismo,
solo se excluye la parte del registro de windows y se activa el IP Forwarding.

Otro ….

Como configurar servidor Punto Multipunto con OpenVPN y cliente


en Windows ó Linux.
Posted 2 Enero 2009
Filed under: Internet,Linux | Tags: Linux, tuenl, vpn, windows |

OpenVPN es un software basado en la filosofía de software libre, que permite crear


conexiones VPN entre equipos Linux, Windows, MacOSX, *BSD, *nix y Dispositivos
móviles como Windows Mobile a traves de redes inseguras como internet o redes
inalámbricas.

OpenVPN puede funcionar de varias maneras una de ellas de punto a punto, punto a
multipunto y en modo bridge.

17
 Punto a Punto: solo realiza una conexión segura entre 2 equipos, esta conexión
puede usarse para compartir archivos entre 2 equipos en internet.
 Punto a multipunto: Permite conectar a diversos dispositivos a un servidor OpenVPN
el cuál permitirá redigir las peticiones remotas a una red interna a traves de una red
como internet. El uso de este modo es factible para dar acceso a aplicaciones dentro de
una red local a equipos que se encuentran en alguna parte de internet.
 Modo Bridge: OpenVPN permite crear conexiones entre 2 redes remotas, de tal
forma que OpenVPN funciona como gateway de un punto y otro para poder unificar las
redes, esto es muy factible cuándo se tienen oficinas remotas y se desea unificarlas, una
de sus ventajas se da para las aplicaciones de Voz sobre IP, Bases de Datos, etc.Nuestro
caso: Punto a Mutipunto.

Este tipo de modo de OpenVPN en mi caso es el que más uso, ya que me dedico a
desarrollar aplicaciones para dispositivos móviles los cuáles se conectan a internet a
traves de conexiones GPRS(Movistar y Telcel en México), de tal forma que les instalo
un cliente OpenVPN a los móviles y de esta forma se conectan a un servidor OpenVPN,
esto para poder acceder a las bases de datos, a los web services, servidores FTP, etc., de
una forma muy segura sin comprometer la información en redes públicas.

Para comenzar con OpenVPN necesitamos descargar el instalador para Windows de


OpenVPN, el cuál puede obtenerse de la siguiente URL:

http://openvpn.net/release/openvpn-2.0.9-install.exe

Esto probablemente nos instale el software de OpenVPN en el siguiente directorio: C:\


Archivos de Programa\OpenVPN

Abrir la consola de Windows Inicio->Ejecutar->CMD

Ya en la consola de Windows ir al directorio easy-rsa de OpenVPN cd C:\Archivos de


Programa\OpenVPN\easy-rsa\

Lo primero que se hará es crear un Certificado de Autoridad (CA) Ejecutar : #Inicia el


proceso
init-config

#Aqui pedirá valores como Pais, Estado, Ciudad, Organización, Depto, Nombre del
Servidor y Correo, todos estos valores se repetirán a excepción del nombre del host que
en la parte de configuración de las llaves del cliente en la parte última.
vars
clean-all
build-ca

#Al finalizar esta parte se crearán varios archivos en directorio


C:\Archivos de Programa\OpenVPN\easy-rsa\keys

#Copiar el archivo keys\ca.crt al directorio


C:\Archivos de Programa\OpenVPN\config
copy keys\ca.crt ..\config\

18
Con lo anterior habremos creado el Certificado de Autoridad.

El siguiente paso es crear la llave privada y certificado del servidor.

Ejecutar en el directorio easy-rsa el siguiente comando


vars
build-key-server phylevn.mexrom.net

#dónde phylevn.mexrom.net es el nombre del servidor dónde se está instalando


OpenVPN.

#Aquí de igual pedirá datos, los cuáles deben ser los mismos introducidos
anteriormente, también pedirá un password, este mismo password debe ser usado
cuándo se creen las llave de los clientes.

#Luego ejecutar el siguiente comando

build-dh

#Con esto se habrán creado otros archivos en el directorio keys.

#Copiar los siguientes archivos del directorio easy-rsa\keys a ..config\


C:\Program Files\OpenVPN\easy-rsa> copy keys\phylevn.mexrom.net.crt ..\config\
C:\Program Files\OpenVPN\easy-rsa> copy keys\phylevn.mexrom.net.key ..\config\
C:\Program Files\OpenVPN\easy-rsa> copy keys\dh1024.pem ..\config\

#Ahora hay que configurar el servidor para luego iniciarlo.

#Dentro del archivo de configuración de OpenVPN


C:\Program Files\OpenVPN\config

#Crear un archivo llamado server.ovpn y dentro de ese archivo introducir lo siguiente

port 1194 proto udp dev tun ca “C:\Archivos de programa\OpenVPN\config\ca.crt” cert


“C:\Archivos de programa\OpenVPN\config\phylevn.mexrom.net.crt” key “C:\
Archivos de programa\OpenVPN\config\phylevn.mexrom.net.key” # Este archivo debe
mantenerse en secreto dh “C:\Archivos de programa\OpenVPN\config\dh1024.pem”
server 192.168.20.0 255.255.255.0 #Segmento de red que tomarán los clientes remotos
ifconfig-pool-persist ipp.txt push “dhcp-option DNS 208.67.222.222″ push “dhcp-
option WINS 192.168.20.1″ ush “route-gateway 192.168.20.1″ client-to-client push
“route 192.168.1.0 255.255.255.0″ #Segmento de la red local interna duplicate-cn #Con
esta opción no es necesario crear una llave por cada cliente comp-lzo #Comprime los
datos envíados y recibidos max-clients 60 persist-key persist-tun verb 3 status openvpn-
status.log keepalive 10 120 suppress-timestamps route-delay 10 10

#Ya con la configuración realizada solo basta darle click con el botón derecho del
mouse al archivo server.ovpn y seleccionar la opción de Start with OpenVPN.

19
#Pero antes de lo anterior hay que editar el registro de windows en la siguiente llave y
reiniciar Windows. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\Tcpip\Parameters

#Y en la opción de IPEnableRouter configurarlo a 1, esto para que se le permita a


OpenVPN hacer el ruteo del segmento de la red privada a la red local interna.

#Ahora si iniciar el servidor de OpenVPN

#Si todo salió bien se abrirá una ventana de comandos y al final indicará
Initialization Sequence completed

#Con esto ya tenemos el servidor de OpenVPN echado andara, ahora falta crear las
llaves de los clientes, para esto realizar lo siguiente

#En la consola de comandos ir a :


C:\Archivos de programa\OpenVPN\easy-rsa

#Introducir los siguientes comandos


vars
build-key phylevn

#dónde cliente es el nombre del cliente remoto, debe cambiar por cada cliente remoto
configurado en caso de que se creen múltiples llaves.

#Al momento de ejecutar build-key hay que repetir la información anteriormente


capturada a excepción del nombre del host que debe ser el nombre del equipo cliente,
también en password debe ponerse el password que se dió al crear la llave privada y
certificado del servidor de OpenVPN.

#En seguida hay que crear los archivos al directorio config del servidor OpenVPN
copy keys\phylevn.crt ..\config
copy keys\phylevn.key ..\config

#Y también estos archivo hay que pasarlos a la máquina remota, solo hay que tener un
modo seguro para envío de estas llaves a las máquinas remotas, los arhivos que debe
tener la máquina remota deben ser los siguientes
ca.crt
phylevn.crt
phylevn.key

Dónde phylevn es el nombre de la llave para el host especificado, en caso de que se


permita la duplicación de llaves, no importaría el nombre del archivo cliente que se pase
en caso de que se tengan varios.

#Ahora en las máquinas clientes también hay que tener instalado el software OpenVPN

#Y se debe crear un archivo de configuracion llamado cliente.ovpn en el directorio


config de OpenVPN
C:\Archivos de programa\OpenVPN\config\

20
#El archivo cliente.ovpn debe contener lo siguiente:

client proto udp dev tun remote 201.123.42.174 1194 #Dirección IP Pública del servidor
OpenVPN resolv-retry infinite nobind persist-key persist-tun ca “C:\Archivos de
programa\OpenVPN\config\ca.crt” cert “C:\Archivos de programa\OpenVPN\config\
phylevn.crt” key “C:\Archivos de programa\OpenVPN\config\phylevn.key” comp-lzo
verb 3

#Ya que esté guardado el archivo, solo basta presionar el botón derecho del mouse y
presionar Start With OpenVPN, con esto el cliente se intentará validar con el servidor
remoto, si todo salió bien, entonces el cliente tendra una nueva interfaz de red y le será
asignada una IP en el segmento 192.168.20.x, con esto ya podrá hacer ping al servidor
remoto, de igual forma a las IPs del segmento de la red local interna dónde se encuentra
el servidor de OpenVPN.

#Con Linux son los mismos pasos, a excepto de las rutas, pero el proceso es el mismo,
solo se excluye la parte del registro de windows y se activa el IP Forwarding.

21

También podría gustarte