Configurar VPN Site2Site dos routers con tomato.

  1. Creamos certificados para el sercidor VPN y cliente VPN. Los certificados se pueden crear con OpenSSL. Nos conectamos en el router por ssh, (root /admin).

a) Crear certificados en router con USB drive.

Conectamos un USB drive.

#Desmontamos el USB y creamos partición.
umount /dev/sda1
fdisk /dev/sda

Presionamos los siguientes botones como están en orden.

# p       # lista de las particiones.
# o       # eliminar todas las particiones.
# n       # crear nueva partición
# p       # colocar la partición como primaria.
# 1 (one) # prmera partición.
# <enter> # el primer bloque por defecto.
# <enter> # el ultimo bloque por defecto, para utilizar el USB drive entero.
# w       # crear nueva partición en el USB-drive.

#formater la nueva partición.
umount /dev/sda1
mke2fs -j -L optware /dev/sda1

Instalar Entware (paquete que permita instalar software adicional)

#montar la nueva partición.

mount /dev/sda1 /opt
cd /opt
wget http://qnapware.zyxmon.org/binaries-armv7/installer/entware_install_arm.sh
sh ./entware_install_arm.sh

Instalaropenvpn-easy-rsa

opkg install openvpn-easy-rsa nano

Configurar la directorio operativa de openvpn-easy-rsa

cd /opt/etc/easy-rsa
cp /opt/sbin/sign-req .
cp /opt/sbin/build-req .
cp /opt/sbin/inherit-inter .
cp /opt/sbin/revoke-full .
cp /opt/sbin/clean-all .
cp /opt/sbin/build-ca .
cp /opt/sbin/pkitool .
cp /opt/sbin/build-dh .
cp /opt/sbin/build-key-pass .
cp /opt/sbin/build-key-pkcs12 .
cp /opt/sbin/list-crl .
cp /opt/sbin/whichopensslcnf .
cp /opt/sbin/build-key-server .
cp /opt/sbin/build-key .
cp /opt/etc/easy-rsa/openssl-1.0.0.cnf .
cp /opt/sbin/build-inter .
cp /opt/sbin/build-req-pass .#reducir el tamaño de las claves a  1024 en ficheros.
cd /opt/etc/easy-rsa
sed -i ‘s:KEY_SIZE=2048:KEY_SIZE=1024:’ ./vars#actualizar la ruta correcta de openssl(guardar y reiniciar)
#correct = /opt/bin/openssl
PATH=/opt/bin:$PATH
Setup Certificate Authority (CA)

#Configurar y empezar.
cd /opt/etc/easy-rsa
source ./vars

./clean-all

#Creamos certificado digital, ponemos los datos del cliente. En todos igual.
./build-ca

Generate Diffie Hellman parameters (DH file)

./build-dh

Generate Certificate and Key for the OpenVPN Server router at Site A with Common Name [CN] of «OpenVPNServer».

#generar certificado para Site2SiteServer
./build-key-server OpenVPNServer

Generate Certificate and Key for the OpenVPN Client router Site B with Common Name [CN] of «Site2SiteClient». The «Common Name» isn’t really «common». Make sure its unique for all your clients.

#generar certificado para Site2SiteClient
./build-key Site2SiteClient

Todos los certificador están en directorio: /opt/etc/easy-rsa/keys/

Abrimos los tres certificado que hacen falta para el cliente y las guardamos en un fichero.
cat ca.crt
cat Site2SiteClient.crt
cat Site2SiteClient.key
Montamos la partición «jffs», para guardar los certificados en router.
Los certificados del servidor las copiamos en directorio /jffs/.
ca.crt
OpenVPNServer.crt
OpenVPNServer.key
dh1024.pem
b) Instalamos openssl en una maquina linux o windows y creamos los certificados.
          2. Configuramos el primer router que va ser el servidor VPN.
Configuración Básica.
Para evitar problemas de enrutamiento de los routers cutres, configuramos la conexión con TCP.
Configuración Avanzada.
En nuestro caso «Custom Configuration» tiene que ser en siguiente manera:
ca /jffs/ca.crt
cert /jffs/OpenVPNServer.crt
key /jffs/OpenVPNServer.key
dh /jffs/dh1024.pem
               3.  Configuramos el segundo router como cliente VPN.
Configuración Básica.
Configuración Avanzada.
Pegamos los certificados que hemos exportado antes para el cliente.
Certificate Authority: ca.crt
Client Certificate: Site2SiteClient.crt
Client Key: Site2SiteClient.key
 
****IMORTANTE**** Tenemos que abrir el puerto 1195 TCP para el servidor VPN, en caso que está detrás de un router o firewall.