DD-WRT 19xxx+OpenVPN = Meeeeeeh!

Bis gestern lief DD-WRT auf dem Linksys E2000 noch auf Build 14929. Da diese schon etwas älter war (März 2011 oder so), ging es gestern ans Upgrade auf Version 19519.
Neuere DD-WRT Builds müssen nicht mehr speziell für den E2000 angepasst werden, die neuen -nv60k.bin Versionen funktionieren auch. Allerdings kann nicht einfach auf eine solche Version aktualisiert werden. Hier muss ein Umweg über eine E2000-Mini-Build gegangen werden. Erst dann lässt sich die Firmware auf nv60k flashen. Während frühere Big-Builds (die ich bis jetzt immer installiert hatte) noch gut mit dem E2000 zusammenspielten, sind jetzige Versionen wirklich “Big”, d.h. sie sind zu groß und passen nicht mehr in den Speicher des Routers (8MB) m(
Da für meine Zwecke die OpenVPN Version reicht (Alternativ funktioniert auch “Mega”) und diese klein genug ist, fiel meine Wahl auf diese (dd-wrt.v24-19519_NEWD-2_K2.6_openvpn-nv60k.bin). Nach der Installation musste nur noch die Konfiguration und Start-Scripte wiederhergestellt werden. Zuerst schien auch alles zu funktionieren, bis ich die OpenVPN Verbindung testete. Diese wollte gar nicht erst starten, sondern warf immer wieder Fehler wie “BIO read tls_read_plaintext error: error:1408F119:lib”. Nach kurzer Suche entpuppte sich dies als Bug in der Implementierung der TLS-Verschlüsselung, welcher schon seit einigen Versionen mitgeschleift wurde. Zum Glück gibt es einen Workaround, welcher OpenVPN wieder lauffähig macht. Dazu reichte es, die Verschlüsselungsmethode in der Konfigurationsdatei des Servers mit “tls-cipher DES-CBC3-SHA” festzulegen. Ein Übersicht, welche Algorithmen funktionieren und welche nicht, gibt es hier:
http://svn.dd-wrt.com:8000/ticket/2536#comment:27
Damit konnten auch die Androiden problemlos verbinden.