You are on page 1of 32

i

SERVIDOR OPENVPN IMPLEMENTADO EN OPENWRT







EDUIN YESID RODRIGUEZ GARZON
ID. 263306
RICARDO MAHECHA CARRANZA
ID. 263465






CORPORACION UNIVERSITARIA MINUTO DE DIOS
SEDE GIRARDOT
INGENIERIA DE SISTEMAS
APULO CUNDINAMARCA, 2014

ii

RESUMEN

Una red privada virtual o VPN concede una extensin segura de la red local (LAN),
sobre una red pblica o no controlada como Internet, permitiendo que la
computadora enve y reciba datos sobre redes compartidas o pblicas como si
fuera una red privada con toda la funcionalidad, seguridad y polticas de gestin de
una red privada.
VPN establece un tnel virtual entre ambas partes (Cliente Servidor), los cuales
negocian esquemas de encriptacin y autentificacin que asegura la
confidencialidad e integridad de los datos transmitidos por medio de una red
pblica o Internet.
Se define Tnel Virtual al enlace lgico punto a punto o canal de comunicacin
usado entre el origen y el destino de la conexin, este enlace es cifrado, ya que el
paquete original de red es encapsulado dentro de uno nuevo, de esta manera solo
se muestra el origen y destino del paquete, quedando de manera segura el
paquete enviado dentro del nuevo.
OpenVPN es una solucin de conectividad basada en software libre, que utiliza el
mismo concepto de las VPNs con esto las mismas opciones de seguridad para el
cliente como para el servidor. El presente trabajo demostrara la implementacin
del servidor OpenVPN en el firmware OpenWrt como una alternativa de seguridad
en l transporte de datos a travs de certificados de seguridad.






iii

ABSTRACT

A virtual private network or VPN provides a secure extension of the local network
(LAN), on a public or uncontrolled network such as the Internet, allowing the
computer to send and receive data over networks shared or public as if it were a
private network with all the functionality, safety and a private network management
policies.
VPN establishes a virtual tunnel between the two parties (client - server), which
negotiate schemes of encryption and authentication which ensures the
confidentiality and integrity of the data transmitted by means of a public network or
the Internet.
Defined Virtual tunnel to the logical point-to-point link or channel of communication
used between the source and destination of the connection, this link is encrypted,
since the original network packet is encapsulated within a new one, thus only
shows the origin and destination of the packet, and safely shipped within the new
package.
OpenVPN is a connectivity solution based on free software, which uses the same
concept of VPN's with this same security options for the server and the client. This
work demonstrate the implementation of OpenVPN server on the OpenWrt
firmware as an alternative of safety in the transport of data via security certificates.

4

INDICE

RESUMEN ............................................................................................................... ii
ABSTRACT ............................................................................................................. iii
INTRODUCCION ..................................................................................................... 5
MARCO TEORICO .................................................................................................. 6
RED PRIVADA VIRTUAL ..................................................................................... 6
OPENVPN ............................................................................................................ 6
CARACTERISTICAS DE OPENVPN.................................................................... 7
FUNCIONAMIENTO DE OPENVPN..................................................................... 8
IMPLEMENTACIN OPENVPN ......................................................................... 10
CARACTERTISCAS DE LOS EQUIPOS Y DISPOSITIVOS UTILIZADOS ........... 12
PUERTO UTILIZADO ......................................................................................... 12
INTERFAZ DE RED VIRTUAL MANEJADA ....................................................... 12
MTODOS DE AUTENTICACIN DE OPENVPN ............................................. 13
CONFIGURACION DEL SERVIDOR OpenVPN en OpenWRT .......................... 14
Configuracin de Certificados ............................................................................. 14
Generacin certificados ...................................................................................... 15
Creacin clave del cliente ................................................................................... 18
Crear configuracin de OpenVPN ...................................................................... 22
Instalacin programa OpenVPN en Cliente. ....................................................... 26
CONCLUSIONES .................................................................................................. 29
REFERENCIAS ..................................................................................................... 30
ANEXOS ................................................................................................................ 31
Anexo 1. Significado de los parmetros de configuracin del servidor OpenVPN.
........................................................................................................................... 31


