Raspberry Pi als VPN-Server mit WireGuard

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:

  1. Raspberry Pi OS Lite installieren auf der SD-Karte (mit Raspberry Pi Imager)
  2. SSH aktivieren und Raspberry Pi starten
  3. Pi OS aktualisieren
  4. PiVPN installieren und WireGuard konfigurieren
  5. WireGuard Client-Konfiguration erstellen
  6. Portforwarding auf Router einrichten
  7. VPN-Client installieren und testen

Nützliche Links:

WireGuard Webseite

PiVPN Webseite

WinSCP

Raspberry Pi Webseite

Raspberry Pi Imager

Raspberry Pi – mit PiVPN WireGuard Clients verwalten

Neuer Client erstellen

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.

> pivpn -qr

Nützliche Links

WireGuard

Raspberry Pi als VPN-Server mit WireGuard

Raspberry Pi – PiVPN installieren und WireGuard konfigurieren

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.

Nützliche Links

Raspberry Pi als VPN-Server mit WireGuard

Raspberry Pi OS Lite installieren mit dem Raspberry Pi Imager

Raspberry Pi – SSH aktivieren

Raspberry Pi – Betriebsystem updaten / aktualisieren

Raspberry Pi – Betriebsystem updaten / aktualisieren

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.

Nützliche Links

SSH aktivieren

Raspberry Pi aktualisieren

Raspberry Pi – SSH aktivieren

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.

  1. Boot-Partition öffnen
  2. 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.

Warnmeldung nach dem Anmelden mit einem SSH-Client

Nützliche Links

raspberrypi.org: SSH (Secure Shell)

Raspberry Pi: SSH einschalten / aktivieren

Putty download

Raspberry Pi: Passwort ändern

Raspberry Pi OS Lite installieren mit dem Raspberry Pi Imager

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.

Raspberry Pi Imager

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.

Video zum Thema

raspberrypi.org: Using the Raspberry Pi Imager. Watch our 40-second video

Nützliche Links:

Raspberry Pi Imager

Logik IC’s Sammelsurium (74xx Serie)

Übersicht Logikfamilien

TypBeschreibungTechnologieV
74Standard 7400 SerieTTL4.75 – 5.25
74LLow-PowerTTL4.75 – 5.25
74LSLow-Power SchottkyTTL4.75 – 5.25
74ALSAdvanced Low-Power SchottkyTTL4.5 – 5.5
74CCMOS 4000-Serie KompatibleCMOS4 – 15
74HCHigh-Speed CMOSCMOS2 – 6
74HCTHigh-Speed CMOS TTL Levels (1) (2)CMOS
(TTL Kompatible)
4.75 – 5.25
74ACAdvanced CMOSCMOS2 -6
74ACTAdvanced CMOS TTL Levels (1)CMOS
(TTL Kompatible)
4.5 – 5.5
(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ürzelBeschreibung
TTLDie 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
CMOSComplementary 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

SN74HC02N
Hersteller-PräfixTemperaturbereich-PräfixTypLogigfunktionPackung
Beispiel der Namensgebug für einen SN74HC02N (Quad 2-Input NOR Gate)

PräfixHersteller
AMAMD
HDHitachi
MCMotorola
PCPhilips
MSTMicroelectronics
DM, MM, FNational Semiconductor
USignetics
SNTexas Instruments
SPSPI
TCThosiba
Hersteller-Präfix

PräfixTemperaturbereichAnwendungszweck
740°C bis +70°Ckommerziel
84-40°C bis +85°Cindustriell
54-55°C bis +125°Cmilitärisch
Temperatur-Präfix

LogigfunktionBeschreibung
00Quad NAND Gate
02Quad NOR Gate
08Quad AND Gate
32Quad OR Gate
86Quad XOR Gate
04Hex Inverter
1324 NAND Schmitt Trigger Gatter mit je 2 Eingängen
1614-Bit Synchronous Binary Counter
1658-Bit Parallel -Load Shift Register (PISO)
5958-Bit Serial-Input/Serial or Parallel-Output Shift Register (SISO / SIPO)
Logigfunktion

PackungWärmewiderstand des IC-Gehäuses (1)
D73°C/W
DB82°C/W
N67°C/W
NS64°C/W
PW108°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.

Pinbelegungen

Pin xA & xB sind die Inputpins, Pin xY ist der dazugehörige Outputpin. Gültig für x400, x402, x408, x432, x486

Datasheets 74x

Interessante Videos

Interessantes Video zur Verwendung von “Digital Logic IC’s” von DroneBot Workshop
Interessantes Video zur Verwendung von “Shift Registers” von DroneBot Workshop
Deutsches Video zum Schieberegister 74xx595

Nützliche Links

Wikipedia: Logikfamilie

Wikipedia: 74xx

dieelektronikerseite.de: Elektronische Grundlagen – viele Beispiele in den Lehrgängen zum Thema Digitaltechnik

7400 series CMOS vs 4000 series logic IC

Wikipedia: 4000 Serie IC’s

Wikipedia: List of 4000-series integrated circuits

Porterweiterung mit SPI

.NET 5.0 (Linux, macOS, and Windows)

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:

Introducing .NET 5 (06. Mai 2019)

Introducing .NET 5

Announcing .NET 5.0 (10. November 2020)

Announcing .NET 5.0

.NET 5 verfügbar für Windows, macOS und Linux. Für x86, x64, Arm32, Arm64

.NET Conf 2020 – Keynote (12. November 2020)

.NET Conf 2020 – Das .NET Ökosystem

.NET ecosystem momentum – aus dem Video

Nützliche Links:

What’s new in .NET 5

.NET 5 Herunterladen

Free .NET Architecture Guides

.NET Channel on YouTube

.NET Foundation on YouTube

Visual Studio

Visual Studio Community

Eine Saunasteuerung von Johnny Hooyberghs – MijnSauna: .NET 5 (Docker, Webservice, Raspberry Pi)

Elektronik: BJT Transistor Sammelsurium

Transistorauswahl

Bei der Wahl eines Transistors sind folgende Werte besonders interessant:

  • Der Kollektorstrom, der Strom welcher die zu schaltende Last durch fliesst.
  • Der Basisstrom, der Strom welcher durch die Basis fliesst, mit dem der Transistor geschaltet wird.

Wichtig:

  • Der Transistor sollte mindestens für den doppelten Kollektorstrom ausgelegt sein.
  • Steuerspannung der Basis-Emitter Strecke des Transistors
    • 0,3 V Germanium Transistoren
    • 0,6 – 0,7 V Sizilium Transistoren
    • 1,4 V  bei Darlington Transistor
  • Stromverstärkung in Sättigung (DC current gain)
    • Im Datenblatt nachschlagen \(h_{feSAT}\) (Saturation = Sättigung)
    • Bei Kleinsignaltransistoren von 20- 50
    • Bei Kleinleistungstransistoren von 400-2500

\(I_{b} = \frac{I_{c}}{h_{fe}}\)
\(I_{b}\) = Basisstrom
\(I_{c}\) = Kollektorstrom (Last-Strom)
\(h_{fe}\) = Stromverstärkung

\(R_{b} = \frac{U_{b} – U_{be} }{I_{b}}\)
\(R_{b}\) = Basiswiderstand
\(U_{b}\) = Betriebsspannung
\(U_{be}\) = Basis-Emitter-Spannung
\(I_{b}\) = Basisstrom

Nützliche Links
mikrocontroller.net: Berechnung eines Basiswiderstandes
elektronik-kompendium.de: Arbeitspunkteinstellung
c-kolb.bplaced.net: NPN oder PNP
wikipedia.org: Transistorgrundschaltungen
wikipedia.org: Bipolartransistor (BJT)
homepages.uni-regensburg.de: kleine Transistorkunde
www.loetstelle.net: kleine Transistor Grundlagen

Musiktheorie Sammelsurium: Tonleiter

Tonleiter:

Klaviatur über zwei Oktaven
Klaviatur über zwei Oktaven

  • Stammtöne (7. Ganztonschritte): C, D, E, F, G, A, H
  • 7. Ganztonschritte + 5. Halbtonschritte = 12 Töne
  • Der Grundton H wird oft noch als B bezeichnet. Das verminderte H (b) wird dabei “B-Flat” genannt. Wikipedia: H Grundton
  • Stammtöne können um einen Halbton erhöht werden mit ♯: (Cis, Dis, Eis, Fis, Gis, Ais, His)
  • Stammtöne können um einen Halbton erniedrigt werden mit ♭: (Ces, Des, Es, Fes, Ges, As, B (nicht Hes))
  • internationale Variante (F♯ statt Fis, D♭ statt Des, usw.)

Dur Tonleiter (Major Scale):

  • Gilt als „hell“, „klar“, „freudig“
  • Besteht aus Tönen mit den Abständen: Ganzton, Ganzton, Halbton, Ganzton, Ganzton, Ganzton, Halbton (TTSTTTS) T = Tone, S = Semitone
  • Pentatonik besteht aus den Tönen: 1, 2, 3, 5, 6 (Bsp. C-Dur: C, D, E, G, A)
  • Paralleltonart in Moll: Grundton-Dur + 5 Ganztonschritte
  • Dominante: Grundton-Dur + 4 Ganztonschritte
  • Subdominante: Grundton-Dur + 3 Ganztonschritte

Dreiklang / Akkord / Harmonie:

  • Gemeinsames erklingen von drei verschiedenen Tönen
  • 1. Ton (Grundton) + 3. Ton + 5. Ton

Dur Dreiklang:

  • Grundton + 4. Halbtonschritte + 3. Halbtonschritte
  • Tonica = Grundakkord

C-Dur Tonart:

  • C, D, E, F, G, A, H, C
  • Paralleltonart: A-Moll
  • Dominante: G-Dur
  • Subdominante: F-Dur

C-Dur Dreiklang:

  • Grundton: C
  • Grundakkord (Tonika): C, E, G

Moll Tonleiter (Minor Scale):

  • Gilt als „dunkel“, „düster“, „traurig“
  • Besteht aus Tönen mit den Abständen: Ganzton, Halbton, Ganzton, Ganzton, Halbton, Ganzton, Ganzton (TSTTSTT)
  • Pentatonik besteht aus den Tönen: 1, 3, 4, 5, 7 (Bsp. C-Moll: C, ES, F, G, H)
  • Paralleltonart in Dur: Grundton-Moll + 5 Ganztonschritte
  • Dominante: Grundton-Moll + 4 Ganztonschritte
  • Subdominante: Grundton-Moll + 3 Ganztonschritte
  • Natürliche Molltonleiter: A, H, C, D, E, F, G, A
  • Harmonische Molltonleiter: A, H, C, D, E, F, Gis, A
  • Natürliche Molltonleiter: A, H, C, D, E, Fis, Gis, A

Moll Dreiklang:

  • Grundton + 3. Halbtonschritte + 4. Halbtonschritte
  • Tonica = Grundakkord

C-Moll Tonart:

  • C, D, ES, F, G, AS, B, C
  • Paralleltonart: Es-Dur
  • Dominante: G-Dur / g-Moll
  • Subdominante: F-Moll

C-Moll Dreiklang:

  • Grundton: C
  • Grundakkord (Tonika): C, ES, G

Vierklang / Akkord:

  • Gemeinsames erklingen von vier verschiedenen Tönen
  • 1. Ton (Grundton) + 3. Ton + 5. Ton + 7. Ton

Nützliche Links
Videos zum Thema Musiktheorie
Wikipedia: Moll-Tonleiter
Wikipedia: Dur-Tonleiter
Wikipedia: Pentatonik
Wikipedia: Enharmonische Verwechslung