RouterMaN’s Bloghackergotchi

December 16, 2005

HOWTO: OpenVPN red a red

holas, acá les dejo un howto de OpenVPN hecho por Iñaki de la lista de usuarios de debian en español. Gracias a Iñaki por dejar usar su howto.

Montar varias VPNs entre redes con OpenVPN
*******************************************
*******************************************

Tenemos 3 delegaciones con un router cada una:

A:
- Dominio: a.com
- Subred: 192.168.1.0/24
- Nodo VPN: 10.0.1.2

B:
- Dominio: b.com
- Subred: 192.168.2.0/24
- Nodo VPN: 10.0.2.2

C:
- Dominio: c.com
- Subred: 192.168.3.0/24
- Nodo VPN: 10.0.1.1 (para A)
- Nodo VPN: 10.0.2.1 (para B)

Vamos a conectar A con C y B con C mediante dos VPNs con OpenVPN. Todos ellos podrían tener IP dinámica. La seguridad será mediante una clave de texto plano en este caso (por simplificar).

***** En A: *****

#> apt-get install openvpn

—–/etc/openvpn/vpn_a_c.conf—–
remote c.org
float # por si c.org es IP dinámica.
port 1194
dev tun # creado por el paquete debian.
persist-tun # necesario al ejecutarse como “nobody”.
ifconfig 10.0.1.2 10.0.1.1 # nodo local - nodo remoto.
comp-lzo
ping 15
ping-restart 120
verb 3
secret /etc/openvpn/clave_a_c.txt # hay que crearla y copiarla al remoto.
persist-key # necesario al ejecutarse como “nobody”.
route 192.168.3.0 255.255.255.0 # se ruta por aquí lo que vaya a la red de C.
user nobody
group nogroup
chroot /var/empty # por seguridad.
————————————

#> modprobe tun
#> mkdir /var/empty
#> chown nobody.nogroup /var/empty
#> /etc/init.d/openvpn restart

***** En B: *****

#> apt-get install openvpn

—–/etc/openvpn/vpn_b_c.conf—–
remote c.org
float # por si c.org es IP dinámica.
port 1195 # podría ser distinto el local que el remoto pero así más sencillo.
dev tun # creado por el paquete debian.
persist-tun # necesario al ejecutarse como “nobody”.
ifconfig 10.0.2.2 10.0.2.1 # nodo local - nodo remoto.
comp-lzo
ping 15
ping-restart 120
verb 3
secret /etc/openvpn/clave_b_c.txt # hay que crearla y copiarla al remoto.
persist-key # necesario al ejecutarse como “nobody”.
route 192.168.3.0 255.255.255.0 # se ruta por aquí lo que vaya a la red de C.
user nobody
group nogroup
chroot /var/empty # por seguridad.
————————————

#> modprobe tun
#> mkdir /var/empty
#> chown nobody.nogroup /var/empty
#> /etc/init.d/openvpn restart

***** En C: *****

#> apt-get install openvpn

—–/etc/openvpn/vpn_c_a.conf—–
remote a.org
float # por si a.org es IP dinámica.
port 1194
dev-node /dev/net/tun1 # creado por el paquete debian y renombrado por nosotros.
persist-tun # necesario al ejecutarse como “nobody”.
ifconfig 10.0.1.1 10.0.1.2 # nodo local - nodo remoto.
comp-lzo
ping 15
ping-restart 120
verb 3
secret /etc/openvpn/clave_a_c.txt
persist-key # necesario al ejecutarse como “nobody”.
route 192.168.1.0 255.255.255.0 # se ruta por aquí lo que vaya a la red de A.
user nobody
group nogroup
chroot /var/empty # por seguridad.
————————————

—–/etc/openvpn/vpn_c_b.conf—–
remote b.org
float # por si b.org es IP dinámica.
port 1195 # ¡¡ojo, el 1194 está ocupado en la otra VPN con A!!
dev-node /dev/net/tun2 # creado por nosotros.
persist-tun # necesario al ejecutarse como “nobody”.
ifconfig 10.0.2.1 10.0.2.2 # nodo local - nodo remoto.
comp-lzo
ping 15
ping-restart 120
verb 3
secret /etc/openvpn/clave_b_c.txt
persist-key # necesario al ejecutarse como “nobody”.
route 192.168.2.0 255.255.255.0 # se ruta por aquí lo que vaya a la red de A.
user nobody
group nogroup
chroot /var/empty # por seguridad.
————————————

#> modprobe tun

Renombramos tun por tun1:
#> mv /dev/net/tun /dev/net/tun1

Creamos uno nuevo para la conexión con B:
#> mknod /dev/net/tun2 c 10 200

#> mkdir /var/empty
#> chown nobody.nogroup /var/empty
#> /etc/init.d/openvpn restart

***** En los iptables de A, B y C: *****

-A INPUT -i tun+ -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -o tun+ -j ACCEPT

Nota: No olvidar crear los ficheros de claves que deben ser iguales entre los extremos de cada VPN:
#> openvpn –genkey –secret nombre_fichero

Y ya está, ahora deberíamos poder hacer un ping desde cualquier ordenador de A (192.168.1.0/24) a cualquiera de C (192.168.3.0/24).
Lo mismo desde B (192.168.2.0/24) a C.
Y también en sentido contrario desde C a A y desde C a B.

2 Comments »

The URI to TrackBack this entry is: http://routerman.blogsome.com/2005/12/16/openvpn-howto/trackback/

  1. Hola!

    He conseguido crear la vpn entre las dos lans, pero ahora quiero poner mas seguridad, un ca.crt y una key pero no se como.
    Me podrias decir como?

    Creo la ca , le pongo la linia ca /etc/openvpn/easy-rsa/keys/ca.crt

    i al hacer start de la vpn me dice que FAILED

    Sabes porque?

    Muchas gracias

    Comment by kenet — August 20, 2006 @ 9:46 am

  2. hola, te comento que he conseguido hacer la vpn, pero no puedo hacer ping desde cualquier maquina de mi red hacia cualquier maquina de la otra red… pero si puedo hacer ping, desde mi servidor, a las tarjetas que miran a mi red interna, pero mas adentro de mi red interna no puedo llegar

    Comment by Israel — January 18, 2008 @ 12:47 am

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>























Get free blog up and running in minutes with Blogsome | Theme designs available here