Está en la página 1de 34

Curso de VPN en GNU/Linux (20 horas)

Teora, Gua de prcticas y ejercicios

Pgina 1 de 34

Creative Commons
ReconocimientoNocomercialCompartirbajolamismalicencia
3.0
Usted es libre de:

copiar, distribuir y reproducir pblicamente la obra

hacer obras derivadas

Bajo las siguientes condiciones:

Reconocimiento. Debe reconocer los crditos de la obra de la


manera especificada por el autor o el licenciante (pero no de una manera
que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).

No comercial. No puede utilizar esta obra para fines comerciales.

Compartir bajo la misma licencia. Si altera o transforma esta obra,


o genera una obra derivada, slo puede distribuir la obra generada bajo
una licencia idntica a sta.

Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de
la licencia de esta obra.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del
titular de los derechos de autor
Nada en esta licencia menoscaba o restringe los derechos morales del
autor.

Los derechos derivados de usos legtimos u otras limitaciones


reconocidas por ley no se ven afectados por lo anterior.
Esto es un resumen fcilmente legible del texto legal de versin original en
Idioma Ingls (la licencia completa)
http://creativecommons.org/licenses/by-nc-sa/3.0/ec/legalcode

Pgina 2 de 34

ndice de contenido
Redes Privadas Virtuales, VPN...............................................................................5
Objetivos del curso..............................................................................................5
Requisitos.........................................................................................................5
Introduccin........................................................................................................5
Acceso mediante Internet y VPNs.......................................................................7
Usos de las VPN's................................................................................................7
Implementacin de VPN......................................................................................7
Diagramas de conexin:......................................................................................8
De Cliente a Servidor:......................................................................................9
De Cliente a Red Interna:................................................................................9
De Red Interna a Red Interna:.......................................................................10
Requerimientos para el armado de una VPN................................................10
Protocolos..........................................................................................................11
Seguridad en VPN.............................................................................................13
Encriptacin asimtrica con SSL/TLS...........................................................14
Seguridad SSL/TLS........................................................................................16
Ventajas y Desventajas de OpenVPN.................................................................16
Ventajas .........................................................................................................16
Desventajas ...................................................................................................18
Comparacin entre OpenVPN e IPsec VPN.......................................................18
Instalando OpenVPN.........................................................................................19
Casos prcticos de construccin de VPNs............................................................20
Configuracin de las direcciones IP de la VPN :...............................................20
Caso 1: Tnel simple sin seguridad...............................................................21
Caso 2: Tnel usando claves pre-compartida. Encriptacin simtrica .........21
Caso 3: Tnel con full seguridad basada en TLS. Encriptacin asimtrica
con SSL/TLS...................................................................................................22
Pgina 3 de 34

Construccin de los certificados y claves RSA..................................................22


Archivo de configuracin del servidor TLS....................................................25
Archivo de configuracin para el cliente TLS................................................26
Caso 4. Enrutamiento....................................................................................26
Caso 4. Firewall ................................................................................................28
Anexo A..................................................................................................................29
IPTABLES Bsico...............................................................................................29
Ejercicios con IPTABLES...............................................................................31
Indica las reglas que debes aadir a IPTABLES en cada uno de los siguientes
casos..............................................................................................................32

Pgina 4 de 34

Redes Privadas Virtuales, VPN


Objetivos del curso
Configurar accesos seguros desde Internet a nuestra red interna por medio de
redes privadas virtuales (VPN).
Requisitos
Profesionales con experiencia previa en comunicaciones. Requiere conocimientos
bsicos sobre GNU/Linux, TCP/IP y de Seguridad en Internet (firewall/iptables).
Introduccin
VPN (Virtual Private Network) es una extensin de una red local y privada que
utiliza como medio de enlace una red publica como por ejemplo, Internet.
Tambin es posible utilizar otras infraestructuras WAN (Redes de rea amplia)
tales como Frame Relay, ATM (Modo de Transferencia Asncrona), etc.

Este mtodo permite enlazar dos o mas redes simulando una nica red privada
permitiendo as la comunicacin entre computadoras como si fuera punto a
punto.

Tambin un usuario remoto se puede conectar individualmente a una LAN


utilizando una conexin VPN, y de esta manera utilizar aplicaciones, enviar
datos, etc. de manera segura.

Las Redes Privadas Virtuales utilizan tecnologa de tnel (tunneling) para la


transmisin de datos mediante un proceso de encapsulacin y en su defecto de
encriptacin, esto es importante a la hora de diferenciar Redes Privadas
Virtuales y Redes Privadas, ya que esta ultima utiliza lneas telefnicas dedicadas
para formar la red. Mas adelante se explicar en profundidad el funcionamiento
del tnel.
Pgina 5 de 34

Diagrama lgico de una VPN


La necesidad de mejorar la interconexin e intercambio de informacin entre
sedes de diferentes instituciones y empresas ha conducido a soluciones mas
eficientes y econmicas a las tradicionales como, por ejemplo, telnet, correo, fax,
etc.
Existen factores que hacen necesaria la implementacin de soluciones ms
sofisticadas de conectividad entre las oficinas de las organizaciones a lo largo del
mundo.
Dichos factores son:

La aceleracin de los procesos de negocios y su consecuente aumento en la


necesidad de intercambio flexible y rpido de informacin.

Muchas organizaciones tienen varias sucursales en diferentes ubicaciones


quienes necesitan intercambiar informacin sin ninguna demora, como si

Pgina 6 de 34

estuvieran fsicamente juntos.

La necesidad de las redes de computacin de cumplir altos estndares de


seguridad que aseguren la autenticidad, integridad y disponibilidad.

Con el alto trfico vehicular caraqueo y ciudades satlites con


dificultad de transporte, trabajar desde casa conectado va segura, el
ahorro y productividad sera considerable.

Acceso mediante Internet y VPNs


Con la llegada de Internet y la baja de costos en conectividad se desarrollaron
nuevas tecnologas. Surgi entonces la idea de utilizar a Internet como medio de
comunicacin entre los diferentes sitios de la organizacin. Surge as la idea de
las VPN's que son Virtuales y Privadas. Virtuales porque no son redes
directas reales entre partes, sino solo conexiones virtuales provistas mediante
software sobre la red Internet. Adems son privadas porque solo la gente
debidamente autorizada puede leer los datos transferidos por este tipo de red
logrando la seguridad mediante la utilizacin de modernos mecanismos de
criptografa.
Usos de las VPN's
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.

Implementacin de VPN
Supongamos que se tienen dos sitios de una organizacin conectados a Internet.
En ambos se contar con un equipo de conexin a la red de redes que cumplir
Pgina 7 de 34

la funcin de ruteo hacia y desde Internet as como firewall para protegerse de


accesos no autorizados. El software VPN debe estar instalado en ese firewall o
algn dispositivo protegido por l. Una de los sitios ser el servidor y ser el
sitio que contiene la informacin y sistemas que queremos compartir, mientras
que al otro lo llamaremos cliente. El servidor ser entonces configurado para
aceptar conexiones desde el cliente (y viceversa). Llegado este punto habremos
logrado tener dos sitios comunicados como en una red directa real pero an no
es una VPN dado que falta implementar la privacidad, pues cualquier nodo
intermedio de Internet puede leer la informacin que viaja sin proteccin. Lo que
se debe hacer seguidamente es establecer mecanismos de encriptacin que
mediante uso de claves aseguren que solo equipos o personas dueos de esas
claves puedan acceder a los datos enviados por la VPN. Todos los datos enviados
del punto A al B debern ser encriptados antes de ser enviados y desencriptados
en el otro extremo para posteriormente ser entregados normalmente a su
destinatario final. Uno de los factores que diferencian a una implementacin de
VPN de otra, son los mecanismos que utilicen para encriptar y distribuir claves a
todos los integrantes de dicha red.

Diagramas de conexin:
Hay varias posibilidades de conexiones VPN, esto ser definido segn los
requerimientos de la organizacin, por eso es aconsejable hacer un buen
levantamiento a fin de obtener datos como por ejemplo si lo que se desea enlazar
son dos o mas redes, o si solo se conectaran usuarios remotos.

Las posibilidades son:

Pgina 8 de 34

De Cliente a Servidor:
Un usuario remoto que solo necesita servicios o aplicaciones que corren en el
mismo servidor VPN. Caso tpico para los administradores de Seguridad.

De Cliente a Red Interna:


Un usuario remoto que utilizar servicios o aplicaciones que se encuentran en
uno o mas equipos dentro de la red interna. Caso tpico para conexiones remotas
desde casa, es decir, los tele trabajadores.

Pgina 9 de 34

De Red Interna a Red Interna:


Esta forma supone la posibilidad de unir dos intranets a travs de dos
enrutadores, el servidor VPN en una de las intranets y el cliente VPN en la otra.
Aqu entran en juego el mantenimiento de tablas de ruteo y enmascaramiento.

Requerimientos para el armado de una VPN


Para el correcto armado de una VPN, es necesario cumplir con una serie de
elementos y conceptos que a continuacin se detallan:

Tener una conexin a Internet: ya sea por conexin IP dedicada, ADSL o


dial-up.

Servidor VPN: bsicamente es una pc conectada a Internet esperando por


conexiones de usuarios VPN y si estos cumplen con el proceso de
autenticacin, el servidor aceptara la conexin y dar acceso a los recursos
de la red interna.

Cliente VPN: este puede ser un usuario remoto o un enrutador de otra

Pgina 10 de 34

LAN.

Asegurarse que la VPN sea capaz de:


-Encapsular los datos
-Autentificar usuarios.
-Encriptar los datos.
-Asignar direcciones IP de manera esttica y/o dinmica

Protocolos
Las soluciones de VPN pueden ser implementadas a diferentes niveles del
modelo OSI de red.
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.
Algunos ejemplos de estas tecnologas:

PPTP: Point to Point Tunneling Protocol. Desarrollado por Microsoft, es una


extensin de PPP.
Su principal desventaja es que solo puede establecer un tnel por vez entre
pares. Poca seguridad.

L2F:

Layer

Forwarding.

Desarrollado

por

la

empresa

Cisco

principalmente, ofrece mejores posibilidades que PPTP principalmente en


el uso de conexiones simultneas.

L2TP: Layer 2 Tunneling Protocol. Usado por Cisco y otros fabricantes, se


ha convertido en estndar de la industria y combina las ventajas de PPTP y
L2F.
Pgina 11 de 34

Dado que esta solucin no ofrece mecanismos de seguridad, para su uso


deber ser combinada con otros mecanismos generalmente implementados en
capa 3 del modelo OSI.

L2Sec: Layer 2 Security Protocol. Desarrollado para proveer una solucin


con seguridad, utiliza para ellos SSL/TLS aunque impone una sobrecarga
bastante grande en la comunicacin para lograrlo.

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.

Pgina 12 de 34

Implementacin OpenVPN
OpenVPN es una excelente nueva solucin para VPN que implementa conexiones
de capa 2 o 3, usa los estndares de la industria SSL/TLS ( Secure Sockets
Layer / Transport Layer Security) para encriptar y combina todos las
caractersticas mencionadas anteriormente en las otras soluciones VPN. 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 que
preocuparse siempre que contemos con un Linux en el cual podremos
implementarlo sin ningn problema mediante software.

Seguridad en VPN
Para encriptar datos se usan Passwords o claves de encriptacin.
OpenVPN tiene dos modos considerados seguros, uno basado en claves estticas
pre-compartidas y otro en SSL/TLS usando certificados y claves RSA. RSA es una
empresa dedicada a la criptografa.

Cuando ambos lados usan la misma clave para encriptar y desencriptar los datos,
estamos usando el mecanismo conocido como clave simtrica y dicha clave
debe ser instalada en todas las mquinas que tomarn parte en la conexin VPN.
Si bien SSL/TLS + claves RSA es por lejos la opcin ms segura, las claves
estticas cuentan con la ventaja de la simplicidad.
Veremos a continuacin ese mtodo y otros que aporta mayor seguridad y
facilidad

de

distribucin.

Pgina 13 de 34

Encriptacin simtrica y claves pre-compartidas


Ver aplicacin en el Caso 2 discutido ms adelante.

Cualquiera que posea la clave podr desencriptar el trfico, por lo que si un


atacante la obtuviese comprometera el trfico completo de la organizacin ya
que tomara parte como un integrante ms de la VPN.
Es por ello que mecanismos como IPsec cambian las claves cada cierto perodo
de tiempo asociando a las mismas ciertos perodo de tiempo de validez llamados
tiempo de vida o lifetime. Una buena combinacin de tiempo de vida y largo
de la clave asegurarn que un atacante no pueda desencriptar la clave a tiempo,
haciendo que cuando finalmente la obtenga (porque lo har), ya no le sirva por
estar fuera de vigencia. IPSec utiliza su propio protocolo para intercambiar
claves llamado IKE9 que ha sido desarrollado desde mediados de los noventa y
an no ha sido terminado.

Pgina 14 de 34

Encriptacin asimtrica con SSL/TLS


Ver aplicacin en el Caso 3 discutido ms adelante.
SSL/TLS usa una de las mejores tecnologas de encriptacin para asegurar la
identidad de los integrantes de la VPN.
Cada integrante tiene dos claves, una pblica y otra privada.
La pblica es distribuida y usada por cualquiera para encriptar los datos que
sern enviados a la contraparte quien conoce la clave privada que es la nica
que sirve para desencriptar los datos. El par de clave pblica/privada es
generado a partir de algoritmos matemticos que aseguran que solo con la clave
privada es posible leer los datos originales. El da que alguien encuentre algn
defecto a

ese

algoritmo, todos

aquellos

conectados

a Internet estarn

comprometidos en forma instantnea.

Es de destacar que la clave privada debe permanecer secreta mientras que la


clave pblica debe ser intercambiada para que nos puedan enviar mensajes.

Pgina 15 de 34

Seguridad SSL/TLS
Las bibliotecas SSL/TLS son parte del software OpenSSL que vienen instaladas
en cualquier sistema moderno e implementan mecanismos de encriptacin y
autenticacin basadas en certificados. Los certificados generalmente son
emitidos por entidades de reconocida confiabilidad aunque tambin podemos
emitirlos nosotros mismos y usarlos en nuestra propia VPN. Con un certificado
firmado, el dueo del mismo es capaz de probar su identidad a todos aquellos
que confen en la autoridad certificadora que lo emiti.

Ventajas y Desventajas de OpenVPN


Ventajas
OpenVPN

provee

seguridad,

estabilidad

comprobados

mecanismos

de

encriptacin sin sufrir la complejidad de otras soluciones VPN como las de IPsec.
Adems ofrece ventajas que van ms all que cualquier otra solucin como son:

Posibilidad de implementar dos modos bsicos en capa 2 o capa 3 con lo


que se logran tneles capaces de enviar informacin en otros protocolos
no-IP como IPX o broadcast (NETBIOS).

Proteccin de los usuarios remotos. Una vez que OpenVPN ha establecido


un tnel el firewall de la organizacin proteger el equipo remoto an
cuando no es un equipo de la red local. Por otra parte, solo un puerto de
red podr ser abierto hacia la red local por el remoto asegurando
proteccin en ambos sentidos.

Conexiones OpenVPN pueden ser realizadas a travs de casi cualquier


firewall. Si se posee acceso a Internet y se puede acceder a sitios HTTPS,
entonces un tnel OpenVPN debera funcionar sin ningn problema.
Pgina 16 de 34

Soporte para proxy. Funciona a travs de proxy y puede ser configurado


para ejecutar como un servicio TCP o UDP y adems como servidor
(simplemente esperando conexiones entrantes) o como cliente (iniciando
conexiones).

Solo un puerto en el firewall debe ser abierto para permitir conexiones,


dado que desde OpenVPN 2.0 se permiten mltiples conexiones en el
mismo puerto TCP o UDP.

Las interfaces virtuales (tun0, tun1, etc.) permiten la implementacin de


reglas de firewall muy especficas.

Todas las conceptos de reglas, restricciones, reenvo y NAT pueden ser


usados en tneles OpenVPN.

Alta flexibilidad y posibilidades de extensin mediante scripts. OpenVPN


ofrece numerosos puntos para ejecutar scripts individuales durante su
arranque.

Soporte transparente para IPs dinmicas. Se elimina la necesidad de usar


direcciones IP estticas en ambos lados del tnel.

Ningn problema con NAT. Tanto los clientes como el servidor pueden
estar en la red usando solamente IPs privadas.

Instalacin sencilla en cualquier plataforma. Tanto la instalacin como su


uso son increblemente simples.

Diseo modular. Se basa en un excelente diseo modular con un alto grado


Pgina 17 de 34

de simplicidad tanto en seguridad como en red.


Desventajas
No es IPsec-compatible siendo que justamente IPsec es el estndar actual para
soluciones VPN. Falta de masa crtica. Todava existe poca gente que conoce
como usar OpenVPN. An no posee interfaz grfica, aunque esto para algunos
pueda significar en realidad una ventaja. Al da de hoy solo se puede conectar
a otras computadores. Pero esto est cambiando, dado que ya existe compaas
desarrollando dispositivos con clientes OpenVPN integrados.

ComparacinentreOpenVPNeIPsecVPN
IPsec

OpenVPN

Estndar de la tecnologa VPN

Aun desconocida y no compatible con IPsec

Plataformas de hardware
(dispositivos, aparatos)

Solo en computadoras, pero en todos los


sistemas operativos disponibles

Tecnologa conocida y probada

Tecnologa nueva y aun en crecimiento

Muchas interfaces grficas


disponibles

Sin interfaces grficas profesionales,


aunque ya existen algunos proyectos
prometedores

Modificacin compleja del stack IP

Tecnologa sencilla

Necesidad de modificaciones
crticas al kernel

Interfaces de red y paquetes


estandarizados

Necesidad de permisos de
administrador

Ejecuta en el espacio del usuario y puede


ser chroot-ed

Diferentes implementaciones de
distintos proveedores pueden ser
incompatibles entre si

Tecnologas de encriptamiento
estandarizadas

Configuracin compleja y tecnologa Facilidad, buena estructuracin, tecnologa


compleja
modular y facilidad de configuracin
Curva de aprendizaje muy
pronunciada

Fcil de aprender

Necesidad de uso de muchos


puertos y protocolos en el firewall

Utiliza solo un puerto del firewall

Problemas con direcciones

Trabaja con servidores de nombres


Pgina 18 de 34

dinmicas en ambas puntas

dinmicos como DynDNS o No-IP con


reconexiones rpidas y transparentes

Problemas de seguridad de las


tecnologas IPsec

SSL/TLS como estndar de criptografa

Problemas si ambos lados necesitan Ningn problema con NAT (ambos lados
NAT
pueden ser redes NATeadas)
P

Instalando OpenVPN
1. #aptitude install openvpn
2. #aptitude install openssh
3. Verificar que el controlador TUN/TAP (para las interfaces virtuales del tnel):
#locate if_tun.h
esto debe mostrar un archivo como /usr/include/linux/if_tun.h
#modprobe tun
4. verificar el archivo /etc/modules, debe aparecer una lnea con tun
5. Habilitar IP forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward
6. Ajustes en el Firewall:
Si existen firewall entre los dos equipos, estos deben ser configurados para
reenviar paquetes UDP por el puerto 1194 en ambas direcciones.
Para permitir paquetes entrantes al dispositivo TUN:

iptables -A INPUT -i tun+ -j ACCEPT

Pgina 19 de 34

Casos prcticos de construccin de VPNs.


Configuracin de las direcciones IP de la VPN :
En estas practicas estaremos utilizando y trabajando en pareja. De manera que
tendremos:
PC A ( 192.168.1.20)
PC B (192.168.5.10)
Sustituya las IP por valores apropiados segn el escenario por nombres. La IP
pueden ser IP pblicas si la conexin es a travs de Internet.
IP de los extremos del TUNEL: Deben ser IP privadas y que no estn en uso en
ambos extremos. Podemos utilizar por ejemplo las siguientes (puede seleccionar
otra)
PC A: 10.4.0.1
PC B: 10.4.0.2

Caso 1: Tnel simple sin seguridad


PC A:
openvpn --remote 192.168.5.10 --dev tun1 --ifconfig 10.4.0.1 10.4.0.2
--verb 3
PC B:
openvpn --remote 192.168.1.20 --dev tun1 --ifconfig 10.4.0.2 10.4.0.1
--verb 3
Verificamos con el comando ping que el tnel est trabajando
En PC A: ping 10.4.0.2
En PC B: ping 10.4.0.1

Pgina 20 de 34

Caso 2: Tnel usando claves pre-compartida. Encriptacin simtrica


1. Cambiarse al directorio /etc/openvpn
2. Crear la clave en solo extremo NO en ambos. Por ejemplo en PC B.
Ejecutar
openvpn --genkey --secret key-estatica
Este comando generar un archivo de clave aleatoria llamada key-estatica
(en formato ascii ).
3. Copia key-estatica desde PC B al PC A a travs de ssh, esto es, utiliza el
comando

scp . (preguntar al instructor si no recuerda el comando)

4. Ejecutar en el PC A:
openvpn --remote 192.168.5.10 --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 3
--secret key-estatica

5. Ejecutar en el PC B:
openvpn --remote 192.168.1.20 --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 3
--secret key-estatica

Verificamos con el comando ping que el tnel est trabajando


En PC A: ping 10.4.0.2
En PC B: ping 10.4.0.1
Caso 3: Tnel con full seguridad basada en TLS. Encriptacin asimtrica
con SSL/TLS
En este caso es necesario definir quien ser el servidor TLS y quien el cliente
TLS.
PC A: Cliente TLS
PC B: Servidor TLS (Mquina gestora de claves)
Construccin de los certificados y claves RSA
Se van a construir certificados y claves RSA utilizando el comando openssl,
incluido en la distribucin de la biblioteca OpenSSL.
Los certificados RSA son claves pblicas que tambin tienen otros campos
Pgina 21 de 34

seguros insertados en ellos tales como el Nombre Comn o la direccin email


del propietario del certificado. OpenVPN provee la posibilidad de escribir scripts
para probar estos campos antes de la autenticacin.
Las claves privadas deben mantenerse protegidas siempre. Los archivos con los
certificados pueden publicarse libremente o compartirse.
1. Seleccionamos el Servidor PC B para que sea el gestor de claves.
2. Cuando se instal OpenVPN, se cre automticamente el directorio easy-rsa.
Ese directorio contiene scripts que facilitan la creacin de los certificados y las
llaves. Lo vamos a copiar en /etc/openvpn:
cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
3. Nos cambiamos a /etc/openvpn/easy-key y ejecutamos el scrip vars para
iniciar las variables de entorno que vamos a utilizar:
cd /etc/openvpn/easy-rsa
./vars
4. Ejecutar el script clean-all para limpiar el directorio donde podran existir
certificados y llaves viejas:
./clean-all
5. Ejecutar el script build-ca para crear una Autoridad de Certificacin maestra,
un par certificado/clave privada, vlida por 10 aos.
./build-ca
Nos preguntarn una serie de datos que debemos recordar. Por ejemplo:

Pgina 22 de 34

Country Name (2 letter code) [VE]: VE


State or Province Name (full name) [DF]: DF
Locality Name (eg, city) [CCS]: CCS
Organization Name (eg, company) [trs]: trs
Organizational Unit Name (eg, section) []:trs
Common Name (eg, your name or your server's hostname) []:valiente01
Email Address [vcasti@cantv.net]: vcasti@cantv.net

chequear los certificados creados:


ls -l /etc/openvpn/easy-rsa/keys
6. Ejecutar el script build-key-server para crear la llave del servidor TLS. Note
que este caso el script se ejecuta con argumento:el nombre de la clave que la
llamaremos servidor.
./build-key-server servidor
Nos preguntarn lo mismo del paso anterior. Conteste igual, salvo Common
Name

que debe utilizar el argumento del script ejecutado. En nuestro caso sera

servidor .
Aqu se crearn servidor.crt y servidor.key, los cuales copiaremos en
/etc/openvpn:
cp /etc/openvpn/easy-rsa/keys/servidor.* /etc/openvpn

7. Con el prximo script a ejecutar vamos a crear los clientes de la vpn. Clientes
TLS. De manera que vamos crear, por ahora, nuestro primer cliente TLS:
cliente1 y su llave:cliente1.key y certificado: cliente1.crt.
./build-key cliente1 y contestar igual que en el paso 6, salvo el Common
name que colocamos: clientes

Pgina 23 de 34

8. Ejecutar el script build-dh para establecer los parmetros Diffie Hellman


para el servidor TLS. El protocolo Diffie Hellman permite el intercambio
secreto de claves entre dos partes que no han tenido contacto previo.
./build-dh

9. Terminamos de copiar el resto de los archivos necesarios en el servidor:


ca.crt, ca.key y dh1024.pem
cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn/
Repetir para los otros dos archivos.
10. Copiar cliente1.crt, cliente1.key y ca.crt al PC A desde el gestor PC B
a travs de scp , aunque actualmente solo los archivos .key deben
considerarse no-pblicos.
10.1 En el PC cliente (PC A) cambiarse a /etc/openvpn
10.2 Ejecutar (cambie la ip por el valor apropiado):
scp root@192.168.1.10:/etc/openvpn/easy-rsa/keys/cliente1.crt/ .

Repetir 10.2 para los archivos cliente1.key y ca.crt


Archivo de configuracin del servidor TLS
11. Vamos a crear ahora el archivo de configuracin con el cual arrancaremos el
servidor. Lo llamaremos servidor.conf.
nano /etc/openvpn/servidor.conf
port 1194
proto udp
dev tun1
persist-tun
ca ca.crt
cert servidor.crt
key servidor.key
dh dh1024.pem
#Direcciones que se asignaran a los
Pgina 24 de 34

#clientes, el server es .1
server 10.4.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 5
Grabamos y salimos

12. Arrancamos el servidor TLS (PC B):


cd /etc/openvpn
openvpn --config servidor.conf
Si todo fue Ok. Deberamos ver al final de la consola algo as:
Mon Jul 14 13:35:30 2008 us=329016 Initialization Sequence Completed
Archivo de configuracin para el cliente TLS
13. Vamos a crear ahora el archivo de configuracin con el cual arrancaremos
los clientes. Lo llamaremos cliente1.sh.
nano /etc/openvpn/cliente1.sh
#!/bin/sh
cd /etc/openvpn
openvpn --remote 192.168.1.10 --dev tun1 tls-client --ca ca.crt --cert cliente1.crt --key \
cliente1.key --verb 5
#fin del script

chmod 700 /etc/openvpn/cliente1.sh

14. Arrancamos el cliente TLS (PC A):


Pgina 25 de 34

cd /etc/openvpn
./cliente1.sh
Si todo fue Ok. Deberamos ver al final de la consola algo as:
Mon Jul 14 13:35:30 2008 us=329016 Initialization Sequence Completed
15. Verificamos con el comando ping que el tnel est trabajando
En PC A: ping 10.4.0.2 y En PC B: ping 10.4.0.1
# iptables -A INPUT -i tun0 -j ACCEPT
# iptables -A FORWARD -s 192.168.3.0/24 -d 10.255.255.0/24 -j ACCEPT
# iptables -A FORWARD -d 192.168.3.0/24 -s 10.255.255.0/24 -j ACCEPT

Caso 4. Enrutamiento.
Supongamos que tanto el PC A como el PC B son servidores de VPN en sus
respectivas sedes. Por tanto tienen 2 tarjetas de red: Una conectada a la red
privada y otra a Internet. Asumiendo que podemos hacer ping a travs del tnel,
el prximo paso es rutear la subred real a travs del tnel Nuestro objetivo es
conectar de manera segura ambas redes privadas.

PC A: 192.168.1.0/24
PC B: 192.168.5.0/24
Ejecutamos en ambos equipos para habilitar el bit de reenvo:
Pgina 26 de 34

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


y habilitamos los paquetes de reenvo del dispositivo TUN a travs del firewall:
iptables -A FORWARD -i tun+ -j ACCEPT
En el PC A creamos la ruta esttica para acceder a la red privada remota en PC
B. Utilizaremos IPROUTE2:
ip route add 192.168.5.0/24 via 10.4.0.2
En el PC B creamos la ruta esttica para acceder a la red privada remota en PC
A:
ip route add 192.168.1.0/24 via 10.4.0.1
Ahora cualquier mquina en el segmento privado del PC A (192.168.1.0/24)
puede conectarse a cualquier mquina en el segmento privado del PC B
(192.168.5.0/24) a travs del tnel seguro VPN. Lo mismo desde la sede B a la
sede A.

Caso4.Firewall
Adicionar las siguientes reglas en el firewall de las sedes :
iptables -A INPUT -p udp -s 1.2.3.4 --dport 1194 -j ACCEPT
Donde 1.2.3.4 representan la IP pblica de conexin a Internet de los equipos
firewall respectivos.
Esta regla permitir paquetes entrantes en el puerto UDP de Open VPN por
default 1194 .
La regla:
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
podra ser adecuada si una de las parejas (el cliente) tiene IP dinmica, como es

Pgina 27 de 34

el caso de clientes con servicio ADSL.

Debemos agregar tambin una regla al firewall para que permita trfico entrante
en el dispositivo TUN:

iptables -A INPUT -i tun+ -j ACCEPT


Igualmente, agregar una regla para permitir paquetes entrantes desde
dispositivos TUN ser reenviados a otros hosts de la red local:
iptables -A FORWARD -i tun+ -j ACCEPT

Pgina 28 de 34

Anexo A
IPTABLES Bsico
Este es el camino que seguira un paquete en el kernel:

Cuando un paquete u otra comunicacin llega al kernel con iptables se sigue este camino.

La estructura de un comando iptables es la siguiente :


iptables -t [tabla] -[AIRDLFZNXP] [regla] [criterio] -j [accin]
Vamos a ver que es cada cosa :

-t [tabla]

Esta parte del comando especifica cual es la tabla en la que


queremos aadir la regla. Existen 3 tipos de tablas vlidas :
nat, filter y mangle, siendo filter la tabla por defecto si se
omite esta parte del comando. Nat se refiere a las conexiones
que sern modificadas por el firewall, como por ejemplo,
enmascarar conexiones, realizar redirecciones de puertos,
etc. Filter es la tabla donde se aaden las relacionadas con
el filtrado. Mangle tambin modifica paquetes pero, a
diferencia de Nat, es mucho mas potente. Con Mangle
podemos modificar cualquier aspecto del paquete (flags, TTL,
etc).

Hay 4 opciones bsicas con las que se puede jugar en esta


[AIRDLFZNXP apartado del comando. Estas opciones bsicas son las
] [regla]
Pgina 29 de 34

siguientes :

[criterio]

A es para aadir (Append) una regla. Reglas vlidas


son INPUT, FORWARD y OUTPUT.
L es para listar las reglas.
F es para borrar todas las reglas o en el caso de INPUT,
FORWARD o OUTPUT sean dados como argumento se
borraran las reglas asociadas solo a esa clase.
P establece la poltica por defecto del firewall. Por
defecto es aceptar todas las conexiones.

Aqu es donde se especificarn las caractersticas del tipo de


paquete que casar con esta regla. Para establecer reglas
sencillas (reglas stateless), podemos operar con las
siguientes opciones : -s (ip/red fuente), -d (ip/red destino),
--sport (puerto fuente), --dport (puerto destino), y -p
(protocolo). Un ejemplo de comando de la sintaxis de un
comando iptables sencillo podra ser este (la parte en que se
define el criterio de la regla est en negrita) :
iptables -A FORWARD -p [protocolo] -s [ip/red fuente]
--sport [puerto fuente] -d [ip/red destino] --dport
[puerto destino] -j DROP
Aqu establecemos que es lo que hay que hacer con el
paquete. Las posibles opciones son : ACCEPT, REJECT, DROP,
REDIRECT, LOG (existen ms, pero estas son las bsicas).

-j [action]

ACCEPTaceptarelpaquete.
REJECT o DROP lo desecharn, la diferencia entre ellos
reside en que DROP descartar el paquete silenciosamente y
REJECT emitir un paquete ICMP Port Unreachable,
indicando
que
est
cerrado.
REDIRECT redirigir el paquete a donde se indique en el
criterio
del
comando
y
por
ltimo...
LOG lo logear para su posterior anlisis.

Pgina 30 de 34

Ejercicios con IPTABLES.


1. Con qu parmetro listamos todas las reglas introducidas en el
cortafuegos?
1. -L
2. -A
3. -P
4. -F
2. Con qu parmetro aadimos una regla al cortafuegos?
1. -F
2. -P
3. -A
4. -s
3. Las reglas introducidas en el cortafuegos se ejecutan en orden. La primera
regla introducida es la primera que se ejecuta
1. Verdadero
2. Falso
4. Si queremos denegar la entrada a todos los paquetes en nuestro equipo,
ejecutaramos:
1. iptables -A INPUT -j ACCEPT
2. iptables -A OUTPUT -j DROP
3. iptables -A INPUT -j DROP
4. iptables -j INPUT -A DROP
5. Si queremos denegar el acceso a nuestro servidor web, cul de las
siguientes reglas aadiras a IPTABLES?
1. iptables -A INPUT --dport 80 -j DROP
2. iptables -A OUTPUT --dport 80 -p TCP -j DROP
3. iptables -A INPUT -p TCP --dport 80 -j ACCEPT
6. Si queremos que no se pueda hacer ping a nuestro equipo, cul de las
siguientes reglas aadiras?
1. iptables -A INPUT -p ICMP -j DROP
2. iptables -A OUTPUT -p ICMP -j DROP
3. iptables -A INPUT -p ICMP -j ACCEPT
7. No deseamos que la entrada de paquetes que vengan de la direccin IP
60.40.82.23, qu regla aadiras a IPTABLES?
1. iptables -A INPUT -s 60.40.82.23 -j DROP
2. iptables -A OUTPUT -s 60.40.82.23 -j DROP
3. iptables -A INPUT -d 60.40.82.23 -j DROP
8. Si queremos dejar pasar todos los paquetes que vengan de la direccin
192.168.1.23 por el puerto 80, cul de las siguientes reglas aadiras a
IPTABLES?
1. iptables -A INPUT --dport 80 -d 192.168.1.23 -j ACCEPT
Pgina 31 de 34

2. iptables -A INPUT -s 192.168.1.23 --dport 80 -j DROP


3. iptables -A INPUT -s 192.168.1.23 -p TCP --dport 80 -j ACCEPT
Indica las reglas que debes aadir a IPTABLES en cada uno de los
siguientes casos.
1. Cerrar conexiones entrantes desde eth0 y hacia el puerto (local) 80 (HTTP)
2. Enmascarar por las conexiones procedentes de la red 10.0.0.0 como si lo
hicieran desde la ip configurada en la interfaz eth0. (tpica regla en un
router linux compartiendo la conexin eth0 con la red local conectada a
eth1)NOTA: Para que esta regla funcione correctamente, as como todas
las reglas FORWARD, PREROUTING, etc, es necesario activar el forwardeo
entre interfaces en

el

kernel

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


3.

Redireccionar al puerto 3128 (proxy) todos los paquetes que entran por
eth1 y con destino puerto 80 (HTTP), de esta manera conseguimos un
proxy transparente

4.

Detener todas las conexiones entrantes desde la interfaz eth0 menos la


conexiones al servicio ssh. La primera regla deja pasar los paquetes al 22 y
la segunda cierra todo lo dems. Sin embargo todas las conexiones que se
realicen desde la mquina (como navegar, consultar correo, etc) estarn
permitidas por que no son conexiones iniciadas desde "fuera"

5. Deshabilitar los paquetes ICMP entrantes

para el firewall (regla ?) y la

red protegida (regla ?).


6. Lista todas las reglas o cadenas introducidas en el cortafuegos.
7. Borra todas las reglas introducidas en el cortafuegos.
8. Aade una regla para eliminar todos los paquetes de salida (es decir, que
desde tu equipo no pueda salir ningn paquete). Comprueba despus que
no tienes acceso a Internet.
9. Elimina la regla introducida anteriormente y comprueba que de nuevo
tienes acceso a Internet.

Pgina 32 de 34

10. Aade una regla para no dejar pasar ningn paquete de entrada.
Comprueba en este caso que tampoco tienes conexin a Internet.
11. Borra la regla introducida en la pregunta 10.
12. Aade una regla para dejar pasar todos los paquetes que salgan de tu
equipo.
13. Tenemos un servidor web instalado y queremos permitir el acceso desde
el exterior. Aade la regla necesaria al cortafuegos.
14. Tenemos un servidor ftp funcionando y queremos permitir el acceso ftp
desde el exterior. Aade la regla necesaria en IPTABLES.
15. Si quieres denegar el acceso por debajo del puerto 1024. Qu reglas
debes aadir a IPTABLES?
16. Rechaza todos los paquetes que vengan de la direccin 80.100.30.27
17. Borra todas las reglas introducidas y aade una para que no se pueda
hacer ping a nuestro equipo.
18. Aade una regla para dejar pasar todos los paquetes que procedan de
127.0.0.1 (loopback) y vayan dirigidos al equipo 80.90.1.150
19. No queremos permitir que el equipo con ip 80.90.100.110 se pueda
conectar a nuestro servidor web. Aadir una regla para denegar el acceso
al servidor web a ese equipo.
20. Aade una regla para permitir el acceso va ssh (puerto 22) al equipo con
ip 90.80.70.60
21. Aade una regla cuya funcin sea hacer ping desde nuestra propia
mquina (protocolo icmp).
22. Aade una regla para que el equipo que tienes situado a tu derecha no
obtenga respuesta al hacer ping.
23. Aade una regla para impedir conectarse mediante FTP al equipo con IP
192.168.1.15
24. Crea un pequeo script que contemple los siguientes casos:
- La poltica por defecto es no dejar entrar ningn paquete al equipo.
- Se permite el acceso al servidor web desde el exterior.
Pgina 33 de 34

- Se permite acceder al servidor FTP


- Se permite acceder al servidor SSH desde el exterior.

Pgina 34 de 34

También podría gustarte