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.

Pptpd en OPENWRT backfire

He tenido uno que otro problema para hacer funcionar l servidor de túneles de casa, luego de un up-grade desde KAMIKAZE a BACKFIRE, y me ha tomado unos 45 minutos encontrar el problema… y para ahorrarme más adelante el disgusto, pongo aquí la solución.

Básicamente la última versión de OPENWRT “BACKFIRE” se instala un servidor de conexiones PPP (el servidor PPPD) de una versión 2.4.4, y cuando queremos instalar el servidor PPTPD el sistema solo nos ofrece una opción y versión, la cual posee un controlador que es solo compatible con el PPPD 2.4.3 por ese detallito, el servidor de PPTPD no funciona. Y vueltas y más vueltas he encontrado que el controlador solo llama a más información de usuario así que “pa fuera”, lo quitamos de la configuración y listo ya levanta.

El mensaje de error

Aug 22 07:44:19 gateway-fon daemon.info pptpd[2135]: CTRL: Starting call (launching pppd, opening GRE)

Aug 22 07:44:19 gateway-fon daemon.err pppd[2136]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4

Aug 22 07:44:19 gateway-fon daemon.err pptpd[2135]: GRE: read(fd=7,buffer=41fd7c,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs

Aug 22 07:44:19 gateway-fon daemon.err pptpd[2135]: CTRL: PTY read or GRE write failed (pty,gre)=(7,8)

La solución fue comentar esto: #logwtmp

[sourcecode language=”py”]
root@gateway-fon:/etc# cat pptpd.conf

#debug

option /etc/ppp/options.pptpd

speed 115200

#stimeout 10

#logwtmp

#localip & remoteip are not needed, ip management is done by pppd

localip 192.168.99.2

remoteip 192.168.99.3-8

#listen 192.168.99.1

root@gateway-fon:/etc/ppp# cat options.pptpd

#debug

logfile /home/var/log/pptp-server.log

#192.168.99.1:

auth

name "buhonet"

lcp-echo-failure 3

lcp-echo-interval 60

default-asyncmap

mtu 1482

mru 1482

nobsdcomp

nodeflate

#noproxyarp

#nomppc

#require-mppe-128

#mppe required,no40,no56,stateless

require-mschap-v2

refuse-chap

refuse-mschap

refuse-eap

refuse-pap

ms-dns 192.168.99.1

#plugin radius.so

#radius-config-file /etc/radius.conf

[/sourcecode]

Saludos.

WIFI PICNIC MADRID!!!

 

Que es esto de WIFI PICNIC……..????

Una costumbre que se suele hacer en países como France, UK o Estados Unidos, y me parece simpática y práctica ya sea para pasar un rato al aire libre como para conocer gente y compartir inquietudes y pasatiempos…

Me gusta la idea y como las CAMPUS PARTY están tan concurridas y son tan poco frecuentes… os propongo organizar un WIFI PICNIC en MADRID… podemos organizar y quedar para compartir conexión y conocimientos… además de hacer amigos con las mismas inquietudes que nosotros…

Por ejemplo, os pongo “WIFI GRATIS” durante un fin de semana (28 y 29 de agosto 2010 ambos días completos) y un área de conexión, ya que estoy cerca y puedo ampliar mi wifi para compartirla… Esto es en MADRID, CP 28050, en frente a la estación de metro de las tablas.

Quien se registre en la pagina del punto wifi, luego aparecerá en la web…

 

 

 

Aquí os adjunto algunos links sobre el tema.

http://www.memoirevive.tv/categorie/wifipicning/

http://www.20minutos.es/noticia/708412/0/

http://www.elcorreo.com/alava/v/20100517/rioja/campus-acogera-wifi-picnic-20100517.html