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: