PrivateMember
New Member
Hallo zusammen,
erstmal wünsche ich allen ein gesundes neues Jahr.
Danke an Perfect Privacy für diesen wunderbaren VPN-Dienst, welcher wirklich alle Wünsche erfüllt. Weiter so - die Qualität passt!
Ich möchte euch etwas zur Verfügung stellen, was möglicherweise eher an die 'Geeks' gerichtet ist.
In den letzten Tagen hatte ich mir Gedanken zur Kaskadierung auf Linux-Servern gemacht, welche Headless unterwegs sind. Der Eigenaufwand sollte zwecks Verbindungsaufbau und Überwachung der Verbindung möglichst gering gehalten werden ==> also musste ein Script her!
Nach zahlreichen Stunden, Tests, Optimierungen und Debugging hatte ich eine Konfiguration, welche einfach zu handhaben ist und auch sehr stabil läuft.
-----------------------------------------------------------------
Erläuterung:
Diese Scripte ermöglichen es, anhand einer frei wählbaren Anzahl an HOP's (max. 8) und einer zufällig ermittelten Zeitspanne (Angabe einer max- und mintime in den Variablen vorausgesetzt), eine automatische Kaskadierung per openVPN-Configs durchzuführen. Die mitgelieferten Dienste sorgen dafür, dass die Scripte bei jedem Systemstart sofort abgearbeitet werden. Auch wenn die Scripte oder Dienste unerwartet beendet werden, starten diese sofort neu und bauen im Anschluss erneut die Kaskade auf.
Es werden für jede neue Verbindung zufällig die Server (openVPN-Configs) gewählt. Es muss also nicht angegeben werden, welche Server benutzt werden sollen. Wenn man nur eine bestimmte Auswahl an Server nutzen möchte, müssen diese lediglich aus dem Verzeichnis entfernt werden, welches durch das Script durchsucht wird (initial /etc/openvpn/connections/)
Beschaffungsmöglichkeiten:
Github: https://github.com/PrivateMemberPP/PP_openVPN_cascade
- Über das Github-Repository könnt ihr euch die Files im Klartext anschauen
- die wichtigesten Befehle sind auch auf der Github-Repository-Seite vermerkt
automatische Installation:
Durch den o.g. Befehl wird die Installation vollständig automatisch durchgeführt. Es werden die notwendigen Pakete auf vorhandensein überprüft und im Bedarfsfall nachinstalliert. Im Anschluss werden die Skripte und Service-Dateien heruntergeladen, an die korrekten Stellen verschoben und ausführbar gemacht.
Im letzten Schritt wird noch aufgeräumt.
Wenn das Script im Terminal durchgelaufen ist, unbedingt die abschließenden Schritte durchlesen und ausführen!
Das Installationsscript schreibt den Output auch in eine Datei!
Update der Scripte
Falls ich ein Update poste, muss lediglich wieder der Befehl zur Installation ausgeführt werden:
Das Installationsscript erkennt, dass das Hauptscript vorhanden ist und kopiert die, von euch am Anfangdes Hauptscripts festgelegten Variablen, in das neue Script, sodass ihr diese nicht erneut anpassen müsst.
Im Anschluss werden die Dienste automatisch wieder gestartet.
Anpassungsmöglichkeiten:
Hauptscript editieren:
Hier können die Variablen am Anfang entsprechend angepasst werden. Empfehlenswerte Anpassungen wären 'mintime', 'maxtime' und 'maxhop'.
Nach der Anpassungen entweder das System neustarten oder den Dienst über folgenden Befehl mit erhöhten Rechten restarten:
Im Anschluss kann im LOG-Verzeichnis
überprüft werden, ob die Verbindungen aufgebaut werden.
Es wird für jeden HOP ein eigenes LOG geschrieben (log.vpnhop'#hop'), das Hauptlog heißt vpnlog_restart.log
Hinweis:
Ich weise ausdrücklich darauf hin, dass jeder für die eigene Firewallkonfiguration selbst Sorge zu tragen hat!
Denn vor, nach, während und zwischen dem Verbindungsaufbau (quasi immer, wenn KEIN Tunnel aufgebaut ist), gehen die Datenpakete im Standardfall über die Standardschnittstelle und das Standardgateway.
Die Systeme unterscheiden sich zu stark, als das man hier eine 'one-size-fits-all'-Lösung bauen könnte.
Ferner weise ich auch noch darauf hin, dass ich die Scripte bisher nur unter Debian testen konnte.
-----------------------------------------------------------------
Schaut es euch bitte an, stellt Fragen, baut es bei Bedarf um... ich versuche auch jederzeit zu helfen, falls die Einrichtung mal nicht klappen sollte.
Ich würde mich sehr freuen, wenn auch jemand vom PP-Support sich die Scripte ansehen könnte.
Keep in mind: Momentan stehe ich noch recht weit am Anfang, was das Scripten unter Linux betrifft. Jedoch habe ich jederzeit mit bestem Wissen und Gewissen -und natürlich auch viel Liebe- die Scripte verfasst. Wenn es in Zukunft Updates geben wird, werde ich diese auch in diesem Thread online stellen.
Also dann, viel Spaß beim betrachten und ausprobieren.
P.S. falls jemand meine Arbeit in Form einer kleinen Spende wertschätzen möchte, würde ich mich riesig darüber freuen. ?
Gerne per PayPal an meine PayPal.me-Adresse: https://www.paypal.me/patricklwl
Danke und Beste Grüße
Patrick
erstmal wünsche ich allen ein gesundes neues Jahr.
Danke an Perfect Privacy für diesen wunderbaren VPN-Dienst, welcher wirklich alle Wünsche erfüllt. Weiter so - die Qualität passt!
Ich möchte euch etwas zur Verfügung stellen, was möglicherweise eher an die 'Geeks' gerichtet ist.
In den letzten Tagen hatte ich mir Gedanken zur Kaskadierung auf Linux-Servern gemacht, welche Headless unterwegs sind. Der Eigenaufwand sollte zwecks Verbindungsaufbau und Überwachung der Verbindung möglichst gering gehalten werden ==> also musste ein Script her!
Nach zahlreichen Stunden, Tests, Optimierungen und Debugging hatte ich eine Konfiguration, welche einfach zu handhaben ist und auch sehr stabil läuft.
-----------------------------------------------------------------
Erläuterung:
Diese Scripte ermöglichen es, anhand einer frei wählbaren Anzahl an HOP's (max. 8) und einer zufällig ermittelten Zeitspanne (Angabe einer max- und mintime in den Variablen vorausgesetzt), eine automatische Kaskadierung per openVPN-Configs durchzuführen. Die mitgelieferten Dienste sorgen dafür, dass die Scripte bei jedem Systemstart sofort abgearbeitet werden. Auch wenn die Scripte oder Dienste unerwartet beendet werden, starten diese sofort neu und bauen im Anschluss erneut die Kaskade auf.
Es werden für jede neue Verbindung zufällig die Server (openVPN-Configs) gewählt. Es muss also nicht angegeben werden, welche Server benutzt werden sollen. Wenn man nur eine bestimmte Auswahl an Server nutzen möchte, müssen diese lediglich aus dem Verzeichnis entfernt werden, welches durch das Script durchsucht wird (initial /etc/openvpn/connections/)
Beschaffungsmöglichkeiten:
Github: https://github.com/PrivateMemberPP/PP_openVPN_cascade
- Über das Github-Repository könnt ihr euch die Files im Klartext anschauen
- die wichtigesten Befehle sind auch auf der Github-Repository-Seite vermerkt
automatische Installation:
Bash:
sudo bash -c "$(wget -qO - https://raw.githubusercontent.com/PrivateMemberPP/PP_openVPN_cascade/master/install_ovpn_cascading.sh)"
Durch den o.g. Befehl wird die Installation vollständig automatisch durchgeführt. Es werden die notwendigen Pakete auf vorhandensein überprüft und im Bedarfsfall nachinstalliert. Im Anschluss werden die Skripte und Service-Dateien heruntergeladen, an die korrekten Stellen verschoben und ausführbar gemacht.
Im letzten Schritt wird noch aufgeräumt.
Wenn das Script im Terminal durchgelaufen ist, unbedingt die abschließenden Schritte durchlesen und ausführen!
Das Installationsscript schreibt den Output auch in eine Datei!
Bash:
less /var/log/install_ovpn_cascade.log
Update der Scripte
Falls ich ein Update poste, muss lediglich wieder der Befehl zur Installation ausgeführt werden:
Bash:
sudo bash -c "$(wget -qO - https://raw.githubusercontent.com/PrivateMemberPP/PP_openVPN_cascade/master/install_ovpn_cascading.sh)"
Das Installationsscript erkennt, dass das Hauptscript vorhanden ist und kopiert die, von euch am Anfangdes Hauptscripts festgelegten Variablen, in das neue Script, sodass ihr diese nicht erneut anpassen müsst.
Im Anschluss werden die Dienste automatisch wieder gestartet.
Anpassungsmöglichkeiten:
Hauptscript editieren:
Bash:
sudo nano /etc/systemd/system/openvpn_service_restart_cascading.sh
Hier können die Variablen am Anfang entsprechend angepasst werden. Empfehlenswerte Anpassungen wären 'mintime', 'maxtime' und 'maxhop'.
Nach der Anpassungen entweder das System neustarten oder den Dienst über folgenden Befehl mit erhöhten Rechten restarten:
Bash:
sudo systemctl restart openvpn-restart-cascading.service
Im Anschluss kann im LOG-Verzeichnis
Bash:
cd /var/log/ovpn_reconnect/
Es wird für jeden HOP ein eigenes LOG geschrieben (log.vpnhop'#hop'), das Hauptlog heißt vpnlog_restart.log
Hinweis:
Ich weise ausdrücklich darauf hin, dass jeder für die eigene Firewallkonfiguration selbst Sorge zu tragen hat!
Denn vor, nach, während und zwischen dem Verbindungsaufbau (quasi immer, wenn KEIN Tunnel aufgebaut ist), gehen die Datenpakete im Standardfall über die Standardschnittstelle und das Standardgateway.
Die Systeme unterscheiden sich zu stark, als das man hier eine 'one-size-fits-all'-Lösung bauen könnte.
Ferner weise ich auch noch darauf hin, dass ich die Scripte bisher nur unter Debian testen konnte.
-----------------------------------------------------------------
Schaut es euch bitte an, stellt Fragen, baut es bei Bedarf um... ich versuche auch jederzeit zu helfen, falls die Einrichtung mal nicht klappen sollte.
Ich würde mich sehr freuen, wenn auch jemand vom PP-Support sich die Scripte ansehen könnte.
Keep in mind: Momentan stehe ich noch recht weit am Anfang, was das Scripten unter Linux betrifft. Jedoch habe ich jederzeit mit bestem Wissen und Gewissen -und natürlich auch viel Liebe- die Scripte verfasst. Wenn es in Zukunft Updates geben wird, werde ich diese auch in diesem Thread online stellen.
Also dann, viel Spaß beim betrachten und ausprobieren.
P.S. falls jemand meine Arbeit in Form einer kleinen Spende wertschätzen möchte, würde ich mich riesig darüber freuen. ?
Gerne per PayPal an meine PayPal.me-Adresse: https://www.paypal.me/patricklwl
Danke und Beste Grüße
Patrick
Last edited: