Neuigkeiten:

Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jo42:freiburg.social

Hauptmenü

Neueste Beiträge

#21
Allgemein / B&W DM604 S3 Lautsprecher
Letzter Beitrag von Jo - 2023-09-04 | 21:07:38
Biete hier ein Paar Bowers & Wilkins DM604 S3 Lautsprecher in sehr gutem Zustand an. Der Preis ist verhandelbar und günstig.

Die Lautsprecher sind ausschließlich für Abholung erhältlich. Optional kann ich auch einen Onkyo A-9110 HiFi Verstärker in silber anbieten, der gut zu den Lautsprechern passt und eine hervorragende Klangqualität bietet. Der Verstärker ist zwar schwächer als die Lautsprecher, reicht aber absolut aus und sorgt bereits für einen beeindruckenden Sound.







Kontakt



#22
Allgemein / Komm mit zu Matrix
Letzter Beitrag von Jo - 2023-08-17 | 20:26:16
Stand 2024-Mai

Matrix ist ein Chat-Protokoll und dezentrale Alternative zu Jabber/XMPP mit Ende-zu-Ende-Verschlüsselung. Die Serverkomponenten von Matrix sind Open Source, und der Aufbau einer föderalen Infrastruktur ist möglich und gilt als sehr sicher. Jeder kann einen eigenen Server betreiben, der mit allen anderen Servern im Netzwerk kommunizieren kann, aber nicht muss. Eine der Hauptfunktionen von Matrix ist die Möglichkeit, durch Bridging andere Kommunikationsdienste wie WhatsApp, Signal oder Telegram einzubinden. Und das Beste daran? Um die Matrix zu nutzen, braucht man keine rote Pille zu schlucken – und das ganz ohne in einen Kaninchenbau zu fallen! :cool:



Es gibt Client-Apps für Matrix, die für nahezu alle Betriebssysteme – einschließlich Smartphones – verfügbar sind. Darüber hinaus ist es möglich, Matrix über Webclients direkt im Webbrowser zu nutzen, was den Dienst noch zugänglicher macht. Persönlich verwendete ich zunächst Element:
sudo pacman -S element-desktopDeinstallieren:
sudo pacman -Rns element-desktop
Derzeit jedoch FluffyChat, welcher für iOS, Android und auch Linux über das Flathub-Repository verfügbar ist, z.B. installieren per Flatpak:
flatpak install flathub im.fluffychat.FluffychatStart mit:
flatpak run im.fluffychat.FluffychatDeinstallieren:
flatpak uninstall im.fluffychat.Fluffychat
Um die Beziehung zwischen Matrix und Element oder FluffyChat zu verdeutlichen, kann man Matrix als das gesamte E-Mail-System betrachten, während Element oder FluffyChat einer spezifischen E-Mail-Anwendung entspricht.

Bei Matrix handelt es sich um ein offenes, dezentralisiertes Protokoll. Die meisten Matrix-Nutzer nutzen den Homeserver von matrix.org, der aufgrund der hohen Nutzerzahl zeitweise überlastet ist. Zudem ist dies ist für eine dezentrale Hierarchie suboptimal. Idealerweise wird empfohlen einen eigenen Homeserver zu hosten, aber nicht jeder hat die Mittel dazu... wie auch immer, ihr solltet einen anderen Homeserver als den Standard matrix.org nutzen, es gibt gute Alternativen, z.B.:


Es gibt mehrere Client-Apps für Matrix, wobei Element die größte Verbreitung hat. Nach der Installation einer Client-App kann man einen Account auf einem beliebigen Server entsprechend den eigenen Präferenzen frei wählen, unabhängig von der Telefonnummer. Diesen Server nennt man im Matrix-Jargon den 'Homeserver'.

Leider ist es oft schwierig, z.B. vollständig auf WhatsApp (im weiteren Text als WA bezeichnet) zu verzichten, gerade weil die App so weit verbreitet ist. Für viele Menschen ist WA ein unverzichtbarer Bestandteil des täglichen Lebens – und das, obwohl die Nutzung der App erhebliche Datenschutzprobleme mit sich bringt. Sobald Alternativen zur Sprache kommen, wird sogleich das Killerargument vorgebracht: "Aber fast alle meine Freunde und Bekannten sind bei WA."

Um dieses Dilemma zu lösen, habe ich eine Bridge für WA eingerichtet. Dadurch kann ich nahtlos mit meinen Client-Apps kommunizieren. Ein zusätzlicher Vorteil ist, dass es mir erlaubt, WA simultan auf mehreren Geräten zu verwenden. Es ist jedoch zu beachten, dass nicht alle Server diese Bridges unterstützen und WA mindestens alle 14 Tage einmal gestartet werden muss, ansonsten ist ein neuer WA Bridge Login notwendig.

Persönlich ziehe ich immer die Matrix vor – ja, ich lebe gerne in der Matrix. :bounce:


TIPPS:

Als Matrix-Server eignet sich z.B. tchncs.de oder nope.chat, zusammen mit einem Bridge-Bot für WA. Dies ist besonders nützlich für diejenigen, die sich gegen die Nutzung von Matrix sträuben und lieber bei WA bleiben.

Schritte zur Einrichtung (Beispiel: tchncs.de):
1. **Einladen des Bots**:
  - Beginne eine Unterhaltung (Direktnachricht) mit `@whatsappbot:tchncs.de`.
  - In der Regel ist die Syntax whatsappbot:servername.tld, falls du einen anderen Server nutzt.

2. **Anmeldung**:
  - Sende die Nachricht `login qr`.
  - Die Einrichtung erfolgt ähnlich wie bei WA Web mittels QR-Code.

3. **Hilfe erhalten**:
  - Sende `help`, um zur Hilfeseite zu gelangen.

4. **Kontakte und Gruppen synchronisieren**:
  - Sende `sync contacts`, um die Kontakte zu synchronisieren (bei mir funktioniert das nicht), oder
  - Sende `sync groups`, um Gruppen zu synchronisieren (ebenfalls bei mir ohne Funktion).

5. **Kontakte und Gruppen auflisten**:
  - Sende `list contacts`, um eine Liste deiner Kontakte zu erhalten, oder
  - Sende `list groups`, um eine Liste deiner Gruppen zu sehen.

6. **Gruppe hinzufügen**:
  - Sende `open idNR`, um einer Gruppe beizutreten (z.B.: `open 1234567-1234567`).

7. **Neuen Kontakt anlegen**:
  - Wenn der Kontakt nicht in der Liste steht, sende z.B. `pm +49123456789`, um einen neuen Kontakt anzulegen.

8. **Element Slash-Befehle**:
  - In Element gibt es Slash-Befehle, die dir verschiedene Funktionen bieten. Mit `/help` kannst du dir alle verfügbaren Befehle anzeigen lassen. Allerdings muss dein Client (Element) solche Befehle unterstützen, und du brauchst Admin-Rechte dafür.

Manchmal kommt es vor, dass ein WA-User in Element als Raum statt als Person angezeigt wird. Mit dem Befehl `/converttodm` kannst du einen bestehenden Raum in eine Direktnachricht (Direct Message, DM) umwandeln. So funktioniert es:
  • Öffne den Raum, den du in eine Direktnachricht umwandeln möchtest.
  • Gib den Befehl `/converttodm` direkt in das Nachrichtenfeld ein und drücke Enter.


Bitte beachte, dass diese Tipps basierend auf meiner persönlichen Erfahrung erstellt wurde und einige Befehle bei dir eventuell nicht funktionieren könnten.

Mein Link mit der Matrix Adresse @jo42:freiburg.social ist https://matrix.to/#/@jo42:freiburg.social. Diese universelle URL dient dazu, eine einfache und benutzerfreundliche Möglichkeit zu bieten, auf eine Matrix-ID zu verweisen. Sie stellt einen praktischen Link zu Matrix-Räumen, Benutzern oder Nachrichten bereit, ohne dass man an eine spezifische Anwendung gebunden ist. Die Syntax setzt sich aus dem festen Teil https://matrix.to/#/ und der spezifischen Matrix-ID (MXID) des Benutzers, in diesem Fall @jo42:freiburg.social, zusammen. Wenn jemand diesem Link folgt, wird er zu einer Seite weitergeleitet, die es ihm ermöglicht, über einen Matrix-Client mit dieser MXID in Kontakt zu treten. Es ist vergleichbar mit einem 'mailto'-Link für E-Mail-Adressen, nur dass es für Matrix-Kommunikation gedacht ist (The matrix.to URL scheme).

Nachtrag: Es scheint, dass in der neueren Bridge-Version einige der oben genannten Befehle nicht mehr verfügbar sind (siehe "help"). Zudem wird möglicherweise das Präfix "!wa" benötigt. Verwende in diesem Fall "!wa help".

  • Erstelle einen privaten Raum mit E2E-Verschlüsselung (benenne den Raum z.B. WhatsApp-Bridge)
  • Lade den Bot @whatsappbot:nope.chat in den Raum ein
  • Schreibe "!wa help" (ohne Anführungszeichen), um die verfügbaren Befehle und Anweisungen anzuzeigen
  • Für den WA-Login: Nutze "!wa login qr"



Metadaten
Nicht unerwähnt bleiben sollte, dass bei Matrix – wie bei XMPP – die größte Stärke gleichzeitig die größte Schwäche ist: die Föderalität. Wenn ein Matrix-Server föderiert wird, gehört er zu einem größeren Netzwerk. Doch diese Vernetzung führt auch zu Kontrollverlust, da alle beteiligten Server standardmäßig Kopien der Kommunikation dauerhaft speichern. Auf dem eigenen Matrix-Server (Homeserver) kann eine Nachricht gelöscht werden, aber die Umsetzung auf anderen Servern ist ungewiss. Vertrauen in den eigenen Administrator und die anderen beteiligten Server ist im Matrix-Universum essenziell.

Während die Nachrichten zwar Ende-zu-Ende-verschlüsselt sind, gilt das nicht für die Metadaten. Dies muss nicht zwingend als Nachteil betrachtet werden. Dennoch sollte man sich darüber im Klaren sein, dass die Vermeidung von Metadaten, z.B. der Kommunikationsverlauf, bei Matrix nicht im Fokus steht. Diese Metadaten können Einblicke in die Kommunikationsmuster und -gewohnheiten der Benutzer geben, auch wenn der Inhalt der Nachrichten selbst verschlüsselt ist. Es ist wichtig, sich bewusst zu sein, dass Ende-zu-Ende-Verschlüsselung nicht notwendigerweise alle Aspekte der Privatsphäre abdeckt, insbesondere wenn es um Metadaten geht – es sei denn, man verwendet einen eigenen Matrix-Server ohne die Föderalität.

Hier eine Analyse der gängigen Messenger-Dienste (ohne Gewähr):

Auch wenn manche es behaupten, der Produktiv genutzte Server-Quellcode von Telegram, Threema und Signal ist nicht öffentlich zugänglich. Wenn überhaupt, ist nur die Client-Software dieser Messenger-Dienste Open Source.

Erklärung: Ein "Walled Garden" (zu Deutsch: "eingezäunter Garten") bezieht sich auf eine geschlossene Plattform oder ein Ökosystem, das darauf abzielt, Benutzer innerhalb seiner eigenen Dienste und Anwendungen zu halten, während der Zugang oder die Interaktion mit externen Diensten oder Ressourcen eingeschränkt wird. FOSS steht für "Free and Open Source Software", was auf Deutsch "Freie und Open-Source-Software" bedeutet. Es handelt sich um Software, deren Quellcode öffentlich zugänglich ist und die unter einer Lizenz veröffentlicht wird, die es Benutzern erlaubt, die Software frei zu verwenden, zu modifizieren und zu verbreiten.

Links:

