Möchte man unterwegs auf seine privaten Daten im Heimnetzwerk zugreifen oder aber über eine verschlüsselte Verbindung im Internet recherchieren, weil man über einen öffentliches W-LAN verbunden ist, braucht man einen VPN-Server. Mit Hilfe eines VPN-Client wird dann eine sichere und verschlüsselte Verbindung in das eigene Heimnetzwerk hergestellt, egal wo man sich auf der Welt befindet.
Oft hat man die Möglichkeit, einen VPN-Server direkt auf dem eigenen Router zu aktivieren. Bietet der eigene Router, welcher durch den Provider zur Verfügung gestellt wird, keine Möglichkeit, einen VPN-Server zu betreiben, kann man mit einem Raspberry Pi und PiVPN ein einfacher, schneller und sicherer VPN-Server im Heimnetzwerk einrichten.
Welche Hardware braucht es dazu?
Einen Raspberry Pi 3 B+ oder 4
SD-Karte min. 8 GB
Netzteil
Gehäuse
Netzwerkkabel
Ist noch kein Raspberry Pi zu Hause vorhanden, findet man viele Anbieter, welche den Raspberry Pi in einem Bundle anbieten. Das heisst, alle benötigen Komponenten, werden mitgeliefert. Einfach eine Suche nach Raspberry Pi Bundle durchführen.
Welche Software braucht es dazu?
Raspberry Pi OS Lite
PiVPN mit WireGuard
WireGuard für Desktop oder Mobile
Installation
Die Installation führen wir mit folgenden Schritten durch:
Die Client-Konfiguration wird verwendet, um mit einem WireGuard-Client eine VPN-Verbindung herzustellen. Um einen neuen Client zu erstellen, wird folgender Befehl verwendet:
> pivpn add
Client löschen / entfernen
Wird ein Client gelöscht, ist es nicht mehr möglich, sich mit dem VPN-Client zu verbinden.
> pivpn remove
Alle Clients aufliesten
Auflistung aller vorhandenen Clients-Konfigurationen.
> pivpn list
Alle Clients mit Verbindungsstatus anzeigen
Auflistung aller aktiven Clients.
> pivpn clients
QR-Code einer Client-Konfiguration erstellen
Durch das erstellen des QR-Codes kann auf einfache Weise die Client-Konfiguration auf ein Mobilephone übertragen werden. Voraussetzung ist die installierte WireGuard App.
Mit dem Installations-Skript PiVPN können wir auf einfache Weise einen VPN-Server installieren und konfigurieren. Dazu wird folgender Befehl in der Raspberry Pi Konsole eingegeben:
Damit wird das Skript heruntergeladen und ausgeführt:
Wir klicken uns durch das Set-up-Menu und geben die benötigten Informationen an. Ist man sich unsicher, welche Auswahl getroffen werden soll, kann man ohne Probleme die Standardeinstellungen verwenden. Braucht man spezielle Einstellungen, wird man diese meistens kennen.
Als VPN wird WireGuard ausgewählt und mit „ok“ bestätigt. Das Installaltions-Skript führt nun die benötigten Schritte aus und installiert die nötigten Komponenten.
Nun gibt es die Möglichkeit, den Standardport zu ändern oder dieser zu belassen.
Als Nächstes definieren wir den gewünschten DNS-Provider. Brauchen wir keine speziellen Einstellungen, kann das Quad9 DNS-Netzwerk genutzt werden.
Haben wir eine öffentliche fixe IP-Adresse, können wir „Use this public IP“ auswählen. Ist keine vorhanden, müssen wir dies über eine Dynamische DNS Konfiguration lösen. Hilfe zur Konfiguration finden wir über eine Suchmaschine.
Als Nächstes können wir das automatische Installieren von Updates aktivieren. Damit dies auch korrekt funktioniert, muss jedoch der Raspberry Pi zwischendurch neu gestartet werden.
Nach diesem Schritt werden nun noch die „Server-Keys“ generiert. Konnten die Server-Schlüssel generiert werden, ist es an der Zeit, den Raspberry Pi neu zu starten. Danach ist die Installation fertiggestellt.
Um das Raspberry Pi OS zu aktualisieren, verbinden wir uns mit dem SSH-Client Putty:
Zuerst müssen die Paketinformationen aktualisiert werden:
> sudo apt-get update
Nun können die vorhandenen Updates installiert werden:
> sudo apt-get full-upgrade
Die Installation noch mit Y bestätigen.
Wurde die Installation vollständig durchgeführt, führen wir beide Befehle nochmals durch, um sicherzustellen, dass keine neuen Updates mehr vorhanden sind.
Die Aktualisierung ist somit abgeschlossen und das Raspberry Pi OS aktuell. Die Aktualisierung sollte regelmässig durchgefürt werden.
Auf einem neu installierten Raspberry Pi, ist aus Sicherheitsgründen der SSH-Zugriff standardmässig deaktiviert.
Die einfachste Möglichkeit, SSH auf dem Raspberry Pi zu aktivieren, funktioniert über die Datei ssh in der Boot-Partition.
Dies erledigt man am einfachsten direkt, nach dem man mit dem Raspberry Pi Imager, dass Image auf die SD-Karte installiert hat.
Boot-Partition öffnen
Neue leere Datei mit der Bezeichnung „ssh“ erstellen (Wichtig: ohne Dateiendung)
Nach dem Einsetzen der SD-Karte in den Raspberry Pi funktioniert nun der Zugriff mit einem SSH-Client wie Putty.
Wichtig: Es sollte das Standardpasswort geändert werden, da ansonsten remote via ssh und dem standard Benutzername und Passwort auf den Raspberry Pi zugegriffen werden kann.
Der Raspberry Pi Imager ist ein Hilfsprogramm zum Installieren des Pi OS oder andere Betriebssysteme für den Raspberry Pi auf einer SD-Karte. Hier ein paar Beispiele:
Raspberry Pi OS Desktop oder Lite
LibreELEC
Ubuntu (Desktop, Server, Core)
RetroPi
RecalBox
RISC OS Pi
Nach dem Herunterladen und des Installieren des Imager, kann die Applikation gestartet werden.
Als Nächstes wählen wir das Betriebssystem mit „CHOOSE OS“:
Unter Raspberry Pi OS (other) wählen wir das Raspberry Pi OS Lite (32-bit) Image:
Nun muss noch die SD-Karte ausgewählt werden, auf der das Image installiert werden soll. (CHOOSE SD CARD)
Damit das Image nun auf die SD-Karte geschrieben wird, klicken wir auf den Button „Write“. Achtung, alle Daten auf der SD-Karte werden nun endgültig gelöscht.
Nach dem Bestätigen mit „YES“ wird das Image auf die SD-Karte geschrieben.
Wurde das Kopieren vollständig durchgeführt, kann die SD-Karte nun entfernt werden und im Raspberry Pi in Betrieb genommen werden.
(1) Können als Ersatz für 74LS und 74ALS IC’s verwendet werden (2) Eingänge können mit den Ausgängen von 3.3 V Logik-Bausteine angesteuert werden
Techonologie
Kürzel
Beschreibung
TTL
Die Transistor-Transistor-Logik (TTL) ist eine Schaltungstechnik (Logikfamilie) für logische Schaltungen (Gatter), bei der als aktives Bauelement der Schaltung planare npn-Bipolartransistoren verwendet werden. Wikipedia
CMOS
Complementary metal-oxide-semiconductor (engl.; „komplementärer / sich ergänzender Metall-Oxid-Halbleiter“), Abk. CMOS, ist eine Bezeichnung für Halbleiterbauelemente, bei denen sowohl p-Kanal- als auch n-Kanal-MOSFETs auf einem gemeinsamen Substrat verwendet werden. Wikipedia
Namensgebung
SN
74
HC
02
N
Hersteller-Präfix
Temperaturbereich-Präfix
Typ
Logigfunktion
Packung
Beispiel der Namensgebug für einen SN74HC02N (Quad 2-Input NOR Gate)
Präfix
Hersteller
AM
AMD
HD
Hitachi
MC
Motorola
PC
Philips
M
STMicroelectronics
DM, MM, F
National Semiconductor
U
Signetics
SN
Texas Instruments
SP
SPI
TC
Thosiba
Hersteller-Präfix
Präfix
Temperaturbereich
Anwendungszweck
74
0°C bis +70°C
kommerziel
84
-40°C bis +85°C
industriell
54
-55°C bis +125°C
militärisch
Temperatur-Präfix
Logigfunktion
Beschreibung
00
Quad NAND Gate
02
Quad NOR Gate
08
Quad AND Gate
32
Quad OR Gate
86
Quad XOR Gate
04
Hex Inverter
132
4 NAND Schmitt Trigger Gatter mit je 2 Eingängen
161
4-Bit Synchronous Binary Counter
165
8-Bit Parallel -Load Shift Register (PISO)
595
8-Bit Serial-Input/Serial or Parallel-Output Shift Register (SISO / SIPO)
Logigfunktion
Packung
Wärmewiderstand des IC-Gehäuses (1)
D
73°C/W
DB
82°C/W
N
67°C/W
NS
64°C/W
PW
108°C/W
(1) Der Wärmewiderstand eines IC-Gehäuses (Package thermal impedance) ist das Mass für die Fähigkeit des Gehäuses, die vom IC (Chip) erzeugte Wärme auf die Leiterplatte oder die Umgebung zu übertragen.
Ich beschäftige mich schon eine ganze Weile mit dem .NET Framework und .NET Core, privat wie auch beruflich. Für Projekte im privaten Bereich wurde .NET für mich erst so richtig interessant, als es dank Mono möglich wurde, Programme auch auf einem Raspberry Pi auszuführen.
Mit der Einführung von .NET Core der Open Source und Cross-Plattform Version von .NET, hat Microsoft mir und einer grossen Community eine spannende Entwicklungsplattform zur Verfügung gestellt.
Was ich besonders an der .NET Plattform schätze, ist wirklich die Idee dahinter. Eine Entwicklungsplattform zur Verfügung zu haben, in der ich praktisch alle benötigten Szenarien bedienen kann. So ist es unteranderem möglich mit nur einer Entwicklungsumgebung, (Visual Studio) Desktopanwendungen, Clouddienste, Webapplikationen, Web-Services und APPS (Android, iOS) zu erstellen. (Aufzählung nicht vollständig)
Wird nun alles mit .NET 5 noch besser? Wir werden sehen, wohin diese spannende und sehr flexible Entwicklungsplattform uns führt. Erste Erfahrungen mit einer .NET 5 Webapplikation konnte ich bereits sammeln. Diese haben wir am 08.12.2020 in Betrieb genommen und sind bis jetzt nicht entäuscht worden.
Hier habe ich nun ein paar interessante Informationen rund um .NET 5 zusammen getragen: