Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jo42:freiburg.social
sudo pacman -S element-desktop
Deinstallieren:sudo pacman -Rns element-desktop
flatpak install flathub im.fluffychat.Fluffychat
Start mit:flatpak run im.fluffychat.Fluffychat
Deinstallieren:flatpak uninstall im.fluffychat.Fluffychat
sudo pacman -S intel-media-driver
sudo pacman -S intel-gpu-tools
sudo intel_gpu_top
sudo fstrim -v /run/media/jo/extSSD-T7/
Fehlermeldung: Verwerfungsvorgang wird nicht unterstützt oder the discard operation is not supportedsudo fstrim -av
lsblk
In meinem Fall wäre das Blockgerät "/dev/sda".lsblk --discard /dev/sda
lsusb
Beispiel:ZitatBus 001 Device 003: ID 04f7:5011 Samsung Electronics Co., Ltd PSSD T7VendorID: 04f7 | ProductID: 5011
sudo nano /etc/udev/rules.d/50-usb-ssd-trim.rules
# Samsung T7 SSD (TRIM aktivieren)
ACTION=="add|change", ATTRS{idVendor}=="04f7", ATTRS{idProduct}=="5011", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
sudo udevadm control --reload-rules && sudo udevadm trigger
lsblk --discard
sudo fstrim -v /run/media/jo/extSSD-T7/
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.lsusb -t
Dieser Befehl listet die USB-Geräte und die zugehörigen Treiber auf.Zitat...Driver=uas zeigt, dass UASP (USB Attached SCSI Protocol) aktiv ist. Falls stattdessen usb-storage angezeigt wird, wird UASP nicht verwendet.
|__ Port 003: Dev 013, If 0, Class=Mass Storage, Driver=uas, 480M
...
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!lsblk
Reservierten Speicherplatz je Partition auf 0 % setzen (ohne Formatierung, z.B. wenn /dev/sda1):sudo tune2fs -m 0 /dev/sda1
Reservierung 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.sudo fwupdmgr get-devices
sudo fwupdmgr refresh
Wir können auch die Option "--force" verwenden, um erneut zu aktualisieren:sudo fwupdmgr refresh --force
sudo fwupdmgr get-updates
sudo fwupdmgr update
pamac search --files libpangox-1.0.so.0
yay -S pangox-compat
kate /etc/NetworkManager/conf.d/20-connectivity.conf
Zitat[connectivity]
.set.enabled=false
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.
curl -sSL https://install.pi-hole.net | bash
danach Unbound installieren:sudo apt install unbound lm-sensors
wie Dennis Schröder hier gut beschreibt.sudoedit /etc/systemd/timesyncd.conf
ZitatNTP=192.168.178.1(oder den Domainnamen: NTP=fritz.box)
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
sudoedit /etc/pihole/pihole-FTL.conf
ZitatDBINTERVAL=60.0(wenn gewünscht kann die Abfrageprotokollierung mit "PRIVACYLEVEL=3" deaktiviert werden)
MAXDBDAYS=90
PRIVACYLEVEL=0
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
ls -l /var/lib/unbound/root.hints
Zitat-rw-r--r-- 1 root root 3314 18. Mär 13:48 /var/lib/unbound/root.hints
wget https://www.internic.net/domain/named.root -qO- | sudo tee /var/lib/unbound/root.hints
sudo crontab -e
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
sudo unbound-control reload
fehlschlagen, einfach testen, als Ausgabe sollte ein "OK" erscheinen.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
...
dig fail01.dnssec.works @127.0.0.1 -p 5335
dig dnssec.works @127.0.0.1 -p 5335
sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf
server:
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
sudo nano /etc/dnsmasq.d/custom-dnsmasq.conf
Dadurch 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=300Diese Einstellung erhöht die maximale Anzahl gleichzeitiger Anfragen auf 300.
ip -6 addr show dev eth0 | grep inet6 | awk '{print $2}'
ip addr show dev eth0 | grep inet | awk '{print $2}'
# 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
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.pihole -r
#!/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 :-)')