Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

PeerVPN - Für perfekt gesichertes Sharing

Registriert
11. Juni 2010
Beiträge
4.080
Reaktionspunkte
2.847
Punkte
373
Hallo Zusammen,

wie bereits angekündigt, möchte ich euch hier einmal PeerVPN vorstellen.
Im Gegensatz zu OpenVPN ist PeerVPN nicht nach dem Client - Server Prinzip mit Stern Aufbau aufgebaut, sondern man schaft sich eine Full Mesh Topologie.

Für PeerVPN benötigt man keinen zentralen VPN Server was natürlich eine ensprechende Ausfallsicherheit schaft, da jeder Node sowohl Client als auch Server ist. Im Endeffekt bedeutet dies, das dass Peer Netzwerk auch bei einem Ausfall von beispielsweise 3 von 4 Servern erreichbar ist.

Hinzu kommen diverse Vorteile bei der Kommunikation der Nodes untereinander. Auch das hinzufügen weiterer Nodes ist ohne großartige Änderungen ohne weiteres möglich.

Basis für dieses HowTo:
Raspberry Pi mit Raspian lokal mit OScam vorhanden
Ubuntu Server 16.04.x VPS als Cache Instanz vorbereitet

Vorbereitung:
Als erstes stellen wir sicher, dass unsere Systeme aktuell sind und installieren unsere Tools.
Code:
apt update
apt upgrade -y
apt dist-upgrade -y
apt install nano curl openssl

Die Installation von PeerVPN:
Zunächst downloaden wir uns den PeerVPN, entpacken diesen und kopieren die Binary:
Code:
cd /tmp
curl -LO https://peervpn.net/files/peervpn-0-044-linux-x86.tar.gz
tar xzvf peervpn*
sudo cp /tmp/peervpn*/peervpn /usr/local/bin
sudo cp /tmp/peervpn*/peervpn.conf /etc

Im nächsten Schritt müssen wir uns unser Private Shared Key (PSK) erstellen.
PeerVPN erlaubt bist zu 512 Charakter. Den PSK erstellen wir mit dem OpenSSL Nummerngenerator
Code:
openssl rand -base64 382 | tr -d '\n' | wc
openssl rand -base64 382 | tr -d '\n' && echo
Nun solltet Ihr eine Reihe zufälliger Zahlen und Zeichen erhalten haben.
Beispiel:
Code:
ajHpYYMJYtv+m0K6yZbYmk8npPujlcv9QDozQZ06ucV2gsHoMGqyfd50X8OnY6hicj5iFNjDN/9QVTB3nhMOV2uf/kfWCbtskUuk1zHWYZsvy71KnLRhA8W8dnu+NEKdIh28H2qUsiay7On5kOZPcrONvvpHHYbxmFI2G9TyYT+CZWIAxUVvUWl41VycjASmZYaSI6lWgYONopncNfDF5Z6oznPH8ge6sQsszbe1ZjNqLRUrxjgL3fy7SXSLCIrsSuifBvpb36d9y+YPZEbxsMInoK5QEWrpIfxjbMFlndtGc20olhh05h66qzGiimLMivrN8g+PibVaBRUmWavpngUvKYsEEPSc0wrr5ZuvpvBGTTKqPdR+soCndiWPzmwRBW56vBGxed3GNbkgmjDpTSnvNEN+gKPt07drHSbGqfFbdMdsKbjE+IWiqiVO1aviJsNpMhBO/o9uIcKxPmuze6loZKTh7/qjJuY62E//SsgFzDHDhP2w==

Diesen kopiert Ihr euch nun erst einmal in eine Textdatei, wir brauchen diesen im nächsten Schritt.

