IPSec auf dem Sharp Zaurus |
|
Die ersten Binaries sind nun auch für Openzaurus verfügbar. Ken Bantoft berichtet hier über
seine Fortschritte und stellt die aktuellen Files in einem feed bereit, allerdings sollte man sich vorher die Anmerkungen gut durchlesen,
da noch nicht alles out-of-the-box funktioniert. Update: Ab der neuesten Openzaurus Version 3.1rc2 braucht man expr nicht mehr extra zu installieren, da expr nun in busybox bereits vorhanden ist. Ausserdem hat mir Joachim Ritschel von der TU-Ilmenau die Kernelmodule für ipsec und das tun-Device für den 2.4.18-rmk7-pxa3-embedix (SL-C7X0) bereitgestellt. Das Paket gibt es hier. |
| Der Zaurus ist von Hause aus mit einem Compact-Flash-Slot ausgestattet, da liegt es nahe, diesen mit einer Wireless Lan Karte auszustatten. Da das im WLan-Bereich oft standardmässig genutzte WEP leider nicht als sicher anzusehen ist (vergl. z.B. wep_attack), benötigt man eine Alternative. Hierzu ist freeswan bestens geignet.. |
| Da ipsec auf dem Networklayer arbeitet, kommt der Nutzer an einer Änderung des Kernels nicht vorbei. Der Kernel auf dem Zaurus befindet sich allerdings im Flashrom, so dass ein Kernelupdate zwar prinzipiell möglich, aber dennoch mit einigen Problemen verbunden ist (vergl. Kernelupdate auf dem Zaurus). Zum Glück lässt sich ipsec jedoch als Modul kompilieren, so dass man diesen Problemen aus dem Weg gehen kann. Leider gab es bis jetzt zwar freeswan zumindest in einer älteren Version crosscompiliert für den Zaurus, jedoch kein fertig kompiliertes Modul für den original Kernel (linux-2.4.6-rmk1-np2-embedix), somit musste ich selber Hand anlegen. |
| Das Ergebniss ist ein ipsec Modul sowie die Daemons und Userlandtools von freeswan 1.98b, welche zusammen den Aufbau eines VPNs auf dem Zaurus ermöglichen, ohne dass der original Kernel ausgetauscht werden muss. |
|
Hier gibt es freeswan 1.98b sowie das zugehörige Kernelmodul passend für den orignial Kernel linux-2.4.6-rmk1-np2-embedix kompiliert: freeswan 1.98b ipsec Modul für linux-2.4.6-rmk1-np2-embedix Ausserdem wird awk und die libgmp benötigt. Beide findet man bei ipkgfind. |
|
Kurz nachdem das erste mal eine ipsec-Verbindung aufgebaut worden ist, wird man zum ersten mal mit einem sehr ungünstigen Feature des von Sharp geliefertem QPE
überrascht. Es erscheint ca. alle zwei Minuten eine Alertbox, die einen Netzwerkkonflikt bemängelt, da eth0 und ipsec0 die gleiche IP benutzen. Leider habe ich nicht
herausfinden können, wo genau diese Meldung herkommt. Als gut funktionierenden Workaround hat sich folgendes herausgestellt: In der Datei /usr/lib/ipsec/_realsetup am Ende von start ein paar Sekunden warten und dann die IP von eth0 auf eine IP in einem anderen Subnetz
ändern. Dies beeinträchtigt ipsec nicht, da diese IP nur beim Aufbau des VPNs nötig ist. Wichtig ist allerdings ein sleep, ansonsten funktioniert der Aufbau nicht, da
ipsec ein paar Sekunden noch die richtige IP braucht (Also z.B. folgendes einfügen: sleep 6 && ifconfig eth0 192.168.123.123). Am Ende von stop
in der gleichen Datei sollte man natürlich die IP mittels ifconfig wieder zurücksetzen.Ausserdem braucht man die Logfunktion von ipsec normalerweise auf dem Zaurus nicht, da syslogd meistens nicht aktiv ist. Um Speicher zu sparen kann man deswegen die Logfunktionen aus den Startskripts auskommentieren. |
Für alle, die ebenfalls probieren wollen, das Modul selber zu kompilieren, hier in Kurzfassung, wie ich es geschafft habe (evtl. muss noch das eine oder andere Makefile
leicht angepasst werden, damit die arm-linux-tools gefunden werden):
|
Hier ebenfalls ein paar kurze Hinweise für diejenigen, die freeswan crosscompilieren wollen:
|
|
Ich hoffe, dass diese Seite vielen Leuten nützt, für mich ist ipsec eine der wichtigsten Sachen für den Zaurus. Mein Dank geht an Markus Tavenrath für die freundliche Hilfe bei den Crosscompile-Optionen. Jens Liebchen |