Archiv der Kategorie: Linux

Von einem Linux-Host beliebige UPnP-Portfreigaben des Routers anfordern

Um von einem Linux-Host automatische Portfreigaben/Portweiterleitungen per UPnP anzufordern, bietet sich auf der Kommandozeile upnpc an. Das Kommando erhält man unter gängigen Systemen durch die Installation des „miniupnpc“ Paketes.

Eine Portfreigabe kann man dann über

upnpc -a 192.168.188.157 22 2222 TCP

anfordern. Nutzt das eigene Linux-System mehrere Netzwerkinterfaces muss auch noch eine IP auf dem Interface oder ein Interface ansich mit dem Parameter „-m“ definiert werden:

upnpc -m eth2 -a 192.168.188.157 22 2222 TCP
Von einem Linux-Host beliebige UPnP-Portfreigaben des Routers anfordern weiterlesen

Bei linuxserver/docker-wireguard automatisch WireGuard-Clients im laufenden Betrieb hinzufügen

Für die Realisierung eines WireGuard-VPN in Sterntopologie nutze ich linuxserver/docker-wireguard. Das Docker Container-Image ist eines von vielen ganz hervorragenden Container-Images von linuxserver.io, welches mit einem gefestigten Featureset und regelmäßigen Updates kommt.

Leider sieht es im Standard nur vor, dass WireGuard-Peers per Umgebungsvariable „PEERS“ mit Komma getrennt eingestellt werden. Peers, die nicht mehr oder noch nicht in der Liste sind, werden auch nicht als solche in der vom Server verwendeten wg01.conf eingetragen und sind damit nicht in der Lage, eine Verbindung aufzubauen. Wie ich das unkompliziert gelöst habe, ohne das Container-Image anzupassen, möchte ich hier zeigen:

Bei linuxserver/docker-wireguard automatisch WireGuard-Clients im laufenden Betrieb hinzufügen weiterlesen

Kurz: Dell R7715 mit iPXE crasht

Wenn ein ziemlich neuer Dell R7715 Server oder Server dieser Serie nach einem Bootvorgang z. B. von Ubuntu 24.04 mittels iPXE (Netzwerkboot) crasht und davor gerade noch diese Textzeilen emittieren kann:

EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Measured initrd data into PCR 9

Empfiehlt es sich, die aktuellste iPXE-Version aus dem GitHub-Repository zu laden und selbst zu kompilieren. Dabei ist darauf zu achten nicht das Release-Tag 1.21.1 zu nutzen, sondern wirklich die aktuellste Version aus dem Master-Branch. 1.21.1 ist 5 Jahre alt und mit den neuesten Hardware-Komponenten nicht mehr ganz kompatibel.

Nach dem iPXE-Update war ich in der Lage, Ubuntu 24.04 übers Netzwerk zu installieren.

Webhook-Queue in paperless-ngx löschen

Spielt man ein bisschen mit den Workflows „Arbeitsabläufen“ in paperless-ngx, kann es passieren, dass man versehentlich viele Webhook-Calls generiert, indem man z. B. für seine gesamte Dokumentensammlung Webhooks durch den Auslöser „Geplant“ auslöst, die dann allesamt in der nachgelagerten Redis-Datenbank feststecken und unter Umständen nur noch sehr langsam oder gar nicht mehr abgearbeitet werden, weil die externe API, welcher der Webhook-Call galt, nicht mehr mitmacht.

Eine pragmatische Lösung dazu ist, die gesamte Warteschlange an wartenden Webhook-Calls zu entfernen. Im Docker-basierten paperless-ngx ginge das wie folgt:

Webhook-Queue in paperless-ngx löschen weiterlesen

Pacemaker und IPaddr2 mit unterschiedlichen Network-Interface Namen je nach Cluster-Node

Migriert man eine virtualisierte Infrastruktur beispielsweise zwischen VMware und Proxmox, so lernt man schnell, dass bei anders virtualisierten Netzwerk-Interfaces sich auch die Namen derer ändern. Aus ens192 wird zum Beispiel ens18 aufgrund der anderen internen Adressierung und weiteren Faktoren.

Möchte man einzelne Nodes eines Pacemaker- und Corosync-basierten Clusters nun Node-by-Node in die andere Infrastruktur überführen, lernt man schnell, dass der „nic=“ Parameter des ofc_heartbeat_ipaddr2-Skripts selbstverständlich im Rahmen der crm.conf, der „CIB“ (Cluster Information Base), sofort nach Änderung bzw. Aktivierung bei manueller Anpassung mit den anderen Nodes synchronisiert wird.

Das führt genau dann zu Problemen, wenn ein Node bereits auf Proxmox läuft, aber die CIB noch auf ein nicht mehr existierendes Network-Interface verweist. Um ein Cluster ohne Downtime und ohne Probleme im Betrieb zu switchen, empfiehlt es sich, den „nic=“ Parameter abhängig vom Namen des jeweiligen Nodes zu setzen. Eine elegante Lösung in der Konfiguration erschien mir so:

primitive vip1 IPaddr2 \
        params ip=10.10.10.5 cidr_netmask=32 \
        op monitor interval=3s \
        meta target-role=Started \
        params 3: rule #uname eq node1 nic=ens192 \
        params 2: rule #uname eq node2 nic=ens192 \
        params 1: nic=ens18

Die Nodes sind hierbei „node1“, „node2“ und „node3“. Die Priorität bestimmt „params 1“ bis „params 3“ wobei immer dort aufgehört wird, wo eine Regelübereinstimmung passiert. Im Beispiel würden node1 und node2 also als nic=ens192 bekommen, alle anderen Nodes, also auch node3, jedoch nic=ens18.

Übrigens wieder eine tolle Option, welche ChatGPT und auch eine Google-Suche nicht sofort zu Tage fördern, welche man jedoch sauber über die man-Page findet (siehe „Syntax: Rule expressions“).

FRITZ!Box mit WireGuard VPN: Besonderheiten mit SMB/Windows-Freigaben über VPN

Versucht man mithilfe einer FRITZ!Box ein WireGuard-VPN (die FRITZ!Box ist der Server) einzurichten, geht das ansich recht einfach. Zugriffe wie per HTTP sind dann vom VPN-Client zum Netzwerk der FRITZ!Box ohne Einschränkungen möglich.

Anders sieht das bei Windows-Freigaben aus. Zum einen werden diese nicht automatisch erkannt, zum anderen ist selbst bei manueller Eingabe der Zieladresse keine Verbindung möglich. Aus dem lokalen Netz hingegen schon.

Im Internet und ChatGPT wird schlicht auf die Aktivierung einer Option „NetBIOS“ in den VPN-Einstellungen der FRITZ!Box verwiesen. Richtet man das VPN allerdings normal über den Assistenten in der FRITZ!Box als „Client“ ein, erscheint eine derartige Option gar nicht. Man sucht während und auch nach der Erstellung der Client-Konfiguration vergebens nach dieser Einstellung.

FRITZ!Box mit WireGuard VPN: Besonderheiten mit SMB/Windows-Freigaben über VPN weiterlesen