Zeile 1: |
Zeile 1: |
| <h1>OpenVPN auf Freifunk Firmware</h1> | | <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. | | 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. | | Momentan arbeiten wir mit VPN Zertifikaten / Schluesseln, die individuell fuer jeden Knoten ausgestellt werden. |
| | | |
| ===Installation=== | | ===Installation=== |
| + | |
| ====Software==== | | ====Software==== |
| Per <b>[[ssh]]</b> auf den Router verbinden, um zuallererst die openvpn Software zu installieren. | | Per <b>[[ssh]]</b> auf den Router verbinden, um zuallererst die openvpn Software zu installieren. |
Zeile 13: |
Zeile 16: |
| ipkg install openvpn | | ipkg install openvpn |
| ipkg install freifunk-openwrt-compat</b> | | ipkg install freifunk-openwrt-compat</b> |
| + | |
| | | |
| ====Keys==== | | ====Keys==== |
Zeile 28: |
Zeile 32: |
| | | |
| ===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 fflvpn.quamquam.org |
| + | client |
| + | dev tap |
| + | proto tcp |
| + | port 5000 |
| + | 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.[Knotennummer].1 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> modprobe tun |
| + | /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!) |