Hernandez_Hernandez_Practica web de la sesion 11.pptx
OpenVPN como solución de Redes Privadas Virtuales Corporativas
1. Encuentro Nacional
de Linux 2012
Seguridad Corporativa
Mediante redes Privadas Virtuales con
OpenVPN
Filein Rommel León Méndez
Blog: http://blog.oaxrom.com
2. ¿ Qué es una Red Privada
Virtual ?
●
Una Red Privada Virtual es una red segura y encriptada que se
establece entre 2 puntos remotos dentro de otra red LAN, WAN,
GSM/GPRS, Internet, etc.
3. ¿ Para que sirve una VPN ?
●
Conectarse de forma remota y segura a una aplicación
corporativa, por ejemplo aplicación web, base de datos, etc., sin
tener que exponer el puerto de la aplicación directamente en
internet y tener latente un ataque de crackers que quieran obtener
acceso.
●
Extensiones VoIP remotas: Podemos conectarnos a un servidor de
telefonía usando el protocolo SIP o IAX2 desde un softphone
todo esto a través de una VPN por lo que evitamos los bloqueos
de puertos de telefonía IP en redes 3G, así como exponemos
tener nuestro conmutador abierto ante posibles ataques y
obtención de acceso de extraños que nos generen llamadas a
Cuba, Afganistan, Irán, Liberia, etc.
4. ¿ Para que sirve una VPN ?
●
Permitir a computadoras remotas conectarse desde cualquier acceso
de internet a los servicios de la intranet sin exponer passwords en
internet públicos ante la presencia de posibles sniffers.
●
Conectar 2 redes remotas a través de una VPN cómo si
estuvieran en la misma red local para compartición de recursos y
comunicación entre las computadoras de las 2 redes.
●
Acceso a computadoras remotas a toda la red local y servicios
internos que estén detrás del firewall y servidor VPN.
5. ¿ Qué es OpenVPN ?
● OpenVPN es una solución Open Source
multiplataforma de conectividad empresarial
para redes virtuales, que permite establecer
VPNs de forma segura, encriptada, fácil,
rápida y con múltiples características para uso
diversos en implementación de redes virtuales
corporativas basadas en SSL(Secure Socket
Layer ).
● OpenVPN comenzó a desarrollarse a partir del
2001 y se puede obtener desde
http://www.openvpn.org
6. Características de OpenVPN
●
Conexiones capa 2 o 3
●
Estándares SSL/TSL
●
Multiplataforma (Linux & Unix, Windows, MacOS X, Android,
iOS, Windows Mobile.
●
Encriptación por claves estáticas, certificados & claves RSA
●
Funcionamiento en modo Road Warrior (PC to LAN)
●
Funcionamiento en modo Bridge (LAN to LAN)
●
Transporte de protocolos no-IP como IPX o broadcast.
●
Asignación de IP Virtuales estática o dinámica
7. Ventajas de OpenVPN
●
Solo se establece un puerto de red TCP o UDP Público, por lo
que no se expone todos los servicios internos de la red
empresarial para acceso remoto.
●
Conexiones VPN remotas son establecidas a través de casi
cualquier firewall sin necesidad de abrir puertos en el cliente
remoto.
●
Permite la integración de reglas del firewall sobre una interfaz
tun0, tun1, etc.
●
Todos los conceptos de reglas, reenvío, NAT, se pueden
establecer sobre un Tunel VPN.
●
Soporte transparente para Ips dinámicas.
8. Ventajas de OpenVPN
●
Ningún problema de NAT, incluso en una misma red local todos
puedes estar trabajando con una ip virtual.
●
Configuración sencilla tanto para el servidor como para el cliente.
●
Protección de usuarios remotos para evitar conexiones entre si.
●
Deployment de configuración y llaves, rápida y sencilla.
●
¡Es software Libre!
9. Desventajas de OpenVPN
●
Incompatibilidad con Ipsec, que es el protocolo estándar de la
industria para soluciones VPN.
●
Falta de Masa Crítica
●
Existen apenas contadas soluciones de hardware que soporten
OpenVPN como solución VPN.
10. Modos de funcionamiento de
OpenVPN
●
Modo Road Warrior: Servidor Multipunto – Interfaz Tun
Permite conectar múltiples clientes remotos al servidor VPN en
modo punto-multipunto.
Computadoras se conectan desde internet al servidor de internet y
tienen acceso a la red local detrás del servidor VPN.
Clientes VPN por configuración pueden o no comunicarse entre sí
Servidor VPN
11. Modos de funcionamiento de
OpenVPN
●
Modo Bridge: LAN To LAN - Interfaz TAP
Permite conectar clientes remotos que pueden distribuir la conexión a
otros equipos de la red remota permitiendo establecer redes virtuales
LAN to LAN
Un LAN to LAN es como llevar un cable de red de nuestra LAN a
través de internet por un tunel seguro, conectarlo a un “Router VPN
switch” y de ahí conectar otros equipos a este switch para “cascadear”
la red virtual.
12. ¿ Como instalamos OpenVPN ?
●
Debian & Ubuntu
– sudo apt-get install openvpn
●
Red Hat, Cent OS & Fedora
– yum install opevpn
●
Código fuente
●
Router WRT54GL con firmware DDWRT con soporte Open VPN
13. ¿ Que necesitamos para
implementar OpenVPN ?
●
Certificados de Seguridad del Servidor VPN
●
Llave Pública & Privada del Servidor
●
Archivo de configuración del servidor
●
Llave del cliente remoto.
●
Configuración del cliente remoto
●
Tener instalado el software de OpenVPN en el cliente remoto.
14. Preparemos los ingredientes
●
Instalamos OpenVPN la distribución de Linux es al gusto
– sudo apt-get install openvpn
●
Copiamos el ejemplo para crear los certificados de seguridad del
servidor para la versión de OpenVPN 2.X :
sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0
/etc/openvpn
cd /etc/openvpn/2.0
cp openssl-1.0.0.cnf openssl.cnf
Editamos los datos para crear el certificado de seguridad
sudo nano vars
Editamos los valores de KEY_*
15. Creando los certificados & llaves
del servidor
●
Nos validamos como root
– su
●
Preparamos las variables de entorno
. ./vars
sh clean all
●
Creamos el certificado CA:
– sh build-ca
●
Creamos las Llaves del Servidor:
– sh build-key-server OAXROM-SERVER
16. Creamos las llaves de los clientes
●
Podemos crear una llave por cada cliente VPN y definir en el
archivo de configuración del servidor que cada cliente VPN
tendrá su propia llave o permitir que todos los clientes VPN usen
la misma llave
– sudo sh buil-key CLIENTE1
– sudo sh buil-key CLIENTE2
●
Creamos los parámetros Diffie Hellman para el servidor
– sudo sh build-dh
El protocolo criptográfico Diffie-Hellman, es un protocolo de establecimiento de claves entre partes
que no han tenido contacto previo, utilizando un canal inseguro, y de manera anónima (no
autenticada)
17. Archivos Resultantes
●
Nos crea los archivos generados en /etc/openvpn/2.0/keys
– ca.crt : certificado de seguridad
– ca.key: llave del certificado de seguridad
– OAXROM-SERVER.crt: Certificado del servidor
– OAXROM-SERVER.key: Llave privada del
servidor
– dh1024.pem: Archivo Diffie Hellman
– CLIENTE1.key: llave p ú blica del cliente
– CLIENTE1.crt: Certificado del cliente
18. Archivo de Configuración del
Servidor Modo RoadWarrior
sudo nano /etc/openvpn/servidor.cnf
port 1190
proto udp
dev tun
ca "/etc/openvpn/keys/ca.crt"
cert "/etc/openvpn/keys/OAXROM-SERVER.crt"
key "/etc/openvpn/keys/OAXROM-SERVER.key"
dh "/etc/openvpn/keys/dh1024.pem"
server 192.168.26.0 255.255.255.0
ifconfig-pool-persist ipp.txt
#push "dhcp-option DNS 208.67.222.222"
#push "dhcp-option WINS 192.168.26.1"
19. Archivo de Configuración del
Servidor Modo RoadWarrior
client-to-client
#push "route 192.168.100.0 255.255.255.0"
duplicate-cn
comp-lzo
max-clients 60
persist-key
persist-tun
verb 3
status openvpn-status.log
keepalive 10 120
suppress-timestamps
20. Ejecutamos el servidor
sudo openvpn –config /etc/openvpn/servidor.cnf
Al iniciar si la configuración y las llaves son correctas, al final de
ejecutar el servidor veríamos algo como los siguiente:
IFCONFIG POOL: base=192.168.26.4 size=62, ipv6=0
Initialization Sequence Completed
Para verificar hacemos un ifconfig y deberíamos ver la interfaz del
tunel virtual con la dirección IP 192.168.26.1 asignada
tun1
Link encap:UNSPEC direcci ó nHW 00-00-00-00-00-00-00-00-00-
00-00-00-00-00-00-00
Direc. inet:192.168.26.1 P-t-P:192.168.26.2
M á sc:255.255.255.255
21. Archivo de Configuración del
Cliente de OpenVPN
client
proto udp
dev tun
remote SERVIDORIPOPENVPN.homeip.net 1190
resolv-retry infinite
nobind
persist-key
persist-tun
ca "/home/cloudvoox/clientevpn/ca.crt"
cert "/home/cloudvoox/clientevpn/CLIENTE1.crt"
key "/home/cloudvoox/clientevpn/CLIENTE1.key"
comp-lzo
verb 3
22. Ejecución del cliente VPN
sudo openvpn –config /home/user/clientevpn/cliente.ovpn
Si la ejecución fue correcta al final de ejecutarlo veríamos Initialization
Sequence Completed
Previamente veríamos la IP que nos asignó el servidor VPN y las rutas
de red que mandó crear el servidor en el cliente para el ruteo de
segmentos de red.
Thu Oct 25 01:17:32 2012 /sbin/ifconfig tun0 192.168.26.58 pointopoint
192.168.26.57 mtu 1500
Thu Oct 25 01:17:32 2012 /sbin/route add -net 192.168.100.0 netmask
255.255.255.0 gw 192.168.26.57
Thu Oct 25 01:17:32 2012 /sbin/route add -net 192.168.26.0 netmask
255.255.255.0 gw 192.168.26.57
23. OpenVPN modo Bridge Lan 2 Lan
En la configuración del cliente y servidor solo se cambian las interfaces de
Tun a Tap.
Se crean reglas de firewall para el ruteo entre el segmento real de la
red interna y el segmento virtual de la VPN