[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: VPN Net-to-Net con ambas IP's públicas dinámicas [Solucionado]



He añadido otra cosa importante al howto:

Si en los routers la política por defecto de la tabla "filter" en "FORWARD" es 
DROP, habría que añadir también esta regla:

   iptables -A FORWARD -o tun+ -j ACCEPT
además de la que ya estaba: (iptables -A FORWARD -i tun+ -j ACCEPT)

Con la segunda se permite desde fuera entrar por la VPN en la subred, con la 
primera se permite a los equipos de una subred usar la VPN, o sea, acceder a 
la red remota por la VPN saliendo por "tunX".

Sin esta regla podría pasar que podemos acceder a la red remota desde el 
router pero no desde la red local.


PD: Muy amable por su parte, Ricardo Frydman me ha ofrecido su servidor para 
alojar el "howto", así pues en cuanto pueda estará disponible en:
   http://www.eureka-linux.com.ar


-- 
y hasta aquí puedo leer...
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� tener IP din�ca. La seguridad ser�ediante 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�ca.
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�o 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�ca.
port 1195 # podr�ser distinto el local que el remoto pero as��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�o 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�ca.
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�o 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�ca.
port 1195 # ��ojo, el 1194 est�cupado 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�o 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�on 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�os 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�en sentido contrario desde C a A y desde C a B.


Reply to: