OPENVPN en FONERA BRIDGE
HOla… quería dejar nota de esta configuración para poder recuperarla en cuanto la necesite, y para que la gente la tenga a su alcance.
Es una configuración BRIDGE, esto quiere decir que se conecta a la VPN, y una vez conectado se le asigna una IP del mismo rango que la red destino, y para todo funcionamiento lógico, es como que esté conectado con un cable muuuuy largo a su red privada. Pudiendo imprimir en sus impresoras, mirar sus discos de red o también jugar en red, desde cualquier parte del mundo como si estuviese conectado con un cable en su red de área local.

Se necesitan varias cosas:
Instalamos el OPENVPN:
Opkg update
Opkg install openvpn
Instalamos los manejadores de compresión:
opkg install liblzo
Creamos una llave para ser distribuida entre los clientes que deseen conectarse:
En este caso lo llamaremos “secret.key”:
Openvpn –genkey –secret secret.key
Y la ponemos en el directorio que corresponda… (Mirar la configuración del openvpn)
Creamos un iniciador del túnel, este archivo lo creamos en el directorio /etc/init.d con cualquier nombre por ejemplo openw
Vi /etc/init.d/openw
#!/bin/sh /etc/rc.common
START=98
STOP=15
start() {
/etc/openvpn/startupscript up
openvpn --daemon --config /etc/openvpn/server.ovpn
}
restart() {
$0 stop
sleep 3
$0 start
}
reload() {
killall -SIGHUP openvpn
}
stop() {
killall openvpn
/etc/openvpn/startupscript down
}
Ahora por ultimo crearemos una configuración para nuestro túnel (recordemos que todo lo que está detrás de “;” no aplica a la config es solo descripción:
vi /etc/openvpn/server.ovpn port 5000 ; Puerto donde escuchara las conexiones nuestro túnel proto udp ;protocolo que utilizara la transmisión dev tap0 ;Interfaz que utilizaremos para recibir las conexiones clientes keepalive 10 120 ;configuraciones de tiempo de vida de las sesiones cada 10 segundos pregunta si la conexión está viva y si muere ;espera 120 segundos para cortar la sesión. comp-lzo ;compresión que utilizara la comunicación dentro del túnel status /mnt/usb/log/status.log ;archivo de log, para guardar información de registro verb 9 ;configuración de nivel de información del archivo de registro valores entre 3 y 9 siendo 9 el mayor detalle. ;mute 20 ;indica que cantidad de mensajes iguales deja pasar antes de dejar de presentar en logs. secret /etc/secret.key ;llave de intercambio para utilizar de firma de conexión
Hay que verificar la posición de todo lo necesario… por ejemplo el archivo de logs y el secret.key tienen que estar en el camino correcto.
Por último lo que necesitamos es crear un script que inicie la interfaz de túnel, y que cree todo lo necesario para nuestro túnel.
Este archivo puede llamarse: “startupscript”
Lo creamos, y ponemos dentro lo siguiente:
#!/bin/sh
#/etc/openvpn/startupscript
# OpenVPN Bridge Config File
# Creates TAP devices for use by OpenVPN and bridges them into OpenWRT Bridge
# Taken from http://openvpn.net/bridge.html
# Define Bridge Interface
# Preexisting on OpenWRT
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
case "$1" in
up)
# Make sure module is loaded
insmod tun
# Build tap devices
for t in $tap; do
openvpn --mktun --dev $t
done
# Add TAP interfaces to OpenWRT bridge
for t in $tap; do
brctl addif $br $t
done
#Configure bridged interfaces
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
;;
down)
for t in $tap; do
ifconfig $t 0.0.0.0 down
done
for t in $tap; do
brctl delif $br $t
done
for t in $tap; do
openvpn --rmtun --dev $t
done
rmmod tun
;;
*)
echo "$0 {up|down}"
;;
esac
Son unas pocas líneas, porque he filtrado todo lo que no necesitamos.
Esto genera que cuando conectemos, verifica la firma digital del archivo secret.key y nos asigna una ip de la red privada.
Para poder conectarnos necesitaremos una configuración del cliente, y copiar previamente la forma digital al directorio config, de nuestra instalación (Windows/Linux)
La config de cliente será la siguiente:
dev tap proto udp # The hostname/IP and port of the server. # You can have multiple remote entries # to load balance between the servers. remote "servidor donde queremos llegar, sin comillas" 5000 # Keep trying indefinitely to resolve the # host name of the OpenVPN server. Very useful # on machines which are not permanently connected # to the internet such as laptops. resolv-retry infinite # Most clients don't need to bind to # a specific local port number. nobind # Try to preserve some state across restarts. ;persist-key ;persist-tun # Wireless networks often produce a lot # of duplicate packets. Set this flag # to silence duplicate packet warnings. mute-replay-warnings secret openvpn.key # Enable compression on the VPN link. # Don't enable this unless it is also # enabled in the server config file. comp-lzo # Set log file verbosity. verb 3 # Silence repeating messages ;mute 20 # Allow LAN IP to reply to client ;float
Listo ya podríamos conectarnos. Si necesitamos información extra, podemos ver el log del servidor con el comando “logread”. Y consultar la información en el link de OPENVPN http://openvpn.net/index.php/open-source/documentation/miscellaneous/88-1xhowto.html Saludos.


























