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

[sourcecode language=»c»]

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

}

[/sourcecode]

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:

[sourcecode language=»c»]
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
[/sourcecode]

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:

[sourcecode language=»c»]
#!/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
[/sourcecode]

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:

[sourcecode language=»c»]
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
[/sourcecode]

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.

Sigue leyendo

AnteriorSiguiente

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

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