Neuigkeiten:

Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jolichter:tchncs.de

Hauptmenü

Neueste Beiträge

#11
LINUX / Lautloser Linux PC - Leistungs...
Letzter Beitrag von Jo - 2023-03-12 | 00:06:28
Stand: 2023-April

Wichtig: Ich teile meine Erfahrungen mit dem PC freiwillig und ohne jegliche finanzielle Anreize oder Unterstützung.

Ich führe hier keinen PC-Leistungstest durch. Mein Linux Manjaro Desktop ist für mich schnell und äußerst zuverlässig. Er eignet sich hervorragend für die Bearbeitung von Office-Dokumenten sowie von Bildern und Videos. Darüber hinaus ist es problemlos möglich, mehrere virtuelle Maschinen gleichzeitig auszuführen und auch der Simulator "Universe Sandbox" unter Steam läuft. Es ist problemlos möglich, Entwicklungsumgebungen wie Python, Gambas oder die Testung von CMS-Webseiten auf einem eigenen Apache-Server durchzuführen.

Für diejenigen, die nach einem leistungsstarken und geräuschlosen Linux-PC suchen, könnte der Kenko Mini H155S PC von Silentmaxx eine Überlegung wert sein. Bitte berücksichtigt, dass dieser PC aufgrund des fehlenden Luftstroms und der dedizierten Grafikkarte für anspruchsvolle Spiele nicht geeignet ist. Es ist wichtig zu bedenken, dass bei Verwendung eines lüfterlosen Systems ein Wärmestau auftreten kann, insbesondere bei intensiver Nutzung. Jedoch sollte die Temperatur im akzeptablen Bereich bleiben. Das ist der einzige Kritikpunkt, den ich an diesem System habe, aber es überrascht mich nicht wirklich. Silentmaxx bietet auch PCs mit Lüftern an, aber ich habe persönlich keine Erfahrung damit.


Wenn elektronische Geräte wie z.B. PC Hardware oder Netzteile zu warm werden, kann dies zu einer verringerten Haltbarkeit und Leistungsfähigkeit führen. Es ist daher wichtig, sicherzustellen, dass die Geräte angemessen gekühlt werden, um ihre optimale Leistung und Haltbarkeit zu erhalten. Die Firma Silentmaxx strebt offenbar einen Kompromiss zwischen leiser Kühlung und hoher Leistungsfähigkeit von elektronischen Geräten an.

Meiner Meinung nach ist die Kühlung dieses PCs nicht besonders gelungen. Jedoch konnte ich mit einer einfachen Änderung eine angemessene Kühlung für eine optimale Leistung erreichen, indem ich die NVMe-SSD extern betreibe und damit die Wärmeableitung verbessere.

Details:

Silentmaxx wirbt mit dem von mir gekauften Kenko Mini H155S PC ohne Lüfter als lautlos und hält sein Versprechen. Der Kundenservice ist ausgezeichnet und konnte bei Problemen helfen. Allerdings hat die Nutzung des PCs ohne Lüfter bei mir zu einem erhöhten Wärmestau geführt, insbesondere bei der PCIe NVMe-SSD Samsung 990 Pro (Firmware 1B2QJXD7 | Update 2023-Mai.: 3B2QJXD7). Während des normalen Betriebs erreichte die Temperatur meines Systems über 70 Grad Celsius, was mehrere 'Warning Temperature Time'-Meldungen im S.M.A.R.T.-Bericht auslöste. Mit einem kleinen Lüfter konnte ich die Temperatur um 10 Grad senken, allerdings möchte ich einen lüfterlosen PC nutzen. Letztendlich habe ich die SSD extern per Thunderbolt 3/4 angeschlossen, was zu einer deutlichen Reduktion der Temperatur auf unter 40 Grad Celsius führte, natürlich ohne Lüfter.

Darum empfehle ich diesen PC nur erfahrenen Nutzern, die wissen, wie man solch eine SSD auch extern betreiben kann

Vielleicht könnte Silentmaxx zukünftig überlegen, Lösungen anzubieten, um die SSD-Temperatur besser in den Griff zu bekommen. Eine Möglichkeit wäre beispielsweise ein anderes Main-Board mit besserer passiver PCIe Kühlung oder optional eine externe SSD per USB4 anzubieten. Insgesamt würde ich daher dem PC von Silentmaxx eine Note 2.5 geben, vor allem aufgrund des exzellenten Kundenservices.



Optimierungstipps für die Nutzung unter Linux

Um den Intel Core i7-13700T (Generation 13) PC unter Linux, in meinem Fall Manjaro KDE mit LTS Kernel 6.1.x problemlos starten zu können, musste ich die Intel Turbo Boost-Technologie deaktivieren. Linux unterstützt normalerweise diese Boost-Technologie. Es ist jedoch möglich, dass es Kompatibilitätsprobleme zwischen dem BIOS und des Linux-Kernels gibt. Hoffe das ein neuer Kernel und/oder Bios Update das Problem beheben kann.

Dies sind die Anpassungen, die ich im BIOS vorgenommen habe, um Linux von einer externen USB4-SSD zu booten und auch virtuelle Maschinen nutzen zu können:
  • BIOS -> Advanced -> CPU Configuration: "Intel Virtualization Technology" auf "Enabled"
  • BIOS -> Advanced -> Intel (R) Thunderbold: "Thunderbold Boot Support" auf "Enabled" (und Windows 10 Support -> aus)
  • BIOS -> OC Tweaker -> CPU Configuration: "Intel Turbo Boost Technology" auf "Disabled" (sonst schaltet das System beim Booten von Linux aus, getestet mit LTS Kernel 6.1.x und Kernel 6.2.x)
  • BIOS -> Load Intel base power limit (setzt die Leistungsgrenzen für die CPU auf die von Intel vorgeschlagenen Grenzen)

Für die Installation von Linux Manjaro auf meiner SSD habe ich die UEFI-GPT-Methode verwendet (die Optionen "Secure Boot" und "Fast Boot" im BIOS sind deaktiviert):
  • 100MB fat32 -> /boot/efi (flag: boot)
  • 60GB btrfs -> / (flag: root)
  • den Rest btrfs -> /home


Ich habe meine Festplatte nicht vollständig verschlüsselt, da ich der Meinung bin, dass dies nur einen begrenzten Schutz bietet (da alles entschlüsselt ist, sobald man sich angemeldet hat). Stattdessen habe ich wichtige Ordner mithilfe von CryFAS oder gocryptfs verschlüsselt. Diese können bei Bedarf entschlüsselt werden und bieten somit eine höhere Sicherheit für sensible Daten.

Bei Verwendung des ASRock Z690 Phantom Gaming-ITX/TB4 DDR5 Mini ITX Mainboards kann die Kombination aus PCIe-NVMe-SSD und lüfterloser CPU zu gegenseitiger Erwärmung führen, da sich die beiden Komponenten aufheizen:



In diesem Fall hat die Verwendung eines weiteren Kühlkörpers kaum oder gar keine Verbesserung gebracht:



Um das Temperaturproblem zu lösen, habe ich die NVMe-SSD extern per Thunderbolt 3/4 (ORICO NVME-Gehäuse für USB4) angeschlossen. Dadurch konnte ich die Temperatur deutlich unter 40 Grad Celsius reduzieren.



Wer dieses Gehäuse oder Ähnliches verwenden möchte, sollte darauf achten, dass es Chipsätze für USB 3.2 (10 Gbps) und Thunderbolt 3 (40 Gbps) enthält. Der alleinige USB-C-Anschluss gibt darüber keine Auskunft.

