Vous êtes sur la page 1sur 20

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:
- 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)
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:

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.

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.

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).
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
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.
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:

Le damos Save para crear.
2. Para crear un usuario, volvemos a la solapa Users, y nuevamente
vamos al cono de agregar (+):

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


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:

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

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:

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

Vous aimerez peut-être aussi