Unir dos redes

Antes de comenzar debes de hacer TODOS los pasos para crear una conexión tipo – TAP

Un vez listo nuestro servidor, la parte que nos toca configurar es la del Cliente que permita hacer el puente en su red también el cliente TIENE que ser Ubuntu 12.0.4 al ser posible.

La red del cliente también debe de estar en el MISMO rango que la del servidor, es decir si el servidor está en el rango 192.170.1.X la red del cliente debe tener también tener ese rango!

Debemos tener claro que rango de IP da el DHCP de la red del Servidor (EJ: 30-80) que rango da el Servidor (EJ: 200-220), entonces el rango que tiene que asignar el DHCP de la red del cliente debe ser distinta a las otras 2, serviría por ejemplo 81-120.

Una vez configurado el rango de la red del cliente, procedemos a retocar el archivo de configuración del servidor

nano /etc/openvpn/server-bridge.conf
#Podemos utilizar cualquier puerto para realizar la conexión puente, solo recuerda abrir el puerto en el router para que apunte al servidor.
port 44443
proto tcp
dev tap1

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

#Rango de la conexion puente
server 10.0.0.0 255.255.255.0

#En este caso aconsejo utilizar 1 certificado por conexión puente y IP fija.
ifconfig-pool-persist ip-server-bridge.txt

client-to-client
keepalive 10 120
comp-lzo

persist-key
persist-tun

up "/etc/openvpn/up-server-bridge.sh"
down "/etc/openvpn/down-server-bridge.sh"
script-security 3 system

verb 5
mute 20
log /etc/openvpn/logs/server-bridge-log.log
status /etc/openvpn/logs/server-bridge-status.log

Creamos las 2 scripts para que pueda saltar de la red VPN (10.0.0.X a la red 192.170.1.X)

nano /etc/openvpn/up-server-bridge.sh
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin

brctl addif br0 tap1
ifconfig tap1 0.0.0.0 up
ifconfig br0:1 10.0.0.1 netmask 255.255.255.0 up
nano /etc/openvpn/down-server-bridge.sh
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin

brctl delif br0 tap1
ifconfig br0:1 down
chmod 755 /etc/openvpn/up-server-bridge.sh /etc/openvpn/down-server-bridge.sh

La parte del servidor ya está lista, nos toca ir al cliente Ubuntu para que realice la conexión y habilite el salto entre su red 192.170.1.X a la 10.0.0.X recuerda que tienen que estar en el mismo rango de IP que la del servidor.

apt-get update
apt-get install bridge-utils
apt-get install openvpn

Copiamos los 3 archivos necesarios para realizar la conexón con el servidor, trabajaremos nosotros sobre lacarpeta de /root/

mkdir /root/VPN
cp XXX /root/VPN/ca.crt
cp XXX /root/VPN/client1.crt
cp XXX /root/VPN/client1.key

Creamos el archivo de confirmación del OpenVPN (.ovpn)

nano /root/VPN/client1.ovpn
client
dev tap0
proto tcp
remote IP_PUBLICA_SERVIDOR_VPN 44443
resolv-retry infinite
nobind
persist-key
persist-tun
ca "/root/VPN/ca.crt"
cert "/root/VPN/client1crt"
key "/root/VPN/client1.key"
comp-lzo
verb 4
up "/root/VPN/up.sh"
down "/root/VPN/down.sh"
script-security 3 system

Y ahora generamos las 2 scripts para unir las 2 redes

nano /root/VPN/up.sh
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
BR=br0
DEV=tap0
#Verifica que ip te asigna la VPN
IP=10.0.0.2
if ! brctl show $BR | egrep -q "\W+$DEV$"; then
    brctl addif $BR $DEV
    ifconfig $DEV 0.0.0.0 up
    ifconfig $BR:1 $IP netmask 255.255.255.0 up
fi
nano /root/VPN/down.sh
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
BR=br0
DEV=tap0
brctl delif $BR $DEV
ifconfig $BR:1 down
chmod 755 /root/VPN/up.sh /root/VPN/down.sh

Con esto ya estaría todo listo, realizamos la conexión con el siguiente comando:

openvpn "/root/VPN/client1.ovpn" > /dev/null &

Si queremos que se conecte de manera automatica al servidor añadimos el comando en:

nano /etc/rc.local

Y comprobamos que los usuarios de 1 red pueden saltar a la otra sin problemas y hacer peticiones de broadcast (EJ: ping usuario-pc)

Aconsejo bloquear el protocolo de DHCP para que cada equipo no coja IP de la otra red y no salga por el otro router, agregamos la siguiente regla en cada cliente / servidor para que no traspase este protocolo:

iptables -A FORWARD -p udp --dport 67:68 --sport 67:68 -j DROP

Nota: Este puente solo lo recomiendo para pequeña empresas o para uso domestico, existe un problema con este tipo de configuración y es que los paquetes «basuras» que generan los equipos de manera automática saltan de una red a otra, y esto causa que se ralentiza la conexión a Internet, estos paquetes no se pueden bloquear ya que son necesarios para los protocolos de broadcast como el ejemplo anterior (EJ: ping usuario-pc) o paquetes de discovery, para ver si tienes algún servidor DLNA por ejemplo.

Realmente se pueden bloquear estos paquetes pero sería absurdo para eso utilizarías el dispositivo tipo TUN ya que realizaría mejor este tipo de función.

No aconsejo utilizar esta opcion si tienes mas de 30 equipos en total entre las 2 redes =)
PD: Puedes conectar mas de 2 redes realizando los pasos de cliente en cada red, yo he conectado 3 redes al servidor y sin problemas de conexiones, ya que son conexiones domesticas no tienen muchos dispositivos en la red,

Así queda la foto:VPN - Bridge

Cualquier duda preguntad!

Salu2!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.