#23
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 mit einem ORICO NVMe-Gehäuse für USB4 angeschlossen. Dadurch sank die Temperatur stabil auf unter 40 Grad Celsius. Dieser Adapter unterstützt TRIM, was die SSD-Leistung langfristig erhält und Abnutzung reduziert.



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.

Nachtrag: Viele USB-zu-SATA-Adapter oder externe Gehäuse blockieren TRIM-Befehle, selbst wenn die SSD TRIM unterstützt. Das liegt daran, dass der Adapter TRIM-Kommandos nicht korrekt weiterleitet. Es gibt jedoch USB-Adapter, PCIe NVMe-Gehäuse und externe SATA-Gehäuse, die TRIM-Passthrough unterstützen. Besonders PCIe NVMe-Gehäuse bieten durch die Nutzung von NVMe-SSDs eine deutlich höhere Geschwindigkeit und profitieren von moderneren Protokollen. Achte auf Adapter und Gehäuse mit UASP (USB Attached SCSI Protocol) oder Thunderbolt-Schnittstellen, da diese häufig bessere Unterstützung für TRIM und andere SSD-Features bieten. Falls eine externe SSD wie die Samsung T7 laut "lsblk --discard" dennoch kein TRIM unterstützt, lässt sich dies mit einer udev-Regel aktivieren. Link: TRIM für externe SSDs aktivieren (udev-Regel für TRIM-Passthrough).

: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.
#24
LINUX / TRIM externe SSD und udev-Rege...
Letzter Beitrag von Jo - 2023-02-17 | 23:36:50
TRIM externe SSD mit und ohne LUKS

Im Gegensatz zu meiner NVMe-SSD, die ich extern per Thunderbolt 3/4 mit einem ORICO NVMe-Gehäuse am PC nutze, unterstützen viele externe USB-Gehäuse leider nicht ohne weiteres TRIM. ext4 überschreibt Daten direkt, unabhängig davon, ob TRIM verfügbar ist. Dieses Verhalten hilft, die Leistung der SSD zu erhalten, insbesondere wenn TRIM nicht verfügbar ist. Btrfs hingegen nutzt Copy-On-Write, was ohne TRIM dazu führt, dass alte Datenblöcke weiterhin belegt bleiben. Dies fragmentiert die SSD und verschlechtert langfristig die Leistung – daher ist in diesem Fall ext4 die bessere Wahl.

Wenn beim TRIM-Versuch auf einer externen SSD folgende Meldung erscheint:
sudo fstrim -v /run/media/jo/extSSD-T7/Fehlermeldung: Verwerfungsvorgang wird nicht unterstützt oder the discard operation is not supported

Das trimmt alle Dateisysteme, die TRIM unterstützen:
sudo fstrim -av
Geräte anzeigen lassen und suche nach dem Gerät, das deinem Mountpoint entspricht:
lsblkIn meinem Fall wäre das Blockgerät "/dev/sda".

Dann die TRIM-Unterstützung prüfen:
lsblk --discard /dev/sda
Wichtig: DISC-GRAN (Granularität der Discard-Operation) und DISC-MAX (maximale Größe der Discard-Operation) müssen ungleich Null sein. Wenn beide Werte 0 sind, wird TRIM nicht unterstützt. Falls die Werte Null sind, kann TRIM durch eine udev-Regel wie folgt aktiviert werden.

TRIM für externe SSDs aktivieren (udev-Regel für TRIM-Passthrough)
Falls eine externe SSD wie die Samsung T7 laut "lsblk --discard" kein TRIM unterstützt, kann dies oft am Controller des externen Gehäuses liegen. Wenn der Controller UASP (USB Attached SCSI Protocol) unterstützt und TRIM grundsätzlich möglich ist, lässt sich dies mit einer udev-Regel aktivieren. Vorgehensweise:

Gerät identifizieren:
lsusbBeispiel:
ZitatBus 001 Device 003: ID 04f7:5011 Samsung Electronics Co., Ltd PSSD T7
VendorID: 04f7 | ProductID: 5011

udev-Regel erstellen:
sudo nano /etc/udev/rules.d/50-usb-ssd-trim.rules
Regel einfügen (mit passender Vendor- und ProductID), je SSD in einer Zeile:
# Samsung T7 SSD (TRIM aktivieren)
ACTION=="add|change", ATTRS{idVendor}=="04f7", ATTRS{idProduct}=="5011", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"

Speichern und schließen (STRG + X, dann Y und Enter), oder beende mit F2, dann wird gefragt, ob die Datei gespeichert werden soll.

PC neu starten oder udev-Regeln neu laden und anwenden:
sudo udevadm control --reload-rules && sudo udevadm trigger
Testen:
lsblk --discard
sudo fstrim -v /run/media/jo/extSSD-T7/

Hinweis: Die VendorID und ProductID müssen exakt mit den Werten aus lsusb übereinstimmen. Falls TRIM weiterhin nicht funktioniert, könnte der Controller des Gehäuses TRIM nicht unterstützen – unabhängig von der Regel.



Nachtrag zur möglichen Problemlösung – TRIM und UASP prüfen

TRIM-Unterstützung der SSD per hdparm prüfen:
sudo pacman -S --needed hdparm
sudo hdparm -I /dev/sda | grep -i trim
Wenn keine Ausgabe zu TRIM erscheint, unterstützt die SSD kein TRIM.

UASP-Support der SSD am USB-Anschluss prüfen:
lsusb -tDieser Befehl listet die USB-Geräte und die zugehörigen Treiber auf.

Beispiel:
Zitat...
|__ Port 003: Dev 013, If 0, Class=Mass Storage, Driver=uas, 480M
...
Driver=uas zeigt, dass UASP (USB Attached SCSI Protocol) aktiv ist. Falls stattdessen usb-storage angezeigt wird, wird UASP nicht verwendet.

TRIM erfordert UASP. Ohne UASP werden TRIM-Befehle von vielen externen SSDs und Gehäusen blockiert. Falls TRIM nicht funktioniert, könnte der Controller der SSD oder des USB-Gehäuses die Ursache sein.



Eine verschlüsselte Platte sollte niemals getrimmt werden, da damit eine Kompromittierung der Sicherheit der Verschlüsselung verbunden sein kann. Daher wird standardmäßig TRIM bei LUKS deaktiviert, um diese Schwachstelle zu vermeiden.

Ausser man weiss was man tut und erlaubt es nach dem Entschlüsseln explizit:
sudo cryptsetup --allow-discards --persistent refresh <LUKS-PARTITION>Dabei wird TRIM durch die aktive Entschlüsselung der Partition geleitet. Das bedeutet: TRIM-Befehle wirken nur auf die entschlüsselten Bereiche und nicht auf die verschlüsselten Rohdaten. Für den Privatgebrauch dürfte das Risiko gering sein. Die Vorteile von TRIM (Lebensdauer der SSD und Performance) sind für viele Nutzer wichtiger als das geringe Sicherheitsrisiko. Wenn deine Sicherheitsanforderungen jedoch hoch sind, könnte das ein Sicherheitsrisiko darstellen!



PS: Speicher, der vom Root-System auf einer externen Festplatte mit ext4-Dateisystem reserviert ist, freigeben. Bei reinen Datenlaufwerken (z.B. Backup-SSDs) ist dies nicht erforderlich. Folge diesen Schritten (wie immer ohne Gewähr – kein Backup, kein Mitleid). Festplatte identifizieren:

lsblkReservierten Speicherplatz je Partition auf 0 % setzen (ohne Formatierung, z.B. wenn /dev/sda1):
sudo tune2fs -m 0 /dev/sda1Reservierung prüfen:
sudo tune2fs -l /dev/sda1 | grep "Reserved block count"Wenn die Ausgabe Reserved block count: 0 anzeigt, ist kein Speicher reserviert, und der gesamte Speicher kann genutzt werden.


Quellen:

#25
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

#26
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:
#27
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:


#28
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
#29
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:

#30
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