VPN – Beste Schutz in eigene Regie

By | 13. Juni 2020

Sie befinden sich beispielsweise in einem öffentlichen WLAN und wollen Sie eine sichere Verbindung zum Bank Server oder z.B. Firmen Netzwerk aufbauen, dann kommt eine VPN Verbindung im Einsatz. VPN eignet sich besonders zum Absicherung von Smartphone oder ähnlichen Mobilen Geräten.

Wie funktioniert VPN Verbindung.?

VPN ist eine verschlüsselte Verbindung zwischen einem VPN Server und einem VPN * Client. VPN Server ist ein Server Zuhause z.B Raspberry Pi * und VPN Client ist z.B. Ihr Smartphone. VPN Verbindung ist dann so konfiguriert, dass der komplette Internetzugriff verschlüsselt über das Netzwerk (DSL) zu Hause läuft. So sorgen Sie in fremden WLANs für mehr Sicherheit beim Datenübertragung, auch wenn die WLANs ohne Verschlüsselung angeboten werden.

Hardware und Software für VPN Projekt:

  • Raspberry Pi 2 | 3 oder 4 – Einplatinencomputer *, reicht auch wenn so eine RPI vorhanden ist und für andere Zwecke verwendet wird, Smart Home, Webserver, etc.
  • Optional – SD Karte 16 GB *, Netzteil * für RPI und passendes Gehäuse *.
  • Raspbian Buster Lite – Software (kostenlos) für Raspberry Pi
  • WireGuard – VPN Software (kostenlos)
  • Putty – SSH Client (Optional für Windows Benutzer).
  • Etcher – Software Image auf SD Karte schreiben.

Installation von VPN WireGuard Software:

