Vous êtes sur la page 1sur 19

24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense

http://www.perfect-sense.info/?p=92 1/19
Versin pfSense: 2.0.3
Mdulos:
OpenVPN Client Export Utility 1.0.11
En el siguiente artculo se explica la implementacin de la funcin de terminacin de tneles
Cliente-Servidor con OpenVPN y pfsense, cuya funcionalidad es implementada nativamente en
las actuales versiones.
OpenVPN fu creado en 2001, y actualmente es el estandar a nivel seguridad y performance
habiendo desplazado a protocolos como PPTP y L2TP que demostraron ser vulnerables y no
tan rpidos.
En los siguientes links puedes encontrar comparativas entre OpenVPN, L2TP y PPTP: link1 y
link2
OpenVPN es actualmente compatible con todos los sistemas operativos.
Autenticacin:
OpenVPN implementa SSL/TLS mediantes certificados RSA que se considera mucho ms seguro
que la utilizacin de claves precompartidas. Es posible tambin la implementacin de OpenVPN
en conjunto con LDAP o Radius para el manejo de usuarios y permisos, pero en este tutorial se
utilizar la autenticacin Local en el pfSense. Vamos a necesitar:
OPENVPN, V2.0.3, VPN
IMPLEMENTACIN DE VPN CLIENTE-
SERVIDOR CON OPENVPN Y PFSENSE
SEPTEMBER 9, 2013 | GABRIEL | 13 COMMENTS
Perfect Sense
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 2/19
- Certificado Raiz, utilizado para generar los certificados clientes, en nuestro caso generaremos
uno propio, por lo tanto seremos nuestra propia entidad certificadora, sin embargo tambin se
podra utilizar una CA externa. [OpenVPN-CA]
- Certificado Cliente para el pfSense, que nicamente deber estar en el pfSene. [OpenVPN-
Servidor]
- Certificados Clientes para usuarios, es necesario un certificado para cada usuario que daremos
acceso. [OpenVPN-Gabriel]
Clientes:
Mediante el paquete OpenVPN Client Export Utility es posible generar paquetes instaladores
para cada usuario desde el pfSense que configuraran las pc clientes de manera muy sencilla:
bsicamente el paquete est conformado por el instalador de openvpn, el archivo de
configuracin con los datos de la vpn y los certificados necesarios para conectarse al servidor.
Sin embargo, el plugin no siempre mantiene las ltimas versiones de los instaladores; si se va a
utilizar es recomendable chequear que no estn defasadas las versiones.
Para evitar este problema, en nuestro caso utilizamos el plugin nicamente para generar el zip
con la configuracin para cada usuario (certificados + archivo de configuracin), que
simplemente hay que copiar en la carpeta de configuracin del cliente para funcionar.
Servidor:
Es posible configurar ms de un servidor de OpenVPN en un mismo pfSense con diferentes
configuraciones (por ejemplo diferentes mtodos de autenticacin, diferente configuracin de
puertos, diferentes redes a las que dar acceso, etc).
Topologa:
Nuestro pfSense cuenta con 3 Interfaces: WAN (numeracin pblica), LAN (segmento de
usuarios en la red) y DMZ (segmento de servidores en la red). La configuracin que crearemos
dar acceso a la red LAN (192.168.1.0/24).
Resumen:
Los pasos para esta implementacin son:
1. Creacin de Certificado Raiz (CA)
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 3/19
2. Creacin de Certificado Servidor
3. Configuracin del Servidor
4. Creacin de Usuario + Certificado
5. Instalacin de Cliente
Implementacin:
Utilizaremos el Wizard propio de pfSense que simplifica el paso 1, 2 y 3. Para comenzar vamos al
men VPN, luego OpenVPN y por ltimo a la solapa Wizards, que nos abrir el asistente de
configuracin.
1. Seleccionamos el tipo de Servidor, que en nuestro caso ser Local User Access, ya que los
usuarios los crearemos y manejaremos mediante el pfSense. Como explicamos antes, tambin
es posible configurarlo con un servidor LDAP o Radius. Next.
2. El prximo paso ser la configuracin del Certificado Raiz (la entidad certificadora).Este
certificado ser utilizado para luego crear el certificado del servidor y los certificados de
usuarios.
Si ya existen CAs cargados en el pfSense el asistente nos dejar seleccionar uno (los mismos se
pueden crear desde el men System > Cert Manager) o tambin crear uno nuevo; y en caso de
no existir ninguno como en el nuestro, directamente nos llevar a la creacin de uno:
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 4/19
Completar la informacin requerida respecto a la organizacin, el Key Lenght recomiendo
utilizar 2048 ya que es optimizado entre seguro y performante, y el Lifetime es el tiempo de
validez. Add new CA.
3. Ahora es necesario crear el certificado para el servidor, que ser creado en base a la entidad
certificadora creada en el paso anterior.
Si ya existieran certificados creados podramos simplemente seleccionar uno, en nuestro caso,
nos llevar directo a la creacin de uno. La mayora de los datos ya estarn completos basados
en los datos de la CA. Faltara completar el nombre y un correo.
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 5/19
Con los datos completos le damos click a Create new Certificate.
4. A cotinuacin el asistente nos lleva a la configuracin del Servidor, que se divide en 4 grupos:
General OpenVPN Server Information:
Contiene la configuracin de la interface que atender las conexiones (en nuestro caso llegarn
desde internet a la interface wan), el puerto y el protocolo que utilizaremos, en nuestro caso los
default (en caso de cambiarlos, ser necesario tambin cambiarlos en los clientes). No est
dems aclarar, que si quisieramos agregar otro Servidor VPN (algo as como otra instancia de
OpenVPN), tendremos que elegir otro puerto.
Tambin ser necesario una regla de firewall que permita las conexiones entrantes a ese puerto
y procolo en la interface WAN, que crearemos luego.
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 6/19
Cryptographic Settings:
La configuracin criptogrfica que utilizaremos es la default, ya que nuevamente consideramos
que brinda un buen nivel de seguridad y de performance.
Tunnel Settings:
Aqu setearemos la configuracin propia del tunel, esta configuracin es importante.
Tunnel Network, ser la red que crearemos para los clientes que se conecten. Por lo tanto, con
esta configuracin estamos definiendo el rango de numeracin que se le asginarn a los clientes
al conectarse y tambin la ip de la interface virtual que ser la primera de dicha red. Se deber
utilizar una red que no est ya utilizada para evitar problemas de ruteo. En nuestro caso
utilizaremos 10.0.1.0/24 (entonces, la interfaz virtual que se crear tendr la 10.0.1.1 y los
clientes que se conecten tendrn una direccin asignada entre la 10.0.1.2 y la 10.0.1.254).
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 7/19
Local Network, define la red a la que daremos acceso y que por ende, ser ruteada en los clientes
a travs de la vpn. En nuestro caso, tal cual los descripto en el apartado Topologa,
configuraremos la red 192.168.1.0/24.
Tambin se puede utilizar la opcin Redirect Gateway, que lo que har bsicamente es rutear
todo el trfico del cliente por la VPN, esto har que todas las conexiones que se generen se
envien al tunel, incluso por ejemplo las peticiones a numeracin pblica (navegacin web por
ejemplo), entonces utilizar la salida del pfSense tambin para navegar. A veces se utiliza este
mtodo para dar un mayor nivel de seguridad a la red, evitando que el usuario puentee su
salida a internet con la red a la que se est conectando saltandose las restricciones que por
ejemplo puedan estar configuradas en el proxy de navegacin web. Nosotros no utilizaremos
est opcin para evitar que se utilice nuestra salida a internet para navegar u otros, y que el
usuario nicamente nos enve el trfico destinado a nuestra red.
Podemos agregar un lmite de conexiones concurrentes como medida de seguridad adicional o
para asegurar la performance del equipo (cuanto ms usuarios conectados, mayor uso de
procesador).
Tambin habilitaremos la compresin que hace mucho ms performante la conexin.
Client Settings:
Por ltimo las configuraciones que afectarn a los clientes que se conecten. Setearemos la
opcin Adress Pool, que afirma la configuracin del Tunnel Network, o sea, hahbilita a que los
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 8/19
clientes reciban una ip de la red definida (10.0.1.0/24). Si no caeran con su numeracin pblica,
y esto es algo que no queremos porque perdemos control, por ejemplo a nivel acls.
Adems setearemos el servidor dns, que en nuestro caso es el propio pfSense, para que el
cliente pueda resolver nombres internos.
No necesitamos setear nada ms, por lo que damos a la opcin Next.
5. El prximo paso nos permite agregar automticamente la regla que permite el trfico desde
internet al puerto y protocolo configurado en el paso anterior.
Adems nos permite agregar o no, una regla en la nueva interface que crear el pfSense, la
10.0.1.0/24, donde caern los usuarios conectados, si seleccionamos esta opcin, la regla que se
crear sera de origen ANY, destino ANY, y puerto y protocolo tambin ANY. Ya que nosotros no
quremos dar acceso a los usuarios que se conecten a la red DMZ y slamente a la red LAN, no
seleccionaremos esta opcin y crearemos la regla a mano. Pueden seleccionar esta opcin si no
desean aplicar restricciones.
Cuando le demos Next, el asistente finaliza e indica que fu configurado el servidor
correctamente.
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 9/19
6. Si ahora vamos al men Firewall, y luego a Rules, veremos que se ha agregado la regla en la
interface WAN, que permite todas las conexiones al puerto UDP/1194 y adems que se ha
creado una nueva solapa OpenVPN, donde manejaremos las reglas asociadas a todos los
servidores OpenVPN:
Cuando vayamos a la solapa OpenVPN, estar vaca sin ninguna regla, pero en caso de que
hayan seleccionado la opcin que crea la regla automticamente, aparecer una regla
permitiendo todo el trfico. Nosotros creamos la regla a mano y quedar de la siguiente forma:

Usuarios:
Ahora crearemos un usuario habilitad0 para conectarse, en nuestro caso tambin generaremos
un grupo OpenVPN, para incluir en el a este usuario y a todos los que creemos para conectarse
a la VPN. Esto sirve para que administrativamente sepamos que usuarios tienen acceso a la
VPN, adems de poder asginar permisos de pfSense a todos los usuarios a la vez, por ejemplo
para permitir el acceso a algn mdulo de pfSense como el de cambio de Password.
1. Vamos al men System, User Manager y luego a la solapa Groups. All buscamos el cono de
agregar (+) y creamos el grupo:
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 10/19
Le damos Save para crear.
2. Para crear un usuario, volvemos a la solapa Users, y nuevamente vamos al cono de agregar
(+):
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 11/19
Configuraremos las opciones bsicas como el nombre de usuario, el nombre completo, la
contrasea, la asociacin al grupo que creamos antes, y en nuestro caso tambin seteamos una
fecha de expiracin que ser a fin de ao.
Seleccionamos la opcin de crear certificado, y nos expander ms opciones:
Debemos poenerle un nombre al certificado y elegir la entidad certificadora que creamos
anteriormente.
Le damos Save y nos crear el usuario y su certificado automticamente.
Podemos ir luego al men System, a la opcin Cert Manager para comprobarlo.
En la solapa CA, veremos la entidad certificadora que creamos:
Y en la solapa Certificates veremos el certificado del Servidor que creamos anteriormente, y el
certificado del usuario gabriel que acabamos de crear. (Tambin veran un certificado default que
es que se utilizan al conectarse va HTTPS al WebConfiurator).
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 12/19

Clientes:
El servidor ya se encuentra configurado y el usuario creado, ahora nos toca configurar el cliente
que se conectar con el usuario gabriel.
Para esto es necesario instalar el cliente OpenVPN en el o los equipos que se conectarn y luego
cargarle la configuracin del servidor y la del usuario.
Para ayudarnos en la configuracin de los clientes, instalaremos tambin el paquete OpenVPN
Client Export Utility que nos permite exportar los zips de configuracin para cada usuario de
manera muy sencilla.
Por lo tanto, en primer lugar, instalemos el paquete desde el men System, opcin Packages y
luego la solapa Available Packages. Buscamos el paquete y le damos al cono de agregar (+).
Una vez instalado, se agrega en el apartado de OpenVPN (men VPN, opcin OpenVPN), una
nueva solapa Client Export:
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 13/19
Si hicimos todo bien, en la parte de abajo de la pgina, veran un apartado con los nombres de
usuario que estn asociados al certificado de la VPN y de donde podremos exportar los clientes
para cada sistema operativo, o la Standard Configuration que nos da un zip con el archivo de
configuracin de openvpn (*.opvn) y los certificados del usuario para permitir la conexin, este
zip debe incorporarse a la carpeta de configuracin del cliente OpenVPN de la pc que va a
realizar la configuracin y con esto ya se podr conectar.
Veremos algunos ejemplos de configuracin de clientes:
Instalacin de Cliente OpenVPN en Windows
Existen dos clientes OpenVPN para Windows, el oficial (http://openvpn.net) y un Cliente
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 14/19
llamado OpenVPN Manager (https://github.com/jochenwierum/openvpn-manager/), este
segundo cliente, soluciona un problema conocido cuando el usuario no tiene permisos de
administrador en la PC con la que se quiere conectar al servidor. Para funcionar la conexin, el
cliente a conectar debe poder agregar ruteos (como ya explicamos en la configuracin del
Servidor) para conocer la red a la que se quiere acceder a travs del tunel que se levant. Sin
permisos de administrador, no es posible realizar esa configuracin, y OpenVPN Manager
soluciona esta limitacin mediante la creacin de un servicio especfico que se encarga de dicha
configuracin.
En caso de no contar con permisos de administrador, se debe utilizar ese cliente que se descarga
ac (http://openvpn.jowisoftware.de/downloads/), y adems, antes de exportar la
configuracin, se debe tildar la opcin Management Interface OpenVPNManager, que adapta la
configuracin para este cliente:
En nuestro caso, tenemos permisos de administrador en el equipo Windows que se conectar
por lo que no utilizaremos la anterior opcin, y aprovecharemos el cliente original de OpenVPN,
que realmente es un poco ms performante que el OpenVPN Manager, y adems, se actualiza
con mayor periodicidad.
1. Descargamos el Cliente OpenVPN desde el sitio oficial http://openvpn.net/index.php/open-
source/downloads.html. Tenemos disponible la versin de 32 o 64 bit, segn corresponda.
Descargamos la necesaria.
2. Realizar la instalacin. La misma instalar una nueva interface, por lo tanto ser necesario
permisos de administrador para hacerlo, que solicitar durante el proceso.
3. Finalizada la instalacin, hay que ir al PATH de instalacin y a la carpeta Config, en nuestro
caso es C:Program FilesOpenVPNconfig, all copiamos los archivos de configuracin y
certificados que descargamos con el OpenVPN Client Export Utility.
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 15/19
Con esto ya es suficiente para conectarse a la VPN creada.
4. Ejecutamos el cliente OpenVPN GUI, que se abrir y se mantendr minimizado en la barra del
reloj. Al hacer click con el boton derecho sobre el mismo, tendremos la opcin Connect (en caso
de que tengamos ms de una configuracin VPN, veremos todas las disponibles con su
respectiva opcin Conect).
Hacemos click en la opcin Conect para conectarnos.
La conexin se establece y vemos que nos asigna una ip del rango que habamos configurado en
la configuracin del Servidor:
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 16/19
Si revisamos como qued la tabla de ruteo en la PC conectada, veremos que se ha agregado la
ruta a la red 192.168.1.0/24 por la interface de VPN:

Autor: Gabriel Soltz

SI TE GUST ESTE ARTCULO,
HACNOSLO SABER CON UNA DONACIN A LA SIGUIENTE DIRECCIN BITCOIN:
[btcpayments address="1AtS1DY6kRZ6zhUSkB48AxsgqQTyhpfFQg"]
13 THOUGHTS ON IMPLEMENTACIN DE VPN CLIENTE-SERVIDOR CON OPENVPN Y
PFSENSE
SEPTEMBER 12, 2013 AT 3:41 PM
Tengo una consultahe creado bien la VPN y me funciona bienpero tengo un problema
no puedo ver los archivos compartidos, aunque le hago ping
Atte..Gracias, los felicito..
OPENVPN OPENVPN CLIENT EXPORT UTILITY PFSENSE VERSION 2.0.3 VPN
Cristian
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 17/19
SEPTEMBER 12, 2013 AT 3:47 PM
Llegs por ping al servidor de Shares ?
Si es SMB (Windows), acordate que utiliza los puertos 139 y 445 udp y tcp.
Lo que deberas hacer es verificar en los logs si ves denegaciones o algn otro error.
SEPTEMBER 12, 2013 AT 8:12 PM
Verifica adems si est resolviendo bien el nombre del servidor, probablemente sea un
problema de resolucin de nombres. Si por ejemplo el servidor se llama server01 y tiene
la IP 10.10.10.10, intenta acceder a \10.10.10.10carpetacompartida y ping a server01
SEPTEMBER 17, 2013 AT 2:37 PM
Hola tengo un problema se que la solucion debe ser sencilla pero no le llego, ya tengo la
conexion establecida pero una vez conectado solo puedo hacerle ping al pfsense y no a toda
la LAN, ayuda
gracias
SEPTEMBER 17, 2013 AT 5:59 PM
Algunas cosas que podras chequear son:
- que no haya denegaciones en los logs (quizs armaste mal la regla en la interface
OpenVPN)
- si el ping lo hacs por nombre, asegurate que hayas especificado correctamente el dns
que debera resolver el nombre. O prob directamente con ping a las ips internas.
- Cheuque que hayas configurado la Local Network, que es la red a la que quers llegar.
- Se te agregaron correctamente las rutas hacia la VPN en tu pc ? Acordate que si utilizs
windows y el cliente oficial, debs ejecutarlo como adminsitrador.
SEPTEMBER 24, 2013 AT 4:18 PM
Si gracias creo que el problema lo estaba causando otro pfsense conectado a la misma
LAN
wpadmin

wpadmin

Daniel Hernandez
Gabriel Soltz

Daniel Hernandez
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 18/19
OCTOBER 7, 2013 AT 9:32 PM
Hola tengo el mismo problema que lei, se conecta la VPN pero al hacer ping a la IP de un
equipo de la LAN no me da resultados.
OCTOBER 8, 2013 AT 9:54 AM
Prob de chequear lo que le indiqu a Andrs e indic los resultados.
NOVEMBER 4, 2013 AT 3:04 PM
Una duda. me puedo conectar perfecto a la vpn pero no encuentro las carpetas compartidas
y me cambia la mascara de sub red ejemplo selecciono /24 para que me arroje
255.255.255.0 y me da 255.255.255.225 espero me puedan ayudar
saludos
NOVEMBER 6, 2013 AT 1:50 AM
no me queda claro, si quers contactate por privado.
Slds.
NOVEMBER 26, 2013 AT 12:31 PM
Un cordial saludo. Se que debe ser facil pero no le pego a la solucion y no tengo mucha
experiencia.
Tengo un openvpn funcionando en un centos y deseo pasar los usuarios a un pfsense , que
pasos debo seguir? cree los usuarios y copie los certificados despues de haber activado el
openvpn, pero no se conecta. Agradezco la informacin al respecto. El pfsense es 2.1
AUGUST 7, 2014 AT 5:43 PM
Gabriel, muchsimas gracias estaba empantanado usando ipsec ya que desde unos
equipos se conectada y desde otros no.
Luis Acevedo
Gabriel Soltz

Asanchez
Gabriel Soltz

Uriel Macias
David Lagos S.
24/9/2014 Implementacin de VPN Cliente-Servidor con OpenVPN y pfSense | Perfect Sense
http://www.perfect-sense.info/?p=92 19/19
Infinitas gracias.
Aprovecho para preguntarte: Puedo en la misma mquina colocar varios usuarios al mismo
tiempo y cuando ejecute openvpn pregunta que usuario se quiere conectar?
Saludos!!!!
AUGUST 11, 2014 AT 5:43 PM
Hola, cmo va, no me queda clara tu consulta.
Te refers a configurar ms de una conexin en un cliente open-vpn (o sea, en el extremo
del cliente, no del firewall) ?
Si es eso, si pods hacerlo, contra ms de un peer, pero si es un mismo peer (pfsense / o lo
que sea) con varios usuarios, en realidad con una configuracin basta y cada usuario
pondr al conectarse sus propias credenciales.
Un Abrazo.
Gabriel

Vous aimerez peut-être aussi