Potsdam-VPN: Unterschied zwischen den Versionen

→‎Zertifikat beantragen: Link zur Mailingliste
(→‎Zertifikat beantragen: Link zur Mailingliste)
Markierung: visualeditor
Zeile 3: Zeile 3:
__TOC__
__TOC__


== Client einrichten ==
==Client einrichten==
=== Zertifikat beantragen ===
===Zertifikat beantragen===
Um ein Zertifikat zum Potsdam-VPN für deinen Freifunkrouter zu erhalten, schicke bitte eine Email mit folgenden Angaben an ''users@lists.freifunk-potsdam.de''.
Um ein Zertifikat zum Potsdam-VPN für deinen Freifunkrouter zu erhalten, schicke bitte eine Email mit folgenden Angaben an ''[https://lists.freifunk-potsdam.de/cgi-bin/mailman/listinfo/users users@lists.freifunk-potsdam.de]''.


[mailto:users@lists.freifunk-potsdam.de?subject=PdmVPN%20f%C3%BCr%20Routername&body=Hallo%20Zertifikatsgeber%2C%0D%0A%0D%0Asende%20mir%20bitte%20ein%20Potsdam-VPN-Zertifikat%5B0%5D%20f%C3%BCr%20meinen%20Knoten%20Routername%20an%20Emailadresse.%0D%0A%0D%0AViele%20Gr%C3%BC%C3%9Fe%2C%0D%0A%0D%0A%0D%0A%5B0%5D%3A%20https%3A%2F%2Fwiki.freifunk-potsdam.de%2FPotsdam-VPN Für die E-Mail hier klicken]
[mailto:users@lists.freifunk-potsdam.de?subject=PdmVPN%20f%C3%BCr%20Routername&body=Hallo%20Zertifikatsgeber%2C%0D%0A%0D%0Asende%20mir%20bitte%20ein%20Potsdam-VPN-Zertifikat%5B0%5D%20f%C3%BCr%20meinen%20Knoten%20Routername%20an%20Emailadresse.%0D%0A%0D%0AViele%20Gr%C3%BC%C3%9Fe%2C%0D%0A%0D%0A%0D%0A%5B0%5D%3A%20https%3A%2F%2Fwiki.freifunk-potsdam.de%2FPotsdam-VPN Für die E-Mail hier klicken]
Zeile 15: Zeile 15:
sende mir bitte ein Zertifikat für meinen Knoten ''Routername'' an ''Emailadresse''.
sende mir bitte ein Zertifikat für meinen Knoten ''Routername'' an ''Emailadresse''.


=== Potsdam-VPN auf Router einrichten ===
===Potsdam-VPN auf Router einrichten===


Nachdem die E-Mail mit einem Zertifikat beantwortet wurde, kann der Router mit dem VPN bespielt werden.
Nachdem die E-Mail mit einem Zertifikat beantwortet wurde, kann der Router mit dem VPN bespielt werden.


==== OpenVPN einrichten ====
====OpenVPN einrichten====


Zuerst richten wir das OpenVPN ein, damit der Router sich verbinden kann. Falls der Menüpunkt Services/OpenVPN nicht vorhanden ist, folgende Pakete über die Paketverwaltung nachinstallieren und den Router neu starten: luci-app-openvpn, luci-i18n-openvpn-en und openvpn-openssl
Zuerst richten wir das OpenVPN ein, damit der Router sich verbinden kann. Falls der Menüpunkt Services/OpenVPN nicht vorhanden ist, folgende Pakete über die Paketverwaltung nachinstallieren und den Router neu starten: luci-app-openvpn, luci-i18n-openvpn-en und openvpn-openssl
Zeile 27: Zeile 27:
  opkg update && opkg install luci-app-openvpn luci-i18n-openvpn-en openvpn-openssl && exec reboot
  opkg update && opkg install luci-app-openvpn luci-i18n-openvpn-en openvpn-openssl && exec reboot


* Unter Services/OpenVPN eine neue "Client configuration for an ethernet bridge VPN" namens "pdmvpn" anlegen.
*Unter Services/OpenVPN eine neue "Client configuration for an ethernet bridge VPN" namens "pdmvpn" anlegen.
 
[[Datei:1-vpn_anlegen.png|VPN anlegen]]
[[Datei:1-vpn_anlegen.png|VPN anlegen]]
* auf "Switch to advanced configuration" klicken
* unter Networking folgende Einstellungen vornehmen. Einige Felder müssen zuerst hinzugefügt werden.
** '''port''': 1195
** '''dev''': pdmvpn
** '''dev_type''': tap
** '''tun_mtu''': 1300
** '''comp_lzo''': no
* Speichern
* unter VPN folgende Einstellungen vornehmen.
** '''remote''': vpn.freifunk-potsdam.de
* Speichern
* unter Cryptography folgende Einstellungen vornehmen. Einige Felder müssen zuerst hinzugefügt werden.
** '''cipher''': none
** '''ca''': ca.crt hochladen
** '''cert''': <span style="color:red">$client$</span>.crt hochladen
** '''key''': <span style="color:red">$client$</span>.key hochladen
* Speichern & Anwenden


==== Interface konfigurieren ====
*auf "Switch to advanced configuration" klicken
*unter Networking folgende Einstellungen vornehmen. Einige Felder müssen zuerst hinzugefügt werden.
**'''port''': 1195
**'''dev''': pdmvpn
**'''dev_type''': tap
**'''tun_mtu''': 1300
**'''comp_lzo''': no
*Speichern
*unter VPN folgende Einstellungen vornehmen.
**'''remote''': vpn.freifunk-potsdam.de
*Speichern
*unter Cryptography folgende Einstellungen vornehmen. Einige Felder müssen zuerst hinzugefügt werden.
**'''cipher''': none
**'''ca''': ca.crt hochladen
**'''cert''': <span style="color:red">$client$</span>.crt hochladen
**'''key''': <span style="color:red">$client$</span>.key hochladen
*Speichern & Anwenden
 
====Interface konfigurieren====


Hier richten wir die Schnittstelle ein, an der der Verkehr über das VPN vom Router entgegen genommen wird.
Hier richten wir die Schnittstelle ein, an der der Verkehr über das VPN vom Router entgegen genommen wird.


* Unter Network/Interfaces ein neues Interface names PDMVPN anlegen.
*Unter Network/Interfaces ein neues Interface names PDMVPN anlegen.
** Protocoll ist Unmanaged oder Ignoriert
**Protocoll ist Unmanaged oder Ignoriert
** als Device das soeben eingerichtete Device "pdmvpn" auswählen. Beim ersten Einrichten existiert das Device vielleicht nicht. Wenn es nicht existiert, kann der Name unten eingegeben werden.
**als Device das soeben eingerichtete Device "pdmvpn" auswählen. Beim ersten Einrichten existiert das Device vielleicht nicht. Wenn es nicht existiert, kann der Name unten eingegeben werden.
* Submit
*Submit
* Das neue Interface der Firewallgruppe "Freifunk" hinzufügen.
*Das neue Interface der Firewallgruppe "Freifunk" hinzufügen.
* Speichern und Anwenden (Save & Apply)
*Speichern und Anwenden (Save & Apply)
* unter Services/OpenVPN das pdmvpn aktivieren und starten. Es müsste jetzt laufen. "Started" "Yes"
*unter Services/OpenVPN das pdmvpn aktivieren und starten. Es müsste jetzt laufen. "Started" "Yes"


==== OLSR konfigurieren ====
====OLSR konfigurieren====


Nachdem wir nun Verkehr über das VPN schicken, wird es Zeit, sich automatisch über OLSR auszutauschen, welche Router wir über das VPN erreichen können.
Nachdem wir nun Verkehr über das VPN schicken, wird es Zeit, sich automatisch über OLSR auszutauschen, welche Router wir über das VPN erreichen können.


* unter Services/OLSR IPv4 das PDMVPN Interface hinzufügen:
*unter Services/OLSR IPv4 das PDMVPN Interface hinzufügen:
** Add
**Add
** PDMVPN auswählen
**PDMVPN auswählen
** '''Modus''': mesh
**'''Modus''': mesh
** Linkqualitäteinstellungen: LQ-Algorithmus: etx_ffeth
**Linkqualitäteinstellungen: LQ-Algorithmus: etx_ffeth
** Speichern & Anwenden
**Speichern & Anwenden


==== Bilder ====
====Bilder====


<br />
<br />
Zeile 82: Zeile 84:
</gallery>
</gallery>


==== Überprüfen ====
====Überprüfen====


Wenn das Meshing über das VPN läuft, dann kann man bei ''Status'' -> ''OLSR'' -> ''Nachbarn'' folgendes sehen:
Wenn das Meshing über das VPN läuft, dann kann man bei ''Status'' -> ''OLSR'' -> ''Nachbarn'' folgendes sehen:
Zeile 92: Zeile 94:




==== Diskussionen ====
====Diskussionen====


Auf der Potsdamer Mailingliste gibt es folgende Diskussionen:
Auf der Potsdamer Mailingliste gibt es folgende Diskussionen:


* [https://lists.freifunk-potsdam.de/pipermail/users/2018-March/018515.html Welches OpenVPN?] - Eine Diskussion zur Installation von Paketen unter der Firmware-Version Hedy.
*[https://lists.freifunk-potsdam.de/pipermail/users/2018-March/018515.html Welches OpenVPN?] - Eine Diskussion zur Installation von Paketen unter der Firmware-Version Hedy.


= Server =
=Server=


Dieser Abschnitt ist interessant, wenn man einen Potsdam-VPN-Server aufsetzt und verwaltet.
Dieser Abschnitt ist interessant, wenn man einen Potsdam-VPN-Server aufsetzt und verwaltet.
Wenn man seinen Router mit dem Potsdam-VPN verbinden möchte, ist dieser uninteressant.
Wenn man seinen Router mit dem Potsdam-VPN verbinden möchte, ist dieser uninteressant.


== Keys generieren ==
==Keys generieren==
=== Easy-RSA config ===
===Easy-RSA config===
* vim vars
 
*vim vars
 
  export EASY_RSA="`pwd`"
  export EASY_RSA="`pwd`"
  export OPENSSL="openssl"
  export OPENSSL="openssl"
Zeile 134: Zeile 138:
  export KEY_CN=
  export KEY_CN=
  export KEY_NAME=
  export KEY_NAME=
=== CA Zertifikat, CA Key und DH Parameter erzeugen ===
===CA Zertifikat, CA Key und DH Parameter erzeugen===
  . vars
  . vars
  ./build-ca
  ./build-ca
  ./build-dh
  ./build-dh
=== Server Zertifikat und Server Key erzeugen ===
===Server Zertifikat und Server Key erzeugen===
  . vars
  . vars
  ./build-key-server <span style="color:red">$server name$</span>
  ./build-key-server <span style="color:red">$server name$</span>
=== client Zertifikat und Client Key erzeugen ===
===client Zertifikat und Client Key erzeugen===
  . vars
  . vars
  ./build-key <span style="color:red">$client name$</span>
  ./build-key <span style="color:red">$client name$</span>


== Server aufsetzen ==
==Server aufsetzen==
Die Potsdam-VPN Server sind als [[virtueller Router|virtuelle Router]] auf Hedy-Basis aufgesetzt. Die virtuellen Router werden mit Qemu ausgeführt.
Die Potsdam-VPN Server sind als [[virtueller Router|virtuelle Router]] auf Hedy-Basis aufgesetzt. Die virtuellen Router werden mit Qemu ausgeführt.
Auf jedem virtuellen Router läuft ein OpenVPN Server, mit dem sich Clients verbinden können. Dafür wird der UDP-Port 1195 vom Hostsystem an den virtuellen Router forgewarded. Zur einfacheren Administration werden noch die Ports 22 und 443 auf alternativen Ports forgewarded.
Auf jedem virtuellen Router läuft ein OpenVPN Server, mit dem sich Clients verbinden können. Dafür wird der UDP-Port 1195 vom Hostsystem an den virtuellen Router forgewarded. Zur einfacheren Administration werden noch die Ports 22 und 443 auf alternativen Ports forgewarded.
Zeile 160: Zeile 164:


'''Portfreigaben und -forwards:'''
'''Portfreigaben und -forwards:'''
* UDP 25551
 
* UDP 25552
*UDP 25551
* UDP 25553
*UDP 25552
* UDP 1195 -> 172.22.255.2:1195
*UDP 25553
* TCP 25522 -> 172.22.255.2:22
*UDP 1195 -> 172.22.255.2:1195
* TCP 25543 -> 172.22.255.2:443
*TCP 25522 -> 172.22.255.2:22
*TCP 25543 -> 172.22.255.2:443


'''L2TP-Verbindungen zwischen den drei Servern:'''
'''L2TP-Verbindungen zwischen den drei Servern:'''
Zeile 192: Zeile 197:
|}
|}


=== Firmware kompilieren ===
===Firmware kompilieren===
Da die OpenVPN-Server Funktionalität im Standart-Hedy nicht enthalten ist, muss die Firmware mit einigen Änderungen selbst kompiliert werden.
Da die OpenVPN-Server Funktionalität im Standart-Hedy nicht enthalten ist, muss die Firmware mit einigen Änderungen selbst kompiliert werden.


Zeile 219: Zeile 224:
Das Image kann dann für einen [[virtueller Router|virtuellen Router]] benutzt werden.
Das Image kann dann für einen [[virtueller Router|virtuellen Router]] benutzt werden.


=== Hostsystem einrichten ===
===Hostsystem einrichten===
==== Netzwerk, Routing und Firewall ====
====Netzwerk, Routing und Firewall====


/etc/network/interfaces
/etc/network/interfaces
Zeile 252: Zeile 257:




 
====Qemu-Script====
==== Qemu-Script ====


  #!/bin/bash
  #!/bin/bash
Zeile 291: Zeile 295:




==== ExpressVPN ====
====ExpressVPN====
/etc/openvpn/expressvpn.sh
/etc/openvpn/expressvpn.sh
  #!/bin/bash
  #!/bin/bash
Zeile 313: Zeile 317:
  ip rule add prio 111 iif brffvpn prohibit
  ip rule add prio 111 iif brffvpn prohibit


=== virtuellen Router einrichten ===
===virtuellen Router einrichten===


[[Kategorie:Technik]]
[[Kategorie:Technik]]
[[Kategorie:Netz]]
[[Kategorie:Netz]]
146

Bearbeitungen