Diese Seite beschreibt die Konfiguration unseres alten Tunnel Setups. Das System wurde mit 11.10.2012 auf das Neue umgestellt.
Diese Dokumentation beschreibt die Konfiguration unseres Tunnel Routers. Details zu unseren Funkinsel-Setup können auf der Seite FunkInsel gefunden werden. Informationen zu allen anderen Servern/Routern kann auf der Seite ServerDokumentation gefunden werden.
Installation und Konfiguration
Unser Tunnelrouter ist ein normaler Linksys WRT54GL mit Freifunk Firmware auf dem openvpn installiert und als Server eingerichtet ist. Weiters ist es notwendig das mittels eines NTP Clients beim Booten die richtige Zeit und das richtige Datum gesetzt wird damit die Zertifikats Gültigkeitsüberprüfung nicht fehlschlägt. Zu guter letzt läuft darauf noch snmpd der dazu benützt wird um mit mrtg Statistiken zu führen. Nach dem Flashen mit der Freifunk Firmware müssen die Pakete wie folgt installiert werden:
# ipkg install openvpn-ssl-nolzo snmpd ntpclient
Die Konfiguration von snmpd kann ohne Änderung übernommen werden. ntpclient muss nicht konfiguriert werden. Es reicht einen Initscript /etc/init.d/S60ntpclient anzulegen und folgendes hineinzukopieren:
#!/bin/sh sh -c "sleep 120;ntpclient -s -h at.pool.ntp.org"&
Danach nur noch ausführbar markieren:
chmod +x /etc/init.d/S60ntpclient
Für openvpn muss zunächst das Verzeichnis /etc/openvpn angelegt werden und darin die Datei /etc/openvpn/server.conf mit folgenden Inhalt erstellt werden:
;local a.b.c.d port 1194 proto udp dev tap ca /etc/openvpn/key/ca.crt cert /etc/openvpn/key/server.crt key /etc/openvpn/key/server.key # This file should be kept secret dh /etc/openvpn/key/dh1024.pem ifconfig-pool-persist ipp.txt server 10.11.100.0 255.255.255.0 cipher none persist-key persist-tun verb 3 management localhost 7505
Das Verzeichnis /etc/openvpn/key muss vom Webserver kopiert werden (siehe weiter unten). Danach muss noch der Initscript /etc/init.d/S47openvpn angelegt werden und folgendes hineinkopiert werden:
#!/bin/sh case $1 in start) openvpn --config /etc/openvpn/server.conf --cd /etc/openvpn/ --daemon ;; stop) killall openvpn ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 start|stop|restart" ;; esac
Zusätzlich muss im Webinterface unter 'OLSR' noch Policy Routing aktiviert werden und dann noch ein zusätzlicher Initsript /etc/init.d/S60fixpolicy angelegt werden:
#!/bin/sh ip rule add to 10.0.0.0/8 lookup olsr ip rule add from 10.0.0.0/8 lookup olsr ip rule add to 193.33.150.0/23 lookup olsr ip rule add from 193.33.150.0/23 lookup olsr ip rule add to 89.106.208.0/21 lookup olsr ip rule add from 89.106.208.0/21 lookup olsr
Beide Initscripte müssen natürlich noch ausführbar markiert werden:
# chmod +x /etc/init.d/S47openvpn # chmod +x /etc/init.d/S60fixpolicy
Zu guter letzt muss noch olsrd dazu gebracht werden auf dem Tunnelinterface zu arbeiten indem das folgende in die Datei /etc/local.olsrd.conf kopiert wurde:
Interface "tap0" { HelloInterval 3.0 HelloValidityTime 125.0 TcInterval 2.0 TcValidityTime 500.0 MidInterval 25.0 MidValidityTime 500.0 HnaInterval 10.0 HnaValidityTime 125.0 }
Nachdem dies alles erledigt ist sollte nach einem Reboot der Tunnelrouter funktionieren.
Zertifikate erstellen
Die Zertifikate liegen samt aller Scripte auf unserem Webserver (www.ffgraz.net) im Verzeichnis /srv/ovpn-tunnel-certs/. Alle Scripte zum erstellen eines Zertifikates sind unter easy-rsa und die crt und key Files sind im Verzeichnis key zu finden. Um ein neues Zeritifikat zu erstellen sind die folgenden Schritte notwendig:
# cd /srv/ovpn-tunnel-certs/easy-rsa # . ./vars # ./build-key <common-name>
Das Script stellt ein paar Fragen von denen die meisten einfach mit Enter quitiert werden müssen (default Werte). Bei der Frage nach dem 'Common Name' muss dasselbe angegeben werden als das beim Aufruf des Scripts. Danach ist das neu erstellte Zeritifikat im key Verzeichnis zu finden.
Firmware Update / Backup
Vor einem Firmwareupgrade müssen die oben beschriebenen Scripte und Konfigurationsdatei gesichert werden. Dabei müssen folgende Scritte ausgeführt werden:
# cd /tmp # tar -czf tunnel-backup.tar.gz /etc/openvpn/ /etc/local.olrsd.conf /etc/init.d/S47openvpn /etc/init.d/S60fixpolicy /etc/init.d/S60ntpclient
Danach muss die Datei tunnel-backup.tar.gz gesichert werden und der Router mit der neuen Firmware Version geflascht werden. Nachdem wie oben beschrieben die noch fehlenden Pakete installiert sind und das Archiv wieder zurückkopiert wurde kann alles wie folgt wiederhergestellt werden:
# cd / # tar -xzf /tmp/tunnel-backup.tar.gz
Danach muss der Router nur noch rebootet werden.