146
Bearbeitungen
(→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]] | ||
==== 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]] |
Bearbeitungen