Zeile 1: |
Zeile 1: |
− | ====OpenVPN auf Freifunk Firmware====
| + | <h1>OpenVPN auf Freifunk Firmware</h1> |
− | | + | |
| ===Info=== | | ===Info=== |
| + | |
| + | Das VPN, das von den Freifunk Knoten an Uplinks (bspw. DSL) konfiguriert wird, verbindet im Ernstfall, ueber einen Link mit schlechter Metrik, voneinander getrennte Wolken im Weimarnetz. |
| + | Momentan arbeiten wir mit VPN Zertifikaten / Schluesseln, die individuell fuer jeden Knoten ausgestellt werden. |
| | | |
| ===Installation=== | | ===Installation=== |
− | Pakete
| + | |
− | Keys | + | ====Software==== |
| + | Per <b>[[ssh]]</b> auf den Router verbinden, um zuallererst die openvpn Software zu installieren. |
| + | |
| + | <b> ssh root@104.63.Knotennummer.1 </b> |
| + | |
| + | <b> ipkg update |
| + | ipkg install openvpn |
| + | ipkg install freifunk-openwrt-compat |
| + | ipkg install openvpn-ssl-nolzo |
| + | mkdir /etc/openvpn</b> |
| + | |
| + | |
| + | ====Keys==== |
| + | Nun ist die Software installiert, jetzt noch die vom VPN-Admin bezogenen Keys auf den Router spielen: |
| + | <b>[[scp]]</b> benutzen um das Tar-Archiv auf den Router zu uebertragen. |
| + | |
| + | <b> scp keys-[knotenname].tar.gz root@104.63.knotennummer.1:/etc/openvpn </b> |
| + | |
| + | Nun in der ssh Konsole die Keys auspacken: |
| + | |
| + | <b> cd /etc/openvpn/ |
| + | tar xfvz keys-[knotenname].tar.gz |
| + | rm keys-[knotenname].tar.gz </b> |
| | | |
| ===Konfiguration=== | | ===Konfiguration=== |
− | tun modul | + | |
− | openvpn client konfiguration | + | ====Client konfigurieren==== |
− | olsr
| + | <b> cd /etc/openvpn |
− | firewall regeln
| + | vi bongbong.conf</b> |
− | automatischer openvpn start
| + | |
− | check
| + | Im vi muss man fuer den Editier-Modus <b>i</b> druecken und nun kanns losgehen. Die folgenden Eintraege in der Datei bongbong.conf sollten ueberprueft werden. |
− | moegliche Probleme
| + | |
| + | <b> remote l18a.de |
| + | client |
| + | dev tap |
| + | proto tcp |
| + | port 1194 |
| + | ca ca.crt |
| + | cert [knotenname].crt |
| + | key [knotenname].key |
| + | cipher AES-128-CBC |
| + | #nach der kommenden Zertifikatumstellung dann |
| + | #cipher none |
| + | ns-cert-type server |
| + | #tun-mtu 1500 |
| + | #bei Tunnelung ueber internet, z.b. DSL braucht man folgende Zeile |
| + | #mssfix 1397 |
| + | tun-mtu 1472 |
| + | mssfix</b> |
| + | |
| + | Wobei natuerlich [Knotenname] durch den Knotennamen erzetzt werden muss. |
| + | Mit <b>Esc</b> wird der Editier-Modus im vi beendet. |
| + | Mit <b>:</b> gelangt man in den Datei-Modus. |
| + | Im Datei-Modus noch ein <b>w</b> und ein <b>q</b> eigeben (fuer <b>w</b>rite und <b>q</b>uit) und <b>Enter</b>. |
| + | |
| + | |
| + | ====OLSR Konfiguration==== |
| + | |
| + | <b> cd /etc |
| + | rm local.olsrd.conf |
| + | cp /rom/etc/local.olsrd.conf . |
| + | vi local.olsrd.conf </b> |
| + | |
| + | Mit <b>i</b> in den Editier-Modus. |
| + | |
| + | <b> # Add your addons (e.g. plugins) to olsrd.conf here, |
| + | # addons for interfaces in /etc/local.olsrd.conf.eth1 |
| + | Interface "tap0" "tap1" |
| + | { |
| + | HelloInterval 5.0 |
| + | HelloValidityTime 90.0 |
| + | TcInterval 2.0 |
| + | TcValidityTime 270.0 |
| + | MidInterval 15.0 |
| + | MidValidityTime 90.0 |
| + | HnaInterval 15.0 |
| + | HnaValidityTime 90.0 |
| + | Ip4Broadcast 104.255.255.255 |
| + | LinkQualityMult 104.63.254.254 0.1 |
| + | }</b> |
| + | |
| + | <b>Esq :wq</b> zum speichern und schliessen. |
| + | |
| + | ====Firewall konfigurieren==== |
| + | |
| + | <b> cd /etc |
| + | rm local.fw |
| + | cp /rom/etc/local.fw /etc/local.fw |
| + | vi local.fw</b> |
| + | |
| + | Mit dem Cursor vor diesen Eintrag gehen |
| + | <b>;; |
| + | stop) |
| + | ;;</b> |
| + | |
| + | Folgendes eintragen: (<b>i</b> druecken) |
| + | |
| + | <b> iptables -I INPUT -i tap0 -j ACCEPT |
| + | iptables -I OUTPUT -o tap0 -j ACCEPT |
| + | iptables -t nat -A POSTROUTING -o tap0 -s 104.63.knotennummer.1/255.255.255.224 -j MASQUERADE |
| + | iptables -I FORWARD -i tap0 -o eth1 -j ACCEPT |
| + | iptables -I FORWARD -i eth1 -o tap0 -j ACCEPT</b> |
| + | |
| + | <b>Esq :wq</b> zum speichern und schliessen. |
| + | |
| + | ====Automatischer VPN Start beim Booten==== |
| + | |
| + | Wir editieren das initscript S99done. |
| + | |
| + | <b> cd /etc/init.d |
| + | rm S99done |
| + | cp /rom/etc/init.d/S99done /etc/S99done |
| + | vi S99done </b> |
| + | |
| + | Am Ende der Datei folgendes eintragen (<b>i</b>). |
| + | |
| + | <b> /etc/init.d/openvpn restart</b> |
| + | |
| + | ====Konfiguration testen==== |
| + | |
| + | Nun einen Neustart. Das sollte eigendlich alles gewesen sein. |
| + | |
| + | Wenn das Gerät wieder erreichbar ist, könnt ihr euch einloggen und die Log-Datei anzeigen lassen. |
| + | |
| + | <b> logread -f</b> |
| + | |
| + | das VPN startet etwas später, d.h. ihr habt noch 1-2 Minuten Zeit bis zur ersten Meldung... |
| + | |
| + | ==== Wenn probleme auftauchen==== |
| + | |
| + | Wenn ihr nicht ins VPN kommt. SSH auf den Router und eingeben: |
| + | |
| + | <b> killall openvpn |
| + | cd /etc/openvpn |
| + | openvpn --config bongbong.conf</b> |
| + | |
| + | Das gibt erstmal recht viel aus, aber zeigt auch woran es hängt. |
| + | |
| + | ====Checkliste==== |
| + | |
| + | * openvpn installiert? |
| + | * compat installiert? |
| + | * /etc/local.fw verändert? |
| + | * /etc/local.olsrd.conf verändert? |
| + | * /etc/init.d/S99done verändert? |
| + | * keys in /etc/openvpn? |
| + | * conf-datei in /etc/openvpn? |
| + | * neugestartet und lange gewartet? |
| + | |
| + | als letzter hinweis: falls die Uhrzeit auf dem Gerät noch auf 2000 steht, dann gehts nicht, weil das Zertifikat damals noch gar nicht gültig war :-) |
| + | |
| + | <b> date -s 20060710</b> (auf das heutige Datum anpassen!) |
| + | |
| + | [[Kategorie:Firmware]] |