OpenVPN mit EdgeRouter X-SFP: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Zur Navigation springen Zur Suche springen
(Neuer Entwurf)
Zeile 1: Zeile 1:
Vorraussetzung für die Einrichtung eines OpenVPN-Tunnels
Anleitung in Arbeit - Entwurfsstadium
*) EdgeRouter kommt über einen alternativen ISP ins Internet
*) am Tunnelserver ist ein tap-Interface für dich konfiguriert --> Nummer n ergibt den Port 5000+n (123 also 5123)
*) eigene Funkfeuer-Freenet-IP für das lokale Tunnelinterface (unten 78.41.000.000 entsprechend ersetzen)


Anmerkung: Das Beispiel beschreibt den Vorgang mittels "br9" welche im OLSRd_V1-Wizard im Modus "silent" startet. Dieser Modus wirkt allerdings noch nicht und wartet auf eine aktualisierung des Builds auf github. Wer einen Tunnel im Modus "mesh" verwenden möchte, muss nur br9 mit br8 (oder sonst einer anderen Bridge-Nummer) abtauschen.
 
Die allgemeinen Voraussetzungen zum Einrichten eines Tunnels sind in der Übersichtsseite dargestellt. Dieser Artikel geht nur auf die rudimentäre Konfiguration des Edge Routers ein.


== Einrichten des Tunnels ==
== Einrichten des Tunnels ==


1) Anlage der Config-File '''/config/user-data/fftunnel.conf''' mittels CLI (Port-Nummer richtig stellen!)
Empfohlen wird, die Konfigurationsdateien und das Skript zuerst auf Deinem Computer anzulegen, und diese gemeinsam in der Folge per SSH ins Verzeichnis /config/user-data/ zu kopieren. Alternativ kannst Du sie auch händisch über das CLI wie vi anlegen. Wir benötigen:


  dev         vtun0
1) funkfeuer.ovpn mit folgendem Inhalt - die kursiv dargestellten Zeilen musst Du mit jenen Werten befüllen, die Du von den Tunneladmins zugewiesen bekommen hast:
  dev-type     tap
 
  proto       udp
  dev             vtun0
  remote       78.41.115.228
  dev-type       tap
  proto           udp
  remote         78.41.115.228
''port            [5XXX]''
daemon          vtun0
up-delay
down-pre
up-restart
comp-lzo
  script-security 2
  script-security 2
  port        5111
  nobind
  up-delay
  ping 10
daemon
  ping-restart 60
  ping-restart 60
  verb         1
ping-timer-rem
  comp-lzo
fast-io
  #secret /config/user-data/fftunnel.secret
sndbuf  524288
  auth         SHA256
rcvbuf  524288
mute 2
  verb 0
up "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y"
  down "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y"
 
 
Es gibt spezielle Betriebsmodi für OLSR, wie etwa den Mode „silent“. Um diesen zu nützen kann man zwei Zeilen mit einem Skriptparameter anpassen:
 
up "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y silent"
down "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y silent"
 
 
Wurde für Deinen Tunnel bereits ein shared key/secret angelegt, benötigst Du die Zeilen zusätzlich folgende Zeilen:
 
  secret /config/user-data/funkfeuer.secret
  auth SHA256
  cipher none
  cipher none


2) Folgende Config am EdgeRouter vornehmen (lokalen Gateway für Static-Route entsprechend ändern)


set interfaces bridge br9 address 78.41.000.000/32
2) funkfeuer.secret - wenn ein Key angelegt wurde.
 
Diese Datei beinhaltet einen individuellen kryptographischen Schlüssel (shared key), der sicherstellt, dass der Tunnel nur von jenen Clients genutzt werden kann, denen er auch tatsächlich zugewiesen wurde. Das soll verhindern, dass ein Tunnel missbräuchlich oder versehentlich mehrfach genützt wird.
Diesen Schlüssel erhältst Du per E-Mail und Du musst ihn lediglich in dieser Datei speichern.
 
3) funkfeuer-ifupdown.sh
 
Dieses Skript sorgt dafür, dass das Tunnel-Interface, nachdem es gestartet wurde, in die richtige Bridge gelegt wird, auf der bereits OLSR läuft. Leg Die Datei mit folgendem Inhalt an und mach sie ausführbar.
----
 
#!/bin/sh
logger "$dev $script_type"
case "$2" in
        silent)
                br="br9"
        ;;
        ether)
                br="br8"
        ;;
        *)
                br="br7"
esac
case "$script_type" in
        up)
                /sbin/brctl addif $br $dev
                /sbin/ip link set $br promisc on
                /sbin/ip link set $dev up
                /sbin/ip a a $1 dev $br
        ;;
        down)
                /sbin/ip link set $dev down
                /sbin/ip link set $br promisc off
                /sbin/brctl delif $br $dev
                /sbin/ip a d $1 dev $br
        ;;
        *)
esac
exit 0
 
 
3) Folgende Config am EdgeRouter vornehmen (lokalen Gateway für Static-Route entsprechend ändern)
 
  set interfaces bridge br9 aging 300
  set interfaces bridge br9 aging 300
  set interfaces bridge br9 bridged-conntrack disable
  set interfaces bridge br9 bridged-conntrack disable
Zeile 34: Zeile 95:
  set interfaces bridge br9 max-age 20
  set interfaces bridge br9 max-age 20
  set interfaces bridge br9 priority 32768
  set interfaces bridge br9 priority 32768
set interfaces bridge br9 promiscuous disable
  set interfaces bridge br9 stp false
  set interfaces bridge br9 stp false
  commit
  commit
  set protocols static route 78.41.115.228/32 next-hop 192.168.0.1 description 'TunnelServer via ISP'
  set protocols static route 78.41.115.228/32 next-hop 192.168.0.1 description 'TunnelServer via ISP'
set interfaces openvpn vtun0 bridge-group bridge br9
  set interfaces openvpn vtun0 config-file /config/user-data/funkfeuer.ovpn
  set interfaces openvpn vtun0 config-file /config/user-data/fftunnel.conf
set interfaces openvpn vtun0 device-type tap
set interfaces openvpn vtun0 protocol udp
  commit
  commit
  save
  save


3) Im OLSRd_V1 Wizard das interface br9 für OLSR aktivieren
3) Im OLSRd_V1 Wizard das interface br9, br8 oder br7 für OLSR aktivieren

Version vom 14. Februar 2018, 15:57 Uhr

Anleitung in Arbeit - Entwurfsstadium


Die allgemeinen Voraussetzungen zum Einrichten eines Tunnels sind in der Übersichtsseite dargestellt. Dieser Artikel geht nur auf die rudimentäre Konfiguration des Edge Routers ein.

Einrichten des Tunnels

Empfohlen wird, die Konfigurationsdateien und das Skript zuerst auf Deinem Computer anzulegen, und diese gemeinsam in der Folge per SSH ins Verzeichnis /config/user-data/ zu kopieren. Alternativ kannst Du sie auch händisch über das CLI wie vi anlegen. Wir benötigen:

1) funkfeuer.ovpn mit folgendem Inhalt - die kursiv dargestellten Zeilen musst Du mit jenen Werten befüllen, die Du von den Tunneladmins zugewiesen bekommen hast:

dev             vtun0
dev-type        tap
proto           udp
remote          78.41.115.228
port            [5XXX]
daemon          vtun0
up-delay
down-pre
up-restart
comp-lzo
script-security 2
nobind
ping 10
ping-restart 60
ping-timer-rem
fast-io
sndbuf  524288 
rcvbuf  524288
mute 2
verb 0
up "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y"
down "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y"


Es gibt spezielle Betriebsmodi für OLSR, wie etwa den Mode „silent“. Um diesen zu nützen kann man zwei Zeilen mit einem Skriptparameter anpassen:

up "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y silent"
down "/config/user-data/funkfeuer-ifupdown.sh 78.41.X.Y silent"


Wurde für Deinen Tunnel bereits ein shared key/secret angelegt, benötigst Du die Zeilen zusätzlich folgende Zeilen:

secret /config/user-data/funkfeuer.secret
auth SHA256
cipher none


2) funkfeuer.secret - wenn ein Key angelegt wurde.

Diese Datei beinhaltet einen individuellen kryptographischen Schlüssel (shared key), der sicherstellt, dass der Tunnel nur von jenen Clients genutzt werden kann, denen er auch tatsächlich zugewiesen wurde. Das soll verhindern, dass ein Tunnel missbräuchlich oder versehentlich mehrfach genützt wird. Diesen Schlüssel erhältst Du per E-Mail und Du musst ihn lediglich in dieser Datei speichern.

3) funkfeuer-ifupdown.sh

Dieses Skript sorgt dafür, dass das Tunnel-Interface, nachdem es gestartet wurde, in die richtige Bridge gelegt wird, auf der bereits OLSR läuft. Leg Die Datei mit folgendem Inhalt an und mach sie ausführbar.


#!/bin/sh
logger "$dev $script_type"
case "$2" in
       silent)
               br="br9"
       ;;
       ether)
               br="br8"
       ;;
       *)
               br="br7"
esac
case "$script_type" in
       up)
               /sbin/brctl addif $br $dev
               /sbin/ip link set $br promisc on
               /sbin/ip link set $dev up
               /sbin/ip a a $1 dev $br
       ;;
       down)
               /sbin/ip link set $dev down 
               /sbin/ip link set $br promisc off
               /sbin/brctl delif $br $dev
               /sbin/ip a d $1 dev $br
       ;;
       *)
esac
exit 0


3) Folgende Config am EdgeRouter vornehmen (lokalen Gateway für Static-Route entsprechend ändern)

set interfaces bridge br9 aging 300
set interfaces bridge br9 bridged-conntrack disable
set interfaces bridge br9 description TUNNEL
set interfaces bridge br9 hello-time 2
set interfaces bridge br9 max-age 20
set interfaces bridge br9 priority 32768
set interfaces bridge br9 stp false
commit
set protocols static route 78.41.115.228/32 next-hop 192.168.0.1 description 'TunnelServer via ISP'
set interfaces openvpn vtun0 config-file /config/user-data/funkfeuer.ovpn
commit
save

3) Im OLSRd_V1 Wizard das interface br9, br8 oder br7 für OLSR aktivieren