5

INTRODUCCION

Esta monografa tiene como objetivo la implementacin de un servidor OPENVPN
a travs de OpenWrt, con el fin de lograr un alto grado de seguridad y estabilidad
en la transferencia de paquetes a travs de la red. OpenVPN es una solucin libre
para la implementacin de Redes Privadas Virtuales basadas en SSL (capa de
conexin segura), bajo la Licencia Pblica General GPL, incluye caractersticas
que permiten configuraciones simples para tneles Punto a Punto, Acceso
Remoto, VPNs sitio-a-sitio, seguridad para redes Inalmbricas, adems incluye
funcionalidades de nivel empresarial para proveer balanceo de cargas, failover, y
controles de acceso refinados. OpenVPN ofrece una alternativa ligera y
econmica a otras tecnologas VPN.
OpenVPN combina la seguridad con la facilidad de uso. La seguridad de las redes
virtuales privadas libres es basada en el protocolo SSL, el cual es el estndar de la
industria para comunicaciones seguras va el Internet. Tambin implementa las
extensiones 2 o 3 del modelo OSI. Soporta mtodos flexibles de autenticacin
para los clientes basados en certificados y autenticacin de doble factor, y permite
polticas de control de acceso para usuarios o grupos.



6

MARCO TEORICO

RED PRIVADA VIRTUAL

Una red privada virtual es una red segura que se construye sobre otra red que es
insegura, por ejemplo, internet. La red segura usa criptografa para brindar
seguridad, tanto para verificar que la persona que se conecta es quien dice ser,
como para codificar la informacin de manera que no pueda ser entendida por
extraos.
USOS DE LAS VPNs
Las VPN's se usan generalmente para:
Conexin entre diversos puntos de una organizacin a travs de Internet.
Conexiones de trabajadores domsticos o de campo con IP's dinmicas.
Soluciones extranet para clientes u organizaciones asociadas con los
cuales se necesita intercambiar cierta informacin en forma privada pero no
se les debe dar acceso al resto de la red interna
OPENVPN

Es un software de red privada virtual de cdigo abierto, que utiliza estndares
abiertos SSL/TLS, que se basan en claves privadas y pblicas.
Claves Privadas y Pblicas
La infraestructura de claves pblicas es un sistema muy ingenioso para asegurar
que las claves que se usan para codificar y decodificar estn separadas, y nunca
se transmita una clave que sirva para decodificar.
En el proceso de generacin de las claves, la clave privada y la pblica se
generan al mismo tiempo. La clave pblica est contenida en un certificado, que

7

dice quin es el dueo de la clave, la empresa a la que pertenece, y su direccin
de e-mail. Este certificado est firmado por la autoridad de certificacin. Esa firma
se puede calcular con la clave pblica de la autoridad, que todos los clientes
conocen, y as verificar la validez del certificado.
CARACTERISTICAS DE OPENVPN

OpenVPN ofrece las siguientes caractersticas:
Solucin VPN de clase empresarial basada en Software libre y GNU/Linux
Creacin de tneles VPN para conexiones Punto a Punto, Sitio a Sitio y
usuarios mviles (Road Warriors)
Utiliza como medio de transporte los protocolos TCP UDP
Permite mltiples conexiones a una misma instancia sobre un nico puerto
TCP UDP
Los tneles VPN funcionan sobre conexiones NAT (Network Address
Translation) y direcciones IP dinmicas
Usa cualquier cifrado, tamao de llave, o digest HMAC (para el chequeo de
la integridad de los datagramas) soportados por la biblioteca OpenSSL.
Cifrado flexible permitiendo elegir entre:
Cifrado convencional basado en llaves estticas pre compartidas
Cifrado asimtrico usando llaves pblicas basada en certificados
x509
Permite usar llaves estticas, pre compartidas o llaves dinmicas basadas
en TLS para el intercambio de llaves
Soporte nativo de cliente para los siguientes sistemas operativos:

8

GNU/Linux
Solaris
OpenBSD
NetBSD
FreeBSD
MS Windows XP, Vista y 7
Mac OSX.
FUNCIONAMIENTO DE OPENVPN

El host se comunica con una conexin llamada "TUN", que enva los datos
recibidos a una aplicacin, en este caso, el OpenVPN. Este se encarga de
codificar los datos y transmitirlos a travs de internet. Del otro lado, otro programa
OpenVPN recibe los datos, los decodifica, y los transmite a otra conexin TUN. De
esa conexin es de donde los servidores finalmente recogen los datos y envan
sus respuestas. Como se puede apreciar en la Figura 1 y Figura 2. El cliente sabe
que tiene que mandar sus datos a travs de la conexin "10.10.0.10", y la
aplicacin del servidor recibe de la conexin "10.10.0.1". Todo lo dems es
manejado por el sistema operativo y por la aplicacin OpenVPN.

9


Figura N. 1 Funcionamiento de OpenVPN. Sitio oficial de Agustin Viilafane


Figura N. 2 Encapsulamiento de datos. http://openmaniak.com/openvpn.php

El sistema OpenVPN no requiere un certificado de una autoridad de certificacin
"oficial", basta con crear una autoridad propia y copiar el certificado a todos los

10

clientes que confiarn en esa autoridad. Cada computadora cliente tiene instalado
el certificado de la autoridad de certificacin, que se us para firmar los
certificados. La confianza se asegura por el secreto de la clave de la autoridad de
certificacin, y por el hecho de que los certificados de cada cliente y de servidor
son examinados para ver si cuentan con la firma de la autoridad de certificacin.
IMPLEMENTACIN OPENVPN

OpenVPN es una excelente solucin para redes virtuales privadas que
implementan conexiones de capa 2 o 3, usa los estndares de la industria
SSL/TLS para encriptar. Su principal desventaja por el momento es que hay muy
pocos fabricantes de hardware que lo integren en sus soluciones.
De todos modos no hay de qu preocuparse siempre que se cuente como en este
caso con un router con OpenWrt en el cual se puede implementar.
Implementaciones de capa 2 - Enlace
El encapsulamiento a este nivel ofrece ciertas ventajas, ya que permite
transferencias sobre protocolos no-IP, como por ejemplo IPX4 de Netware
Systems. Tericamente, las tecnologas implementadas en capa 2 pueden
tunelizar cualquier tipo de paquetes y en la mayora de los casos lo que se hace
es establecer un dispositivo virtual PPP5 con el cual se establece la conexin con
el otro lado del tnel.
Ejemplos de esta tecnologa:
PPTP: Point to Point Tunneling Protocol. Desarrollado por Microsoft, es una
extensin de PPP.




11


Implementaciones de capa 3 - Red
IPsec es la tecnologa ms aceptada en este punto y fue desarrollada como un
estndar de seguridad de Internet en capa 3. IPsec se puede utilizar para
encapsular cualquier trfico de capa 3 pero no el trfico de capas inferiores, por lo
que no se podr utilizar para protocolos no-IP como IPX o mensajes de broadcast.
Su principal ventaja es que puede ser usado prcticamente en cualquier
plataforma existiendo una gran variedad de soluciones tanto de software como de
hardware.
Existen dos mtodos principales usados por IPsec:
Modo Tunnel. Todos los paquetes IP son encapsulados en un nuevo
paquete y enviados a travs del tnel siendo desempaquetados en el otro
extremo y posteriormente dirigidos a su destinatario final. En este modo, se
protegen las direcciones IP de emisor y receptor as como el resto de los
metadatos de los paquetes.
Modo Transporte. Solo la carga til (payload) de la seccin de datos es
encriptada y encapsulada. La sobrecarga entonces, es sensiblemente
menor que en el caso anterior, pero se exponen los metadatos a posibles
atacantes que podrn ver quien se est comunicando con quien.
Implementaciones de capa 4 - Transporte
Tambin es posible establecer tneles en la capa de aplicacin y de hecho son
ampliamente utilizados como SSL6 y TLS7. El usuario accede a la VPN de la
organizacin a travs de un browser iniciando la conexin en un sitio web seguro
(HTTPS-Secured web site). Adems, existen otros productos como SSL-Explorer y
otros que ofrecen una combinacin de gran flexibilidad, seguridad fuerte y facilidad
de configuracin. La seguridad es lograda mediante encriptamiento del trfico

12

usando mecanismos SSL/TLS, los cuales han probado ser muy seguros y estn
siendo constantemente sometidos a mejoras y testeos.
PROTOCOLO UTILIZADO
OpenVPN utiliza para el servidor y para el cliente el protocolo UDP (User
Datagram Protocol), el cual es un protocolo del nivel de transporte basado en el
intercambio de datagramas. Permite el envo de datagramas a travs de la red sin
que se haya establecido previamente una conexin, ya que el propio datagrama
incorpora suficiente informacin de direccionamiento en su cabecera.
CARACTERTISCAS DE LOS EQUIPOS Y DISPOSITIVOS UTILIZADOS

Router TPLINK modelo No. WR842ND con firmware OpenWrt para
instalacin del servidor OpenVPN.
Porttil Lenovo G410 con sistema operativo Windows para configuracin
del Cliente a travs de OpenVPN GUI.
Equipo de mesa con sistema operativo Windows para realizar la
configuracin del servidor a travs de puTTY en la interfaz UCI.
PUERTO UTILIZADO

El puerto utilizado es el 1194, en donde se escucharan las peticiones del servicio.
INTERFAZ DE RED VIRTUAL MANEJADA

OpenVPN utiliza dos tipos de interfaz de red virtuales como:
TUN: Esta interfaz simula que es un dispositivo Ethernet que trabaja sobre
la capa 3 del modelo OSI, esta interfaz es ocupada cuando hacemos un
ruteo dentro de la red de la VPN.

13

TAP: Esta interfaz simula que es un dispositivo Ethernet que trabaja sobre
la capa 2 del modelo OSI, esta interfaz es ocupada cuando queremos
utilizar redes en modo puente.
MTODOS DE AUTENTICACIN DE OPENVPN

OpenVPN soporta diferentes mtodos de autenticacin desde cifrado
convencional usando llaves secretas pre-compartidas (Static Key mode) o
mtodos de autenticacin basada en llaves pblicas (SSL/TLS mode).
RSA
En criptografa, RSA (Rivest, Shamir y Adleman) es un sistema criptogrfico de
clave pblica desarrollado en 1977. Es el primer y ms utilizado algoritmo de este
tipo y es vlido tanto para cifrar como para firmar digitalmente.
La seguridad de este algoritmo radica en el problema de la factorizacin de
nmeros enteros. Los mensajes enviados se representan mediante nmeros, y el
funcionamiento se basa en el producto, conocido, de dos nmeros primos grandes
elegidos al azar y mantenidos en secreto.
OpenSSL
OpenSSL es un proyecto de software libre basado en SSLeay, desarrollado por
Eric Young y Tim Hudson. Consiste en un robusto paquete de herramientas de
administracin y bibliotecas relacionadas con la criptografa, que suministran
funciones criptogrficas a otros paquetes como OpenSSH y navegadores web
(para acceso seguro a sitios HTTPS).


14

CONFIGURACION DEL SERVIDOR OpenVPN en OpenWRT

Se ingresa al router OpenWrt a travs del cliente de acceso remoto PuTTY y a
continuacin se realiza la actualizacin e instalacin de paquetes.

Figura N 3. Instalacin de OpenVPN, paquetes y complementos.
# opkg update # opkg install openvpnopenvpn-easy-rsa

Configuracin de Certificados

Figura N 4. Edicin fichero vars a travs del editor vi.

15


Figura N 5. Edicin fichero vars. Se ingresan los datos esenciales.
Generacin certificados

Figura N 6. Ingreso directorio keys. Para llevar a cabo la generacin de los certificados

16


Figura N 7. Construir certificados build-ca. Se crea el certificado de autenticacin para el servicio.

Figura N 8. Construir certificados build-dh. Se crea la clave diffie-hellman.

17


Figura N 9. Creacin clave del servidor. Se utiliza el comando build-key-server server.

Figura N 10. Confirmacin fecha de expiracin del certificado. Parmetro establecido en vars.
Clave del servidor


Clave del servidor

Clave del servidor


18


Figura N 11. Confirmacin del certificado del servidor. Certificado ingresado a la base de datos.
Creacin clave del cliente


Figura N 12. Asignacin clave del cliente. Se ingresa el comando build-key client.
Clave del cliente


19


Figura N 13.Expiracion del certificado del cliente. Parmetro establecido en vars.

Figura N 14. Generacin del certificado del cliente. Certificado ingresado a la base de datos.


20


Figura N 15. Formato PKCS12. Combina el certificado de clave y ca en un solo archivo.

Figura N 16. Copia los archivos importantes. Comando cp ca.crt ca.key dh1024.pem server.crt
server.key/etc/openvpn/


21



Figura N 17. Verificacin de la copia de los archivos.

Figura N 18. Instalacin openssh-stfp-server. Con el fin de transferir archivos desde el router a la
computadora.


22

Crear configuracin de OpenVPN


Figura N 19. Edicin archivo de configuracin OpenVPN. Ruta: etc/config/vi openvpn

Figura N 20. Edicin archivo de configuracin OpenVPN. Ruta: etc/config/vi openvpn



23



Figura N 21. Edicin archivo de configuracin OpenVPN. Ruta: etc/config/vi openvpn

Figura N 22. Edicin archivo de configuracin OpenVPN. Ruta: etc/config/vi openvpn

24


Figura N 23. Edicin archivo de configuracin OpenVPN. Ruta: etc/config/vi openvpn

Figura N 24. Archivo de configuracin OpenVPN.



25


Figura N 25. Archivo de configuracin OpenVPN.

Figura N 26. Habilitar el servicio OpenVPN en el servidor. Se ingresa el comando openvpn start
para iniciar el servicio y open enable para habilitarlo.





26

Instalacin programa OpenVPN en Cliente.


Figura N 27. Ventana de instalacin OpenVPN cliente.
Una vez instalado se ingresa a la carpeta config ubicada dentro de la carpeta de instalacin de
OpenVPN y se introducen los certificados creados en el servidor utilizando la herramienta WinSCP
en este caso.

27


Figura N 28. Transferencia de archivos a travs de WinSCP.
Dentro de la carpeta config ubicada en el directorio de instalacin de OpenVPN se edita el archivo
de configuracin client de la siguiente manera.

Figura N 29. Edicin del archivo de configuracin client.
IP del servidor

28

Se ejecuta la aplicacin OpenVPN y se aade un pequeo icono al lado del reloj.

Figura N 30. Icono de la aplicacin OpenVPN.
Se oprime click derecho sobre el icono y se selecciona conectar para iniciar la conexin con el
servidor OpenVPN ya configurado.

Figura N 31. Conexin entre el servidor y el cliente.

29

CONCLUSIONES

OpenVPN es un software que permite la conexin de equipos de cmputo y
dispositivos a travs de la autenticacin y autorizacin, lo cual conlleva entrega
segura de la informacin.
OpenVPN es una herramienta completamente gratuita instalable en equipos
(routers) de bajo costo que ofrece una gran variedad de servicios para el uso
personal o empresarial.
OpenVPN no presenta problemas de incompatibilidad, ya que se puede instalar en
cualquier tipo de sistema operativo.




30

REFERENCIAS

James Yonan's en el Linux Fest Northwest 2004 -- Understanding the User-Space
VPN: History, Conceptual Foundations, and Practical Usage.
Disponible:https://community.openvpn.net/openvpn/wiki/OverviewOfOpenvpn.
[Acceso: Agosto 13, 2014].
Openredes.com.Disponible:http://www.openredes.com/2011/06/30/configurar-un-
cliente-openvpn-en-windows-con-openvpn-gui-para-conectar-a-una-vpn-ra-en-
vyatta/. [Acceso: Agosto 13, 2014].
Openredes.com.Disponible:http://www.openredes.com/2011/06/29/significado-de-
los-parametros-de-configuracion-del-archivo-ovpn-en-un-cliente-remoto-de-
openvpn/. [Acceso: Agosto 13, 2014].
Hertel Guillermo, Uzin Jos, Ibarra Gustavo, 2012, UADER-GUGLER. Disponible:
http://sgd.gugler.com.ar/data/GNU_Linux_2/howtovpnfinal.pdf.[Acceso: Agosto 13,
2014].
Memorial de ingenieros N89. Ministerio de Defensa Gobierno de Espaa.
Diciembre 2012. Disponible:
http://publicaciones.defensa.gob.es/pprevistas/88e68d6b-fb63-65ab-9bdd-
ff0000451707/index.html#/72/. [Acceso: Agosto 15, 2014].
Debian Handbook info. 2011-2014 Freexian SARL. Disponible:http://debian-
handbook.info/browse/es-ES/stable/sect.virtual-private-network.html. [Acceso:
Agosto 15, 2014].
Factor Evolucin S.A.
Disponible:http://www.linuxparatodos.net/web/comunidad/base-de-conocimiento/-
/wiki/Base+de+Conocimiento/Servidor+Virtual+Private+Network+%28VPN%29#se
ction-Servidor+Virtual+Private+Network+(VPN)-Servicio+OpenVPN. [Acceso:
Agosto 15, 2014].
Agustine Villafine. Disponible:http://strellis.com.ar/articulos/openvpn/. [Acceso:
Agosto 15, 2014].



31

ANEXOS

Anexo 1. Significado de los parmetros de configuracin del servidor
OpenVPN.

client/server: especifica el tipo de nodo que queremos configurar.
dev tap/tun: tipo de interfaz a usar, hay que elegir la misma tanto en la parte del
cliente como en la del servidor. La opcin "tun" es la opcin por defecto y la
recomendada. La diferencia entre ambas es que la interfaz "tun" es una interfaz
enrutada y la interfaz "tap" es para crear un bridge ethernet (capa 2), necesario en
caso de usar protocolos no IP como IPX.
proto tcp/udp: protocolo de transporte a usar, la opcin por defecto y lo normal es
"udp". Hay que elegir lo mismo en los dos extremos.
remote IP-servidor/cliente puerto: en esta lnea se pone la IP publica en la que
est el extremo opuesto y el puerto en el que se espera la conexin. El puerto por
defecto es el 1194.
resolv-retry infinite/n: opcin de cliente, trata de resolver infinitas o n veces la
conexin con el servidor.
nobind: opcin de cliente, si se configura especifica que no es necesario usar
siempre el mismo puerto local de origen para iniciar la conexin con el servidor.
mute-replay-warnings: los warnings de paquetes duplicados no se muestran.
persist-key: trata de preservar la key usada ante reinicio para no tener que
releerla.
persist-tun: trata de mantener la interfaz TUN/TAP levantada ante reinicio de la
VPN.

32

ca ca.crt: Certificados SSL/TLS. Poner nombre correcto. Se recomienda usar uno
diferente para cada cliente.
cert client.crt: Certificados SSL/TLS. Poner nombre correcto. Se recomienda usar
uno diferente para cada cliente.
key client.key: Certificados SSL/TLS. Poner nombre correcto. Se recomienda
usar uno diferente para cada cliente.
ns-cert-type server: opcin de cliente, ordena comprobar el certificado del
servidor verificando que tiene el campo nsCertType configurado con el valor
"server".
comp-lzo: habilita la compresin en el enlace VPN, es necesario que este
configurado en ambos extremos.
verb n: indica el nivel de informacin de logs. El nivel por defecto es 1, a mayor
nmero ms informacin a la salida de logs.
mute 20: ordena silenciar mensajes de logs repetidos.
explicit-exit-notify 2: opcin de cliente, obliga a indicar al servidor cuando se
cierra la sesin para que cierre el enlace.
auth-user-pass: opcin de cliente, indica al programa que la conexin necesita
ser verificada con contrasea y usuario.

You might also like