Ubuntu Server 6.06, OpenVPN i Windows XP (problemes de routing)

Fa uns dies que he estat liat muntant un servidor d’OpenVPN per tal d’autenticar clients WiFi Windows. El servidor corre amb Ubuntu 6.06 i funciona a les mil meravelles (Ubuntu Dapper va de conya per a servidors amb ordinadors reciclats). Els clients havien de ser Windows, usuaris mòbils (portàtils i alguna PDA). La configuració del servidor Linux va ser trivial (seguint els manuals i howtos magnífics que circulen per la xarxa no vaig tenir gaires inconvenients en muntar el sistema), i el client Windows tampoc no costa gens de muntar, ara bé, el problema d’encaminament des del client Windows a la resta de la LAN i accés a internet ha estat d’aquells que et fan sortir fum de les neurones.

Us poso en situació:

UbuntuServer amb OpenVPN muntat, 2 targes de xarxa: 192.168.1.0/24 que accedeix a LAN interna i Gateway i 172.26.0.0/24 per altra banda que connecta amb WLAN via cable i router Linksys (he usat un Linksys com a AP, punt d’accés) .

El client WiFi accedeix amb IP 172.26.0.x/24 a la WiFi i s’autentica amb WPA.

El túnel es crea amb tun entre client (10.8.0.elquetoqui) i servidor (10.8.0.1).

Previament caldrà crear les claus públiques i privades, etc, etc… tal i com es resol en molts howtos (això no és cap problema, només cal llegir una mica googlejant).

El problema comença quan el túnel es crea correctament però quan el client Windows només arriba al servidor (podem fer ping al servidor i el servidor ens pot fer ping a nosaltres), és a dir, ens veiem, però només entre nosaltres mateixos. No veiem darrere el servidor, ni la LAN ni per suposat accedim al món (llegiu internet, WAN, gateway, jejeje).

Què collons succeeix, què carall passa? Primer, un pensa que és tema de rutes, del servidor que no enruta bé, però el servidor si que veu les rutes internes de la LAN i veu internet. Serà el firewall del servidor? Desconectem-lo doncs, i continua sense funcionar. Googleges, i googleges més.

Solució: perquè funcioni correctament s’ha de crear una ruta al router de la LAN de retorn. És a dir, que caldrà afegir a l’enrutador de la LAN privada una ruta de tornada de les ips 10.8.0.x

Si no us funciona, mireu bé que no disposeu d’algun tallafocs a la LAN interna o al servidor que talli aquesta comunicació (és el més probable). Per tal de comprovar que tot vagi bé o per on es mengen els paquets podeu fer ús de ping, traceroute, etc.

Bé, simplement espero que això ajudi a més d’un. Traduirem el tema properament i no se si fer-ne un monogràfic si em sobra una mica de temps.

De moment, ho deixo aquí. Visca Linux!