Tag Archives: fli4l

HowTo: fli4l, openvpn und NetworkManager in KDE4

Ich beschäftige mich gerade mit VPN. Das Fernziel ist fli4l und Freifunk etwas näher zusammenzubringen. Um ein bisschen die Füße nass zu kriegen mit tun und tap und die ganzen Kenntnisse von Routing, Paketfiltern usw. etwas aufzufrischen, hab ich mir was angeschaut, was ich schon ewig vor hatte: eine simple Roadwarrior-Config für den OpenVPN auf dem fli4l. Wie man in der Newsgroup spline.fli4l.dev nachlesen kann, verwende ich hier folgende Config (noch ohne Zugriff auf das hinter dem OpenVPN liegende Netz):

OPT_OPENVPN='yes'
OPENVPN_EXPERT='no'
OPENVPN_WEBGUI='yes'
OPENVPN_DEFAULT_CIPHER='AES-128-CBC' # alix 2d3
OPENVPN_DEFAULT_DIGEST='SHA256'
OPENVPN_N='1'
OPENVPN_1_NAME='tiffy'
OPENVPN_1_ACTIV='yes'
OPENVPN_1_LOCAL_PORT='14187'
OPENVPN_1_LOCAL_VPN_IP='10.131.205.1'
OPENVPN_1_REMOTE_VPN_IP='10.131.205.2'
OPENVPN_1_SECRET='tiffy.secret'
OPENVPN_1_TYPE='tunnel'

Der Teufel liegt natürlich im Detail. Bei fli4l werden für die OpenVPN-Verbindung sogenannte secrets, also pre shared keys in Form von Dateien verwendet.1 Das knifflige ist die ganzen Optionen, die bei fli4l explizit und implizit gesetzt werden, auf dem Roadwarrior korrekt einzustellen. Ich verwende hier Debian Jessie mit KDE4 und dem NetworkManager. Entscheidend waren neben den korrekten IP-Adressen die richtigen Einstellungen für Cipher und Auth und die richtigen Haken an den richtigen Stellen. Erschwert wird sowas immer dadurch, dass es subtil andere Bezeichnungen gibt, vor allem, wenn auch noch übersetze GUIs im Spiel sind.

Die Zuordnung ist im vorliegenden Fall wie folgt (auch auf »Erweitert« klicken ;-) ):

fli4l KDE Plasma NetworkManager
OPENVPN_x_LOCAL_HOST (leer) Gateway
OPENVPN_x_REMOTE_VPN_IP Lokale IP-Adresse
OPENVPN_x_LOCAL_VPN_IP Entfernte IP-Adresse
OPENVPN_x_LOCAL_PORT Gateway-Port
OPENVPN_DEFAULT_FRAGMENT UDP-Fragmentgröße
OPENVPN_DEFAULT_COMPRESS LZO-Komprimierung verwenden
OPENVPN_DEFAULT_CIPHER Chiffre
OPENVPN_DEFAULT_DIGEST HMAC-Authentifizierung

Und weil’s vielleicht besser ersichtlich ist, auch nochmal als Screenshots.

Die Pings gehen jetzt durch und zwar sowohl gegen fli4l 3.10 als auch gegen fli4l 4.0 und der nächste Schritt ist die Anpassung der Paketfilter. Dann kommt vielleicht noch die dauerhafte Verbindung dieser beiden Netze und vielleicht teste ich auch nochmal was mit tap devices. Da fällt mir schon noch was ein. Aber hier ging’s ja erstmal nur um Roadwarrior und für heute soll’s das hier erstmal gewesen sein.

  1. OpenVPN bietet auch noch public/private Key und Passwörter, das wird bei fli4l aber nicht benutzt. []

Zurück im Jahr 2000 mit fli4l

Ich befinde mich gerade auf den Chemnitzer Linux-Tagen 2010 am Stand von eisfair und fli4l. Unser überaus schicker Standrouter1 ist ein sogenanntes WRAP Board, also schon bisschen abgehangen. Der Hersteller hat hier leider keine Pufferbatterie für die RTC vorgesehen, so dass die Uhr nach jedem Stromausfall am 1.1.2000 um 0:00 (UTC) losläuft.

Nun läuft selbstverständlich fli4l (in der aktuellen Version 3.4.0) auf der Kiste und dort gibt es das Paket (bei fli4l traditionell opt genannt) chrony, was eben chrony bereitstellt, einen kleinen Dienst um die Zeit über NTP abzugleichen. Den Sprung von 2000 auf 2010 möchte der aber nicht automatisch abgleichen, so dass hier ein manueller Eingriff erforderlich ist. Die nötige Prozedur ist leider nicht ganz selbsterklärend, daher hier das kurze HowTo, wie man dort vorgehen kann.

Schritt 1: Den chronyd mit den richtigen Optionen neu starten. Per default wird dort bloß -r gesetzt. Die Option -s erlaubt auch das Setzen der RTC über chrony. Also erstmal per ssh einloggen. Dann:

killall chronyd
chronyd -r -s

Schritt 2: Beim chronyd einloggen. Dazu gibt man auf der Shell einfach chronyc ein. Per default darf man dann erstmal fast nichts, aber man kann das vom Paketmaintainer hinterlegte Passwort eingeben, um mehr Rechte zu erlangen. Bitte wie folgt eingeben:

chronyc
password dummy

Schritt 3: Die Zeit setzen. Dazu erlaubt man sich das zunächst mal mit dem Befehl manual, dann setzt man die Zeit und dann sagt man ihm noch, dass er das auch der RTC verklickern soll. Beim Setzen der Zeit reicht es das auf eine Minute genau zu machen, den Rest erledigt chrony später ganz normal per NTP.

manual on
settime 2010-03-14 08:55

Bei der Eingabe von settime springt die von chronyd erzeugte CPU-Last auf über 90%. Nach einem weiteren Neustart von chronyd, ist die Zeit gesetzt, ich kann nicht sagen warum, aber der pragmatische Ansatz funktioniert hier. Also:

killall chronyd
chronyd -r -s

Jetzt passt schonmal die Systemzeit, ein rtcdata im chronyc zeigt aber noch die alte Zeit der RTC. Also führt man hier nochmal ein trimrtc aus. Die Änderung braucht ein paar Minuten um übernommen zu werden, das geschieht aber dann automatisch.

So, und jetzt wo die Zeit vom Messerouter richtig eingestellt ist, freuen wir uns auf den zweiten Tag hier. Gestern war es schon gut besucht und es waren viele freundliche Interessenten am Stand. Der Sonntag Morgen läuft etwas ruhiger an, da könnte man eigentlich nochmal einen Kaffee trinken …

Update: die so gesetzte Uhrzeit übersteht auch einen Soft Reboot. D.h. wenn man das WRAP hinter eine USV hängt, braucht man die ganze Prozedur nur einmal auszuführen! ;-)

  1. wo alle Besucher nur fragen, wo man die Hardware kaufen kann []