USB 3.2 und USB 4.0 nutzen unterschiedliche Protokolle um auf die NVMe-SSD zuzugreifen. Unter USB 3.2 wird die NVMe-SSD als Blockgerät mit einer generischen Blockgerätedatei, wie "/dev/sda", eingehängt. Dies liegt daran, dass USB 3.2 das SCSI-Protokoll verwendet, um auf das Laufwerk zuzugreifen, und SCSI-Geräte werden normalerweise als Blockgeräte bezeichnet.

Unter USB 4.0 wird die NVMe-SSD dagegen als NVMe-Gerät eingehängt und als "/dev/nvme0n1" bezeichnet. USB 4.0 verwendet das NVMe-Protokoll, das speziell für schnelle Speichergeräte wie NVMe-SSDs entwickelt wurde. Im Gegensatz zu Blockgeräten, die über das SCSI-Protokoll kommunizieren, werden NVMe-Geräte als NVMe-Controller und NVMe-Namespace bezeichnet.

Fazit: Mit USB 4.0 verhält sich eine NVMe-SSD ähnlich wie eine interne NVMe-SSD, die an einen M.2 PCIe-Anschluss angeschlossen ist.


:dance:


Hardware-Videobeschleunigung

Der Intel Media Driver bietet eine optimierte Unterstützung für die Hardwarebeschleunigung von Medienanwendungen auf Intel-Grafikprozessoren und macht z.B. auf diesem System mit einer Intel-CPU der 12. oder 13. Generation und einer integrierten UHD Graphics 770 GPU durchaus Sinn.

Die UHD Graphics 770 ist in der Lage, eine Vielzahl von Hardware-Decodern und -Encodern zu unterstützen, darunter HEVC, VP9, AVC, JPEG und MPEG-2. Der Intel Media Driver bietet eine optimierte Unterstützung für diese Codecs und kann die Wiedergabeleistung verbessern, insbesondere bei höheren Auflösungen und Bitraten.

Installieren des Intel Media Driver:
sudo pacman -S intel-media-driver
Der Treiber wird automatisch von Anwendungen verwendet, die die Hardwarebeschleunigung von Medien unterstützen und auf Intel-Grafikhardware zugreifen. Um die GPU-Auslastung zu überwachen, kann ein Systemüberwachungstool wie "intel_gpu_top" verwendet werden:
sudo pacman -S intel-gpu-tools
Nach der Installation "intel_gpu_top" ausführen:
sudo intel_gpu_top
Das Tool zeigt dann die GPU-Auslastung in Echtzeit an, einschließlich der Anzahl der ausgeführten Render- und Blit-Operationen. Das Tool wird mit der "q"-Taste beendet.
#12
LINUX / TRIM externe SSD mit LUKS
Letzter Beitrag von Jo - 2023-02-17 | 23:36:50
TRIM externe SSD mit und ohne LUKS

Wenn folgende Meldung beim Trim (Beispiel)
sudo fstrim -v /run/media/jo/extSSD-Jo/einer externe SSD erscheint: Verwerfungsvorgang wird nicht unterstützt oder the discard operation is not supported

discard-Fähigkeiten wie TRIM prüfen:
lsblk --discard /run/media/jo/SSD970PRO/
Nur wenn DISC-GRAN und DISC-MAX Werte ungleich Null zeigen, ist die TRIM-Unterstützung an. Bei mir war das Null. Wir können dies leicht umgehen, indem wir eine udev-Regel in '/etc/udev/rules.d' erstellen. Im Terminal suchen wir die externe SSD und ermitteln die VendorID und ProductID des Geräts:
lsusbErgebnis in meinem Fall:
Bus 004 Device 006: ID 142d:0542 JMicron Technology Corp. / JMicron USA Technology Corp. JMS583Gen 2 to PCIe Gen3x2 BridgeDie VendorID ist der erste Teil und der zweite Teil ist die ProductID von "142d:0542".

Erstellen einer udev-Regel:
sudo nano /etc/udev/rules.d/50-usb-ssd-trim.rulesUnd tragen diese Regel ein:
ACTION=="add|change", ATTRS{idVendor}=="142d", ATTRS{idProduct}=="0542", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"Achtet darauf, dass die VendorID und ProductID richtig ist! Speichern und den Editor beenden (STRG & X).

Trim ohne LUKS Verschlüsselung
sudo fstrim -v /run/media/jo/SSD970PRO/
Trim mit LUKS Verschlüsselung, discard prüfen, bei mir ist das sda und ihr seht das LUKS für Trim per cryptsetup entschlüsselt werden muss, obwohl die SDD eingehängt und entschlüsselt ist:

jo@jo-z690 ~]$ lsblk --discard /dev/sda
NAME                                          DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda                                                  0        4K       4G         0
└─sda1                                               0        4K       4G         0
  └─luks-d7ae2f19-8f04-4a53-d1cd-9c70c8af6b42        0        0B       0B         0
[jo@jo-z690 ~]$ sudo cryptsetup --allow-discards --persistent refresh luks-d7ae2f19-8f04-4a53-d1cd-9c70c8af6b42
[sudo] Passwort für jo:
Geben Sie die Passphrase für »/dev/sda1« ein:
Diese Operation wird nur für LUKS2-Geräte unterstützt.
Gerät aktiviert, aber die Schalter können nicht dauerhaft gespeichert werden.
[jo@jo-z690 ~]$ sudo fstrim -v /run/media/jo/SSD970PRO/
/run/media/jo/SSD970PRO/: 643,9 GiB (691382263808 Bytes) getrimmt


PS, wenn ihr die udev-Regel löschen wollt:
sudo rm -R /etc/udev/rules.d/50-usb-ssd-trim.rules

Quelle: Forum Manjaro: How to trim an external ssd

#13
LINUX / Linux und Firmware Updates
Letzter Beitrag von Jo - 2023-02-12 | 23:30:09
Achtung: Auch die Firmware (Bios usw.) des Rechners/Mainboards kann grundsätzlich durch fwupd verändert werden! Das UEFI (Firmware eines Mainboards) kann nur geflasht werden, wenn es nicht im CSM-Mode (Compatibility Support Module) läuft.

Anzeige aller von fwupd erkannten Geräte:
sudo fwupdmgr get-devices
Herunterladen der neuesten Metadaten:
sudo fwupdmgr refreshWir können auch die Option "--force" verwenden, um erneut zu aktualisieren:
sudo fwupdmgr refresh --force
Auflistung der verfügbaren Updates:
sudo fwupdmgr get-updates
Installieren von Updates:
sudo fwupdmgr update
Getestet mit Asrock Z690M ITX und OS Manjaro Kernel 6.1.11 -> UEFI dbx von 211 auf 217 aktualisiert.



Bei Samsung sieht das schlecht aus, deren SSD's werden zwar vom LVFS unterstützt, jedoch werden die Firmware-Updates nicht von Samsung auf das LVFS hochgeladen, siehe dazu auch auf github: No Updates found for Samsung SSD 980 PRO

Danke Samsung :-\

Samsung hatte ein wichtiges Firmware-Fix - gegen den "Read-Only-Bug" - für die SSD 980 Pro (5B2QGXA7) und im Februar 2023 für die SSD 990 Pro (1B2QJXD7) veröffentlicht. Immerhin wird auf deren Seite solche Firmware als Linux ISO angeboten. Eine bootfähige USB konnte ich nur mit UNetbootin erstellen, mit SUSE Studio Imagewriter wird die Boot USB nicht erkannt.

Die Firmware kann auch durch Samsungs Magician Software erfolgen (natürlich nur für Windows), die bei Samsung heruntergeladen werden kann. Diese wird installiert und sucht automatisch nach neuer Firmware für die Samsung-SSDs im System.


Quellen:
wiki.ubuntuusers.de/fwupd
wiki.archlinux.org/title/fwupd

#14
LINUX / Missing Libraries
Letzter Beitrag von Jo - 2022-11-24 | 21:05:51
Beim Öffnen eines Programms per Konsole erscheint z.B. der Fehler:

'cannot open shared object file' oder 'error while loading shared libraries'

Bei meinem AnyDesk war das:

'error while loading shared libraries: libpangox-1.0.so.0'


Lösung

Um nach verfügbaren Paketen zu suchen, können wir den Befehl 'pamac search' verwenden um diese Datei in der Datenbank zu finden:

pamac search --files libpangox-1.0.so.0
Ergebnis:

# /usr/lib/libpangox-1.0.so.0 wird bereitgestellt von pangox-compat
# /usr/lib/libpangox-1.0.so.0.0.0 wird bereitgestellt von pangox-compat


Dann z.B. mit dem Paketmanager oder yay installieren:
yay -S pangox-compat
:bounce:
#15
Allgemein / Piped: YouTube ohne Werbung se...
Letzter Beitrag von Jo - 2022-09-10 | 14:48:00
Piped ist ein freies, quelloffenes alternatives YouTube-Frontend inklusive Werbeblocker und vergleichbar mit Invidious. Mehr ausgezeichnete Gründe listet der Entwickler auf GitHub: Piped.

Der Diensteanbieter adminforge.de, welcher auf Werbung und User-Tracking verzichtet, hostet z.B. den Service auf seiner Seite piped.adminforge.de

Dort könnt ihr die Suchfunktion nutzen oder ein bestimmtes YT-Video im Piped anschauen. Einfach am Ende der URL im Browser "https://piped.adminforge.de/watch?v=" die ID-Nummer des Videos anhängen. Beispiel:

YouTube: https://www.youtube.com/watch?v=rJ4TO4KCR90
Piped: https://piped.adminforge.de/watch?v=rJ4TO4KCR90



Mit dem Firefox Browser Add-on libredirect (Erweiterung) könnt ihr sämtlichen YouTube Traffic in eurem Browser auf eine Piped Instanz umleiten, z.B. "https://piped.adminforge.de" als eigene Instanz (andere habe ich deaktiviert).



Solltet ihr auf die YT-Seite wollen, einfach den LibRedirect Schalter in der Menüleiste ausschalten.

:dance:  :bounce:


#16
LINUX / Ethernet fragt nach dem Login?
Letzter Beitrag von Jo - 2022-05-28 | 03:02:40
Anscheinend kommt diese Meldung bei Manjaro wenn die Seite archlinux.org/check_network_status.txt nicht erreichbar ist (404 - Page Not Found).

Habe die Netzwerkprüfung durch Hinzufügen dieser Datei deaktiviert:
kate /etc/NetworkManager/conf.d/20-connectivity.conf
Zitat[connectivity]
.set.enabled=false


Quelle: ethernet-asking-for-log-in
#17
LINUX / Pi-hole mit Unbound
Letzter Beitrag von Jo - 2022-05-28 | 00:39:02
Pi-hole mit Unbound als zentraler DNS-Server mit Adblocker ohne Filternet

Update 2023-Dezember: Pi-hole mit Unbound und Manjaro
Ich lasse diesen Forum-Thread für Debian 11 (bullseye) stehen. Vieles davon kann auch auf das neue Debian 12 (bookworm) übertragen werden, jedoch müssen möglicherweise einige Anpassungen wegen systemd-Service vorgenommen werden.


Update 2023-April: FRITZ!OS mit DNSv4-Server/DNSv6-Server und Cron-Jobs

Vorwort: Der einfachste Weg einen DNS-Server als Tracking- und Werbeblocker ohne Pi-hole zu nutzen ist wahrscheinlich wie ich hier beschrieben habe. Dabei wird ein externer DNS-Resolver den ihr vertrauen müsst in der FritzBox oder eurem Smartphone eingerichtet.

Der größte Vorteil von Pi-hole ist, dass dieser auf DNS-Ebene für das gesamte Netzwerk Anfragen erst gar nicht lädt und nicht auf Programme (Apps) oder Geräten beschränkt ist. Damit blockt ihr nicht nur Werbebanner oder bösartige Webseiten im Browser, sondern auch viele andere Sachen, z.B. das Senden von Telemetriedaten, IoT-Geräten oder Smart TVs, wenn diese z.B. Nutzungsdaten an den Hersteller senden wollen.

Pi-hole ist eine freie Open Source Software mit der Funktion eines Tracking- und Werbeblockers für das ganze Heimnetzwerk. Eigentlich ist das kein Blocker, denn die Daten werden erst gar nicht geladen! Details und Installationsanleitungen findet ihr reichlich im www (Auswahl siehe unten), hier beschreibe ich meine Anpassungen auf einem Raspi und die Konfiguration in einer FritzBox.

Pi-hole mit Unbound ist schneller, sicherer und frei konfigurierbar. Die Standard Adlist von Pi-hole reicht oft schon aus und eine Whitelist oder Blacklist ist einfach zu konfigurieren, auch mit regulären Ausdrücken (RegEx), wie z.B.: \.zip$ (zip TLD ist eine ziemlich dumme Idee und wird für Phishing missbraucht) oder (^|\.)usercentrics\.eu$ Usercentrics in die Blacklist und nervige EU Cookie Meldungen per JavaScript werden von diesem Dienstanbieter nicht mehr geladen. Es gibt Firmen die solchen Anbieter dank EU dafür Geld bezahlen. Pi-hole funktioniert als DNS-Server und kann daher keine Cookie-Meldung von der gleichen Domain blockieren, dafür nutze ich weiterhin uBlock.

Am Anfang hatte mich die DoT oder DoH Verschlüsselung etwas verwirrt, warum macht Pi-hole das nicht? So wie ich das lese schaut das so aus:
ZitatDer DNS-Traffic besteht aus zwei Teilen, der erste ist zwischen dem Client (Gerät) und DNS-Resolver, der zweite ist zwischen DNS-Resolver und autoritativen Nameservern (Root-Servern, verantwortlich für bestimmte DNS-Zonen). Da die DNS Anfragen im Klartext per UDP erfolgt, selbst wenn die Website HTTPS verwendet, kann der DNS-Traffic mitgelesen oder sogar verändert werden. Immerhin wurden DNS-Protokoll-Erweiterungen wie z.B. DNSSEC, DoT und DoH eingeführt, jedoch kann DoT/DoH nur im ersten Teil genutzt werden (siehe Wiki: Sicherheitserweiterungen). Darum können externe DNS-Resolver den Transport nur zwischen dem Client und dem öffentlichen Resolver per DNS-Verschlüsselung schützen und prüfen die Daten von den autoritativen Nameservern per DNSSEC auf ihre Korrektheit (DNS Antworten werden signiert). Nur euer Internetprovider (ISP) sieht die DNS Anfragen nicht.

Seltsam, warum gibt es keine echte DNS Ende-zu-Ende-Verschlüsselung?

Eine mögliche Erklärung ist, dass DNS ursprünglich als offenes, leichtgewichtiges und schnelles Protokoll konzipiert wurde, das auf UDP basiert. Die Einführung von Ende-zu-Ende-Verschlüsselung könnte die Komplexität und die Latenz erhöhen, was die Leistungsfähigkeit des DNS-Systems beeinträchtigen könnte.

Ein weiterer Grund ist, dass autoritative DNS-Server häufig öffentlich zugänglich sind und von vielen Clients weltweit genutzt werden. Diese öffentliche Natur macht es schwierig, eine Ende-zu-Ende-Verschlüsselung zu implementieren, ohne die Skalierbarkeit, Effizienz und Offenheit des DNS-Systems zu beeinträchtigen.

Anstatt einen externen DNS-Resolver könnt ihr einen Pi-hole mit Unbound und DNSSEC nutzen, welcher die Daten auch unverschlüsselt direkt an entsprechende Root DNS-Server einmalig sendet. Das Durchlaufen des Netzwerks kann beim ersten Besuch einer Website langsamer sein, da hier rekursiv die Pfade durchlaufen werden, besonders da auch DNSSEC verwendet wird. Nachfolgende Anfragen an Domänen unter derselben TLD werden dank Cache superschnell in weniger als 0,1s abgeschlossen und wichtiger, von ausserhalb kann niemand mehr Anfragen mitlesen. Unbound übernimmt die DNSSEC-Funktion, so dass eine Aktivierung in Pi-hole nicht erforderlich ist und vermeidet dnsmasq-Fehler.



Ich habe Pi OS Lite (zu dem Zeitpunkt Debian 11 Bullseye) auf einem Raspberry mit einer SD-Karte Samsung PRO Endurance wie hier beschrieben installiert (rennt auch problemlos auf dem Gleichen Pi4 mit ioBroker und SSD). Pi-hole installieren:
curl -sSL https://install.pi-hole.net | bashdanach Unbound installieren:
sudo apt install unbound lm-sensorswie Dennis Schröder hier gut beschreibt.
(der lm-sensors ist, damit htop auch die CPU-Temperatur anzeigt)

Da der Zeitserver für DNSSEC sehr wichtig ist, nutze ich den von der FritzBox, z.B.:
sudoedit /etc/systemd/timesyncd.conf
ZitatNTP=192.168.178.1
(oder den Domainnamen: NTP=fritz.box)

Um die SD-Karte etwas zu schonen nutze ich dynamic RAMDisk (tmpfs) auch für System-Logs, diese sind dann nach einem Neustart verloren. Plane ohnehin nicht den Pi oft neu zu starten.
sudoedit /etc/fstab
ZitatPARTUUID=xxxxxxxx-xx  /boot          vfat    defaults,flush    0      2
PARTUUID=xxxxxxxx-xx  /              ext4    defaults,noatime,commit=60  0      1
# dynamic RAMDisk Pi-4GB
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=1000M,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,size=500M,mode=0777 0 0

Long-term database settings (alle 60 anstatt 1 Min und 90 anstatt 365 Tage behalten), diese Zeilen hinzufügen, bzw. anpassen:
sudoedit /etc/pihole/pihole-FTL.conf
ZitatDBINTERVAL=60.0
MAXDBDAYS=90
PRIVACYLEVEL=0
(wenn gewünscht kann die Abfrageprotokollierung mit "PRIVACYLEVEL=3" deaktiviert werden)

Swap habe ich deaktiviert, 4GB reichen für Pi-hole mit Logs im Speicher problemlos, zumindest wenn sonst nichts anderes darauf rennt. Laut Htop benötigt das System nur 115 MB.

Alle 3 - 6 Monate mache ich manuell ein Update (oder nach Bedarf):
sudo apt update && sudo apt upgrade && sudo apt full-upgrade && pihole -up
sudo apt clean && sudo apt autoclean && sudo apt-get -f install && sudo apt clean && sudo apt autoremove --purge
sudo reboot

Wenn Unbound von einem Paketmanager installiert wurde, sollte dieser die Datei 'root.hints' automatisch mit der Abhängigkeit dns-root-data installieren. Die root hints werden dann automatisch vom Paketmanager aktualisiert. Überprüfen ob die Datei vorhanden ist:
ls -l /var/lib/unbound/root.hints
Wenn die Datei vorhanden ist, sollte eine Ausgabe ähnlich dieser erfolgenden:
Zitat-rw-r--r-- 1 root root 3314 18. Mär 13:48 /var/lib/unbound/root.hints

Das bedeutet, dass die 'root.hints'-Datei im Verzeichnis /var/lib/unbound/ vorhanden ist und von Unbound verwendet werden kann.

Ansonsten die 'root.hints'-Datei manuell aktualisieren:
wget https://www.internic.net/domain/named.root -qO- | sudo tee /var/lib/unbound/root.hints
Es ist wichtig, sicherzustellen, dass die Datei von einer vertrauenswürdigen Quelle heruntergeladen wird, um sicherzustellen, dass sie korrekt und unverfälscht ist. Es wird auch empfohlen, die 'root.hints'-Datei regelmäßig zu aktualisieren, um sicherzustellen, dass der DNS-Resolver auf die aktuellsten Informationen zugreifen kann. Eine monatliche Aktualisierung der 'root.hints'-Datei sollte in der Regel ausreichend sein. Wichtig ist allerdings sicherzustellen, dass bei wichtigen Änderungen an den Root-Server-IP-Adressen eine Aktualisierung unverzüglich durchgeführt wird, um sicherzustellen, dass dein DNS-Resolver immer auf dem neuesten Stand ist.

Lösung: Cron-Job einrichten und die 'root.hints'-Datei z.B. alle zwei Wochen aktualisieren:
sudo crontab -e
Füge den folgenden Eintrag am Ende der Datei hinzu (ohne sudo!):
0 0 */14 * * wget -qO /tmp/root.hints https://www.internic.net/domain/named.root && cp /var/lib/unbound/root.hints /var/lib/unbound/root.hints.bak && mv /tmp/root.hints /var/lib/unbound/root.hints && unbound-control reload >/dev/null 2>&1
Dieser Befehl wird die root.hints-Datei alle zwei Wochen um Mitternacht aktualisieren, die alte root.hints-Datei als Backup speichern und anschließend die Unbound-Konfiguration neu laden, um die aktualisierten Root-Hints zu verwenden.

Der Hauptgrund für die Verwendung der 'root'-Crontab ist der 'unbound-control reload'-Befehl, der Root-Berechtigungen erfordert. Das bedeutet, dass die 'root.hints'-Datei und die 'root.hints.bak'-Datei mit Root-Berechtigungen kopiert und verschoben werden. Dies sollte in der Regel kein Problem darstellen, solange Unbound selbst auch mit Root-Berechtigungen läuft (was in den meisten Fällen der Fall ist).

Hier ist, was dieser Befehl macht:

  • Die Datei 'named.root' wird mit 'wget' in das temporäre Verzeichnis '/tmp' heruntergeladen und als 'root.hints' gespeichert.
  • Wenn der Download erfolgreich ist (durch '&&'), wird die vorhandene '/var/lib/unbound/root.hints'-Datei als Backup-Datei in '/var/lib/unbound/root.hints.bak' gespeichert.
  • Anschließend wird die neue 'root.hints'-Datei aus dem temporären Verzeichnis /tmp in das Verzeichnis '/var/lib/unbound' verschoben und ersetzt die alte 'root.hints'-Datei.
  • Zuletzt wird die Unbound-Konfiguration neu geladen, nachdem die root.hints-Datei erfolgreich aktualisiert wurde. Dadurch wird sichergestellt, dass Unbound die neuesten Root-Hints verwendet.

Auf diese Weise wird die 'root.hints'-Datei nur aktualisiert, wenn der Download erfolgreich war, und die alte Datei wird als Backup gespeichert, um im Falle eines Problems wiederhergestellt zu werden.

Stellt sicher, dass unbound-control entsprechend konfiguriert ist, bevor ihr diesen Cron-Job ausführt! Andernfalls könnte der Befehl
sudo unbound-control reloadfehlschlagen, einfach testen, als Ausgabe sollte ein "OK" erscheinen.




DNSSEC-Validierung für eine bestimmte Domain per Terminal testen (benötigt das Paket 'dnsutils'), z.B. dnssec.works:
dig +dnssec +cd dnssec.works"+dnssec" fordert DNSSEC zur Authentifizierung von DNS-Daten an. "+cd" deaktiviert die DNSSEC-Validierung und gibt jede Antwort zurück, auch wenn sie nicht authentifiziert ist. Das Ergebnis sollte die DNS-Antwort für die Domain "dnssec.works" anzeigen, das diese erfolgreich mit DNSSEC signiert wurde (flags: ad):
Zitat...
;; flags: qr rd ra ad cd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
...

