lunes, 28 de julio de 2008

Unir dos redes con OpenVPN

Documentación sobre como instalar una VPN con OpenVPN hay bastante en la red, no pretendo repetir los pasos, sino mas bién comentar sobre los detalles importantes a tener en cuenta para que la instalación sea exitosa.
Por lo que pude ver en la instalación, OpenVPN es un producto bastante genérico, estimo que no tiene nada que lo identifique con algúna distribución en particular. Se puede instalar descargando los tar o rpm desde http://openvpn.org, o desde el mismo linux con apt-get install openvpn (debian/ubuntu) o yum install openvpn (red-hat/fedora). Requisito primordial tener ssl instalado. (únicamente se hace un "install openssl" sin tener que configurar nada).
Es muy recomendable hacer un esquema gráfico de las redes que se van a conectar mediante el tunel vpn. En mi caso tuve la necesidad de conectar dos redes, las mismas deben pertenecer a distintas subredes (dentro de cada LAN):
Por ejemplo:
Lan A 192.168.1.0/24 Lan B 192.168.10.0/24
Servidor A: Ip Interna:eth0 192.168.1.10 Servidor B:Ip Interna:eth0 192.168.10.10 Ip Externa: tun0 10.0.0.10 Ip Externa: tun0 10.0.0.15
-----------------------------------------------------------------------------------
editar el archivo:
vi /etc/openvpn/server1.conf
########
local server.local.com
remote server.remoto.com
dev tun0
port 1194
ping 15
comp-lzo
user nobody
persist-key
persist-tun
persist-local-ip
ifconfig 10.0.0.5 10.0.0.10
chroot /etc/openvpn
secret /etc/openvpn/clave.key

En el otro extremo ira el mismo archivo, con las respectivas modificaciones.

En cada extremo de debe ejecutar openvpn con la debida configuración extraida del esquema gráfico.
Luego se hace el ruteo en cada extremo:
Ruteo en A: route add -net 192.168.10.0/24 gw 10.0.0.10
Ruteo en B: route add -net 192.168.1.0/24 gw 10.0.0.15

Si hay problemas con la conectiviad, primero es aconsejable levantar openvpn
en modo verbose:

openvpn --verb 5 /etc/openvpn/server.conf (en cada lado del tunel)

verbose 5 nos permite ver donde esta el error.

Una vez corregido esto se puede hacer un script.


Clave de Seguridad:
Los métodos seguros son:
a) a través de una Entidad Certificadora Externa RSA
b) Generando una clave RSA propia, distrubuyendo en cada extremo.

Conclusion: Una vez que las dos redes quedan conectadas, sentiremos la sensación de estar en una única LAN pudiendo disfrutar de todos los recursos, como ser impresoras, unidades de red compartidas, transferencia de archivos, en fin, no importando donde se encuentren físicamente.
Si la instalación está correctamente configurada, y aun no se logra una comunicación ni siquiera con ping, hay que tener en revisar los firwalls.