Locked History Actions

FunkInselServerAlt

Konfiguration unseres Tunnel Routers

/!\ Diese Seite beschreibt die Konfiguration unseres alten Tunnel Setups. Das System wurde mit 11.10.2012 auf das Neue umgestellt.

{i} 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.