DNSSEC-Validierung mit Unbound testen (docs.pi-hole.net/guides/dns/unbound/#test-validation). Beachte jedoch, dass Unbound korrekt konfiguriert sein muss, um DNSSEC zu unterstützen und zu validieren:
dig fail01.dnssec.works @127.0.0.1 -p 5335
dig dnssec.works @127.0.0.1 -p 5335

Der erste Befehl testet die DNSSEC-Validierung mit Unbound, indem eine DNS-Anfrage für die Domain "fail01.dnssec.works" an den lokalen Unbound-DNS-Server gesendet wird, der auf Port 5335 lauscht. Da diese Domain absichtlich fehlerhaft signiert ist, sollte der Befehl einen Statusbericht von SERVFAIL liefern und keine IP-Adresse anzeigen.

Der zweite Befehl testet ebenfalls die DNSSEC-Validierung mit Unbound, indem eine DNS-Anfrage für die Domain "dnssec.works" an den lokalen Unbound-DNS-Server gesendet wird. Wenn Unbound richtig konfiguriert ist und der DNS-Server für die Domain DNSSEC unterstützt, sollte die DNS-Antwort signiert und gültig sein. Die Ausgabe des Befehls enthält auch DNS-Informationen für die Domain, einschließlich DNSSEC-Informationen. Wenn DNSSEC erfolgreich validiert, wird "ad" (authenticated data) in der Antwort angezeigt. Dieser Befehl sollte NOERROR und eine IP-Adresse anzeigen.


FritzBox Einstellungen
getestet mit 7390/7490 Firmware 7.29

Möglichkeit 1
Internet -> Zugangsdaten -> DNS-Server
Hier können zwei DNS-Server eingerichtet werden, z.B.:
  • Bevorzugter DNSv4-Server: 192.168.178.42 (euer Pi-hole)
  • Alternativer DNSv4-Server: 9.9.9.9 (Quad9)
Vorteil: Funktioniert mit VPN Clients und Clients im Gastnetz und als Fallback.
Leider kann es vorkommen, dass trotz Pi-hole die Anfragen über den Alternativen DNS-Server laufen. Wer das nicht will, sollte auf einem Fallback verzichten und die Gleiche IP des Pi-hole dort eintragen.
Nachteil: Im Pi-hole Log seht ihr nur die FritzBox und nicht, welche Clients welche Anfragen stellen.

Möglichkeit 2:
Heimnetz -> Netzwerk -> Netzwerkeinstellungen - IPv4-Einstellungen -> Lokaler DNS-Server: 192.168.178.42 (euer Pi-hole)
Vorteil: Clients im Log anstatt der FritzBox.
Nachteil: Damit ist leider nur ein DNS-Server möglich, also kein Fallback. Wenn der dann weg fällt, haben die Clients keinen DNS-Server mehr. VPN-Login in FritzBox ist natürlich ohne DNS-Server möglich. VPN Clients und Clients im Gastnetz fragen die FritzBox als DNS und nicht das Pi-hole.

Mozilla Firefox
DoH sollte dann im Firefox über die Verbindungs-Einstellungen deaktiviert werden (DNS über HTTPS NICHT aktivieren).



FRITZ!OS mit DNSv4-Server und DNSv6-Server
getestet mit 7490 Firmware 7.50

Das funktioniert genau wie auf docs.pi-hole.net/guides/dns/unbound beschrieben.

Beispiel pi-hole.conf mit forward-zone.
sudo nano /etc/unbound/unbound.conf.d/pi-hole.confserver:
    verbosity: 0

    interface: 127.0.0.1
    port: 5335
    do-ip4: yes
    do-udp: yes
    do-tcp: yes
    do-ip6: yes
    prefer-ip6: yes
    root-hints: "/var/lib/unbound/root.hints"
    harden-glue: yes
    harden-dnssec-stripped: yes
    use-caps-for-id: no
    edns-buffer-size: 1232
    prefetch: yes
    num-threads: 1
    so-rcvbuf: 1m

    private-address: 192.178.0.0/16
    private-address: 169.254.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
    private-address: fd00::/8
    private-address: fe80::/10

    # ADD
    # maximum number of simultaneous DNS requests (default: 150)
    num-queries-per-thread: 300
    #
    # "forward-zone" directs specific domain queries to designated upstream DNS servers
    # Adjust your IP addresses!
    forward-zone:
      name: "fritz.box"
      forward-addr: 192.168.178.1@53

Diese Konfiguration unterstützt sowohl IPv4 als auch IPv6. Unbound wird IPv6 bevorzugen (prefer-ip6: yes), aber auch IPv4 verwenden, falls notwendig. Einige der anderen Optionen in der Konfigurationsdatei stellen sicher, dass Unbound sicher und effizient arbeitet. Zum Beispiel werden private Adressbereiche aus Datenschutzgründen blockiert.

Gut zu wissen: 127.0.0.1 ist derselbe Localhost wie ::1. AAAA-Datensätze funktionieren über IPv4 genauso gut wie über IPv6. Der Client kann Pi-hole nach wie vor über IPv6 befragen. Ob Pi-hole die Anfrage über IPv4 oder IPv6 weiterleitet, ist unerheblich und ein "interface: ::1" nicht notwendig.

Daher wird nur die IPv4-Adresse mit Port des Unbound-DNS-Servers (127.0.0.1#5335) in das Feld "Custom 1 (IPv4)" in den Einstellungen von Pi-hole eingetragen.

"do-ip6: yes" in unbound's Konfiguration steuert, ob unbound IPv6 für das Stellen von DNS- Anfragen an seine Upstream-Servern verwenden soll, und ob unbound über IPv6 eingehende DNS-Anfragen beantwortet.

Optional (# ADD): Wenn die Fehlermeldung "Maximum number of concurrent DNS queries reached (max: 150)" erscheint. Diese Fehlermeldung besagt, dass die maximale Anzahl gleichzeitiger DNS-Abfragen erreicht wurde. Das Standardlimit für gleichzeitige DNS-Abfragen in Unbound beträgt 150. Wenn dieses Limit erreicht ist, werden weitere Anfragen abgelehnt oder verzögert, bis einige der laufenden Anfragen abgeschlossen sind. Um dieses Problem zu beheben, kannst du die maximale Anzahl gleichzeitiger DNS-Abfragen in der Unbound-Konfigurationsdatei erhöhen, z.B. mit "num-queries-per-thread: 300".

Meine FritzBox ist so konfiguriert ist, dass "Nur DNS-Server zuweisen" im Abschnitt "DHCPv6-Server im Heimnetz" verwendet wird, und  im Pi-hole ist "Conditional Forwarding" aktiviert, mit der korrekter IPv4-Adresse der FritzBox sowie dem lokalen Domänennamen "fritz.box", dies sollte IPv6-Hostnamen in Pi-hole angezeigen. Tut es aber nicht! DSL-Router sollten IPv6-Adressen vergeben, entweder über SLAAC oder DHCPv6, abhängig von der Router-Konfiguration und den unterstützten Funktionen. Mein FritzBox-Router unterstützt in den Settings DHCPv6.

Die letzten 3 Zeilen der Unbound-Konfigurationsdatei (forward-zone) wird Unbound angewiesen, DNS-Anfragen für die Domain "fritz.box" an die IP-Adresse 192.168.178.1 auf Port 53 weiterzuleiten. Das bedeutet, dass alle DNS-Anfragen, die sich auf die Domain "fritz.box" beziehen, an den DNS-Server mit der IP-Adresse 192.168.178.1 gesendet werden.

Da Pi-hole als DNS-Filter und Unbound als DNS-Resolver in deinem Netzwerk fungieren und DNS-Anfragen von verschiedenen Geräten empfangen, ist es wichtig, die maximale Anzahl gleichzeitiger Anfragen in beiden Diensten auf denselben Wert einzustellen. Dies hilft, dass beide Dienste reibungslos zusammenarbeiten können. Um DNS-Anfragen effizient zu verarbeiten und möglicherweise die Warnung im Pi-Hole Webinterface "DNSMASQ_WARN - Warning in dnsmasq core: Maximum number of concurrent DNS queries reached (max: 150)" (siehe auch 'sudo less /var/log/pihole.log') zu verhindern, gibt es die Möglichkeit, diesen Wert zu erhöhen. Erstelle zunächst eine neue Datei, z.B.:
sudo nano /etc/dnsmasq.d/custom-dnsmasq.confDadurch wird sichergestellt, dass deine Änderungen nicht durch zukünftige Pi-hole-Updates in der Datei "01-pihole.conf" überschrieben werden. Füge die folgende Einstellung in die neu erstellte Datei ein:
Zitatdns-forward-max=300
Diese Einstellung erhöht die maximale Anzahl gleichzeitiger Anfragen auf 300.

Raspi Static IP Configuration

Dieser Befehl zeigt die IPv6-Adressen aller eth0 Netzwerkschnittstellen an. Wenn stattdessen eine andere Netzwerkschnittstelle verwendet wird, muss die entsprechende Schnittstellenbezeichnung im Befehl ersetzt werden:
ip -6 addr show dev eth0 | grep inet6 | awk '{print $2}'
Dieser Befehl zeigt die IPv4 und IPv6-Adressen aller Netzwerkschnittstellen an:
ip addr show dev eth0 | grep inet | awk '{print $2}'
Diese habe ich im Raspi als statische IP in /etc/dhcpcd.conf eingetragen:
# Example static IP configuration:
interface eth0
static ip_address=192.178.0.42/24
static ip6_address=fd00::2ae4:1fdf:ff25:114e/64
static routers=192.178.0.1
static domain_name_servers=192.178.0.1

IPv4, IPv6 lokal und IPv6 ULA Verbindungen testen, Beispiel:
ping 192.178.0.42
ping -6 fe80::2120:efbd:2138:b314%eth0
ping -6 fd00::2ae4:1fdf:ff25:114e
Bei der lokalen IPv6-Adresse muss das VLAN (Virtual LAN) mit angegeben werden.

Sollte es aus welchen Gründen auch immer nötig sein, die Konfiguration oder die IP-Adresse zu ändern, ist dies am besten über den Befehl zu machen:
pihole -r
Fritzbox

Setzt ein Häkchen bei "Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen" und "Internetnutzung priorisiert" oder wenn ihr ein Zugangsprofi nutzt bei "Internetnutzung nach Zugangsprofil und priorisiert".
Fritzbox DNS-Server mit lokaler IPv6-Adresse einrichten (AVM Link).
Setzt ein Häkchen bei "ULA-Präfix manuell festlegen" und legt das so fest: fd 00 : [leer] : [leer] : [leer] /64
Aktiviere dafür die Option "DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)"

Hier wird der Lokale DNSv6-Server vom Raspi eingegeben, in diesem Beispiel: fe80::2120:efbd:2138:b314


Quellen:

#18
LINUX / Passwortkarte
Letzter Beitrag von Jo - 2022-05-11 | 00:38:48
Wer kein Passwortmanager nutzen will oder kann, für den ist evtl. eine Passwortkarte ein Alternative?
Gefunden auf YT: Passwortkarten und wie man sie mit Python erzeugen kann von Florian Dalwigk.

Hier mein Python Code um eine Passwortkarte als PDF zu erzeugen:
#!/usr/bin/env python
# pwCard V 2022-05-14
#
# Quelle: https://www.youtube.com/watch?v=jMu5olgIuOE (Florian Dalwigk)
#
# benötigt library fpdf2: pip install fpdf2
# fpdf2 info: https://pypi.org/project/fpdf2/
#
# Konsolenaufruf z.B.: python pwCard.py 1
#
import secrets
import sys
import time
from fpdf import FPDF, HTMLMixin

class HTML2PDF(FPDF, HTMLMixin):
    pass

html = HTML2PDF()
html.add_page()
# Core Fonts: courier, times, helvetica
html.set_font('helvetica', size=12)
pdfName = 'pwKarte.pdf'
alphabet = ''

try:
    intArg = int(sys.argv[1])

    if intArg == 1:
        # mit Sonderzeichen (1 = krass | 2 oder höher = normal)
        alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%§$@#~.,_+-:*\|/<>?!()={[]}'
    else:
        alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,+-!?'
except:
    # default (Buchstaben und Zahlen)
    alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

head = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQR', 'STU', 'VWX', 'YZ1', '...']


def random_string():
    return secrets.choice(alphabet) + secrets.choice(alphabet) + secrets.choice(alphabet)

def generate_password_card():
    pc = []
    for row in range(10):
        row = []
        for col in range(10):
            row.append(random_string())
        pc.append(row)
    return pc

def start_pc_table(pc):
    table = ''
    pclen = len(pc)
    for row in range(pclen):
        for col in range(pclen):
            table += pc[row][col]
        if row != pclen - 1:
            table += '\n'
    # print(table)
    return table

def write_pdf():
    timestr = time.strftime("%Y-%m-%d %H:%M:%S")
    table = start_pc_table(generate_password_card())

    pc = []
    for line in table.splitlines():
        # line = line.strip()
        pc.append([line[0 + i:3 + i] for i in range(0, len(line), 3)])
    # print(pc)

    pclen = len(pc)
    width = int(100 / (float(len(head)) + 1.0))

    html_table = '<p><font size="8">Generiert: ' + timestr + '</font></p>\n'
    html_table += '<h2>PASSWORTKARTE</h2>\n<table border="1"><thead>\n<tr>\n'
    html_table += '<th width="' + str(width) + '%"> Reihe </th>\n'
    for th in head:
        html_table += '<th width="' + str(width) + '%">' + th + '</th>\n'
    html_table += '</tr>\n</thead><tbody>'
    i = 1
    for row in range(pclen):
        if i % 2:
            html_table += '<tr bgcolor="#FFFFFF">'
        else:
            html_table += '<tr bgcolor="#DCDCDC">'
        html_table += '<td><b><font color="#123">' + str(i) + '</td></font></b>\n'
        i += 1
        for col in range(pclen):
            html_table += '<td><font color="#123">' + pc[row][col] + '</td></font>\n'
        html_table += '</tr>'
    html_table += '</tbody></table>'
    # print(html_table)
    html.write_html(html_table)
    html.output(pdfName)

write_pdf()
print(f'{pdfName} mit "{alphabet}" erstellt :-)')


Screenshot als Demo, bitte nicht nutzen!

"Test-1" wäre dann: 5AP_RRXG1a#6w)FrTM
(die Spalte XZ1 nutze ich in diesem Beispiel auch für Zahlen)


Eine ausführbare Datei welche aus pwCard.py für Linux erstellt wurde, findet ihr auf meiner GitHub Seite.

Online Passwortkarte der Uni Münster

#19
LINUX / F3 - Fight Flash Fraud
Letzter Beitrag von Jo - 2022-04-09 | 11:07:23
F3 steht für "Fight Flash Fraud" oder "Fight Fake Flash" (Kampf gegen Flash-Betrug)
Achtung: Mit diesem Tool können alle zuvor gespeicherten Daten auf der Festplatte (Stick / SD-Card / SSD) zerstört werden!

Leider tauchen immer wieder gefälschte USB-Sticks, SD-Karten oder SSD's auf, deren manipulierte Controllerchips dem Betriebssystem eine größere Speicherkapazität melden als tatsächlich verbaut ist. Daher bevorzuge ich Markenware und bin bei sehr preisgünstigen Geräten immer entsprechend misstrauisch. Shops die solche Betrugsware nicht zurücknehmen und entsprechend reagieren, z.B. den Händler sperren und anzeigen, sind für mich so oder so gestorben.

F3 ist ein einfaches Tool, das die Kapazität und Leistung von SSD's oder Flash-Karten testet, um zu sehen, ob diese den angegebenen Spezifikationen entsprechen oder ob ihr betrogen wurdet (Fake-Stick / Fake-SSD). Es füllt das Gerät mit pseudozufälligen Daten und prüft dann, ob es beim Lesen die gleichen Daten zurück gibt. Nebeneffekt: Durch die komplette Befüllung per f3write mit Daten, können die zuvor gelöschten Dateien nicht rekonstruiert werden.



F3 ist in vielen Linux-Distributionen enthalten wie z.B. Arch (Manjaro) oder Debian (Ubuntu / Mint). Unter Manjaro ist es im Arch Repository verfügbar und kann aus dem AUR installiert werden:
yay -S f3
Beispiele zum Testen der Leistung. f3write schreibt große Dateien auf eine gemountete Festplatte und f3read prüft ob die Flash-Disk genau die geschriebenen Dateien enthält. Verwendet beide Programme in dieser Reihenfolge:
f3write /run/media/jo/USB-DISK/
f3read /run/media/jo/USB-DISK/
Ersetzt "/run/media/jo/USB-DISK/" durch euren entsprechenden Pfad!

f3write benötigt dabei sehr viel Zeit zum schreiben. f3probe ist der schnellere Laufwerkstest und eignet sich daher besonders für große Festplatten. Dieses benötigt je nach Größe bis zu 15 Minuten, da er nur das schreibt, was zum Testen des Laufwerks erforderlich ist. Der Vorteil einer kompletten Datenvernichtung ist dadurch allerdings nicht gegeben. Es arbeitet direkt auf dem nicht gemounteten Blockgerät und muss als privilegierter Benutzer ausgeführt werden.

f3probe: Ermittelt das richtige Laufwerk und listet die Partitionen auf (entsprechenden Partitionen anpassen!), bei mir ist das z.B. sda1.
sudo fdisk -lSicherstellen das dieses USB-Gerät ausgehängt ist:
sudo umount /dev/sda1dann:
sudo f3probe --destructive --time-ops /dev/sdaDem USB-Gerät nicht die Partitionsnummer z.B. "/dev/sda1" angeben, sondern "/dev/sda" (also ohne Zahl).

Sollte die tatsächliche Größe nicht stimmen, kann eine Korrektur der Kapazität auf die tatsächliche Größe mit f3fix geschrieben werden. Bei meinem Test war alles OK, also "*Usable* size" und "Announced size" sind identisch.

Meine F3-Probezeiten:
  • Noname 8GB USB 2.0 Stick ca. drei Minuten
  • Samsung 64GB USB 3.0 Stick ca. eine Minute
  • Samsung 256GB PCIe M.2 SSD (2242) via USB 3.1 NVMe nur 8 Sekunden



f3fix erstellt eine Partition, die der tatsächlichen Größe des gefälschten Laufwerks entspricht. Verwendet dafür die Ausgabe von f3probe ("*Usable* size:"), um die Parameter (Blocks) für f3fix zu bestimmen, z.B.:
sudo f3fix --last-sec=15974400 /dev/sda
Anschließend kann ein Dateisystem mit GParted oder per Terminal erstellt werden (Dateisystem muss ausgehängt sein), z.B.:
sudo umount /dev/sda1
wenn als NTFS-Dateisystem
sudo mkfs.ntfs -f -L "USB-NTFS-8GB" /dev/sda1(-f = Schnellformatierung |  -L = Bezeichnung)

wenn als FAT32-Dateisystem
sudo mkfs.vfat -F 32 -n "USB-8GB" /dev/sda1(-n = Bezeichnung, max 8 Zeichen)

wenn als exfat-Dateisystem (benötigt exfat-utils)
sudo mkfs.exfat -n "USB-EXFAT-8GB" /dev/sda1(-n = Bezeichnung)

Das ausgehängte Dateisystem kann mit fsck überprüft werden:
sudo fsck /dev/sda(wird beim Prüfen eingehangen)



Quellen:

#20
LINUX / Passwortmanager KeePassXC mit ...
Letzter Beitrag von Jo - 2022-02-06 | 18:23:17
Ein Passwortmanager ist heute eine Notwendigkeit und es gibt derer viele, mein Favorit ist der plattformübergreifend freie und quell-offener KeePassXC welcher z.B. mit einem YubiKey besonders sicher ist!
-> siehe auch Zwei-Faktor-Authentifizierung

HINWEIS, Stand 2022-02-20: Leider unterstützen nicht alle Portale lange und komplizierte Passwörter oder bieten 2FA per OTP an. Schlecht macht das z.B. die Allianz die keine Sonderzeichen zulassen oder 2FA anbieten. Auch Stromanbieter wie TEAG oder EVM bieten kein 2FA an und bei EVM sind max. nur 16 Zeichen zugelassen (Sonderzeichen eingeschränkt). Die Telekomiker Gesellschaft unterstützt ebenfalls kein 2FA (LINK), als teuerster Anbieter in DE bekommen die das nicht hin? Der Hammer war EVM: Registrierung mit einem "falschen" Sonderzeichen im Passwort ging ohne Warnung, aber das Anmelden war danach unmöglich. Bei Amazon und Google muss erst 2FA per SMS aktiviert werden, danach kann OTP aktiviert werden. Und OTTO? Zitat: "Fazit: Nutze die Zwei-Faktor-Authentifizierung, wann immer du kannst" (LINK). Selbst bietet OTTO so was nicht an... das ist ziemlich unprofessionell und gleichzeitig kommt man sich verarscht vor. Immerhin, deren "Tipps für ein sicheres Passwort" im Backend beim Passwort ändern sind OK.

Wichtig: SMS-Nachrichten werden normalerweise unverschlüsselt übertragen, was bedeutet, dass der Inhalt der Nachrichten von jemandem, der Zugriff auf das Netzwerk hat, eingesehen oder abgefangen werden kann. Daher bietet die 2FA über SMS nur begrenzten Schutz, ist aber besser als keine zusätzliche Sicherheitsebene.

KeePassXC zusammen mit einem sehr robusten YubiKey ermöglicht es euch lange und komplizierte Passwörter zu generieren und dank YubiKey kann das Master-Passwort zum öffnen einfach gehalten werden. Hinzu kommt das KeePassXC von Haus aus Zwei-Faktor-Authentifizierung (2FA) per TOTP unterstützt, indem es euch das zeitlich begrenzte Einmalkennwort generiert (OTP = One-time Password, TOTP = Time-based One-time Password).

Wird damit der Vorteil einer Zwei-Faktor-Authentifizierung (2FA) zunichte gemacht? Zum Teil ja, aber nur wenn diese in der gleichen Datenbank wie das Passwort gespeichert ist. Das KeePassXC Team ist der Meinung, dass die gemeinsame Speicherung immer noch sicherer sein kann als die Nichtverwendung von 2FA, aber um den Sicherheitsgewinn durch die Verwendung von 2FA zu maximieren, sollte man die TOTP-Secret-Daten immer in einer separaten Datenbank speichern, die mit einem anderen Passwort gesichert ist, möglicherweise sogar auf einem anderen Computer.

Das sehe ich auch so! KeePassXC mit TOTP-Secret-Daten:
  • Pro: Einfaches handhaben von 2FA und besser als keines zu nutzen.
  • Contra: Weniger sicherer, weil kein echtes 2FA.

Wer einen YubiKey zusammen mit KeePassXC nutzt dürfte damit kaum Sicherheitsbedenken haben, denn ohne diesen Hardware-Token kommt niemand an die Daten ran. Extrem Sicherheitsbewusste sollten das OTP Feature vom YubiKey getrennt vom KeePassXC nutzen. Die TOTP-Secret-Daten werden dann anstatt auf einem Computer im YubiKey selbst gespeichert und das Einmalkennwort kann mit dem Yubico Authenticator generiert werden - siehe yubioath-desktop welcher auch in den offiziellen Manjaro Paketquellen enthalten ist. Dieses muss für jeden YubiKey extra eingerichtet werden.



KeePassXC gibt es für Linux, iOS und Windows (auch als Portable Version). KeePassXC, YubiKey Manager und Yubico Authenticator (OTP) für Linux Manjaro installieren:
sudo pacman -S keepassxc yubikey-manager-qt yubioath-desktop
Der Yubikey Authenticators kommuniziert am PC per USB oder einfach über NFC, z.B. mit dem ReinerSCT CyberJack NFC-Leser ab Version 2.7  :azn:

Passwörter sind eine Pest und jeder hasst sie zu Recht, bisher leider ein notwendiges übel. Der neue Standard FIDO2 verspricht, Passwörter überflüssig zu machen. FIDO2-Authentifizierung mit WebAuthn ermöglicht eine passwortlose Anmeldung derzeit z.B. an: Google, Microsoft 365, MS Teams, Joomla, Roundcube (Plugin) oder Nextcloud. Wäre cool wenn sich das auch bei anderen Diensten durchsetzt. Damit macht das Einloggen Spaß, leider leben unsere Banken mit ihren photoTAN und mobileTAN noch im letzten Jahrzehnt.

Der YubiKey 5 NFC z.B. verfügt über sehr umfangreiche Features, die per YubiKey-Manager aktiviert und deaktiviert werden können, je nachdem was der Benutzer benötigt. Support für WebAuthn, FIDO2, FIDO U2F, OTP, OATH, PIV, OpenPGP und Challenge-Response (wichtig für KeePassXC).

Beim YubiKey sollte als erstes per YubiKey Manager der Personal Identity Verification (PIV) geändert werden. PIN und PUK sind standardmäßig von YubiKey auf 123456 und 12345678 festgelegt (CheckBox "Use default" zeigt das an). Danach kann die Funktion ,,Management Key" deaktiviert werden, indem die CheckBox "Protect with PIN" ausgewählt wird, zuerst muss dafür ein "New Management Key" generiert werden (Algorithm z.B. TDES) welches ihr mit eurer PIN bestätigt. Dann den FIDO2 PIN und das Challenge-Response einrichten.

Mit Challenge-Response wird der YubiKey zur Verwendung mit KeePassXC konfiguriert. Dieser Schlüssel muss unbedingt sehr sicher aufbewahrt werden und kann für ein Backup YubiKey genutzt werden. Eine Papierkopie an einem sicheren Ort und ein zweiter YubiKey sollte daher Pflicht sein. Ein YubiKey ist sehr robust aber kann dennoch kaputt oder verloren gehen. Wichtig: Ein YubiKey ist nicht kopierbar und ohne diesen kann der Passwortmanager nicht entschlüsselt werden. Die Schlüssel können nur gespeichert werden, jedoch nicht gelesen!

Der YubiKey 5 NFC verfügt über 2 Slots, die unabhängig voneinander konfigurieren können. So funktioniert der Key praktisch wie zwei separate Schlüssel (bei Lieferung ist Slot 1 mit dem Yubico OTP konfiguriert). Der Slot2 kann z.B. für Challenge-Response und dem Passwortmanager genutzt werden. YubiKey Slots:
  • kurze Berührung = Funktion Slot 1, z.B. für OTP
  • lange Berührung = Funktion Slot 2, z.B. für Challenge-Response

Alles in der "KeePassXC Documentation and FAQ" auf englisch, in deutsch auf Stefan's Weblog oder The Morpheus Tutorials (YouTube) erklärt.

Gut zu Wissen: Leider ist bei Yubico nicht alles Open-Source, dabei verwenden sie Open-Source-Software wie OpenPGP, dem eigenen YubiKey-Manager oder Yubico Authenticator. Aus Sicherheitsgründen kann Software auf dem YubiKey weder ausgelesen noch verändert werden. Der verwendete Kryptoprozessor von Infineon wird in Deutschland hergestellt, dieser Hardware Code ist nicht Open-Source. Im Oktober 2017 wurde ein Sicherheitsproblem bekannt und betroffene Geräte von Yubico wurden kostenfrei ersetzt.



2022-Februar, das neue Firefox-Profil behindert das KeePassXC-Addon und WebAuthn in Verbindung mit Firejail. Solltet ihr auch das Problem in der Sandbox haben, könnt ihr diese Config erstellen/anpassen:
mkdir ~/.config/firejail/dann mit einem Editor öffnen:
kate ~/.config/firejail/firefox.localund diese Zeilen eintragen:
# Allow KeePassXC addon
# NOTE: start KeePassXC before Firefox and keep it open to allow communication between them.
noblacklist ${RUNUSER}/app
whitelist ${RUNUSER}/kpxc_server
whitelist ${RUNUSER}/org.keepassxc.KeePassXC.BrowserServer
#
# FIDO2 devices will work in a browser that supports WebAuthn
# I have set ignore nou2f, this allows U2F devices to be used in the browser
# Testpage: https://demo.yubico.com/webauthn-technical/registration
ignore nou2f
Quellen: github.com/netblue30/firejail/issues/3952 und github.com/netblue30/firejail/discussions/5444


Wichtig: Wer sich noch nie damit beschäftigt hat, sollte unbedingt sich die Zeit dafür nehmen und erst nur mit einer verschlüsselten Test-Datenbank den KeePassXC mit dem YubiKey testen. Habt ihr dann den YubiKey erfolgreich getestet und
  • ein Backup der verschlüsselten Datenbank auf einem anderen PC und/oder vertrauensvoller Cloud abgelegt, welches hier wieder herstellen konntet
  • die PIV als auch den Challenge-Response Schlüssel auf Papier an einem sicheren Ort deponiert habt und damit einen anderen YubiKey einrichten konntet

spricht kaum was dagegen den Passwortmanager für alle Passwörter zu nutzen?


Links:


Nachtrag: Ein Android Gerät mit einem YubiKey 5C NFC und Keepass2Android eine KeePassXC DB (*.kdbx) mit Challenge/Response (push required) öffnen.

Der Keepass2Android (kurz K2A) ist ein OpenSource Passwort-Manager für Android von Philipp Crocoll, ein deutscher Hobby Entwickler aus Karlsruhe. K2A kann von Haus aus Challenge-Response Authentifizierung, benötigt aber noch einen Provider zum Zugriff auf NFC, den USB- und NFC-Treiber ykDroid, welcher auch OpenSource ist.

Vorgehensweise (getestet mit Android 13): Wähle die Datenbankdatei aus, als Master-Passwort-Typ wähle "Passwort + Challenge-Response mit KeePass XC". Gebe das Master-Kennwort ein und wähle anschließend "OTP-HILFSDATEI LADEN...". K2A fragt nun nach dem YubiKey, wähle Slot 1 oder 2 welchen ihr für Challenge-Response eingerichtet habt und lege den YubiKey in die Nähe des NFC-Readers an (funktioniert auch mit dem dem USB-C Anschluss), dann das Kennwort frei geben.

PS: OTP-HILFSDATEI LADEN...? Nun, da muss man erst mal drauf kommen, bei KeePassXC nennt sich das "Hardwareschlüssel" :azn: