Sunteți pe pagina 1din 9

VPN RED A RED

Aviso al publico usuario: Todo lo que escribo en este


tutorial fue encontrado en tutoriales, revistas, clases,
PAGINAS WEB, etc, etc, pero como puede ser algo
confuso (para mi lo fue) ac les pongo un resumen
que ya comprob que funciona.
Descripcion: Tutorial configuracin de de servidores vpn y clientes vpn con openvpn
Introduccin a VPN: Wikipedia, san google, etc.
Diagrama de conexin:

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

Explicacin diagrama:

Master VPN

Servidor controlador de la VPN

Esclavo VPN

Servidor cliente de la VPN creada por Master


VPN

Tunel VPN

Red virtual creada entre los dos servidores a


travs de la red fsica

Red local o internet

Para este ejemplo puede ser un switch pero las


ips locales se pueden cambiar por las ip publicas
de los servidores conectados a internet.

Cliente 1

Computadora detrs del Master VPN, es decir en


su red interna.

Cliente 2

Computadora detrs del Cliente VPN, es decir


en su red interna.

Eth0 servidores

Sera la tarjeta de red de cada servidor conectada


a un switch o a internet, permite conexin
directa entre servidores.

Eth1 servidores

Sera la tarjeta de red de cada servidor conectada


a su respectiva red interna.

Tun0 servidores

Tarjeta de red virtual activada por el servicio


openvpn al ser iniciado, esta tarjeta virtual sera
la que conecte a los servidores a travs del tnel
virtual que se creara.

Eth0 clientes 1 y 2

Tarjeta de red conectada a la red interna, permite


conexin con sus respectivos servidores (Master
y Cliente) los cuales le darn salida a la red
interna al otro lado de la VPN.

Herramientas necesarias:
Este tutorial lo podemos hacer con virtualbox, vmware, qemulator... bueno, el virtualizador que
prefieras, yo usare virtualbox.
Tambin necesitaremos algunas imgenes de sistemas operativos, para los servidores yo usare
centos 5.3 y para los clientes versiones ligeras de ubuntu (lubuntu y xubuntu) pero para los
servidores pueden usar Fedora, Ubuntu, RedHad, Debian, OpenSUSE, no se, el que quieran, claro,
ac solos les dir como implementarlo en Centos 5.3.

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

Preparacin de las maquinas virtuales:


MasterVPN:
Tipo

Maquina vitrual

Capacidad de disco

8 Gb

Memoria RAM

256

Video

12Mb

Red

Dos tarjetas de red (puente e interna)*

*VirtualBox permite configurar de tres formas la red de nuestras maquinas virtuales, La primera es
puente o bridge: esto hace que la tarjeta de red de nuestra maquina virtual aparezca como una
tarjeta independiente en la red, es decir, otro equipo en la red vera la ip de nuestro equipo y adems
la ip de nuestra maquina virtual como si fueran dos maquinas independientes.
interna o host only: esta configuracin hace que la tarjeta de red de nuestra maquina virtual sea
solo visible y accesible por nuestra maquina real.
Nat: esta configuracin permite a la maquina virtual tener acceso a la red local o internet pero
utilizando la misma ip de la maquina real, traduce la ip de la maquina virtual (por ejemplo
10.0.0.10) a la ip de la real (192.168.1.10), para los otros equipos en la red solo existe la ip real.
Clientes 1 y 2:
Tipo

Maquina virtual

Disco

8gb

Video

12 mb

ram

256

red

Una sola tarjeta en modo interno o solo anfitrin


o host only

dispositivos

Lectora de discos
Configuracin de las maquinas:

MasterVPN:
Ip eth0

192.168.1.100/24

Ip eth1

130.0.0.1/16

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

ClienteVPN:
Ip eth0

192.168.1.101/24

Ip eth1

131.0.0.1/16

Clientes 1 y 2:
Ip eth0 cliente1

130.0.0.10 / 255.255.0.0

Ip eth0 cliente2

131.0.0.10 / 255.255.0.0
Instalacin de OpenVPN:

Primero tenemos que agregar los repositorios de sourseforge a nuestra lista de repositorios:
Descargamos el paquete
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.61.el5.rf.i386.rpm
Instalamos la llave de DAG
# rpm import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
Finalmente instalamos el paquete
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Una vez agregado el repositorio, instalamos el openvpn:
# yum -y install openvpn
(-y responde y a cualquier pregunta, en este caso nos preguntara si queremos instalar openvpn).
Esto lo haremos en el cliente y en el master.
Les recomiendo configurar todo esto desde una ventana de ssh, por que mas adelante necesitaran
dos o hasta tres de estas ventanas.
Como se hace eso??, bueno primero instalan ssh en tu pc, si usan ubuntu sudo apt-get install
openssh, si no yum install openssh para centos,(aunque lo instala desde la instalacion del
sistema) redhad, fedora creo tambien.. bueno busquen en inter. Luego que lo instalaron abren una
consola (o abren al putty que es un cliente de ssh para windows) y escriben: ssh root@ip-de-suservidor luego les pedira una confirmacion y luego la clave del servidor a controlar.

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

Configuracin de openvpn:
Una vez instalado el OpenVPN se creara la siguiente estructura de directorios:
/etc/openvpn/
Ac crearemos un archivo donde guardaremos la configuracin para nuestro Master y Cliente:
#touch tunel.conf
Y editaremos el contenido de tunel.conf con los siguientes parmetros:(puedes copiar y pegar)
#nano tunel.conf (esto abre el archivo con el editor nano, pero puedes usar vim o el que quieras)

#este es el contenido de tunel.conf del MasterVPN


#ip del MasterVPN
local 192.168.1.100
#ip del ClienteVPN
remote 192.168.1.101
#tarjeta de red virtual
dev tun
#puerto por defecto del opnvpn
port 1194
#si quieres que se compriman los paquetes antes de ser enviados**
comp-lzo
#usuario nobody para que el servicio tenga los permisos minimos posibles, por seguridad
user nobody
#ip del Master en el tunel y del Cliente respectivamente
ifconfig
10.0.0.1
10.0.0.2
#hace pings cada 15 segundos por que alfunos firewals bloquean conexiones inactivas.
ping 15
#le decimos el archivo con la clave que usaran los servidores para autenticarse***
secret /etc/openvpn/clave.txt
#fin del archivo tunel.conf del Master.

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

*comp-lzo: al instalar opnvpn, seguro tambien se instalo lzo que es un programa que comprime los
paquetes antes de enviarlos, pues al cifrar los datos (funcion de una vpn) estos se hacen mas grandes
u por ende la conexino de hace mas lenta.
***/etc/openvpn/clave.txt: para evitar que cualquiera se una anuestra vpn la protejeremos con una
clave que solo conocen el Master y el Cliente, esta se genera en el Master escribiento el siguiente
comando:
#openvpn --genkey --secret clave.txt

Este comando genera un archivo (clave.txt) con una clave, este archivo se copiara en el ClienteVPN
por ejemplo usando SSH que encripta los datos para mayor seguridad:

# scp clave.txt root@192.168.1.101:/etc/openvpn/

Y este es el contenido del archivo tunel.conf en el Cliente:

#este es el contenido de tunel.conf del ClienteVPN


local 192.168.1.101
remote 192.168.1.100
dev tun
port 1194
comp-lzo
user nobody
ping 15
ifconfig
10.0.0.2
10.0.0.1
secret /etc/openvpn/clave.txt
#fin del archivo tunel.conf del Cliente

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

Iniciando el servicio:

Si hemos hecho todo bien hasta este punto, ya podemos iniciar el servicio con el comando: (primero
en el master y luego en el cliente)

# openvpn config /etc/openvpn/tunel.conf