Code:
Die Konfiguration von PeerVPN:
Jetzt gehts ans Eingemachte, in dem wir die Config bearbeiten.
sudo nano /etc/peervpn.conf
Die peervpn.conf füllt Ihr nun mit dem Inhalt:
Code:
#Netzwername
networkname DEBPeerVPNTest
#Nutzt bitte euren eben generierten Code!
psk ajHpYYMJYtv+m0K6yZbYmk8npPujlcv9QDozQZ06ucV2gsHoMGqyfd50X8OnY6hicj5iFNjDN/9QVTB3nhMOV2uf/kfWCbtskUuk1zHWYZsvy71KnLRhA8W8dnu+NEKdIh28H2qUsiay7On5kOZPcrONvvpHHYbxmFI2G9TyYT+CZWIAxUVvUWl41VycjASmZYaSI6lWgYONopncNfDF5Z6oznPH8ge6sQsszbe1ZjNqLRUrxjgL3fy7SXSLCIrsSuifBvpb36d9y+YPZEbxsMInoK5QEWrpIfxjbMFlndtGc20olhh05h66qzGiimLMivrN8g+PibVaBRUmWavpngUvKYsEEPSc0wrr5ZuvpvBGTTKqPdR+soCndiWPzmwRBW56vBGxed3GNbkgmjDpTSnvNEN+gKPt07drHSbGqfFbdMdsKbjE+IWiqiVO1aviJsNpMhBO/o9uIcKxPmuze6loZKTh7/qjJuY62E//SsgFzDHDhP2w==
#Port könnt Ihr beliebig wählen. Wir nutzen hier 51223
port 51223
enabletunneling yes
interface peervpn0
#IP-Adresse könnt Ihr selbst definieren. Auf KEINEN Fall 192.x.x.x oder 172.x.x.x
ifconfig4 10.8.0.1/24
#IP-Adresse eures VPS - Beispiel 105.66.22.11
initpeers 105.66.22.11 51223
#Mit local könnt Ihr die Adresse eures PeerVPN definieren. Für einen Homeserver nicht notwendig. Bei #einem VPS von Vorteil. Ihr könnt aber auch einfach die IP eures Raspi zuhause dort eintragen. Entfernt #vorher aber die #
#local
Nun müsst Ihr noch den Service erstellen:
Code:
sudo nano /etc/systemd/system/peervpn.service
Inhalt:
Code:
[Unit]
Description=PeerVPN network service
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/peervpn /etc/peervpn.conf

[Install]
WantedBy=multi-user.target
Nun noch den Service aktivieren:
Code:
systemctl enable peervpn
Nun müsst Ihr noch das Tap Device erstellen:
Code:
ip tuntap add dev peervpn0 mode tap
ip link ls dev peervpn0
ifconfig peervpn0 10.8.0.1 netmask 255.255.255.0
Mit ifconfig könnt Ihr eure Ausgabe nun prüfen.
Code:
peervpn0  Link encap:Ethernet  Hardware Adresse 3e:e2:c9:f5:12:5c
inet Adresse:10.8.0.1  Bcast:10.8.0.255  Maske:255.255.255.0
inet6-Adresse: fe80::3ce2:c9ff:fef5:125c/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
RX-Pakete:20912 Fehler:0 Verloren:0 Ãberläufe:0 Fenster:0
TX-Pakete:21757 Fehler:0 Verloren:0 Ãberläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:2986924 (2.9 MB)  TX-Bytes:1480358 (1.4 MB)
Nun startet den peervpn Dienst
Code:
systemctl start peervpn

Natürlich müsst Ihr jetzt noch eine entsprechende Portfreigabe in eurem Router für den Port 51223 mit UDP Protokoll eintragen.

Den gleichen Installations- und Einrichtungsprozess nehmt Ihr nun an eurem VPS vor.
Code:
#Netzwername
networkname DEBPeerVPNTest
#Nutzt bitte euren eben generierten Code!
psk ajHpYYMJYtv+m0K6yZbYmk8npPujlcv9QDozQZ06ucV2gsHoMGqyfd50X8OnY6hicj5iFNjDN/9QVTB3nhMOV2uf/kfWCbtskUuk1zHWYZsvy71KnLRhA8W8dnu+NEKdIh28H2qUsiay7On5kOZPcrONvvpHHYbxmFI2G9TyYT+CZWIAxUVvUWl41VycjASmZYaSI6lWgYONopncNfDF5Z6oznPH8ge6sQsszbe1ZjNqLRUrxjgL3fy7SXSLCIrsSuifBvpb36d9y+YPZEbxsMInoK5QEWrpIfxjbMFlndtGc20olhh05h66qzGiimLMivrN8g+PibVaBRUmWavpngUvKYsEEPSc0wrr5ZuvpvBGTTKqPdR+soCndiWPzmwRBW56vBGxed3GNbkgmjDpTSnvNEN+gKPt07drHSbGqfFbdMdsKbjE+IWiqiVO1aviJsNpMhBO/o9uIcKxPmuze6loZKTh7/qjJuY62E//SsgFzDHDhP2w==
#Port könnt Ihr beliebig wählen. Wir nutzen hier 51223
port 51223
enabletunneling yes
interface peervpn0
#IP-Adresse könnt Ihr selbst definieren. Auf KEINEN Fall 192.x.x.x oder 172.x.x.x
ifconfig4 10.8.0.2/24
#IP-Adresse eures VPS - Beispiel 105.66.22.11
initpeers eurehomedyn.dyndns.org 51223
#Mit local könnt Ihr die Adresse eures PeerVPN definieren. Für einen Homeserver nicht notwendig. Bei #einem VPS von Vorteil. Ihr könnt aber auch einfach die IP eures Raspi zuhause dort eintragen. Entfernt #vorher aber die #
local 105.66.22.11

Nach dem Start von PeerVPN auf eurem VPS könnt Ihr die Konnektivität ganz einfach prüfen in dem Ihr einfach die VPN IP-Adresse eures Homeservers anpingt:
Code:
ping 10.8.0.1
Wenn dieser Problemlos durchläuft, habt Ihr eine stabile Verbindung.

Nun könnt Ihr auf eurem Homeserver den Cache Reader entsprechend anpassen.
Ihr müsst einzig die Adresse ändern, beschrieben in diesem Beispiel:
Code:
#Entfernen!
#device = cacheserver.dyndns.org,33441
#Ersetzen durch:
device = 10.8.0.2,33441
Nun erhaltet Ihr euren Cache insgesamt über den PeerVPN stark verschlüsselt ohne große Performance Verluste. Ich habe selbst sogar Performance Gewinn festgestellt, da die Antwortzeiten deutlich schneller sind.

Im großen und ganzen könnt Ihr auch mit euren Tauschpartnern PeerVPN ohne weiteres nutzen und euch zusätzlich absichern.

Wenn Ihr IPTables nutzt, müsst ihr noch eure Regeln erweitern:
Code:
#Routing
$iptables -A INPUT -i peervpn0 -j ACCEPT
$iptables -A FORWARD -i peervpn0 -j ACCEPT
$iptables -A FORWARD -i peervpn0 -o ens3 -m state --state RELATED,ESTABLISHED -j ACCEPT
$iptables -A FORWARD -i ens3 -o peervpn0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#Masquerading nur nötig, wenn der Server selbst antworten soll aus dem PeerVPN Netzwerk heraus.
#$iptables -t nat -A POSTROUTING -s 10.180.20.0/24 -o eth0 -j MASQUERADE
 
Klingt wirklich gut, Wahnsinn wäre natürlich wenn das ganze auch auf Enigma laufen würde, weißt du das was?
Google spuckt da leider sehr wenig Infos aus
 
Man müsste es eventuell mal für enigma bauen...
btw. warum ist das hier noch nicht angepinnt? :D
 
Hätte denn jemand generell Interesse ein Peer Netzwerk für das Sharing aufzubauen?
Inzwischen bin ich soweit, dass auch mehere Peer Netzwerke anstandslos funktionieren auf einem Server.
Ich nutze für den externen Zugriff noch einen Entry Point in das Peer Netzwerk für Wartung etc.
 
ich verstehe noch nicht so ganz den vorteil gegenüber openvpn.

Wenn ich das richtig verstehe braucht man hier ebenfalls einen server/eine IP die stehts erreichbar ist, damit sich der client nach z.B. einem neustart wieder an dem Netz anmelden kann. Ist er einmal angemeldet werden die restlichen IPs über das netz gepushed.

openvpn bietet doch ebenfalls eine client-to-client config.


Was ich auch noch nicht so ganz versteh is, wie sich die clients authentifizieren bzw zulassen. Ich will ja schließlich nicht, dass jeder der meine ip und meinen port für peerVpn kennt sich einfach einwählen kann. Vermutlich kann ich auch nicht überprüfen, wen meine sharepartner so ins netzwerk lassen?
 
OpenVPN baut kein Mesh Netzwerk auf.
Es kommen nur die Clients ins Netz die
1. den korrekten PSK haben und
2. auch als Peers in der Config hinterlegt sind

Das Mesh Netzwerk steht auch mit nur einem Node zur Verfügung, was bei OpenVPN nicht geht wenn der Server Offline ist.
Den Rest kannst du mittels Firewall regeln
 
Hallo.

Ich persönlich nutze dafür tinc VPN.
Das funktioniert top, gibt es aber leider nicht für Enigma Boxen.

Der Vorteil eines Mesh Netzwerk ist folgender.

Wenn der Client A zum Client B (Server für einen Dienst) keine Verbindung hat, aber Client C mit A und B verbunden ist, kann Client A den Client B über den Client C erreichen.

Gibt es für PeerVPN auch verschiedene Modus wie Switch, Routed etc.?

Warum PeerVPN und nicht Tinc-VPN?

Gruß
pr0
 
hi

habe aktuell das debian jessie mit full encreypted drauf läuft alles soweit.

meine frage dazu:
- kann ich die alten peers noch mit der kimsufi ip laufen lassen und nach installation mit der der neuen ip tauschen ?
- was sind genau meine vorteile damit ? habe nur den Kimsufi Server mit Normalen Peers und Ce2 drauf laufen auf 2 instanzen

danke
 
Die frage hier war aus reiner neugierde ;-)

möchte erstmal das abschmieren meiner oscam mit full encrpted beheben wie ich schon im richtigen thread geschrieben habe
 
Zuletzt bearbeitet von einem Moderator:
OK,

die Geschichte hier würde ich mir sparen.

Oscam wird unter stretch dann genauso abschmieren, auch wenn Du noch VPN etc. einrichtest. ;)

Was Du brauchst nennt sich "watchdog" bzw. systemd

Gruß
 
Zurück
Oben