OpenVPN openWRT: Unterschied zwischen den Versionen

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen
K (seems done, I check it now.)
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!)

Version vom 10. Juli 2006, 21:36 Uhr

OpenVPN auf Freifunk Firmware

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

Software

Per ssh auf den Router verbinden, um zuallererst die openvpn Software zu installieren.

 ssh root@104.63.Knotennummer.1 
 ipkg update
 ipkg install openvpn
 ipkg install freifunk-openwrt-compat


Keys

Nun ist die Software installiert, jetzt noch die vom VPN-Admin bezogenen Keys auf den Router spielen: scp benutzen um das Tar-Archiv auf den Router zu uebertragen.

 scp keys-[knotenname].tar.gz root@104.63.knotennummer.1:/etc/openvpn 

Nun in der ssh Konsole die Keys auspacken:

 cd /etc/openvpn/
 tar xfvz keys-[knotenname].tar.gz
 rm keys-[knotenname].tar.gz 
 

Konfiguration

Client konfigurieren

 cd /etc/openvpn
 vi bongbong.conf

Im vi muss man fuer den Editier-Modus i druecken und nun kanns losgehen. Die folgenden Eintraege in der Datei bongbong.conf sollten ueberprueft werden.

 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

Wobei natuerlich [Knotenname] durch den Knotennamen erzetzt werden muss. Mit Esc wird der Editier-Modus im vi beendet. Mit : gelangt man in den Datei-Modus. Im Datei-Modus noch ein w und ein q eigeben (fuer write und quit) und Enter.


OLSR Konfiguration

 cd /etc
 rm local.olsrd.conf
 cp /rom/etc/local.olsrd.conf .
 vi local.olsrd.conf 

Mit i in den Editier-Modus.

 # 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
 }

Esq :wq zum speichern und schliessen.

Firewall konfigurieren

 cd /etc
 rm local.fw
 cp /rom/etc/local.fw /etc/local.fw 
 vi local.fw

Mit dem Cursor vor diesen Eintrag gehen

      ;;
      stop)
      ;;

Folgendes eintragen: (i druecken)

 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

Esq :wq zum speichern und schliessen.

Automatischer VPN Start beim Booten

Wir editieren das initscript S99done.

 cd /etc/init.d
 rm S99done
 cp /rom/etc/init.d/S99done /etc/S99done . 
 vi S99done 

Am Ende der Datei folgendes eintragen (i).

 modprobe tun
 /etc/init.d/openvpn restart

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.

 logread -f

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:

 killall openvpn
 cd /etc/openvpn
 openvpn --config bongbong.conf

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 :-)

 date -s 20060710 (auf das heutige Datum anpassen!)