Esto nos llerara la ventana de mensajes indicando que se inicio el servicio y si todo esta bien
veremos algo parecido a esto en el master:
Fri Jul 30 00:40:38 2010 UID set to nobody
Fri Jul 30 00:40:38 2010 UDPv4 link local (bound): 192.168.1.100:1194
Fri Jul 30 00:40:38 2010 UDPv4 link remote: 192.168.1.101:1194
Fri Jul 30 00:40:39 2010 Peer Connection Initiated with 192.168.1.101:1194
Fri Jul 30 00:40:39 2010 Initialization Sequence Completed
y en el cliente:
Fri Jul 30 00:40:41 2010 UID set to nobody
Fri Jul 30 00:40:41 2010 UDPv4 link local (bound): 192.168.1.101:1194
Fri Jul 30 00:40:41 2010 UDPv4 link remote: 192.168.1.100:1194
Fri Jul 30 00:40:48 2010 Peer Connection Initiated with 192.168.1.100:1194
Fri Jul 30 00:40:49 2010 Initialization Sequence Completed
Si les sale algun error, quequeen pueden haber puesto una mayuscula en el tunel.txt o la
configuracino de red, prueben hacer ping entre los servidores y si aun asi no funciona, vean el log
del sistema que esta en:
/var/log/messages
, antes de verlo les recomiendo borrarlo:
echo > /var/log/messages
y luego pueden ir viendo que aparece con:
tail -f /var/log/messages
(el -f hace que siempre este en pantalla el contenido del archivo, as vern cualquier cambio en el
archivo).
Si todo esta bien deberiamos poder hacer ping a las interfaces tun de nuestro servidor y del otro
servidor, probamos:
ping 10.0.0.1 < nuestra ip virtual de MasterVPN
ping 10.0.0.2 < la ip virtual del ClienteVPN
si obtenemos respuesta todo esta bien.

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

Configuracin de los Clientes 1 y 2:


En los clientes configraremos las ip cono en el diagrama del principio, o tambien podemos poner
una ip y mascara temporal con el comando (esto en ubuntu) :
Cliente 1 del MasterVPN:

# sudo ifconfig eth0 130.0.0.10 netmask 255.255.0.0

y le agregamos la puerta de enlace que sera la ip interna de nuestro servidor MasterVPN:

# sudo route add default gw 130.0.0.1

Cliente 2 del ClienteVPN:

# sudo ifconfig eth0 131.0.0.10 netmask 255.255.0.0

y le agregamos la puerta de enlace que sera la ip interna de nuestro servidor ClienteVPN:

# sudo route add default gw 131.0.0.1

Si probamos hacer ping desde uno de los clientes al otro veremos que no esposible, esto es por que
los servidores aun no pueden conectar las redes internas con la virtual, para esto haremos un NAT
(traducir una ip en otra) de la red interna a la ip del tunel,
por ejemplo: para el MasterVPN,
todas las peticiones desde la red interna convertirlas en peticiones de la red externa,
esto se traducira en un comando de iptables:
Este comando se ejecuta en el MasterVPN:
# iptables -t nat -A POSTROUTING -o eth1 --dst 131.0.0.1/16 -j MASQUERADE

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

y para el cliente:
Este comando se ejecuta en el ClienteVPN:
# iptables -t nat -A POSTROUTING -o eth1 --dst 130.0.0.1/16 -j MASQUERADE

donde eth1 es la tarjeta de red conectada a la red interna y 130.0.0.0 o 131.0.0.0 son las redes
internas destino.
Adems tenemos que decirle a cada servidor que reconosca las redes destino internas y por donde
tiene acceso a ellas, por ejemplo, si quieres ir a la red 130.0.0.0 tienes que salir por la interface
10.0.0.2, para esto ejecutaremos el siguiente comando que agrega una red y una puerta de enlace:
Para el MasterVPN:
# route add -net 131.0.0.0 netmask 255.255.0.0 gw 10.0.0.2 dev tun0

Y para el ClienteVPN:
# route add -net 130.0.0.0 netmask 255.255.0.0 gw 10.0.0.1 dev tun0

Aun no podremos hacer ping, esto es or que tenemos que indicarle al sistema que permita el paso
de paquetes de una tarjeta de red a otra, para esto ejecutamos el siguiente comando en los dos
servidores (MasterVPN y ClienteVPN):

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

Y listo!!! espero que les sirva, Suerte!!!


Si los puedo ayudar en algo: rafoalianza@hotmail.com

Tutorial VPN bsico red a red en Linux

Rafael Paolo Campoverde Mariscal

S-ar putea să vă placă și