Am Anfang möchte ich erwähnen das VPN Projekt für jeder normalen PC Benutzer geeignet ist. Sie müssen kein Programmierer sein um Projekt zu realisieren.

  • Raspbian Buster Lite (siehe Link oben) herunterladen und entpacken.
  • Mit Hilfe von Etcher Image (Raspbian Buster Lite) auf SD Karte schreiben. Mit Editor (z.B. Notepad++ oder ähnlich) erzeugen eine leere Seite ssh.txt und die auf boot Sektor von SD Karte speichern.
  • SD Karte in Raspberry Pi einstecken, verbinden mit LAN Kabel und Router bzw. Switch. RPI versorgen mit Strom und ein paar Minuten abwarten.
  • Mit Browser Router verbinden (z.B. Fritzbox – http://fritz.box – siehe Bild) und Raspberry Pi IP Adresse ermitteln, geht auch mit Angry IP Scanner.
  • Raspberry Pi soll eine feste IP Adresse bekommen. (z.B. Fritzbox – Bild unten).
  • Portweiterleitung 51820 für WireGuard müssen wir auch einrichten. (Bild unten, bezogen auf Fritzbox Router).
  • Putty (Windows Benutzer) oder Terminal (Linux Benutzer) starten, Raspberry IP Adresse eintragen, Port 22 auswählen, Benutzer: pi, Passwort: raspberry und verbinden mit Raspberry Pi.
  • Danach mit “sudo raspi-config” Raspberry Pi Konfiguration öffnen.
  • Menu Punkt 1. – Password ändern .
  • Menu Punkt 2. – WLAN Konfiguration (nur geeignet für RPI3 und RPI4, oder Sie verwenden externes USB WLAN Stick).
  • Menu Punkt 4. – Sprache auf Deutsch (de_DE UTF-8) bzw. Time Zone auf (Berlin) ändern.
  • Menu Punkt 7. – Ganze Speicher von SD Karte für Raspberry Pi freigeben.
  • Menu Punkt 8. – Update von System.
  • Danach neustarten und mit Putty (Terminal) neu verbinden mit Raspberry Pi.

WireGuard VPN Software installieren:

  • Zuerst mit “sudo su” root Rechte übernehmen und dann weiter mit Code unten:
$ apt-get update
$ apt-get upgrade 
$ apt-get install raspberrypi-kernel-headers
$ echo "deb http://deb.debian.org/debian/ unstable main" | tee --append /etc/apt/sources.list.d/unstable.list
$ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC
$ printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' | tee --append /etc/apt/preferences.d/limit-unstable
$ apt-get update
$ apt-get install wireguard 
$ reboot

WireGuard ist installiert, Raspberry Pi startet neu, wieder mit Putty bzw. Terminal mit RPI verbinden und IPv4 forwarding (Portweiterleitung) einschalten.

$ sudo nano /etc/sysctl.conf

Zeile (siehe Bild oben) auskommentieren und danach mit Strg + X speichern. Raspberry Pi mit “sudo reboot” neu starten. Jetzt müssen wir Server und Client keys generieren. Mit “cd /etc/wireguard” wechseln wir in WireGuard Konfigurationsverzeichnis.

$ sudo su
$ unmask 077 ### Berechtigung für alle Dateien. ###
#### Server key generieren ####
$ $ wg genkey | tee server-private.key | wg pubkey > server-public.key
#### Client key generieren (für jeder Client einzeln) ####
$ wg genkey | tee client1-private.key | wg pubkey > client1-public.key
$ wg genkey | tee client2-private.key | wg pubkey > client2-public.key
$ ls -la ### Prüfen wir Server und Client keys Erstellung.

Durch Server key Generierungsprozess wird die Datei wg0.conf erstellt (siehe Bild oben) und die ist neue VPN Schnittstelle. Da müssen Sie noch der Name von Netzwerkschnittstelle angepassen (siehe Bild unten). Bei mir ist es eth0, RPI ist mit LAN Kabel verbunden. Wenn Sie WLAN Verbindung für RPI benutzen, dann mit “ip addr” finden Sie Name von WLAN Schnittstelle heraus. Datei wg0.conf mit Befehl “nano /etc/wireguard/wg0.conf” bearbeiten.

Client Konfiguration bearbeiten:

$ nano /etc/wireguard/client1.conf
  • Address – Hier können Sie so belassen wie oben. Für weiteren Client (client2.conf) einfach letzte Ziffer um 1 erhöhen.
  • DNS – Ihr Router ist vermutlich auch DNS Server, kann man auch Google öffentliche DNS Server mit IP 8.8.8.8 verwenden.
  • EndpointDynDNS, wenn Sie keine statische IP Adresse besitzen, zuerst müssen wir ein einrichten.
  • AllowedIPs – Beziehen wir ganze Heimnetzwerk ein (192.168. …. /24).

Dynamisches DNS einrichten:

Sind sehr viele Anbieter auf dem Markt, hier finden Sie eine Liste mit DynDNS Anbieter. Anbieter auswählen und Dienst einrichten, danach Router (Fritzbox unter Internet | Freigaben | DynDNS) mit Daten (DynDNS Server || DynDNS Adresse || Passwort) futtern um Aktualisierung von DynDNS im Gang zu setzen.

Besitzer von Fritzbox Router brauchen solche Dienst nicht weil DynDNS wird von Hersteller AVM unter myfritz.net angeboten. Wie Sie Dienst kostenlos in Anspruch nehmen und einrichten können Sie hier nachlesen. Ihre MyFritz DynDNS Adresse lautet dann: xxxxxxxx.myfritz.net – vergessen Sie nicht die noch in jede client.conf unter Endpoints eintragen.

WireGuard als Systemdienst einrichten.

$ systemctl enable wg-quick@wg0

Die Einstellungen für Apps (Android || IOS) können mittels QR-Code schnell erfolgen. Auf dem RPI Server wird ein QR-Code für den Client erstellt und dafür brauchen wir noch Software für QR Code Erstellung.

$ apt install -y qrencode
#### QR Code für ClientX erstellen ####
$ qrencode -t ansiutf8 < clientX.conf #### X= 1,2,3 ...

So haben wir bis zum Ende geschafft, wer will sich noch mehr intensiv mit dem Thema beschäftigen kann hier noch weitere Informationen bekommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.