<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://znil.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BLinz</id>
	<title>znilwiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BLinz"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Spezial:Beitr%C3%A4ge/BLinz"/>
	<updated>2026-05-03T06:34:59Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=Proxmox_PVE_Virtual_Environment_-_Bildschirmaufl%C3%B6sung_Gast_VM_anpassen&amp;diff=15799</id>
		<title>Proxmox PVE Virtual Environment - Bildschirmauflösung Gast VM anpassen</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Proxmox_PVE_Virtual_Environment_-_Bildschirmaufl%C3%B6sung_Gast_VM_anpassen&amp;diff=15799"/>
		<updated>2026-05-01T09:47:19Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Lösung 2: VirtIO-GPU - Feste Auflösung Methode 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 30.05.2025 erste Version&lt;br /&gt;
* 14.04.2025 Update Zwischenablage für VirtIO-GPU&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich habe hier eine Windows 11 Test VM mit den folgenden Hardware-Einstellungen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-120022.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die {{code|Display}} Einstellungen steht noch auf Default.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter VMware bin ich es gewohnt, das bei installierten VMware-Tool, sich die Auflösung automatisch an die Größe des Konsolenfensterns anpasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Oder das man alternativ sich die Auflösung innerhalb der VM fest einstellt.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedoch passt sich - in der Standardkonfiguration - weder die Auflösung an noch darf man die Auflösung selbst anpassen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-121333.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grafikkartentreiber in der VM ist zunächst der {{code|Microsoft Basic Display Adapter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-121505.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgend zeige ich verschiedene Lösungen mit entsprechenden Vor- und Nachteilen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen installieren==&lt;br /&gt;
Alle nachfolgenden Lösungen setzen voraus, das Ihr die QEMU-Gast-Tools installiert und aktiviert habt.&amp;lt;br&amp;gt;&lt;br /&gt;
In den VM-Einstellungen den {{code|QEMU Guest Agent}} aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-123024.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und in der VM die {{code|virtio-win-x.x.xxx.iso}} mounten (Download hier: https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers#Installation ) und aus dem Hauptverzeichnis die {{code|virtio-win-guest-tools.exe}} ausführen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-123437.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es muss die aus dem Hauptverzeichnis sein, die Installiert dann alles notwendige nach! Mögliche Auswahlen bestätigt Ihr einfach!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Lösung 1: SPICE Graphic card==&lt;br /&gt;
Wir fahren die VM herunter und ändern in den Hardware-Einstellungen das Display von {{code|Default}} auf {{code|SPICE}}, als Grafikkartenspeicher würde ich mindestens 32MiB einstellen. Eine FullHD Auflösung mit 24Bit Farbtiefe liegt schon bei rund 6MiB, so ist da noch Reserve.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-122402.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Reboot und Anmelden an Windows sollte sich der Treiber der Grafikkarte zu {{code|Red Hat QXL controller}} geändert haben:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-122724.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Jedoch - zumindest bei mir - ist die Maus nun im {{code|Console}} Fenster deplatziert, die Koordinaten stimmen nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
Lösung ist die Konsole per Doppelklick auf den VM-Namen zu öffnen (oder per rechte Maustaste auf die VM und dann {{key|&amp;lt;nowiki&amp;gt;&amp;gt;_ Console&amp;lt;/nowiki&amp;gt;}} auswählen.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann öffnet sich das Download-Fenster mit einer Datei {{code|pve-spice.vv}}.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese könnte Ihr unter Windows mit dem {{code|virt-viewer}} öffnen den Ihr hier Herunterladen könnt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://virt-manager.org/download&lt;br /&gt;
und dann im mittleren Bereich:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124026.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe die https://releases.pagure.org/virt-viewer/virt-viewer-x64-11.0-1.0.msi , also die 64 Bit Version genommen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Installation könnt ihr die {{code|.vv}} Dateien mit diesem Viewer verknüpfen so das sich dieser automatisch öffnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Auflösung der VM passt sich nach ein paar Sekunden dann immer der Größe des Fensters an:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124318.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124335.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Auflösung passt sich an Fenstergröße an&lt;br /&gt;
* Zwischenablage funktioniert (nur Text und Bilder, keine Dateien)&lt;br /&gt;
* Windowstaste / Tastenkombinationen werden größtenteils durchgereicht&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Separater Viewer notwendig, denn&lt;br /&gt;
* natives Konsolenfenster hat falsche Mauskoordinaten. Auch wenn man ein separates Fenster per {{code|noVNC}} öffnet, passt es nicht.&lt;br /&gt;
* zusätzlicher Port 3128 notwendig&lt;br /&gt;
* Funktioniert nicht hinter Reverse Proxy bzw. nicht nur mit Port 443 / 8006&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Lösung 2: VirtIO-GPU - Feste Auflösung Methode 1==&lt;br /&gt;
VM herunterfahren und in den Hardwareeinstellungen bei Display {{code|VirtIO-GPU}} einstellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Start der VM und der Anmeldung sollte der Grafikkartentreiber zu {{code|Red Hat VirtIO GPU DOD controller}} geändert haben:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-132757.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In den Anzeigeeinstellungen könnt Ihr nun quasi jede beliebige, vordefinierte Auflösung einstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-132920.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Falls ihr das separate Konsolenfenster öffnet, kann es passieren das er auch wieder den Download der {{code|pve-spice.vv}} anbietet,&amp;lt;br&amp;gt;&lt;br /&gt;
Diese funktioniert jedoch nicht mit dem Viewer.&amp;lt;br&amp;gt;&lt;br /&gt;
Statt dessen müsst Ihr oben rechts von Hand den {{code|noVNC}} Viewer auswählen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-133151.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag Zwischenablage:&amp;lt;br&amp;gt;&lt;br /&gt;
In Proxmox ab Version 9 habe ich entdeckt, das man noch separat das Clipboard auswählen kann:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260414-114959.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Stellt man hier {{Code|VNC}} ein, so bekommt die Konsole links im Menu den Menüpunkt {{Code|Zwischenablage}} dazu:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260414-115203.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Über diesen lässt sich Text zu und von der VM kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
***ABER:*** Wenn die VNC-Zwischenablage aktiviert ist, ist keine Live-Migration der VM mehr möglich!:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260501-114701.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Funktioniert hinter Proxy&lt;br /&gt;
* Kein extra Client notwendig&lt;br /&gt;
* Fenstergröße + Auflösung beim öffnen im separaten Fenster passt&lt;br /&gt;
* Auflösung kann dynamisch auf einen der vordefinierten Werte gewechselt werden.&lt;br /&gt;
* Übertragen Zwischenablage begrenzt möglich (keine Live-Migration mehr)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* {{code|noVNC}} muss von Hand ausgewählt werden (nur separates Fenster)&lt;br /&gt;
* Im nativen Konsolenfenster wird es einfach verkleinert oder vergrößert per Zoom&lt;br /&gt;
* Keine Windows Tasten werden durchgereicht (Reagiert zwar mit, aber nicht wie gewünscht)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Lösung 3: Feste Auflösung Methode 2==&lt;br /&gt;
VM herunterfahren und in den Hardwareeinstellungen bei Display {{code|Standard VGA}} mit 32Mib Memory setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125207.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr die VM jetzt hochfahrt, wird die Auflösung {{code|1280x800}} sein und Ihr diese nicht ändern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125437.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grafikkartentreiber ist der {{code|Microsoft Basic Display Adapter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125549.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt startet Ihr die VM noch einmal neu und wenn das Proxmox-Logo erscheint und unten {{code|Start boot options}} steht, drückt Ihr einmal auf {{key|ESC}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130638.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Hier wählt Ihr den {{code|Device Manager}},&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130746.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
die Option {{code|OVMF Platform Configuration}},&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130849.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dort aus der Liste die gewünschte Auflösung, ich habe mich hier für {{code|1440x900}} entschieden:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130948.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Danach auf {{key|Commit Changes and Exit}} und danach noch einmal auf {{key|ESC}} und dann ganz unten auf {{key|Reset}}.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Booten ist die VM immer noch auf der Auflösung {{code|1280x800}}, aber nun können wir diese ändern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-131230.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Feld ist zwar danach wieder ausgegraut, aber wir haben die neue Auflösung:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-131326.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Funktioniert hinter Proxy&lt;br /&gt;
* Kein extra Client notwendig&lt;br /&gt;
* Fenstergröße + Auflösung beim öffnen im separaten Fenster passt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Im nativen Konsolenfenster wird es einfach verkleinert oder vergrößert per Zoom&lt;br /&gt;
* Keine Windows Tasten werden durchgereicht (Reagiert zwar mit, aber nicht wie gewünscht)&lt;br /&gt;
* Keine geteilte Zwischenablage&lt;br /&gt;
* Nur die im BIOS der VM fest eigestellte Auflösung möglich, kein Wechseln während der Sitzung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
* https://www.nielskok.tech/proxmox/change-resolution-for-vm-in-proxmox/&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Datei:ClipCapIt-260501-114701.PNG&amp;diff=15798</id>
		<title>Datei:ClipCapIt-260501-114701.PNG</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Datei:ClipCapIt-260501-114701.PNG&amp;diff=15798"/>
		<updated>2026-05-01T09:47:01Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Direkt aus der Zwischenablage hochgeladen Kategorie:ClipUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Direkt aus der Zwischenablage hochgeladen [[Kategorie:ClipUpload]]&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix_Host_Import_per_CSV_TXT&amp;diff=15797</id>
		<title>Zabbix Host Import per CSV TXT</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix_Host_Import_per_CSV_TXT&amp;diff=15797"/>
		<updated>2026-04-22T08:32:02Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Die Seite wurde neu angelegt: „&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Changelog:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt; * 22.04.2026 erste Version ---- ==Vorwort== Bei einem Kunden musste ich mehr als 4.000 System von &amp;#039;&amp;#039;&amp;#039;&amp;#039;WhatsUp Gold&amp;#039;&amp;#039;&amp;#039;&amp;#039; zu Zabbix migrieren. Im alten Monitoring gelang mir der Export von zumindest IP-Adresse und Hostnamen, gefiltert nach Rollen und anderen Kriterien, z.B. alle Telefone.&amp;lt;br&amp;gt; Dieser Artikel beschreibt im Moment eine Methode für den Import, andere werden folgen.&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ---- ==per Intellitrend CSV Host Importer==…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 22.04.2026 erste Version&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Bei einem Kunden musste ich mehr als 4.000 System von &#039;&#039;&#039;&#039;WhatsUp Gold&#039;&#039;&#039;&#039; zu Zabbix migrieren. Im alten Monitoring gelang mir der Export von zumindest IP-Adresse und Hostnamen, gefiltert nach Rollen und anderen Kriterien, z.B. alle Telefone.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser Artikel beschreibt im Moment eine Methode für den Import, andere werden folgen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==per Intellitrend CSV Host Importer==&lt;br /&gt;
Ich wollte gerade ein PowerShell-Skript für den Import schreiben, da fand ich das hier:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://www.intellitrend.de/content/de/products/zabbix-csv-host-importer/&lt;br /&gt;
und es ist großartig!&amp;lt;br&amp;gt;&lt;br /&gt;
Es bietet unter {{Code|Data collection}} einen neuen Menüpunkt {{Code|Host CSV Importer}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260422-102129.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260422-102215.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der Vorschau sieht man was erkannt wurde, hinterher was importiert wurde und wo und welche es Fehler gab (mit Begründung!).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===Installation CSV-Host-Importer===&lt;br /&gt;
Voraussetzung ist mindestens Zabbix 6.0, wer mindestens 7.0 nach meiner Anleitung unter Ubuntu installiert hat, kann die nachfolgenden Befehle einfach ausführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Für alle anderen findet sich hier das GitHub Repo samt Installationsanleitung:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://github.com/intellitrend/zabbix-csv-host-import-module&lt;br /&gt;
Anleitung für 7.0 / Ubuntu:&amp;lt;br&amp;gt;&lt;br /&gt;
Per SSH am Zabbix-Server anmelden und per&lt;br /&gt;
 sudo -i&lt;br /&gt;
dauerhaft zum root wechseln.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann folgenden Befehle ausführen:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget https://github.com/intellitrend/zabbix-csv-host-import-module/archive/refs/tags/7.0.0.tar.gz&lt;br /&gt;
 tar xvzf 7.0.0.tar.gz&lt;br /&gt;
 cp -r -f zabbix-csv-host-import-module-7.0.0/modules/* /usr/share/zabbix/modules/&lt;br /&gt;
Jetzt über das Webinterface von Zabbix zu folgenden Punkt navigieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 Administration =&amp;gt; General =&amp;gt; Modules&lt;br /&gt;
und oben rechts auf {{Button|San directory}} klicken:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260422-103005.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Danach findet man den {{Code|CSV Host Importer}} in der Module liste wo man diesen ganz rechts bei Status aktiviert.&amp;lt;br&amp;gt;&lt;br /&gt;
Oder den Eintrag anklicken und den haken unten setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260422-103145.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Datei:ClipCapIt-260422-103145.PNG&amp;diff=15796</id>
		<title>Datei:ClipCapIt-260422-103145.PNG</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Datei:ClipCapIt-260422-103145.PNG&amp;diff=15796"/>
		<updated>2026-04-22T08:31:45Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Direkt aus der Zwischenablage hochgeladen Kategorie:ClipUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Direkt aus der Zwischenablage hochgeladen [[Kategorie:ClipUpload]]&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Datei:ClipCapIt-260422-103005.PNG&amp;diff=15795</id>
		<title>Datei:ClipCapIt-260422-103005.PNG</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Datei:ClipCapIt-260422-103005.PNG&amp;diff=15795"/>
		<updated>2026-04-22T08:30:05Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Direkt aus der Zwischenablage hochgeladen Kategorie:ClipUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Direkt aus der Zwischenablage hochgeladen [[Kategorie:ClipUpload]]&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Datei:ClipCapIt-260422-102215.PNG&amp;diff=15794</id>
		<title>Datei:ClipCapIt-260422-102215.PNG</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Datei:ClipCapIt-260422-102215.PNG&amp;diff=15794"/>
		<updated>2026-04-22T08:22:15Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Direkt aus der Zwischenablage hochgeladen Kategorie:ClipUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Direkt aus der Zwischenablage hochgeladen [[Kategorie:ClipUpload]]&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Datei:ClipCapIt-260422-102129.PNG&amp;diff=15793</id>
		<title>Datei:ClipCapIt-260422-102129.PNG</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Datei:ClipCapIt-260422-102129.PNG&amp;diff=15793"/>
		<updated>2026-04-22T08:21:29Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Direkt aus der Zwischenablage hochgeladen Kategorie:ClipUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Direkt aus der Zwischenablage hochgeladen [[Kategorie:ClipUpload]]&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Zabbix&amp;diff=15792</id>
		<title>Zabbix</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Zabbix&amp;diff=15792"/>
		<updated>2026-04-22T08:15:23Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Allgemeines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:Zabbix]]&lt;br /&gt;
Hier findet Ihr Infos zum Abfragen verschiedener Systeme und - wenn vorhanden - fertige Zabbix-Templates zum herunterladen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Warum in meinen Templates vor den Key-Namen immer {{Key|znil}} steht: Das mach ich nicht aus Eitelkeit. Ein Item-Key muss immer eindeutig sein und darf nicht doppelt vorkommen. Dadurch das meine Templates immer ein {{Key|znil}} vorweg haben ist dieses Gewährleistet. Das noch jemand dieses Kürzel nutzt ist unwahrscheinlich. Meine Kollegen benutzen ebenfalls ein entsprechendens Kürzel. So gibt es auch kein Problem mit Templates anderer Autoren.&amp;lt;br&amp;gt; &#039;&#039;&#039;Die meisten Templates funktionieren nicht mehr wenn man die Key-Namen einfach ändert! Die Erweiterungen arbeiten mit dem {{Key|zabbix_sender}} und da sind die Key-Namen fest verdrahtet im Quellcode!&#039;&#039;&#039;}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Allgemeines==&lt;br /&gt;
* [https://www.zabbix.com/documentation/4.0/manual/appendix/macros/supported_by_location Macro-Namen in Zabbix und an welchen Stellen man diese verwenden darf (V4.0)]&lt;br /&gt;
* [[Zabbix zeigt nicht mehr als 1.000 (1000) Elemente in einer Liste an]]&lt;br /&gt;
* [[Zabbix Host mit Agent automatisch auf Server registrieren/einrichten lassen]]&lt;br /&gt;
* [[Zabbix Network Interface Discovery - zu viele Netzwerkkarten]]&lt;br /&gt;
* [[Zabbix Sonderzeichen in perf_counter und UserParametern nutzen]]&lt;br /&gt;
* [[Zabbix Kein Trigger bei Item Key mit Umlauten oder Sonderzeichen - Trigger kann nicht erstellt werden]]&lt;br /&gt;
* [[Zabbix zabbix_server.log Endlosausgabe mit tail]]&lt;br /&gt;
* [[Zabbix Interessante Projekte im Web]]&lt;br /&gt;
* http://blog.zabbix.com/scalable-zabbix-lessons-on-hitting-9400-nvps/2615/&lt;br /&gt;
* https://www.percona.com/resources/mysql-ebooks/mysql-performance-tuning-volume-1&lt;br /&gt;
* watch &#039;ps -aux | grep zabbix_server&#039;&lt;br /&gt;
* http://zabbix.org/wiki/Docs/howto/mysql_partitioning&lt;br /&gt;
* [[Zabbix Event Acknowledgement Link in Benachrichtigungs-Email Acknowledge direkter Link]]&lt;br /&gt;
* [[Zabbix No Events Trigger entfernen]]&lt;br /&gt;
* [[Zabbix fertige Datenbank abfragen]]&lt;br /&gt;
* [[Zabbix PopUp-Meldungen auf Windows Geräten bei Problems / Triggern]]&lt;br /&gt;
* Datenbank konvertieren: https://confluence.atlassian.com/jirakb/change-column-and-table-collation-to-utf8_bin-in-mysql-601456761.html&lt;br /&gt;
* [[Zabbix i386 wird nicht unterstützt|Das Laden der konfigurierten Datei »main/binary-i386/Packages« wird übersprungen, da das Depot http://repo.zabbix.com/zabbix/ die Architektur i386 nicht unterstützt.]]&lt;br /&gt;
* [[Zabbix Passwort zurücksetzen Webinterface]]&lt;br /&gt;
* [[Zabbix Datenbank manuell bereinigen MySQL MariaDB]]&lt;br /&gt;
* [[Zabbix Host Import per CSV TXT]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Active Directory==&lt;br /&gt;
* [[Zabbix Server Anmeldung mit Active Directory Benutzern oder LDAP Benutzern]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Agent (zabbix_agent und zabbix_sender)==&lt;br /&gt;
* [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei]] + fertiges Zip-Archiv inklusive Agents&lt;br /&gt;
* [[Zabbix Agent per Gruppenrichtlinie installieren lassen]]&lt;br /&gt;
* [[Agent Auto Updater|Zabbix Agent Auto Updater]] - Zabbix Agent auf allen Server automatisch aktualiseren&lt;br /&gt;
* [[Zabbix Host mit Agent automatisch auf Server registrieren/einrichten lassen]]&lt;br /&gt;
* [[Zabbix Host Autoregistration per API mit individueller PSK Id]]&lt;br /&gt;
* [[Zabbix Agent Tail Programm für Log-Dateien]]&lt;br /&gt;
* [[Zabbix Agent UserParameter testen per Commandline]]&lt;br /&gt;
* [[Zabbix LLD Discovery per zabbix_sender]]&lt;br /&gt;
* [[Zabbix automatische Registrierung DNS statt IP-Adresse - Auto Registration]]&lt;br /&gt;
* [[Zabbix Agent unter SUSE SLES 11 installieren]]&lt;br /&gt;
* [[Zabbix Skript Zabbix Agent per Popup-Skript aus der Zabbix-Server Weboberfläche deaktivieren]]&lt;br /&gt;
* [[Zabbix Agent cannot make counterpath]]&lt;br /&gt;
* [[zabbix_sender per Web URL-Aufruf nutzen]]&lt;br /&gt;
* [[Zabbix Agent auf allen Windows Server in Domäne neu starten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==AIX==&lt;br /&gt;
* Agenten für AIX https://support.zabbix.com/browse/ZBX-15151&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==API==&lt;br /&gt;
* [[Zabbix API mit cURL unter Windows abfragen]]&lt;br /&gt;
* [[Zabbix Anzahl Trigger nach priority ermitteln als Item]]&lt;br /&gt;
* https://blog.zabbix.com/zabbix-api-scripting-via-curl-and-jq/12434/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==AVM Fritz!Box / FritzBox==&lt;br /&gt;
* [[FritzBox Status-Informationen DSL / Netzwerk per Telnet abfragen]]&lt;br /&gt;
* [[FritzBox mit Zabbix überwachen HowTo mit Template]]&lt;br /&gt;
* [[Zabbix:Template FRITZBox per Telnet]]&lt;br /&gt;
* [[FritzBox Status Informationen per Upnp mit Linux Bash-Script auslesen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==BackupExec==&lt;br /&gt;
* [[BackupExec 2010 - Status etc. per Commandline abfragen]]&lt;br /&gt;
* [[Zabbix:Template BackupExec 2010 Jobs]] Aufträge von BackupExec 2010 in Zabbix überwachen (Sicherungen, Wiederherstellungen etc.) mit Auto-Discover&lt;br /&gt;
* [[Zabbix:Template BackupExec 2012 Jobs]] Aufträge von BackupExec 2012 in Zabbix überwachen (Sicherungen, Wiederherstellungen etc.) mit Auto-Discover&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Banana Pi==&lt;br /&gt;
* [[Temperatur / Spannung etc. des Banana Pi selbst auslesen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Buffalo==&lt;br /&gt;
* [[Template Buffalo TeraStation TS4500R]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Chrome==&lt;br /&gt;
* [[Zabbix:Google Chrome headless per Kommandozeile nutzen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Citrix==&lt;br /&gt;
* [[Citrix XenDesktop per PowerShell Commandline abfragen]]&lt;br /&gt;
* [[Zabbix:Template Citrix XenDesktop]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Datacore==&lt;br /&gt;
* [[Datcore Status etc per PowerShell Commandline abfragen]]&lt;br /&gt;
* [[Zabbix Datacore Status per SNMP monitoren]]&lt;br /&gt;
* [[DataCore REST API per curl abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
* [[Zabbix Item Anzahl der Events eines Hosts innerhalb eines Zeitraumes überwachen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Exchange==&lt;br /&gt;
* [[Leistungsindikatoren Exchange 2010 - permon - Zabbix perf_couter]]&lt;br /&gt;
* [[Zabbix:Template_Exchange_Statistics|Template_Exchange_Statistics]] - Email- und Datenbanken-Statistiken aus Exchange 2010 / 2013 in Zabbix&lt;br /&gt;
* [[Exchange Healthcheck ab 2013]]&lt;br /&gt;
* [[Exchange Build Nummer mit Zabbix abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Feiertage und Wochenenden==&lt;br /&gt;
* [[Zabbix:Template Feiertage und Wochenenden|Template Feiertage und Wochenenden]] Items für Feiertage und Wochenden um diese in Triggern zu verwenden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
==Guacamole==&lt;br /&gt;
* [[Zabbix mit Guacamole in Kombination|Zabbix mit Guacamole in Kombination - Demo-Video]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Grafana==&lt;br /&gt;
* [[Zabbix Dashboard mit Grafana]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
* Online HTML-Editor: https://jsfiddle.net/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==IBM==&lt;br /&gt;
* [[IBM Storage DS-Serie per SMcli abfragen - DS3400 DS4300 DS4700 DS5020]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==IPMI==&lt;br /&gt;
* [[IPMI Log löschen aus Ubuntu heraus]]&lt;br /&gt;
* [[IPMI Linksammlung Monitoring]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Installation + Update==&lt;br /&gt;
* [[Zabbix Server + Agent unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
* [[Zabbix Server + Agent unter Ubuntu 22.04 LTS installieren]]&lt;br /&gt;
* [[Zabbix Server + Agent unter Ubuntu 20.04 LTS installieren]]&lt;br /&gt;
* [[Zabbix Server + Agent unter Ubuntu 18.04 LTS installieren]]&lt;br /&gt;
* [[Zabbix Server + Agent unter Ubuntu 16.04 LTS installieren]]&lt;br /&gt;
* [[Zabbix Server + Agent unter Ubuntu 14.04 LTS installieren]]&lt;br /&gt;
* [[Zabbix Server + Agent unter Ubuntu 12.04 LTS installieren]]&lt;br /&gt;
* [[Zabbix Server + Agent unter RHEL 7.x CentOS 7.x installieren]]&lt;br /&gt;
* [[Zabbix Agent unter Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
* [[Zabbix Agent unter Ubuntu 14.04.x LTS aus repo.zabbix.com installieren]]&lt;br /&gt;
* [[Raspberry Pi als Zabbix-Proxy - Zabbix Proxy auf Raspberry Pi mit Raspbian installieren]]&lt;br /&gt;
* [[Zabbix Server auf neue Version aktualisieren]]&lt;br /&gt;
* [[Zabbix Server neue Templates 2.2.x beim Upgrade von 2.0.x Version]]&lt;br /&gt;
* [[Zabbix Host mit Agent automatisch auf Server registrieren/einrichten lassen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==JavaScript / Java / JMX==&lt;br /&gt;
* [[Zabbix Server Java Gateway JMX einrichten]]&lt;br /&gt;
* In einem Bash-Script Anmeldung an JavaScript-Webseite durchführen: &lt;br /&gt;
** https://www.hhutzler.de/blog/using-curl/&lt;br /&gt;
** https://stackoverflow.com/questions/10634330/javascript-login-using-curl-in-bash-script&lt;br /&gt;
** User-Macro aus Skript heraus setzen: https://www.zabbix.com/forum/zabbix-help/463927-best-practice-to-update-a-macro-value-from-script&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==JavaScript Preprocessing==&lt;br /&gt;
* [[Zabbix JavaScript Preprocessing Beispiele]]&lt;br /&gt;
** User-Macro aus Skript heraus setzen: https://www.zabbix.com/forum/zabbix-help/463927-best-practice-to-update-a-macro-value-from-script&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==JSON==&lt;br /&gt;
* JSON Validator: https://jsonlint.com/&lt;br /&gt;
* JSON Path Finder: http://jsonpathfinder.com/&lt;br /&gt;
* Zabbix JSON Plus: https://support.zabbix.com/browse/ZBXNEXT-5649&lt;br /&gt;
* Wie man die Pfade auswählt: https://www.zabbix.com/documentation/current/en/manual/config/items/preprocessing/jsonpath_functionality&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==LDAP==&lt;br /&gt;
* [[Zabbix Server Anmeldung mit Active Directory Benutzern oder LDAP Benutzern]]&lt;br /&gt;
* [[Zabbix Benutzer mit LDAP Gruppen Active Directory synchronisieren Zabbix sync LDAP]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* https://monitoringartist.github.io/zabbix-searcher/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==LINUX==&lt;br /&gt;
* [[Zabbix:Template Linux Process Discovery]] Überwachung von Linux-Prozessen mit Erkennung der Prozesse über Discovery Rule LLD&lt;br /&gt;
* [[Zabbix: Template Linux SNMP Process Monitoring with Discovery]] Überwachung von Linux-Prozessen mit Discovery per SNMP&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Maintenance Mode ==&lt;br /&gt;
* [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;br /&gt;
* [[Zabbix Skripte Maintenance Host oder Gruppe]]&lt;br /&gt;
* [[Zabbix Standorte Hostgruppen bei Nichterreichbarkeit automatisch in den Wartungsmodus setzen oder daraus entfernen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MySQL==&lt;br /&gt;
* [[Zabbix Template App MySQL nutzen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==NetApp==&lt;br /&gt;
* [[NetApp Uhrzeit und Abweichung monitoren überwachen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Netzwerk==&lt;br /&gt;
* [[Zabbix Item mit traceroute Routen überwachen monitoren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
* [[OpenWrt Barrier Breaker Zabbix Agent installieren und Templates]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Oracle==&lt;br /&gt;
* [[Oracle Datenbank mit Zabbix überwachen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Ping==&lt;br /&gt;
* [[Zabbix Ping von Host zu Host]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==PowerShell==&lt;br /&gt;
* [[Zabbix PowerShell JSON und LLD per system.run]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Raspberry Pi==&lt;br /&gt;
* [[Temperatur / Spannung etc. des Raspberry Pi selbst auslesen]]&lt;br /&gt;
* [[Zabbix:Template Raspberry Pi]] Temperatur etc. vom Raspberry Pi überwachen&lt;br /&gt;
* [[Raspberry Pi als Zabbix-Proxy - Zabbix Proxy auf Raspberry Pi mit Raspbian installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Robocopy==&lt;br /&gt;
* [[Zabbix:Template Windows Robocopy]] Robocopy-Jobs mit Zabbix überwachen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Reports - Berichte - Reporting==&lt;br /&gt;
* [[WinZabbixREPORTER.exe|WinZabbixREPORTER.exe - Abfragen der Zabbix-API von der CLI und aus Batchdateien + Erstellen von Reports]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==SAP==&lt;br /&gt;
* Linksammlung&lt;br /&gt;
** http://labs.consol.de/nagios/check_sap_health/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==S.M.A.R.T.==&lt;br /&gt;
* [[HDD S.M.A.R.T. Festplatten SMART in Linux Ubuntu abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==SNMP==&lt;br /&gt;
* [[Zabbix SNMP Traps empfangen und auswerten mit Template]]&lt;br /&gt;
* [[Zabbix SNMP Traps melden immer SNMPv2-MIB::authenticationFailure]]&lt;br /&gt;
* [[Zabbix SNMP Netzwerk Interface oder VLAN beim Discovery Filtern]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==SuSe Linux==&lt;br /&gt;
* [[Zabbix Agent unter SUSE SLES 11 installieren]]&lt;br /&gt;
* https://build.opensuse.org/package/show/server:monitoring:zabbix/zabbix30&lt;br /&gt;
* https://build.opensuse.org/project/show/server:monitoring:zabbix&lt;br /&gt;
* [[Zabbix:Template Linux Process Discovery]] Überwachung von Linux-Prozessen mit Erkennung der Prozesse über Discovery Rule LLD&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Templates &amp;amp; Icons==&lt;br /&gt;
* [[Zabbix:Original Templates nach der Installation]]&lt;br /&gt;
* [[Zabbix:Template BackupExec 2010 Dienste]] (veraltet)&lt;br /&gt;
* [[Zabbix:Template BackupExec 2010 Jobs]] Aufträge von BackupExec 2010 in Zabbix überwachen (Sicherungen, Wiederherstellungen etc.) mit Auto-Discover&lt;br /&gt;
* [[Zabbix:Template BackupExec 2012 Jobs]] Aufträge von BackupExec 2012 in Zabbix überwachen (Sicherungen, Wiederherstellungen etc.) mit Auto-Discover&lt;br /&gt;
* [[Zabbix:Template Citrix XenDesktop]]&lt;br /&gt;
* [[Zabbix:Template_Exchange_Statistics]] - Email- und Datenbanken-Statistiken aus Exchange 2010 / 2013 in Zabbix&lt;br /&gt;
* [[Zabbix:Template FRITZBox per Telnet]]&lt;br /&gt;
* [[Zabbix:Template Linux Process Discovery]] Überwachung von Linux-Prozessen mit Erkennung der Prozesse über Discovery Rule LLD&lt;br /&gt;
* [[Zabbix:Template Raspberry Pi]] Temperatur etc. vom Raspberry Pi überwachen&lt;br /&gt;
* [[Zabbix:Template Windows Robocopy]] Robocopy-Jobs mit Zabbix überwachen&lt;br /&gt;
* [[Zabbix:Template VMware ESX 5.x Datenspeicher Groesse und Belegung mit AutoDiscover|Zabbix Template VMware ESX 5.x Datenspeicher Groesse und Belegung mit AutoDiscover]]&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung von Dateien und Ordnern / Verzeichnissen mit vielen Beispielen&lt;br /&gt;
* [[Zabbix:Template Windows Service Auto-Discover - Windows Dienste automatisch entdecken]]&lt;br /&gt;
* [[Zabbix:Template Windows Updates]] - Wieviele Windows-Updates sind noch nicht installiert&lt;br /&gt;
* [[Zabbix:Template Windows Lizenzstatus]] - Ist Windows Lizenziert und Aktiviert? Ab Windows Vista / Server 2008&lt;br /&gt;
* [[Zabbix SNMP Traps empfangen und auswerten mit Template]]&lt;br /&gt;
* [[Icons für die Verwendung in Maps und Screens]]&lt;br /&gt;
* Externe Sammlungen&lt;br /&gt;
** 22.09.2015: https://github.com/thecamels/zabbix&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [[WinZabbixAPI|WinZabbixAPI - Reporting und API Tool für Windows, Abfragen und Reports aus Batchdateien heraus]]&lt;br /&gt;
* [[JSON Validator - Online Tool das die JSON Syntax prueft]]&lt;br /&gt;
* [[ZabbixPreventDuplicateHosts Doppelte Hosts bei Installations des Agenten und Autoregistrierung verhindern]]&lt;br /&gt;
* https://github.com/moudsen/mailGraph/wiki&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Terminalserver==&lt;br /&gt;
* [[Windows Terminalserver GracePeriod abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Trigger==&lt;br /&gt;
* [[Trigger in Zabbix nicht sofort auslösen sondern erst nach mehrmaliger Prüfung]]&lt;br /&gt;
* [[Zabbix Trigger nur zu bestimmten Zeiten - Zeit gesteuerte Trigger]]&lt;br /&gt;
* [[Zabbix mailGraph installieren - Trigger Alerts Emails mit Grafiken]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==VMware==&lt;br /&gt;
* [[ESXi 5.5 Benutzer mit root-Rechten direkt auf ESXi-Host anlegen fuer Zabbix und Co.]]&lt;br /&gt;
* [[Zabbix:Template VMware ESX 5.x Datenspeicher Groesse und Belegung mit AutoDiscover|Zabbix Template VMware ESX 5.x Datenspeicher Groesse und Belegung mit AutoDiscover]]&lt;br /&gt;
* [[ESXi CPU + RAM etc mit Zabbix ueberwachen]]&lt;br /&gt;
* [[Zabbix: VMware vSphere Leistungsdaten Performance Counter abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
* [[Zabbix:Template Windows Aufgabenplanung Scheduled Tasks]] - geplante Task / Aufgabenplanung in Windows überwachen&lt;br /&gt;
* [[Zabbix:Template Windows Service Auto-Discover - Windows Dienste automatisch entdecken]]&lt;br /&gt;
* [[Zabbix:Template Windows Service Auto-Discover Zabbix 3.x - Windows Dienste Service Discovery mit Bordmitteln]]&lt;br /&gt;
* [[Zabbix:Template Windows Mountpoints-Discover - Windows Volumes ohne Laufwerk entdecken]]&lt;br /&gt;
* [[Zabbix:Template Windows Updates]] - Wieviele Windows-Updates sind noch nicht installiert&lt;br /&gt;
* [[Zabbix:Template Windows Lizenzstatus]] - Ist Windows Lizenziert und Aktiviert? Ab Windows Vista / Server 2008&lt;br /&gt;
* [[Zabbix:Template Windows Eventlog]] - Eventlog-Überwachung für Status Warnung/Fehler&lt;br /&gt;
* [[Zabbix:Template Windows Eventlog mit Filter]] - Eventlog-Überwachung mit der Möglichkeit einzelne Events gezielt zu filtern&lt;br /&gt;
* [[Zabbix:Template Windows Local Administrators]] - Überwachung der lokalen Administratoren auf Windows Rechnern&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung von Dateien und Ordnern / Verzeichnissen mit vielen Beispielen&lt;br /&gt;
* [[Zabbix:Template Windows Robocopy]] Robocopy-Jobs mit Zabbix überwachen&lt;br /&gt;
* [[Zabbix:Template Windows Top 5 Prozesse ermitteln]] herausfinden welcher Prozess eine hohe CPU-last erzeugt&lt;br /&gt;
* [[Zabbix:Template Windows Anmelde Fehlversuche]] überwachen&lt;br /&gt;
* [[Zabbix:Template Windows SMART-Werte Festplatten]] überwachen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==WMI==&lt;br /&gt;
* WMI Abfragen wie bei NAGIOS - Remote statt per Agent: https://github.com/13hakta/zbxwmi&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==XML==&lt;br /&gt;
* XML Path Tester XPath: https://www.freeformatter.com/xpath-tester.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==zzz sonstiges==&lt;br /&gt;
* [[Testseite_Webseitenmonitoring]]&lt;br /&gt;
* Linksammlung zum Thema Actice Directory Monitoring&lt;br /&gt;
** https://www.windowspro.de/wolfgang-sommergut/auditing-administratoren-active-directory-ueberwachen&lt;br /&gt;
** https://learn.microsoft.com/de-de/windows-server/identity/ad-ds/plan/security-best-practices/monitoring-active-directory-for-signs-of-compromise&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Linux&amp;diff=15791</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Linux&amp;diff=15791"/>
		<updated>2026-04-15T14:09:50Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* pfSense */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:Linux]]&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
* [[ARP Cache unter Linux löschen]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root bei Ubuntu &amp;amp; Co.]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root per SSH Ubuntu 14.04]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* grep, sed und awk: http://unix.stackexchange.com/questions/42047/cut-grep-and-df-h&lt;br /&gt;
* [[Links unter Linux setzen - Harte und Symbolische]]&lt;br /&gt;
* [http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1022525 VMware Tools unter Linux installieren (Ubuntu)]&lt;br /&gt;
* [[init.d Script in den automatischen Start/Stop mit aufnehmen]]&lt;br /&gt;
* [[Mini Benchmark mit bc - Vergleich Root Server]]&lt;br /&gt;
* [[Linux - Windows Freigabe automatisch beim Booten mounten]] (Ubuntu 12.04 LTS)&lt;br /&gt;
* [[Linux - Ubuntu 14.04. Windows Freigabe mounten - beim Booten automatisch mounten]]&lt;br /&gt;
* [[Linux - Festplatten / Dateisystem überprüfen beim reboot]]&lt;br /&gt;
* [[fsck.vfat not found - keine Überprüfung von FAT Datenträgern]]&lt;br /&gt;
* [[Verzeichnisgröße abfragen in der Bash Shell - Ordnergröße]]&lt;br /&gt;
* [[Linux Dateimanager wie Windows Explorer]]&lt;br /&gt;
* [[ssh scp ohne Passwort Passworteingabe einrichten]]&lt;br /&gt;
* [[Ubuntu Bash sudo ohne Passworteingabe]]&lt;br /&gt;
* [[Ubuntu installierte Pakete]]&lt;br /&gt;
* Hilfe zu regulären Ausdrücken: &lt;br /&gt;
** http://www.regexe.de/hilfe.jsp&lt;br /&gt;
** https://www.strassenprogrammierer.de/regular-expression-regex-praxis_tipp_597.html&lt;br /&gt;
* Ubuntu 18.04 IPv6 deaktivieren: https://linuxconfig.org/how-to-disable-ipv6-address-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
* Nach Infektion / Rootkits suchen: https://www.tecmint.com/scan-linux-for-malware-and-rootkits/&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Linux main binary-i386 Packages wird übersprungen]]&lt;br /&gt;
* [[Linux Ubuntu MBR Datenträger in GPT Datenträger umwandeln kein LVM]]&lt;br /&gt;
* [[Linux leere Datei erzeugen mit zufälligen oder leeren Inhalt]]&lt;br /&gt;
* [[Linux systemd Dienst warten bis Mount erfolgt ist NFS Gluster SMB]]&lt;br /&gt;
* https://www.silvesterlangen.de/?Linux___%2BGrundlagen_und_Diverses___UID%2FGID_und_Dateien_eines_Users_aendern&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Linux Netzwerkbereich pingen ohne Zusatzprogramme kein fping kein nmap]]&lt;br /&gt;
* [[Linux Listen Ports mit Programm anzeigen]]&lt;br /&gt;
* [[Linux Stresstest Hardware CPU RAM Disk Festplatte]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Der eigene Webserver / Rootserver - How-To&#039;s ==&lt;br /&gt;
* [[Postfix HELO Meldung für SMTP 220 anpassen]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* [[APC Cache mit Plesk und die APC-Admin-Seite]]&lt;br /&gt;
* [[Xcache mit Plesk und die xcache-Admin-Seite]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* [[Ubuntu Backupskript Apache Webserver und MySQL Datenbank]]&lt;br /&gt;
* [[IONOS Mietserver Ubuntu 24.04 - Einrichtung ISPConfig]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Apache2 ==&lt;br /&gt;
* [[Apache2 http zu https Umleitung]]&lt;br /&gt;
* [[Apache2 PHP Upload bringt 500 Internal Server Error]]&lt;br /&gt;
* [[Apache2 als http / https Proxy zu anderen Host]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Exchange 2010 2013 2016 2019 inklusive Outlook Anywhere RPC over http]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für VMware vCenter WebClient mit Subdomain auf Port 443]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* Apache2 Subdomains anlegen: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts&lt;br /&gt;
* [[Apache OpenSSL Prüfen ob Zertifikat und Key zusammen passen]]&lt;br /&gt;
* [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy und Loadbalancer Beispiel Proxmox]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Home Assistant]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Bash ==&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Bash cronjob alle 30 Sekunden]]&lt;br /&gt;
* [[Bash Color Prompt Links und Beispiele]]&lt;br /&gt;
* [[Bash Skript exit ohne die Shell zu beenden]]&lt;br /&gt;
* [[Bash Treesize Programm ncdu]]&lt;br /&gt;
* [[Bash cronjob Dateien älter als x Tage löschen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BitTorrentSync ==&lt;br /&gt;
* [[Ubuntu 14.04.x btsync BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Raspbian lowmemorykiller: Killing &#039;btsync&#039;]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== BookStack ==&lt;br /&gt;
* [[BookStack CSS Beispiele Verbesserungen Hacks]]&lt;br /&gt;
* Import/Export: https://github.com/toras9000/bookstack-export-import&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Clipperz ==&lt;br /&gt;
* [[Clipperz - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Cockpit ==&lt;br /&gt;
* [[Linux Cockpit hinter Subdomain statt Port 9090 per Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Docker ==&lt;br /&gt;
* [[Ubuntu 24.02 als Docker-Host]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== DynDNS ==&lt;br /&gt;
* [[DynDNS Update Skript Linux Bash]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== EFA - Email Filter Appliance ==&lt;br /&gt;
* [[eFa Appliance Active Directory in MailScanner und Postfix konfigurieren]]&lt;br /&gt;
* Die Fußnote / Signatur unter den zugestellten Emails entfernen: https://forum.efa-project.org/viewtopic.php?t=2907&lt;br /&gt;
* Dateianhänge mit VBA Makros blocken: https://forum.efa-project.org/viewtopic.php?t=1896&lt;br /&gt;
* [[eFa Appliance Emails mit VBA Makros Skripten blocken]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Etherpad ==&lt;br /&gt;
* [[Etherpad - Installion auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fail2Ban ==&lt;br /&gt;
* [[Fail2Ban mit ISPConfig und open_basedir restriction in effect]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== GateOne ==&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== GitLab ==&lt;br /&gt;
* [[GitLab GitLab Community Edition unter Ubuntu 16.04.x LTS in Subdomain installieren]]&lt;br /&gt;
* GitLab anpassen: http://axilleas.me/en/blog/2014/custom-gitlab-login-page/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Guacamole ==&lt;br /&gt;
* [[Ubuntu 20.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 18.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 16.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Zabbix mit Guacamole in Kombination|Zabbix mit Guacamole in Kombination - Demo-Video]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Gogs ==&lt;br /&gt;
* [[CentOS 7 Gogs Git-Server installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Icinga==&lt;br /&gt;
* [[Linksammlung Icinga2 unter CentOS 7]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ISPConfig ==&lt;br /&gt;
* [[ISPConfig - Webinterface als Subdomain auf Port 443 einrichten]]&lt;br /&gt;
* [[ISPConfig ab 3.1.x - Webinterface als Subdomain auf Port 443 https einrichten]]&lt;br /&gt;
* [https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/ ISPConfig - PHP 7.0.0 Installieren]&lt;br /&gt;
* [[ISPConfig 3.0.5.4p8 Webseiten https mit letsencrypt absichern und Zertifikate automatisch erneuern]]&lt;br /&gt;
* Basic Auth für Website https://davidstein.cz/2025/01/15/isp-config-website-password-protection/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Kodi ==&lt;br /&gt;
* Kodi nachträglich auf Raspbian: https://www.makeuseof.com/tag/install-kodi-raspbian-media-center/&lt;br /&gt;
* Kodi 18 auf Raspbian Stretch: https://www.raspberrypi.org/forums/viewtopic.php?t=222954&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Encrypt ==&lt;br /&gt;
* [[Lets Encrypt Zertifikate erneuern mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Lets Encrypt Liste der Server Firewall]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== LVM ==&lt;br /&gt;
* [[LVM root boot Volume umbenennen Ubuntu Debian]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mattermost ==&lt;br /&gt;
* [[Mattermost unter Ubuntu 16.04 mit Apache und ISPConfig in Subdomain installieren]]&lt;br /&gt;
* [[Mattermost Farbschema]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Minecraft ==&lt;br /&gt;
* [[Minecraft Server mit rfwadmin unter Ubuntu 14.04 LTS und ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Monitorix ==&lt;br /&gt;
* [[Monitorix unter Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Multipathing==&lt;br /&gt;
* [[Solaris Multipathing Status abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== mySQL ==&lt;br /&gt;
* [[mySQL - Verbindungsdaten ( Connections ) anzeigen lassen]]&lt;br /&gt;
* [[mySQL - weitere Instanz auf gleichen Server starten / betreiben]]&lt;br /&gt;
* [[MySQL - Datenbank direkt zwischen 2 Servern kopieren]]&lt;br /&gt;
* https://github.com/major/MySQLTuner-perl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==NetBox==&lt;br /&gt;
* [[NetBox unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== NextCloud ==&lt;br /&gt;
* [[NextCloud unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
* [[NextCloud unter Ubuntu 22.04 LTS installieren]]&lt;br /&gt;
* Monitoring URL mit curl abfragen + Token dafür erstellen: https://help.nextcloud.com/t/howto-use-serverinfo-with-curl/173360&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenSim ==&lt;br /&gt;
* [[OpenSim Server auf Ubuntu 14.04.x LTS mit ISPConfig installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenVPN ==&lt;br /&gt;
* OpenVPN Server unter Ubuntu Einfachlösung: https://www.cyberciti.biz/faq/ubuntu-20-04-lts-set-up-openvpn-server-in-5-minutes/#Install_OpenVPN_server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenWISP ==&lt;br /&gt;
* [[OpenWISP Manager auf Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Parallels Plesk Panel ==&lt;br /&gt;
* [[SFTP Zugang unter Parallels Plesk Panel aktivieren]]&lt;br /&gt;
* [[Parallels Plesk 11 - Emails an anderen Mailserver weiterleiten]]&lt;br /&gt;
* [[Parallels Plesk lästige Statusmeldungen abschalten]]&lt;br /&gt;
* [[Parallels Plesk - Zugriff auf alle MySQL Datenbanken - Benutzer root funktioniert nicht]]&lt;br /&gt;
* [[Parallels Plesk - database disk image is malformed]]&lt;br /&gt;
* [[ERROR Zend_Db_Adapter_Exception SQLSTATE HY000 2002 No such file or directory]]&lt;br /&gt;
* Alt aber viel interessantes: http://www.grafxsoftware.com/faq.php/HOW-TO-Setup-a-PLESK-Dedicated-Server/1/4/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== pfSense ==&lt;br /&gt;
* [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&lt;br /&gt;
* [[pfSense - IPv6 mit Tunnel Broker und Reverse DNS rDNS]]&lt;br /&gt;
* [[pfSense - IPSec mit IPv4 Remote IP wird aber IPv6 genommen]]&lt;br /&gt;
* [[pfsense - Tor Proxy mit Anmeldung über Internet squid polipo]]&lt;br /&gt;
* [[pfsense - GeoIP Blocking auf bestimmte Ports oder Dienste IPv4 IPv6]]&lt;br /&gt;
* [[pfSense - GeoIP Blocking und Lets Encrypt Zertifikate]]&lt;br /&gt;
* https://www.biteno.com/tutorial/openvpn-auf-einer-pfsense-firewall-einrichten/&lt;br /&gt;
* pfSense und Duo.com: &lt;br /&gt;
** https://forum.netgate.com/topic/119303/openvpn-with-active-directory-authentication-and-duo-security&lt;br /&gt;
** https://github.com/jasonbeitler/www/wiki/PFSense-and-Duo-2FA&lt;br /&gt;
* [[pfSense - HAProxy + Lets Encrypt ACME + GeoIP-Blocking pfBlockerNG]]&lt;br /&gt;
* [[pfSense - ACME-Zertifikate auf anderen Server kopieren]]&lt;br /&gt;
* https://www.cyberciti.biz/faq/howto-configure-dual-wan-load-balance-failover-pfsense-router/&lt;br /&gt;
* QEMU Tools für Proxmox in der pfSense installieren: https://github.com/Weehooey/pfSense-scripts&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==phpIPAM==&lt;br /&gt;
* https://github.com/thetechguysguide/thetechguysguide.github.io&lt;br /&gt;
** https://www.youtube.com/watch?v=GfBvFJLClHQ&lt;br /&gt;
* [[phpIPAM MAC-Adressen per arp ermitteln und hinzufügen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==PHPMyAdmin==&lt;br /&gt;
* [[PHPMyAdmin alle Benutzer bis auf einen verbieten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PiHole ==&lt;br /&gt;
* [[PiHole Whitelist Amazon]]&lt;br /&gt;
* Liste der Microsoft 365: https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
* [[Ubuntu root alle Emails weiterleiten an Postfach auf Exchange Server]]&lt;br /&gt;
* https://patrik.kernstock.net/2013/01/postfix-mailwarteschlange-ansehen-flushen-und-leeren/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PuTTY ==&lt;br /&gt;
* [[PuTTY sinnvoll Voreinstellungen machen / Default Settings ändern]]&lt;br /&gt;
* [[PuTTY Anmeldung per SSH-Key ohne Pageant ganz ohne Passwort]]&lt;br /&gt;
* [[PuTTY nano in SSH Sitzung mit Maus bedienen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
* [[Python Skripte als Dienst unter Windows oder Linux]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== qmail ==&lt;br /&gt;
* qmail Queue löschen: http://dragos.fedorovici.com/plesk-clear-qmail-queue/&lt;br /&gt;
* qmail Queue diverses: http://www.debianhelp.co.uk/qmailqueue.htm&lt;br /&gt;
* qmail Bounce Messages verhindern: http://g33kinfo.com/info/archives/4080/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== RedHat ==&lt;br /&gt;
* [[Anmeldung per SSH-Key nicht möglich wenn der home-Ordner auf einem NFS-Share liegt]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Repository ==&lt;br /&gt;
* [[Ubuntu Offline Mirror Repository erstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Samba==&lt;br /&gt;
* [[Samba Das angegebene Netzwerkkennwort ist falsch NTLMv2]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Seafile ==&lt;br /&gt;
* [[Seafile Server Docker - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 20.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 18.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 16.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 12.04.x LTS mit Plesk]]&lt;br /&gt;
* [[Seafile Server - als separater Server hinter Webserver mit Apache2]]&lt;br /&gt;
* [[Seafile - Speicherplatz freigeben von gelöschten Dateien]]&lt;br /&gt;
* [[Seafile Server - Upgrade Version 3 auf 4]]&lt;br /&gt;
* [[Seafile Server - Update/Upgrade des Servers auf neuere Version]]&lt;br /&gt;
* [[Seafile Terminal Client - Installation und Synchronisation unter Ubuntu 14.04.x LTS]]&lt;br /&gt;
* [http://seafile.com/en/help/ignore/ Seafile Server - Dateien oder Ordner beim Upload Client-seitig ignorieren]&lt;br /&gt;
* [[Seafile Server - Active Directory Anbindung]]&lt;br /&gt;
* [[Seafile Server - inaktive LDAP Benutzer finden - inactive LDAPUsers]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SNMP ==&lt;br /&gt;
* [[PoE am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* [[Port am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* https://www.m00nie.com/2010/08/how-to-install-and-use-snmpwalk/&lt;br /&gt;
* [[nmap Beispielsammlung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SOLARIS ==&lt;br /&gt;
* [[Oracle Solaris FC Multipath Fibre Channel Multipathing prüfen und wiederherstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== SUSE ==&lt;br /&gt;
* [[SUSE Version abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Syncthing ==&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== systemctl ==&lt;br /&gt;
* systemctl auf die Schnelle: http://mikuerschner.org/node/26&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Tor ==&lt;br /&gt;
* Anleitung Tor Server: https://2019.www.torproject.org/docs/tor-onion-service.html.en&lt;br /&gt;
* Eigene .onion-Adressen erstellen: https://www.jamieweb.net/blog/onionv3-vanity-address/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
* [[Ubuntu Netzwerkkarteneinstellungen ändern ohne GUI in der Console]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP Version auf 5.3.27 updaten]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP intl PECL-Erweiterung nachinstallieren]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Ubuntu 12.05 LTS - Gateone SSH Client installieren auf Server mit Plesk]]&lt;br /&gt;
* [[Ubuntu - Pakete installieren, entfernen, suchen und installierte anzeigen lassen]]&lt;br /&gt;
* [[Ubuntu - alte Version findet keine Paketquellen mehr]]&lt;br /&gt;
* [[VMware Tools Ubuntu installieren in der Bash / Shell]]&lt;br /&gt;
* [[Linux Farbiger Standard Prompt in der Bash auch bei root und PuTTY]]&lt;br /&gt;
* [[Linux Reboot per cron-Job automatisch]]&lt;br /&gt;
* [[Linux Script oder Befehl nach reboot ausführen]]&lt;br /&gt;
* [[Email nach SSH Login auf Linux-Server]]&lt;br /&gt;
* [[Bash bunter Text und Banner mit toilet]]&lt;br /&gt;
* [[Bash Hollywood - Hollywood in der Bash]]&lt;br /&gt;
* [[Logfiles in Logrotate aufnehmen - automatisches packen, rotieren und leeren von Logs]]&lt;br /&gt;
* [[Ubuntu Version in der Bash abfragen]]&lt;br /&gt;
* [[Linux SCP mit IPv6 nutzen]]&lt;br /&gt;
* [[Linux rsync statt scp zum kopieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
* Virtuelle Maschinen auf Ubuntu Server:&lt;br /&gt;
** http://www.serveradventures.com/the-adventures/virtual-machines-in-ubuntu-server-virtualbox-phpvirtualbox&lt;br /&gt;
** http://www.unixmen.com/install-oracle-virtualbox-manage-using-phpvirtualbox-ubuntu-14-04-headless-server/&lt;br /&gt;
** http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.3-on-a-headless-ubuntu-14.04-lts-server&lt;br /&gt;
* [[Ubuntu Linux - Festplatte mit LVM im laufenden Betrieb ohne Neustart vergrößern]]&lt;br /&gt;
* Ubuntu puTTY Zugriff mit SSH-Keys absichern: https://www.howtoforge.de/anleitung/key-basierte-ssh-logins-mit-putty/&lt;br /&gt;
* [[Ubuntu Bilder betrachten anzeigen mit puTTY in Konsole]]&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x Inhalt der .bashrc]]&lt;br /&gt;
* [[Ubuntu 14.04.x Server minimale GUI und andere Spielereien]]&lt;br /&gt;
* [[IBM Storage Manager unter Ubuntu Linux installieren]]&lt;br /&gt;
* [[Ubuntu nano ist auf Englisch]]&lt;br /&gt;
* [[TSM Client auf Ubuntu installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x NFS Freigabe erstellen und verbinden]]&lt;br /&gt;
* [[Linux Bash wget etc http https Proxy angeben]]&lt;br /&gt;
* [[Ubuntu 14.04.x Apache 2.4.7 GeoIP Blocking mit IPv4 und IPv6 einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x 2-Faktor bei SSH mit Google Authenticator einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x Automatische Updates aktivieren oder deaktivieren in der Bash]]&lt;br /&gt;
* [[Ubuntu 16.04.x tmux für die Verwendung mit puTTY oder kiTTY]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu UFW konfigurieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==ufw Firewall==&lt;br /&gt;
* [[ufw Geoblocking mit Ubuntu 24.04]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vaultwarden==&lt;br /&gt;
* [[Vaultwarden unter Ubuntu 24.04 und Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Solaris==&lt;br /&gt;
* [[Solaris 10 - SSH Zugriff für root freischalten]]&lt;br /&gt;
* [[Solaris 10 - Tabulator und Pfeiltasten wie unter Linux]]&lt;br /&gt;
* [[Solaris 10 - NetBackup Client NetBackup Agent unter Solaris installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== STRATO ==&lt;br /&gt;
* [[V-PowerServer startet nach Wiederherstellung eines Backups mit BackupControl nicht - mySQL startet nicht]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Windows&amp;diff=15790</id>
		<title>Windows</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Windows&amp;diff=15790"/>
		<updated>2026-04-15T13:06:51Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Windows 11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rund um das Windows Betriebssystem:&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Active Directory&#039;&#039;&#039;===&lt;br /&gt;
* [[ActiveDirectory:AD-Benutzerdaten in Scripts verwenden|AD-Benutzerdaten in Word 2010 verwenden]]&lt;br /&gt;
* [[ActiveDirectory:VBA Scriptsammlungen für AD Manipulation|VBA Scriptsammlungen für AD Manipulation]]&lt;br /&gt;
* [[Office:Word2010 Benutzerdaten aus ActiveDirectory verwenden|Word 2007 / 2010 Benutzerdaten aus ActiveDirectory verwenden (VBA)]]&lt;br /&gt;
* [[Office:Excel LDIF Export|Excel - Export im LDIF Format um es mit ldif.exe ins AD einzulesen]]&lt;br /&gt;
* [[SAN+NAS:CrushFTP Benutzer-Abfrage aus Active Directory mit automatischen Home-Ordnern|CrushFTP Benutzer-Abfrage aus Active Directory mit automatischen Home-Ordnern]]&lt;br /&gt;
* [[DN Distinguished Name eines Benutzers oder einer Gruppe abfragen / herauskriegen]]&lt;br /&gt;
* [[DN Distinguished Name eines Server oder Computer oder Rechner abfragen / herauskriegen]]&lt;br /&gt;
* [[Zertifikatsserver im Netzwerk im Actice Directory finden]]&lt;br /&gt;
* [[FSMO Rollen eines Domänencontroller an einen anderen übertragen - der Klassiker 2003 2008 2008R2 2012 2012R2 2016 2019 2022]]&lt;br /&gt;
* [[Betriebsmaster FSMO Rollen abfragen / herauskriegen]]&lt;br /&gt;
* [[Liste der DHCP Server einer Domäne]]&lt;br /&gt;
* [[Foto im Active Directory hinterlegen und bei Benutzeranmeldung anzeigen]]&lt;br /&gt;
* [[ZnilTools:ImportThumbnailPhoto.exe|&#039;&#039;&#039;ImportThumbnailPhoto.exe&#039;&#039;&#039; - Benutzerbilder ins Active Directory Importieren per Ordner mit Bildern]]&lt;br /&gt;
* [[Active Directory alle Mitglieder einer Gruppe mit Abteilung abfragen]]&lt;br /&gt;
* [[Windows Domänencontroller Registrierung der 2. Netzwerkkarte im DNS verhindern]]&lt;br /&gt;
* Active Directory Firewall-Ports: https://blogs.msmvps.com/acefekay/2011/11/01/active-directory-firewall-ports-let-s-try-to-make-this-simple/&lt;br /&gt;
* [[Active Directory Registerkarte BitLocker-Wiederherstellung fehlt]]&lt;br /&gt;
* [[Active Directory LDAP Port 389 unverschlüsselt weiter zulassen]]&lt;br /&gt;
* [[Active Directory Replikation alle Verbindungen Standorte starten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Allgemeines&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Liste der Sprachcodes|Liste der Sprachcodes in Windows und Office]]&lt;br /&gt;
* [[Windows:Microsoft Safety Scanner|Microsoft Safety Scanner - Kostenloser Virenscan ohne Installation von Microsoft]]&lt;br /&gt;
* [[Windows:Microsoft Safety Scanner Offline|Microsoft Safety Scanner Offline - Kostenlose Antiviren-Boot-CD (auch von USB) von Microsoft]]&lt;br /&gt;
* [[Windows:Speicherlimits der Windowsversionen|Speicherlimits der Windowsversionen]]&lt;br /&gt;
* [[Windows:Umlaute in Batchdateien verwenden unter Windows mit Notepad++|Umlaute in Batchdateien verwenden unter Windows mit Notepad++]]&lt;br /&gt;
* [[AutoIt:Beschreibung der Windows Dateien und DLL&#039;s welche die Standard-Grafiken und -Icons enthalten|Beschreibung der Windows Dateien und DLL&#039;s welche die Standard-Grafiken und -Icons enthalten]]&lt;br /&gt;
* [http://blogs.technet.com/b/markrussinovich/archive/2009/11/03/3291024.aspx Artikel von Mark Russinovich über den Mythos doppelter SID bei Computern]&lt;br /&gt;
* [[Windows:How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7|How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[PuTTY sinnvoll Voreinstellungen machen / Default Settings ändern]]&lt;br /&gt;
* [[Ordner der Benutzer werden als Eigene Dokumente oder Eigene Dateien statt mit Benutzernamen angezeigt]]&lt;br /&gt;
* [[Windows SD-Karte als Festplatte einbinden  und Programme auf SD-Karte installieren]]&lt;br /&gt;
* [[Upgrade von Windows 7 8 Server 2008 2008 R2 2012 R2 auf andere Windows Version]]&lt;br /&gt;
* [[Upgrade von Windows Server 2022 von Standard auf Datacenter]]&lt;br /&gt;
* [[Robocopy inklusive Datum bei Ordnern]]&lt;br /&gt;
* [[Windows Teredo und ISATAP deaktivieren]]&lt;br /&gt;
* [[Windows USB Stick Partition löschen Partitionen loeschen]]&lt;br /&gt;
* [[Windows Dateien Ordner löschen Dateiname Verzeichnisname zu lang]]&lt;br /&gt;
* [[Edge oder Internet Explorer speichern EXE als STL]]&lt;br /&gt;
* [[Windows Zertifikate Details einer .pfx Datei anzeigen lassen]]&lt;br /&gt;
* [[Windows Batterie Akku Status per WMI abfragen]]&lt;br /&gt;
* [[Windows Batterie Akku USV per USB Status per WMI abfragen]]&lt;br /&gt;
* [https://docs.microsoft.com/de-de/troubleshoot/azure/virtual-machines/credssp-encryption-oracle-remediation CredSSP Encryption Oracle Remediation]&lt;br /&gt;
* Remote Management in einer Arbeitsgruppe: http://winxperts4all.at/index.php/betriebssysteme/windows-server-2016/1213-remote-management-hyper-v-core-in-einer-arbeitsgruppe&lt;br /&gt;
* OTP für Windows-Anmeldung:&lt;br /&gt;
** https://www.rcdevs.com/docs/howtos/ad_openotp/ms_ad/&lt;br /&gt;
** https://www.youtube.com/watch?v=OnQcfrn6kUo&lt;br /&gt;
** https://www.youtube.com/watch?v=zTIq8DxIaZU&lt;br /&gt;
* OTP für Windows-Anmeldung multiOTP&lt;br /&gt;
** https://github.com/multiOTP/multiOTPCredentialProvider&lt;br /&gt;
** https://github.com/multiOTP/multiotp/wiki&lt;br /&gt;
** https://servilon.com/two-factor-authentication/&lt;br /&gt;
** https://github.com/multiOTP/multiotp/issues/41&lt;br /&gt;
* DHCP Failover: https://bent-blog.de/dhcp-failover-cluster-automatische-replikation-von-konfigurationsaenderungen/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Anmeldescripte / Batchdateien / VBS&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:ifmember+ismember|AD-Gruppenmitgliedschaft in Batchdateien auswerten - ifmember.exe oder ismember.exe]]&lt;br /&gt;
* [[Windows:Drucker per Batchdatei mappen|Drucker im Anmeldescript / Batchdatei mappen]]&lt;br /&gt;
* [[Windows:Verzeichnistruktur per Batch abarbeiten|Verzeichnistruktur per Batch abarbeiten]]&lt;br /&gt;
* [[Windows:VBS Rechnernamen auswerten und gegebenenfalls Script beenden|VB Script - Rechnernamen auswerten und Script ggf. beenden]]&lt;br /&gt;
* [[Windows:Benutzerzertifikate per Batch importieren|Benutzerzertifikate per Batch / Kommandozeile importieren]]&lt;br /&gt;
* [[Windows:WebDAV als Laufwerk per net use Befehl verbinden|WebDAV als Laufwerk per net use Befehl verbinden]]&lt;br /&gt;
* [[Windows:Dateien die älter sind als X Tage per Skript / Batch löschen|Dateien die älter sind als X Tage per Skript / Batch löschen]]&lt;br /&gt;
* [[Windows:Rechner oder Server per Batch/Script remote neu starten|Rechner oder Server per Batch/Script remote neu starten]]&lt;br /&gt;
* [[Windows:Batch / DOS-Box: aktuelles Datum und Uhrzeit für Datei- oder Verzeichnisnamen verwenden|Batch / DOS-Box: aktuelles Datum und Uhrzeit für Datei- oder Verzeichnisnamen verwenden]]&lt;br /&gt;
* [[Windows:FTP-Verzeichnisse per Batch sichern, in ein Archiv packen und Status mit Logfile per Email versenden|FTP-Verzeichnisse per Batch sichern, in ein Archiv packen und Status mit Logfile per Email versenden]]&lt;br /&gt;
* [[Windows:Multi-Monitor Slideshow - Diashow über mehrere Monitore - mit IrfanView und einem Batch-Script|Multi-Monitor Slideshow - Diashow über mehrere Monitore - mit IrfanView und einem Batch-Script]]&lt;br /&gt;
* [[Windows:Pause von x Sekunden in Batch einbauen auch unter Windows 7 / 2008 R2|Pause von x Sekunden in Batch einbauen auch unter Windows 7 / 2008 R2]]&lt;br /&gt;
* [[Windows:Per Batch Berechtigungen auf Ordner inklusive Unterordner setzen mit icacls|Per Batch Berechtigungen auf Ordner inklusive Unterordner setzen mit icacls]]&lt;br /&gt;
* [[Windows:Per Batch Remote auf einem anderen Computer einen Ordner anlegen und diesen Freigeben mit bestimmten Rechten|Per Batch Remote auf einem anderen Computer einen Ordner anlegen und diesen Freigeben mit bestimmten Rechten]]&lt;br /&gt;
* [[Windows:Robocopy unter Linux?´|Robocopy unter Linux?]]&lt;br /&gt;
* [[Windows:Batch Datei (.cmd / .bat) soll nur ein einziges mal bei Anmeldung abgearbeitet werden|Batch Datei (.cmd / .bat) soll nur ein einziges mal bei Anmeldung abgearbeitet werden]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei]]&lt;br /&gt;
* [[Windows Anmeldescript wird nicht abgearbeitet]]&lt;br /&gt;
* [[Windows Domänencontroller per nslookup finden]]&lt;br /&gt;
* [[Domäne eines Computers zuverlässig in Batch Skript herausbekommen abfragen ermitteln]]&lt;br /&gt;
* [[In Batch testen ob System ein Server oder eine Workstation ist]]&lt;br /&gt;
* [[In Windows Batch die Ausgabe eines Befehls in einer Variablen speichern]]&lt;br /&gt;
* [[Batch RDP Verbindung starten mit Benutzername und Passwort]]&lt;br /&gt;
* [[Batch Programm nur starten wenn es noch nicht gestartet ist - zum Beispiel in Aufgabenplanung Task Scheduler]]&lt;br /&gt;
* Benutzer können gemappte Laufwerke nicht sehen: http://www.active-directory-faq.de/2014/11/laufwerksmapping-gemappte-laufwerke-nicht-im-explorer-angezeigt/&lt;br /&gt;
* Sonderzeichen in Batch Dateien Escapen: http://www.robvanderwoude.com/escapechars.php&lt;br /&gt;
* [[Windows Update per Skript suchen herunterladen installieren reboot]]&lt;br /&gt;
* [[Windows DHCP Server Reservierungen per CMD Batch erstellen]]&lt;br /&gt;
* [[Windows Domain Controller Schreibcache dauerhaft aktivieren]]&lt;br /&gt;
* [[Windows Dienst Startart per CMD Befehl ändern]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Firewall&#039;&#039;&#039;===&lt;br /&gt;
* Firewall Ports für Domänencontroller: https://support.microsoft.com/de-de/help/179442/how-to-configure-a-firewall-for-domains-and-trusts&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Gruppenrichtlinien&#039;&#039;&#039;===&lt;br /&gt;
* [[Gruppenrichtlinien Sammlung von WMI Filtern]]&lt;br /&gt;
* [[Windows:Gruppenrichtlinien - Ordnerumleitungen wieder rückgängig machen (aufheben)|Gruppenrichtlinien - Ordnerumleitungen wieder rückgängig machen (aufheben)]]&lt;br /&gt;
* [[Windows: Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten|Gruppenrichtlinien - Datei öffnen Warnung abschalten]]&lt;br /&gt;
* [[VMware:VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung|Gruppenrichtlinien - VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung]]&lt;br /&gt;
* [[Windows: IE9 Gruppenrichtlinen werden in 2008R2 ADS nicht (oder nicht korrekt) ausgeführt|Gruppenrichtlinien - IE9 Gruppenrichtlinen werden in 2008R2 ADS nicht (oder nicht korrekt) ausgeführt]]&lt;br /&gt;
* [[Windows:Ordnerumleitungen per Gruppenrichtlinie - die richtigen Rechte für den Stammordner|Ordnerumleitungen per Gruppenrichtlinie - die richtigen Rechte für den Stammordner]]&lt;br /&gt;
* [[Windows:Gruppenrichtlinen - Vertrauenswürdige Zertifikate / Stammzertifikate per Gruppenrichtlinie (GPO) verteilen|Gruppenrichtlinen - Vertrauenswürdige Zertifikate / Stammzertifikate per Gruppenrichtlinie (GPO) verteilen]]&lt;br /&gt;
* [[Routen per Gruppenrichttlinie verteilen]]&lt;br /&gt;
* Beispiele WMI-Filter: http://www.eventsentry.com/blog/2009/10/useful-wmi-queries-to-filter-g.html&lt;br /&gt;
* [[Gruppenrichtlinien mit Änderungsdatum Modifizierungsdatum auflisten]]&lt;br /&gt;
* [[WMI-Filter Desktop Notenbook Laptop Server]]&lt;br /&gt;
* [[Windows Weisse Icons Symbole nach Ordnerumleitung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Hyper V / Hyper-V / HyperV&#039;&#039;&#039;===&lt;br /&gt;
* [[Hyper V Standalone Server in Hyper-V-Manager aufnehmen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;IIS Internet Information Service&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:IIS 7.x Hostheader bei SSL einsetzen|IIS 7.x Hostheader bei SSL einsetzen]]&lt;br /&gt;
* [[Windows:IIS 7.x WebDAV einrichten|IIS 7.x WebDAV einrichten]]&lt;br /&gt;
* [[IIS SAN Zertifikat anfordern (Zertifikat mit mehreren Domänennamen)]]&lt;br /&gt;
* [[Mit IIS 7.x einen Seafile Server per https absichern]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Internet Explorer&#039;&#039;&#039;===&lt;br /&gt;
* [[Internet Explorer Google lässt sich nicht als Standard Suchanbieter setzen]]&lt;br /&gt;
* [[Excel Internet Explorer speichert xlsx als xls]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Java&#039;&#039;&#039;===&lt;br /&gt;
* [[Java - Zertifikat konnte nicht validiert werden. Die Anwendung wird nicht ausgeführt]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Links&#039;&#039;&#039;===&lt;br /&gt;
* https://www.uwe-sieber.de/misc_tools.html -&amp;gt; Unter anderem Tool um Popup fenster zu finden und nicht mehr vorhandene USB-Geräte zu löschen&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Microsoft SQL Server 2000 / 2005 / 2008&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:SQL2000 - MSDE 2000 nachträglich Netzwerkfähig machen|MSDE 2000 nachträglich Netzwerkfähig machen / Netzwerkzugriff erlauben]]&lt;br /&gt;
* [[Windows:SQL2000 - MSDE 2000 Management Console / Verwaltungskonsole / SQL Server Management Studio Express|MSDE 2000 Management Console / Verwaltungskonsole / SQL Server Management Studio Express installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Netzwerk&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Windows7+2008-IPv6-deaktivieren|IPv6 richtig deaktivieren unter Windows Vista / 7 / 2008 / 2008 R2]]&lt;br /&gt;
* [[Windows:WebDAV als Laufwerk per net use Befehl verbinden|WebDAV als Laufwerk per net use Befehl verbinden]]&lt;br /&gt;
* [http://www.nord-ostsee-it-service.de/aktuelles/1296-deaktivieren-von-isatap.html Deaktivieren von Isatap, Teredo, 6to4] (externer Link)&lt;br /&gt;
* [[Windows herausfinden welches Programm mit einer bestimmten IP-Adresse kommuniziert]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;ODBC - Datenquellen&#039;&#039;&#039;===&lt;br /&gt;
* [[32 und 64 Bit ODBC Datenquellen auf 64 Bit Systemen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;PowerShell&#039;&#039;&#039;===&lt;br /&gt;
* [[PowerShell aktuellen Pfad des Skripts ermitteln]]&lt;br /&gt;
* [[PowerShell watch Befehl wie bei Linux]]&lt;br /&gt;
* [[PowerShell tail Befehl wie bei Linux]]&lt;br /&gt;
* [https://tmintner.wordpress.com/2011/07/08/windows-7-notification-area-automation-falling-back-down-the-binary-registry-rabbit-hole/ Programm Icon im Infobereich immer anzeigen]&lt;br /&gt;
* [[PowerShell DHCP-Reservierungen kopieren]]&lt;br /&gt;
* [[PowerShell Userhome Benutzerordner Rechte neu setzen]]&lt;br /&gt;
* [[PowerShell Ordnern Gruppen zuordnen und Rechte setzen]]&lt;br /&gt;
* [[PowerShell Batteriestand von Bluetooth oder PnP Geräten abfragen]]&lt;br /&gt;
* https://powershellisfun.com/2023/06/06/changing-your-windows-terminal-background-image/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Robocopy===&lt;br /&gt;
* [[Sammlung ROBOCOPY Aufruf mit Parameter]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Tablet mit Windows 8.1 / 7===&lt;br /&gt;
* [[Mauszeiger für Windows 8.1 Tablets für leichtere Bedienung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Terminal&#039;&#039;&#039;===&lt;br /&gt;
* Windows Terminal Config. Stored in .\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState\profiles.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Terminalserver&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Logoff_before_Reboot|Benutzer abmelden vor Neustart des Terminalservers]]&lt;br /&gt;
* [[Windows:Abmelden_UPHClean_Remapping|Abmelden von TS dauert lange, UPHClean.exe meldet Remapping]]&lt;br /&gt;
* [http://www.theshonkproject.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=50&amp;amp;Itemid=31 Script das verwaiste Profile löschen kann (externer Link)]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Symbole in der Taskleiste auf Terminalserver 2008 R2 entfernen - Servermanager Powershell]]&lt;br /&gt;
* [[Ordner der Benutzer werden als Eigene Dokumente oder Eigene Dateien statt mit Benutzernamen angezeigt]]&lt;br /&gt;
* [[Terminalserver - Benutzer soll sich selbst von allen anderen Servern abmelden]]&lt;br /&gt;
* [[Administrator nachträglich zu den servergespeicherten Profilen hinzufügen]]&lt;br /&gt;
* [[Terminalserver Grace Period abfragen]]&lt;br /&gt;
* [[Remotedesktopgateway 2016 Zertifikate mit Laufzeit 20 Jahre erstellen]]&lt;br /&gt;
* Terminalserverzertifikat austauschen: https://www.frankysweb.de/tipp-zertifikat-fr-rdp-austauschen/&lt;br /&gt;
* Zertifikatswarnungen abschalten: https://morgansimonsen.wordpress.com/2011/03/21/sha1-thumbprints-for-trusted-rdp-publishers/&lt;br /&gt;
* QuickSessionCollection Desktop hinzufügen: https://ryanmangansitblog.com/2014/01/04/publish-remote-desktop-session-in-a-remote-app-session-collection/&lt;br /&gt;
* FSLogix:&lt;br /&gt;
** Download neueste Version: https://aka.ms/fslogix_download&lt;br /&gt;
** https://docs.microsoft.com/de-de/azure/virtual-desktop/fslogix-containers-azure-files&lt;br /&gt;
** https://nick-it.de/blog/windows/microsoft-fslogix&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Unbeaufsichtigte Installation&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Unattended Install 2008R2 Windows 7|Nach dem Update der Installationsquelle auf SP1 funktioniert die Installation nicht mehr / Server 2008R2 / Windows 7]]&lt;br /&gt;
* [[Windows:Java 6 x86 Installation auf 64bit| Eine Scriptgesteuerte Installation von Java (32bit) auf einem 64bit Server schlägt fehl]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;WebDAV&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:WebDAV als Laufwerk per net use Befehl verbinden|WebDAV als Laufwerk per net use Befehl verbinden]]&lt;br /&gt;
* [[Windows:WebDAV Adresse vom T-Online / T-Home Mediencenter|WebDAV Adresse vom T-Online / T-Home Mediencenter]]&lt;br /&gt;
* [[Windows:WebDAV Adresse vom 1und1 / 1&amp;amp;1 Office Drive|WebDAV Adresse vom 1und1 / 1&amp;amp;1 Office Drive]]&lt;br /&gt;
* [[Windows:WebDAV Adresse von CrushFTP|WebDAV Adresse von CrushFTP]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Windows:WebDAV Beschränkungen bzw. Limits vom 1&amp;amp;1 Office Drive / 1&amp;amp;1 Online Storage|WebDAV Beschränkungen bzw. Limits vom 1&amp;amp;1 Office Drive / 1&amp;amp;1 Online Storage]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Windows Defender / Microsoft Security Essentials===&lt;br /&gt;
* [[Windows Defender oder Microsoft Security Essentials - PUA aktivieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Windows ISO Namen ===&lt;br /&gt;
* https://www.heidoc.net/php/myvsdump_name.php?family=Windows+10+Enterprise+LTSC+2021&amp;amp;name=Windows+10+Enterprise+LTSC+2021&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2000 / Windows 2000&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2003&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten|Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[Windows:Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren|Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren]]&lt;br /&gt;
* [[Windows:Windows Server 2003 Verstärkte Sicherheitskonfiguration für Internetexplorer deaktivieren|Windows Server 2003 Verstärkte Sicherheitskonfiguration für Internetexplorer deaktivieren]]&lt;br /&gt;
* [[Windows: Windows XP oder Windows Server 2003 - Tastaturlayout für Anmeldebildschirm ändern|Tastaturlayout für Anmeldebildschirm ändern]]&lt;br /&gt;
* [[Windows:Internet Explorer - Suchanbieter funktionieren nicht richtig|Internet Explorer - Suchanbieter wie z.B. Google funktionieren nicht richtig]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen|Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Windows Domänencontroller per nslookup finden]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* [[Windows Server als Zeitserver NTP]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2008 / Server 2008 R2&#039;&#039;&#039;===&lt;br /&gt;
* [[VMware:Grafikkartentreiber gegen Mausruckeln|Maus ruckelt in Virtueller Maschine (VM) unter VMware]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[Windows:Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten|Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten]]&lt;br /&gt;
* [[Windows:Windows7+2008-IPv6-deaktivieren|IPv6 richtig deaktivieren unter Windows Vista / 7 / 2008 / 2008 R2]]&lt;br /&gt;
* [[Windows:Windows Server 2008 (R2) Drucker migrieren von einem Server zum anderen|Windows Server 2008 (R2) Drucker migrieren von einem Server zum anderen]]&lt;br /&gt;
* [[Windows: Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten|Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update|Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren|Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden|Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden (Bildschirm der bei STRG + ALT + Entf kommt)]]&lt;br /&gt;
* [[Windows:Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)|Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)]]&lt;br /&gt;
* [[Windows: Windows Server 2008 - Verstärkte Sicherheitskonfiguration Internet Explorer deaktivieren|Windows Server 2008 - Verstärkte Sicherheitskonfiguration Internet Explorer deaktivieren]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 - Verwaltungstools (Active Directory Benutzer und Computer etc.) auf Memberserver|Windows Server 2008 R2 - Verwaltungstools (Active Directory Benutzer und Computer etc.) auf Memberserver]]&lt;br /&gt;
* [[Windows:Windows 2003 - Microsoft Print Migrator 3.1 - Kernel Drivers Blocked|Windows 2003 - Microsoft Print Migrator 3.1 - Kernel Drivers Blocked]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/224c95bc-e6b3-4b66-82e1-22de625b7dc6/ Userenvdebug Logging in Windows Server 2008]&lt;br /&gt;
* [[VMware:Windows Server 2008 R2 als NFS Ziel für ESX/ESXi konfigurieren|Windows Server 2008 R2 als NFS Ziel für ESX/ESXi konfigurieren]]&lt;br /&gt;
* [[Windows:How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7|How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [[Windows:Windows 2003 / 2008 R2 - Servergespeicherte Profile (Roaming Profiles) werden nach Umzug auf neuen Server nicht geladen|Windows 2003 / 2008 R2 - Servergespeicherte Profile (Roaming Profiles) werden nach Umzug auf neuen Server nicht geladen]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen|Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen]]&lt;br /&gt;
* [http://technet.microsoft.com/de-de/library/722f3aa8-2f22-462f-bcc6-72ad31713ddd.aspx Windows Web Access Gateway für Remotedesktopdienste Schritt-für-Schritt einrichten]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 - dcpromo hängt / dauert lange / Bluescreen / Rechner Server friert ein|Windows Server 2008 R2 - dcpromo hängt / dauert lange / Bluescreen / Rechner Server friert ein]]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 - Aero Desing aktivieren + Snipping Tool + Windows Sidebar nutzen|Windows Server 2008 R2 - Aero Desing aktivieren + Snipping Tool + Windows Sidebar nutzen]]&lt;br /&gt;
* [[Windows:Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc|Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc]]&lt;br /&gt;
* [[Windows:Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf|Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf]]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 als VPN Einwahlserver für Windows 7 hinter Firewall mit Boardmitteln|Windows Server 2008 R2 als VPN Einwahlserver für Windows 7 hinter Firewall mit Boardmitteln]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern|Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern]]&lt;br /&gt;
* [[Windows:Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen|Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Windows:Winsat von Windows 7 auch unter 2008 R2 benutzen|Winsat von Windows 7 auch unter 2008 R2 benutzen]]&lt;br /&gt;
* [[AccessPoint - Windows 7 oder Windows Server 2008 R2 als WLAN Hotspot für andere Geräte]]&lt;br /&gt;
* [[Festplatte vergößern Windows Server 2008 - Fehlermeldung &amp;quot;Falscher Parameter&amp;quot;]]&lt;br /&gt;
* [[Pfad des Start Menü und des Desktop für alle Benutzer]]&lt;br /&gt;
* [[Dummy Drucker / Nirwana Drucker / NUL oder NULL Drucker anlegen / einrichten]]&lt;br /&gt;
* [[Zertifikate mit gültigkeitsdauer länger als 1 Jahr erlauben bei eigener Zertifizierungsstelle]]&lt;br /&gt;
* [[IIS SAN Zertifikat anfordern (Zertifikat mit mehreren Domänennamen)]]&lt;br /&gt;
* [[Aero funktioniert nicht mehr - Grafik langsam / rucklig nach Installation IE10 oder Plattformupdate 2670838]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Internet Explorer funktioniert nicht mehr - Appcrash bei IE9 oder IE10 z.B. beim beenden oder schliessen von Tabs / Registerkarten]]&lt;br /&gt;
* [[Neuer DHCP Server lässt sich nicht autorisieren]]&lt;br /&gt;
* [[Dropbox &amp;amp; Co bei der Arbeit zusehen - Status Monitor welche Datei gerade abgearbeitet wird]]&lt;br /&gt;
* [[Zeitserver auf Domänencontroller und anderen Server einstellen und prüfen]]&lt;br /&gt;
* [[Windows Domänencontroller per nslookup finden]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Falsche oder fehlende Symbole - Icon Cache löschen und neu aufbauen]]&lt;br /&gt;
* [[Mit IIS 7.x einen Seafile Server per https absichern]]&lt;br /&gt;
* [[Prüfen ob ein Server ein Terminalserver ist]]&lt;br /&gt;
* [[Windows 2008 R2 hat 2 IPv6 Adressen aus gleichen Adressbereich]]&lt;br /&gt;
* [[Print Jobs in Eventlog - Druckaufträge im Ereignisprotoll monitoren Windows]]&lt;br /&gt;
* [[Foto im Active Directory hinterlegen und bei Benutzeranmeldung anzeigen]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* [[Windows Server 2012 R2 Internet Explorer 11 IE11 startet nicht weisses Fenster Desktop und Published Application]]&lt;br /&gt;
* [[Windows Server als Zeitserver NTP]] &lt;br /&gt;
* File-Locking Probleme Fileserver: [https://blogs.technet.microsoft.com/the_microsoft_excel_support_team_blog/2012/05/14/the-definitive-locked-file-post-updated-772014/ The Definitive &#039;Locked File&#039; Post (updated 7/7/2014)]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2012 / Server 2012 R2 / Server 2016 / Server 2019 / Server 2022&#039;&#039;&#039;===&lt;br /&gt;
* [[.NET 3.5 kann auf Windows Server 2012 R2 ROK Version nicht installiert werden]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* Windows Server 2012 R2 Terminalserver Lizenzserver 120 Tage zurück setzen: http://www.davidmercer.co.uk/2012-rds-120-day-grace-period-reset/&lt;br /&gt;
* [[Windows laufende Prozesse auf anderen Server oder Rechner anzeigen lassen]]&lt;br /&gt;
* Fileserver vor Locky und Co schützen: https://www.frankysweb.de/windows-fileserver-vor-ransomware-crypto-locker-schuetzen/&lt;br /&gt;
* Fileserver vor Locky und Co schützen: https://www.frankysweb.de/windows-fileserver-vor-ransomware-schuetzen-update/&lt;br /&gt;
* Rechner vor Locky und Co schützen: http://www.bleepingcomputer.com/virus-removal/locky-ransomware-information-help#locky-encryption&lt;br /&gt;
* [[Windows Server als Zeitserver NTP]]&lt;br /&gt;
* File-Locking Probleme Fileserver: [https://blogs.technet.microsoft.com/the_microsoft_excel_support_team_blog/2012/05/14/the-definitive-locked-file-post-updated-772014/ The Definitive &#039;Locked File&#039; Post (updated 7/7/2014)]&lt;br /&gt;
* [[Windows Server Domänencontroller keine NETLOGON Freigabe und kein scripts Verzeichnis]]&lt;br /&gt;
* [[Windows Updates manuell einspielen]]&lt;br /&gt;
* [[Windows Server 2012 2016 Zugriff auf C$ Administrative Freigaben]]&lt;br /&gt;
* [[FibreChannel oder iSCSI - LUN-ID unter Windows anzeigen lassen]]&lt;br /&gt;
* Server 2016: https://www.tech-faq.net/windows-wird-vorbereitet-schalten-sie-den-computer-nicht-aus/&lt;br /&gt;
* [[Windows Updates per PowerShell und Aufgabenplanung installieren]]&lt;br /&gt;
* [[Windows Dedup Deduplizierung Deduplikation Sammlung von PowerShell-Befehle]]&lt;br /&gt;
* [[Windows Server 2022 Windows 11 verschieben vergrößern Recovery Wiederherstellungspartition Partition]]&lt;br /&gt;
* [[Windows IPv4 bevorzugen vor IPv6]]&lt;br /&gt;
* https://4sysops.com/archives/renew-windows-root-ca-certificate/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Windows Server Hyper V==&lt;br /&gt;
* http://www.hyper-v-server.de/management/administration-eines-hyper-v-server-2008-r2-sp1-mit-windows-7-sp1-und-den-rsat-tools-ohne-domne/&lt;br /&gt;
* http://www.google.de/imgres?imgurl=http%3A%2F%2Fwinsupersite.com%2Fcontent%2Fcontent%2F127572%2Fserver%2Fhyperv2_01.jpg&amp;amp;imgrefurl=http%3A%2F%2Fwinsupersite.com%2Fwindows-server%2Fmicrosoft-hyper-v-server-2008-r2-preview&amp;amp;h=366&amp;amp;w=665&amp;amp;tbnid=xiZTU9Ec5nyjFM%3A&amp;amp;zoom=1&amp;amp;docid=c0xusYiBNTyhQM&amp;amp;ei=82Q4VIa0MqGBywOEvYCgCw&amp;amp;tbm=isch&amp;amp;client=firefox-a&amp;amp;iact=rc&amp;amp;uact=3&amp;amp;dur=3456&amp;amp;page=1&amp;amp;start=0&amp;amp;ndsp=39&amp;amp;ved=0CCgQrQMwAg&lt;br /&gt;
* http://virtualizationreview.com/Articles/2011/03/29/Free-Free-Hyper-V-GUI.aspx?Page=2&lt;br /&gt;
* https://coreconfig.codeplex.com/&lt;br /&gt;
* http://www.windowspro.de/tipp/zwischen-minimal-server-interface-server-core-gui-umschalten&lt;br /&gt;
* http://teusje.wordpress.com/2011/02/19/download-file-with-powershell/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;Windows 7 &amp;amp; Windows 8&#039;&#039;&#039;==&lt;br /&gt;
* [[Windows:7 Einzelne Benutzer auf Anmeldebildschirm ausblenden|Einzelne Benutzer auf Windows 7 Anmeldebildschirm ausblenden]]&lt;br /&gt;
* [[VMware:Grafikkartentreiber gegen Mausruckeln|Maus ruckelt in Virtueller Maschine (VM) unter VMware]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[Windows:Windows7+2008-IPv6-deaktivieren|IPv6 richtig deaktivieren unter Windows Vista / 7 / 2008 / 2008 R2]]&lt;br /&gt;
* [[Windows:Windows Server 2008 (R2) Drucker migrieren von einem Server zum anderen|Drucker migrieren von einem Rechner zum anderen (Anleitung ist Server, funktioniert aber genauso)]]&lt;br /&gt;
* [[Windows: Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten|Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update|Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren|Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden|Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden (Bildschirm der bei STRG + ALT + Entf kommt)]]&lt;br /&gt;
* [[Windows:Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)|Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [[Windows:How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7|How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [http://www.unawave.de/installation/downgrade.html Windows 7 oder Vista - Downgrade von Ultimate auf Professional oder Home Premium]&lt;br /&gt;
* [[Windows:Windows Vista / Windows 7 gespeicherte Kennwörter für Proxy, Webseiten, Outlook löschen|Windows Vista / Windows 7 gespeicherte Kennwörter für Proxy, Webseiten, Outlook löschen]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen|Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen]]&lt;br /&gt;
* [[Windows:Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc|Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc]]&lt;br /&gt;
* [[Windows:Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf|Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern|Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Windows:Windows 7 - Festplattenperformance messen mit Boardmitteln WinSAT|Windows 7 - Festplattenperformance messen mit Boardmitteln WinSAT]]&lt;br /&gt;
* [[AHCI unter Windows 7 nachträglich aktivieren]]&lt;br /&gt;
* [[Windows 7 Installation auf neue Hardware / Mainboard verschieben]]&lt;br /&gt;
* [[Systemdateien unter Windows 7 überprüfen]]&lt;br /&gt;
* [[AccessPoint - Windows 7 oder Windows Server 2008 R2 als WLAN Hotspot für andere Geräte]]&lt;br /&gt;
* [[Pfad des Start Menü und des Desktop für alle Benutzer]]&lt;br /&gt;
* [[Dummy Drucker / Nirwana Drucker / NUL oder NULL Drucker anlegen / einrichten]]&lt;br /&gt;
* [[Aero funktioniert nicht mehr - Grafik langsam / rucklig nach Installation IE10 oder Plattformupdate 2670838]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Internet Explorer funktioniert nicht mehr - Appcrash bei IE9 oder IE10 z.B. beim beenden oder schliessen von Tabs / Registerkarten]]&lt;br /&gt;
* [[Dropbox &amp;amp; Co bei der Arbeit zusehen - Status Monitor welche Datei gerade abgearbeitet wird]]&lt;br /&gt;
* [[Thumbs.db loswerden unter Windows 8]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Windows 7 oder 8 - Netzwerkdrucker Treiber installieren als normaler einfacher Benutzer]]&lt;br /&gt;
* [[Falsche oder fehlende Symbole - Icon Cache löschen und neu aufbauen]]&lt;br /&gt;
* [[Programm immer als Administrator starten ohne UAC Abfrage]]&lt;br /&gt;
* [[Foto im Active Directory hinterlegen und bei Benutzeranmeldung anzeigen]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* File-Locking Probleme Fileserver: [https://blogs.technet.microsoft.com/the_microsoft_excel_support_team_blog/2012/05/14/the-definitive-locked-file-post-updated-772014/ The Definitive &#039;Locked File&#039; Post (updated 7/7/2014)]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Windows 10==&lt;br /&gt;
* [[Windows Datenträgerbereinigung per direkten Befehl aufrufen]]&lt;br /&gt;
* Bootmenü: http://www.deskmodder.de/wiki/index.php/Bootmen%C3%BC_reparieren_wiederherstellen_Windows_10&lt;br /&gt;
* [[Windows alle Treiber exportieren sichern Backup]]&lt;br /&gt;
* [[BitLocker Wiederherstellungsinformationen nachträglich im Active Directory speichern]]&lt;br /&gt;
* UAC für Fernwartung abschalten: https://www.windowspro.de/tipp/uac-filter-fuer-windows-fernwartung-abschalten&lt;br /&gt;
* Startmenü Probleme mit Roaming Profiles: http://www.edugeek.net/forums/windows-10/173918-start-menu-roaming-profiles-fix.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Windows 11==&lt;br /&gt;
* [[Windows 11 ohne Internet einrichten ohne Microsoft Konto einrichten]]&lt;br /&gt;
* [https://www.deskmodder.de/wiki/index.php?title=Windows_11_auch_ohne_TPM_und_Secure_Boot_installieren Windows 11 ohne TPM und Secure Boot installieren]&lt;br /&gt;
* Secure Boot und die 2023 Zertifikate:&lt;br /&gt;
** https://www.windowspro.de/wolfgang-sommergut/uefi-zertifikate-fuer-secure-boot-installieren-erfolg-ueberpruefen-fehler&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;Windows XP&#039;&#039;&#039;==&lt;br /&gt;
* [[Windows:7 Einzelne Benutzer auf Anmeldebildschirm ausblenden|Einzelne Benutzer auf Windows XP Anmeldebildschirm ausblenden - Beschreibung ist Windows 7, ist jedoch bei XP gleich]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[VMware:VMware View Windows XP Leistungsoptionen Optimiert|Leistungsoptionen auf Optimiert (alle Effekte deaktivieren)]]&lt;br /&gt;
* [[Windows:Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren|Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren]]&lt;br /&gt;
* [[VMware:VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung|Windows XP - VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung]]&lt;br /&gt;
* [[Windows: Windows XP oder Windows Server 2003 - Tastaturlayout für Anmeldebildschirm ändern|Tastaturlayout für Anmeldebildschirm ändern]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Dummy Drucker / Nirwana Drucker / NUL oder NULL Drucker anlegen / einrichten]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* [[Windows XP Windows Updates nach Neuinstallation 2018 2019 2020 ermöglichen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==WSUS==&lt;br /&gt;
* WSUS unter 2016: https://www.windowspro.de/wolfgang-sommergut/anleitung-wsus-windows-server-2016-installieren&lt;br /&gt;
** Die Links aus dem Setup (die sich wiederholen)&lt;br /&gt;
** 1. SSL mit WSUS verwenden: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
** 2. Computergruppen erstellen: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
** 3. Mit Gruppenrichtlinien Computern Gruppen zuweisen: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
** Regeln für automatische Genehmigung konfigurieren: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
* Windows-Updates per PowerShell: https://gallery.technet.microsoft.com/scriptcenter/Execute-Windows-Update-fc6acb16&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Zertifikate==&lt;br /&gt;
* [[Windows Zertifizierungsstelle CA Voreinstellungen Einstellungen]]&lt;br /&gt;
* Windows Zertifikatsstelle umziehen: https://asichel.de/2017/01/02/zertifizierungsstelle-ca-auf-server-2016-umziehen-pki-migration/&lt;br /&gt;
* https://www.miniorange.com/de/guide-to-setup-ldaps-on-windows-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Proxmox_PVE_Virtual_Environment_-_Bildschirmaufl%C3%B6sung_Gast_VM_anpassen&amp;diff=15789</id>
		<title>Proxmox PVE Virtual Environment - Bildschirmauflösung Gast VM anpassen</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Proxmox_PVE_Virtual_Environment_-_Bildschirmaufl%C3%B6sung_Gast_VM_anpassen&amp;diff=15789"/>
		<updated>2026-04-14T09:53:20Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Lösung 2: VirtIO-GPU - Feste Auflösung Methode 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 30.05.2025 erste Version&lt;br /&gt;
* 14.04.2025 Update Zwischenablage für VirtIO-GPU&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich habe hier eine Windows 11 Test VM mit den folgenden Hardware-Einstellungen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-120022.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die {{code|Display}} Einstellungen steht noch auf Default.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter VMware bin ich es gewohnt, das bei installierten VMware-Tool, sich die Auflösung automatisch an die Größe des Konsolenfensterns anpasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Oder das man alternativ sich die Auflösung innerhalb der VM fest einstellt.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedoch passt sich - in der Standardkonfiguration - weder die Auflösung an noch darf man die Auflösung selbst anpassen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-121333.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grafikkartentreiber in der VM ist zunächst der {{code|Microsoft Basic Display Adapter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-121505.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgend zeige ich verschiedene Lösungen mit entsprechenden Vor- und Nachteilen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen installieren==&lt;br /&gt;
Alle nachfolgenden Lösungen setzen voraus, das Ihr die QEMU-Gast-Tools installiert und aktiviert habt.&amp;lt;br&amp;gt;&lt;br /&gt;
In den VM-Einstellungen den {{code|QEMU Guest Agent}} aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-123024.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und in der VM die {{code|virtio-win-x.x.xxx.iso}} mounten (Download hier: https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers#Installation ) und aus dem Hauptverzeichnis die {{code|virtio-win-guest-tools.exe}} ausführen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-123437.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es muss die aus dem Hauptverzeichnis sein, die Installiert dann alles notwendige nach! Mögliche Auswahlen bestätigt Ihr einfach!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Lösung 1: SPICE Graphic card==&lt;br /&gt;
Wir fahren die VM herunter und ändern in den Hardware-Einstellungen das Display von {{code|Default}} auf {{code|SPICE}}, als Grafikkartenspeicher würde ich mindestens 32MiB einstellen. Eine FullHD Auflösung mit 24Bit Farbtiefe liegt schon bei rund 6MiB, so ist da noch Reserve.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-122402.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Reboot und Anmelden an Windows sollte sich der Treiber der Grafikkarte zu {{code|Red Hat QXL controller}} geändert haben:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-122724.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Jedoch - zumindest bei mir - ist die Maus nun im {{code|Console}} Fenster deplatziert, die Koordinaten stimmen nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
Lösung ist die Konsole per Doppelklick auf den VM-Namen zu öffnen (oder per rechte Maustaste auf die VM und dann {{key|&amp;lt;nowiki&amp;gt;&amp;gt;_ Console&amp;lt;/nowiki&amp;gt;}} auswählen.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann öffnet sich das Download-Fenster mit einer Datei {{code|pve-spice.vv}}.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese könnte Ihr unter Windows mit dem {{code|virt-viewer}} öffnen den Ihr hier Herunterladen könnt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://virt-manager.org/download&lt;br /&gt;
und dann im mittleren Bereich:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124026.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe die https://releases.pagure.org/virt-viewer/virt-viewer-x64-11.0-1.0.msi , also die 64 Bit Version genommen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Installation könnt ihr die {{code|.vv}} Dateien mit diesem Viewer verknüpfen so das sich dieser automatisch öffnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Auflösung der VM passt sich nach ein paar Sekunden dann immer der Größe des Fensters an:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124318.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124335.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Auflösung passt sich an Fenstergröße an&lt;br /&gt;
* Zwischenablage funktioniert (nur Text und Bilder, keine Dateien)&lt;br /&gt;
* Windowstaste / Tastenkombinationen werden größtenteils durchgereicht&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Separater Viewer notwendig, denn&lt;br /&gt;
* natives Konsolenfenster hat falsche Mauskoordinaten. Auch wenn man ein separates Fenster per {{code|noVNC}} öffnet, passt es nicht.&lt;br /&gt;
* zusätzlicher Port 3128 notwendig&lt;br /&gt;
* Funktioniert nicht hinter Reverse Proxy bzw. nicht nur mit Port 443 / 8006&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Lösung 2: VirtIO-GPU - Feste Auflösung Methode 1==&lt;br /&gt;
VM herunterfahren und in den Hardwareeinstellungen bei Display {{code|VirtIO-GPU}} einstellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Start der VM und der Anmeldung sollte der Grafikkartentreiber zu {{code|Red Hat VirtIO GPU DOD controller}} geändert haben:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-132757.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In den Anzeigeeinstellungen könnt Ihr nun quasi jede beliebige, vordefinierte Auflösung einstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-132920.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Falls ihr das separate Konsolenfenster öffnet, kann es passieren das er auch wieder den Download der {{code|pve-spice.vv}} anbietet,&amp;lt;br&amp;gt;&lt;br /&gt;
Diese funktioniert jedoch nicht mit dem Viewer.&amp;lt;br&amp;gt;&lt;br /&gt;
Statt dessen müsst Ihr oben rechts von Hand den {{code|noVNC}} Viewer auswählen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-133151.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag Zwischenablage:&amp;lt;br&amp;gt;&lt;br /&gt;
In Proxmox ab Version 9 habe ich entdeckt, das man noch separat das Clipboard auswählen kann:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260414-114959.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Stellt man hier {{Code|VNC}} ein, so bekommt die Konsole links im Menu den Menüpunkt {{Code|Zwischenablage}} dazu:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260414-115203.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Über diesen lässt sich Text zu und von der VM kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Funktioniert hinter Proxy&lt;br /&gt;
* Kein extra Client notwendig&lt;br /&gt;
* Fenstergröße + Auflösung beim öffnen im separaten Fenster passt&lt;br /&gt;
* Auflösung kann dynamisch auf einen der vordefinierten Werte gewechselt werden.&lt;br /&gt;
* Übertragen Zwischenablage begrenzt möglich&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* {{code|noVNC}} muss von Hand ausgewählt werden (nur separates Fenster)&lt;br /&gt;
* Im nativen Konsolenfenster wird es einfach verkleinert oder vergrößert per Zoom&lt;br /&gt;
* Keine Windows Tasten werden durchgereicht (Reagiert zwar mit, aber nicht wie gewünscht)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Lösung 3: Feste Auflösung Methode 2==&lt;br /&gt;
VM herunterfahren und in den Hardwareeinstellungen bei Display {{code|Standard VGA}} mit 32Mib Memory setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125207.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr die VM jetzt hochfahrt, wird die Auflösung {{code|1280x800}} sein und Ihr diese nicht ändern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125437.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grafikkartentreiber ist der {{code|Microsoft Basic Display Adapter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125549.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt startet Ihr die VM noch einmal neu und wenn das Proxmox-Logo erscheint und unten {{code|Start boot options}} steht, drückt Ihr einmal auf {{key|ESC}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130638.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Hier wählt Ihr den {{code|Device Manager}},&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130746.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
die Option {{code|OVMF Platform Configuration}},&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130849.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dort aus der Liste die gewünschte Auflösung, ich habe mich hier für {{code|1440x900}} entschieden:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130948.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Danach auf {{key|Commit Changes and Exit}} und danach noch einmal auf {{key|ESC}} und dann ganz unten auf {{key|Reset}}.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Booten ist die VM immer noch auf der Auflösung {{code|1280x800}}, aber nun können wir diese ändern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-131230.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Feld ist zwar danach wieder ausgegraut, aber wir haben die neue Auflösung:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-131326.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Funktioniert hinter Proxy&lt;br /&gt;
* Kein extra Client notwendig&lt;br /&gt;
* Fenstergröße + Auflösung beim öffnen im separaten Fenster passt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Im nativen Konsolenfenster wird es einfach verkleinert oder vergrößert per Zoom&lt;br /&gt;
* Keine Windows Tasten werden durchgereicht (Reagiert zwar mit, aber nicht wie gewünscht)&lt;br /&gt;
* Keine geteilte Zwischenablage&lt;br /&gt;
* Nur die im BIOS der VM fest eigestellte Auflösung möglich, kein Wechseln während der Sitzung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
* https://www.nielskok.tech/proxmox/change-resolution-for-vm-in-proxmox/&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Proxmox_PVE_Virtual_Environment_-_Bildschirmaufl%C3%B6sung_Gast_VM_anpassen&amp;diff=15788</id>
		<title>Proxmox PVE Virtual Environment - Bildschirmauflösung Gast VM anpassen</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Proxmox_PVE_Virtual_Environment_-_Bildschirmaufl%C3%B6sung_Gast_VM_anpassen&amp;diff=15788"/>
		<updated>2026-04-14T09:52:46Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 30.05.2025 erste Version&lt;br /&gt;
* 14.04.2025 Update Zwischenablage für VirtIO-GPU&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich habe hier eine Windows 11 Test VM mit den folgenden Hardware-Einstellungen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-120022.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die {{code|Display}} Einstellungen steht noch auf Default.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter VMware bin ich es gewohnt, das bei installierten VMware-Tool, sich die Auflösung automatisch an die Größe des Konsolenfensterns anpasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Oder das man alternativ sich die Auflösung innerhalb der VM fest einstellt.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedoch passt sich - in der Standardkonfiguration - weder die Auflösung an noch darf man die Auflösung selbst anpassen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-121333.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grafikkartentreiber in der VM ist zunächst der {{code|Microsoft Basic Display Adapter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-121505.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgend zeige ich verschiedene Lösungen mit entsprechenden Vor- und Nachteilen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen installieren==&lt;br /&gt;
Alle nachfolgenden Lösungen setzen voraus, das Ihr die QEMU-Gast-Tools installiert und aktiviert habt.&amp;lt;br&amp;gt;&lt;br /&gt;
In den VM-Einstellungen den {{code|QEMU Guest Agent}} aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-123024.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und in der VM die {{code|virtio-win-x.x.xxx.iso}} mounten (Download hier: https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers#Installation ) und aus dem Hauptverzeichnis die {{code|virtio-win-guest-tools.exe}} ausführen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-123437.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es muss die aus dem Hauptverzeichnis sein, die Installiert dann alles notwendige nach! Mögliche Auswahlen bestätigt Ihr einfach!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Lösung 1: SPICE Graphic card==&lt;br /&gt;
Wir fahren die VM herunter und ändern in den Hardware-Einstellungen das Display von {{code|Default}} auf {{code|SPICE}}, als Grafikkartenspeicher würde ich mindestens 32MiB einstellen. Eine FullHD Auflösung mit 24Bit Farbtiefe liegt schon bei rund 6MiB, so ist da noch Reserve.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-122402.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Reboot und Anmelden an Windows sollte sich der Treiber der Grafikkarte zu {{code|Red Hat QXL controller}} geändert haben:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-122724.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Jedoch - zumindest bei mir - ist die Maus nun im {{code|Console}} Fenster deplatziert, die Koordinaten stimmen nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
Lösung ist die Konsole per Doppelklick auf den VM-Namen zu öffnen (oder per rechte Maustaste auf die VM und dann {{key|&amp;lt;nowiki&amp;gt;&amp;gt;_ Console&amp;lt;/nowiki&amp;gt;}} auswählen.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann öffnet sich das Download-Fenster mit einer Datei {{code|pve-spice.vv}}.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese könnte Ihr unter Windows mit dem {{code|virt-viewer}} öffnen den Ihr hier Herunterladen könnt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://virt-manager.org/download&lt;br /&gt;
und dann im mittleren Bereich:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124026.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe die https://releases.pagure.org/virt-viewer/virt-viewer-x64-11.0-1.0.msi , also die 64 Bit Version genommen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Installation könnt ihr die {{code|.vv}} Dateien mit diesem Viewer verknüpfen so das sich dieser automatisch öffnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Auflösung der VM passt sich nach ein paar Sekunden dann immer der Größe des Fensters an:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124318.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-124335.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Auflösung passt sich an Fenstergröße an&lt;br /&gt;
* Zwischenablage funktioniert (nur Text und Bilder, keine Dateien)&lt;br /&gt;
* Windowstaste / Tastenkombinationen werden größtenteils durchgereicht&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Separater Viewer notwendig, denn&lt;br /&gt;
* natives Konsolenfenster hat falsche Mauskoordinaten. Auch wenn man ein separates Fenster per {{code|noVNC}} öffnet, passt es nicht.&lt;br /&gt;
* zusätzlicher Port 3128 notwendig&lt;br /&gt;
* Funktioniert nicht hinter Reverse Proxy bzw. nicht nur mit Port 443 / 8006&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Lösung 2: VirtIO-GPU - Feste Auflösung Methode 1==&lt;br /&gt;
VM herunterfahren und in den Hardwareeinstellungen bei Display {{code|VirtIO-GPU}} einstellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Start der VM und der Anmeldung sollte der Grafikkartentreiber zu {{code|Red Hat VirtIO GPU DOD controller}0 geändert haben:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-132757.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In den Anzeigeeinstellungen könnt Ihr nun quasi jede beliebige, vordefinierte Auflösung einstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-132920.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Falls ihr das separate Konsolenfenster öffnet, kann es passieren das er auch wieder den Download der {{code|pve-spice.vv}} anbietet,&amp;lt;br&amp;gt;&lt;br /&gt;
Diese funktioniert jedoch nicht mit dem Viewer.&amp;lt;br&amp;gt;&lt;br /&gt;
Statt dessen müsst Ihr oben rechts von Hand den {{code|noVNC}} Viewer auswählen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-133151.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag Zwischenablage:&amp;lt;br&amp;gt;&lt;br /&gt;
In Proxmox ab Version 9 habe ich entdeckt, das man noch separat das Clipboard auswählen kann:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260414-114959.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Stellt man hier {{Code|VNC}} ein, so bekommt die Konsole links im Menu den Menüpunkt {{Code|Zwischenablage}} dazu:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-260414-115203.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Über diesen lässt sich Text zu und von der VM kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Funktioniert hinter Proxy&lt;br /&gt;
* Kein extra Client notwendig&lt;br /&gt;
* Fenstergröße + Auflösung beim öffnen im separaten Fenster passt&lt;br /&gt;
* Auflösung kann dynamisch auf einen der vordefinierten Werte gewechselt werden.&lt;br /&gt;
* Übertragen Zwischenablage begrenzt möglich&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* {{code|noVNC}} muss von Hand ausgewählt werden (nur separates Fenster)&lt;br /&gt;
* Im nativen Konsolenfenster wird es einfach verkleinert oder vergrößert per Zoom&lt;br /&gt;
* Keine Windows Tasten werden durchgereicht (Reagiert zwar mit, aber nicht wie gewünscht)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Lösung 3: Feste Auflösung Methode 2==&lt;br /&gt;
VM herunterfahren und in den Hardwareeinstellungen bei Display {{code|Standard VGA}} mit 32Mib Memory setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125207.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr die VM jetzt hochfahrt, wird die Auflösung {{code|1280x800}} sein und Ihr diese nicht ändern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125437.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grafikkartentreiber ist der {{code|Microsoft Basic Display Adapter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-125549.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt startet Ihr die VM noch einmal neu und wenn das Proxmox-Logo erscheint und unten {{code|Start boot options}} steht, drückt Ihr einmal auf {{key|ESC}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130638.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Hier wählt Ihr den {{code|Device Manager}},&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130746.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
die Option {{code|OVMF Platform Configuration}},&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130849.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dort aus der Liste die gewünschte Auflösung, ich habe mich hier für {{code|1440x900}} entschieden:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-130948.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Danach auf {{key|Commit Changes and Exit}} und danach noch einmal auf {{key|ESC}} und dann ganz unten auf {{key|Reset}}.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem Booten ist die VM immer noch auf der Auflösung {{code|1280x800}}, aber nun können wir diese ändern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-131230.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Feld ist zwar danach wieder ausgegraut, aber wir haben die neue Auflösung:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250530-131326.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Vorteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Funktioniert hinter Proxy&lt;br /&gt;
* Kein extra Client notwendig&lt;br /&gt;
* Fenstergröße + Auflösung beim öffnen im separaten Fenster passt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Nachteile&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
* Im nativen Konsolenfenster wird es einfach verkleinert oder vergrößert per Zoom&lt;br /&gt;
* Keine Windows Tasten werden durchgereicht (Reagiert zwar mit, aber nicht wie gewünscht)&lt;br /&gt;
* Keine geteilte Zwischenablage&lt;br /&gt;
* Nur die im BIOS der VM fest eigestellte Auflösung möglich, kein Wechseln während der Sitzung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
* https://www.nielskok.tech/proxmox/change-resolution-for-vm-in-proxmox/&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Datei:ClipCapIt-260414-115203.PNG&amp;diff=15787</id>
		<title>Datei:ClipCapIt-260414-115203.PNG</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Datei:ClipCapIt-260414-115203.PNG&amp;diff=15787"/>
		<updated>2026-04-14T09:52:04Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Direkt aus der Zwischenablage hochgeladen Kategorie:ClipUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Direkt aus der Zwischenablage hochgeladen [[Kategorie:ClipUpload]]&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Datei:ClipCapIt-260414-114959.PNG&amp;diff=15786</id>
		<title>Datei:ClipCapIt-260414-114959.PNG</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Datei:ClipCapIt-260414-114959.PNG&amp;diff=15786"/>
		<updated>2026-04-14T09:49:59Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Direkt aus der Zwischenablage hochgeladen Kategorie:ClipUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Direkt aus der Zwischenablage hochgeladen [[Kategorie:ClipUpload]]&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Windows&amp;diff=15785</id>
		<title>Windows</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Windows&amp;diff=15785"/>
		<updated>2026-04-13T12:18:00Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Zertifikate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Rund um das Windows Betriebssystem:&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Active Directory&#039;&#039;&#039;===&lt;br /&gt;
* [[ActiveDirectory:AD-Benutzerdaten in Scripts verwenden|AD-Benutzerdaten in Word 2010 verwenden]]&lt;br /&gt;
* [[ActiveDirectory:VBA Scriptsammlungen für AD Manipulation|VBA Scriptsammlungen für AD Manipulation]]&lt;br /&gt;
* [[Office:Word2010 Benutzerdaten aus ActiveDirectory verwenden|Word 2007 / 2010 Benutzerdaten aus ActiveDirectory verwenden (VBA)]]&lt;br /&gt;
* [[Office:Excel LDIF Export|Excel - Export im LDIF Format um es mit ldif.exe ins AD einzulesen]]&lt;br /&gt;
* [[SAN+NAS:CrushFTP Benutzer-Abfrage aus Active Directory mit automatischen Home-Ordnern|CrushFTP Benutzer-Abfrage aus Active Directory mit automatischen Home-Ordnern]]&lt;br /&gt;
* [[DN Distinguished Name eines Benutzers oder einer Gruppe abfragen / herauskriegen]]&lt;br /&gt;
* [[DN Distinguished Name eines Server oder Computer oder Rechner abfragen / herauskriegen]]&lt;br /&gt;
* [[Zertifikatsserver im Netzwerk im Actice Directory finden]]&lt;br /&gt;
* [[FSMO Rollen eines Domänencontroller an einen anderen übertragen - der Klassiker 2003 2008 2008R2 2012 2012R2 2016 2019 2022]]&lt;br /&gt;
* [[Betriebsmaster FSMO Rollen abfragen / herauskriegen]]&lt;br /&gt;
* [[Liste der DHCP Server einer Domäne]]&lt;br /&gt;
* [[Foto im Active Directory hinterlegen und bei Benutzeranmeldung anzeigen]]&lt;br /&gt;
* [[ZnilTools:ImportThumbnailPhoto.exe|&#039;&#039;&#039;ImportThumbnailPhoto.exe&#039;&#039;&#039; - Benutzerbilder ins Active Directory Importieren per Ordner mit Bildern]]&lt;br /&gt;
* [[Active Directory alle Mitglieder einer Gruppe mit Abteilung abfragen]]&lt;br /&gt;
* [[Windows Domänencontroller Registrierung der 2. Netzwerkkarte im DNS verhindern]]&lt;br /&gt;
* Active Directory Firewall-Ports: https://blogs.msmvps.com/acefekay/2011/11/01/active-directory-firewall-ports-let-s-try-to-make-this-simple/&lt;br /&gt;
* [[Active Directory Registerkarte BitLocker-Wiederherstellung fehlt]]&lt;br /&gt;
* [[Active Directory LDAP Port 389 unverschlüsselt weiter zulassen]]&lt;br /&gt;
* [[Active Directory Replikation alle Verbindungen Standorte starten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Allgemeines&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Liste der Sprachcodes|Liste der Sprachcodes in Windows und Office]]&lt;br /&gt;
* [[Windows:Microsoft Safety Scanner|Microsoft Safety Scanner - Kostenloser Virenscan ohne Installation von Microsoft]]&lt;br /&gt;
* [[Windows:Microsoft Safety Scanner Offline|Microsoft Safety Scanner Offline - Kostenlose Antiviren-Boot-CD (auch von USB) von Microsoft]]&lt;br /&gt;
* [[Windows:Speicherlimits der Windowsversionen|Speicherlimits der Windowsversionen]]&lt;br /&gt;
* [[Windows:Umlaute in Batchdateien verwenden unter Windows mit Notepad++|Umlaute in Batchdateien verwenden unter Windows mit Notepad++]]&lt;br /&gt;
* [[AutoIt:Beschreibung der Windows Dateien und DLL&#039;s welche die Standard-Grafiken und -Icons enthalten|Beschreibung der Windows Dateien und DLL&#039;s welche die Standard-Grafiken und -Icons enthalten]]&lt;br /&gt;
* [http://blogs.technet.com/b/markrussinovich/archive/2009/11/03/3291024.aspx Artikel von Mark Russinovich über den Mythos doppelter SID bei Computern]&lt;br /&gt;
* [[Windows:How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7|How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[PuTTY sinnvoll Voreinstellungen machen / Default Settings ändern]]&lt;br /&gt;
* [[Ordner der Benutzer werden als Eigene Dokumente oder Eigene Dateien statt mit Benutzernamen angezeigt]]&lt;br /&gt;
* [[Windows SD-Karte als Festplatte einbinden  und Programme auf SD-Karte installieren]]&lt;br /&gt;
* [[Upgrade von Windows 7 8 Server 2008 2008 R2 2012 R2 auf andere Windows Version]]&lt;br /&gt;
* [[Upgrade von Windows Server 2022 von Standard auf Datacenter]]&lt;br /&gt;
* [[Robocopy inklusive Datum bei Ordnern]]&lt;br /&gt;
* [[Windows Teredo und ISATAP deaktivieren]]&lt;br /&gt;
* [[Windows USB Stick Partition löschen Partitionen loeschen]]&lt;br /&gt;
* [[Windows Dateien Ordner löschen Dateiname Verzeichnisname zu lang]]&lt;br /&gt;
* [[Edge oder Internet Explorer speichern EXE als STL]]&lt;br /&gt;
* [[Windows Zertifikate Details einer .pfx Datei anzeigen lassen]]&lt;br /&gt;
* [[Windows Batterie Akku Status per WMI abfragen]]&lt;br /&gt;
* [[Windows Batterie Akku USV per USB Status per WMI abfragen]]&lt;br /&gt;
* [https://docs.microsoft.com/de-de/troubleshoot/azure/virtual-machines/credssp-encryption-oracle-remediation CredSSP Encryption Oracle Remediation]&lt;br /&gt;
* Remote Management in einer Arbeitsgruppe: http://winxperts4all.at/index.php/betriebssysteme/windows-server-2016/1213-remote-management-hyper-v-core-in-einer-arbeitsgruppe&lt;br /&gt;
* OTP für Windows-Anmeldung:&lt;br /&gt;
** https://www.rcdevs.com/docs/howtos/ad_openotp/ms_ad/&lt;br /&gt;
** https://www.youtube.com/watch?v=OnQcfrn6kUo&lt;br /&gt;
** https://www.youtube.com/watch?v=zTIq8DxIaZU&lt;br /&gt;
* OTP für Windows-Anmeldung multiOTP&lt;br /&gt;
** https://github.com/multiOTP/multiOTPCredentialProvider&lt;br /&gt;
** https://github.com/multiOTP/multiotp/wiki&lt;br /&gt;
** https://servilon.com/two-factor-authentication/&lt;br /&gt;
** https://github.com/multiOTP/multiotp/issues/41&lt;br /&gt;
* DHCP Failover: https://bent-blog.de/dhcp-failover-cluster-automatische-replikation-von-konfigurationsaenderungen/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Anmeldescripte / Batchdateien / VBS&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:ifmember+ismember|AD-Gruppenmitgliedschaft in Batchdateien auswerten - ifmember.exe oder ismember.exe]]&lt;br /&gt;
* [[Windows:Drucker per Batchdatei mappen|Drucker im Anmeldescript / Batchdatei mappen]]&lt;br /&gt;
* [[Windows:Verzeichnistruktur per Batch abarbeiten|Verzeichnistruktur per Batch abarbeiten]]&lt;br /&gt;
* [[Windows:VBS Rechnernamen auswerten und gegebenenfalls Script beenden|VB Script - Rechnernamen auswerten und Script ggf. beenden]]&lt;br /&gt;
* [[Windows:Benutzerzertifikate per Batch importieren|Benutzerzertifikate per Batch / Kommandozeile importieren]]&lt;br /&gt;
* [[Windows:WebDAV als Laufwerk per net use Befehl verbinden|WebDAV als Laufwerk per net use Befehl verbinden]]&lt;br /&gt;
* [[Windows:Dateien die älter sind als X Tage per Skript / Batch löschen|Dateien die älter sind als X Tage per Skript / Batch löschen]]&lt;br /&gt;
* [[Windows:Rechner oder Server per Batch/Script remote neu starten|Rechner oder Server per Batch/Script remote neu starten]]&lt;br /&gt;
* [[Windows:Batch / DOS-Box: aktuelles Datum und Uhrzeit für Datei- oder Verzeichnisnamen verwenden|Batch / DOS-Box: aktuelles Datum und Uhrzeit für Datei- oder Verzeichnisnamen verwenden]]&lt;br /&gt;
* [[Windows:FTP-Verzeichnisse per Batch sichern, in ein Archiv packen und Status mit Logfile per Email versenden|FTP-Verzeichnisse per Batch sichern, in ein Archiv packen und Status mit Logfile per Email versenden]]&lt;br /&gt;
* [[Windows:Multi-Monitor Slideshow - Diashow über mehrere Monitore - mit IrfanView und einem Batch-Script|Multi-Monitor Slideshow - Diashow über mehrere Monitore - mit IrfanView und einem Batch-Script]]&lt;br /&gt;
* [[Windows:Pause von x Sekunden in Batch einbauen auch unter Windows 7 / 2008 R2|Pause von x Sekunden in Batch einbauen auch unter Windows 7 / 2008 R2]]&lt;br /&gt;
* [[Windows:Per Batch Berechtigungen auf Ordner inklusive Unterordner setzen mit icacls|Per Batch Berechtigungen auf Ordner inklusive Unterordner setzen mit icacls]]&lt;br /&gt;
* [[Windows:Per Batch Remote auf einem anderen Computer einen Ordner anlegen und diesen Freigeben mit bestimmten Rechten|Per Batch Remote auf einem anderen Computer einen Ordner anlegen und diesen Freigeben mit bestimmten Rechten]]&lt;br /&gt;
* [[Windows:Robocopy unter Linux?´|Robocopy unter Linux?]]&lt;br /&gt;
* [[Windows:Batch Datei (.cmd / .bat) soll nur ein einziges mal bei Anmeldung abgearbeitet werden|Batch Datei (.cmd / .bat) soll nur ein einziges mal bei Anmeldung abgearbeitet werden]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei]]&lt;br /&gt;
* [[Windows Anmeldescript wird nicht abgearbeitet]]&lt;br /&gt;
* [[Windows Domänencontroller per nslookup finden]]&lt;br /&gt;
* [[Domäne eines Computers zuverlässig in Batch Skript herausbekommen abfragen ermitteln]]&lt;br /&gt;
* [[In Batch testen ob System ein Server oder eine Workstation ist]]&lt;br /&gt;
* [[In Windows Batch die Ausgabe eines Befehls in einer Variablen speichern]]&lt;br /&gt;
* [[Batch RDP Verbindung starten mit Benutzername und Passwort]]&lt;br /&gt;
* [[Batch Programm nur starten wenn es noch nicht gestartet ist - zum Beispiel in Aufgabenplanung Task Scheduler]]&lt;br /&gt;
* Benutzer können gemappte Laufwerke nicht sehen: http://www.active-directory-faq.de/2014/11/laufwerksmapping-gemappte-laufwerke-nicht-im-explorer-angezeigt/&lt;br /&gt;
* Sonderzeichen in Batch Dateien Escapen: http://www.robvanderwoude.com/escapechars.php&lt;br /&gt;
* [[Windows Update per Skript suchen herunterladen installieren reboot]]&lt;br /&gt;
* [[Windows DHCP Server Reservierungen per CMD Batch erstellen]]&lt;br /&gt;
* [[Windows Domain Controller Schreibcache dauerhaft aktivieren]]&lt;br /&gt;
* [[Windows Dienst Startart per CMD Befehl ändern]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Firewall&#039;&#039;&#039;===&lt;br /&gt;
* Firewall Ports für Domänencontroller: https://support.microsoft.com/de-de/help/179442/how-to-configure-a-firewall-for-domains-and-trusts&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Gruppenrichtlinien&#039;&#039;&#039;===&lt;br /&gt;
* [[Gruppenrichtlinien Sammlung von WMI Filtern]]&lt;br /&gt;
* [[Windows:Gruppenrichtlinien - Ordnerumleitungen wieder rückgängig machen (aufheben)|Gruppenrichtlinien - Ordnerumleitungen wieder rückgängig machen (aufheben)]]&lt;br /&gt;
* [[Windows: Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten|Gruppenrichtlinien - Datei öffnen Warnung abschalten]]&lt;br /&gt;
* [[VMware:VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung|Gruppenrichtlinien - VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung]]&lt;br /&gt;
* [[Windows: IE9 Gruppenrichtlinen werden in 2008R2 ADS nicht (oder nicht korrekt) ausgeführt|Gruppenrichtlinien - IE9 Gruppenrichtlinen werden in 2008R2 ADS nicht (oder nicht korrekt) ausgeführt]]&lt;br /&gt;
* [[Windows:Ordnerumleitungen per Gruppenrichtlinie - die richtigen Rechte für den Stammordner|Ordnerumleitungen per Gruppenrichtlinie - die richtigen Rechte für den Stammordner]]&lt;br /&gt;
* [[Windows:Gruppenrichtlinen - Vertrauenswürdige Zertifikate / Stammzertifikate per Gruppenrichtlinie (GPO) verteilen|Gruppenrichtlinen - Vertrauenswürdige Zertifikate / Stammzertifikate per Gruppenrichtlinie (GPO) verteilen]]&lt;br /&gt;
* [[Routen per Gruppenrichttlinie verteilen]]&lt;br /&gt;
* Beispiele WMI-Filter: http://www.eventsentry.com/blog/2009/10/useful-wmi-queries-to-filter-g.html&lt;br /&gt;
* [[Gruppenrichtlinien mit Änderungsdatum Modifizierungsdatum auflisten]]&lt;br /&gt;
* [[WMI-Filter Desktop Notenbook Laptop Server]]&lt;br /&gt;
* [[Windows Weisse Icons Symbole nach Ordnerumleitung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Hyper V / Hyper-V / HyperV&#039;&#039;&#039;===&lt;br /&gt;
* [[Hyper V Standalone Server in Hyper-V-Manager aufnehmen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;IIS Internet Information Service&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:IIS 7.x Hostheader bei SSL einsetzen|IIS 7.x Hostheader bei SSL einsetzen]]&lt;br /&gt;
* [[Windows:IIS 7.x WebDAV einrichten|IIS 7.x WebDAV einrichten]]&lt;br /&gt;
* [[IIS SAN Zertifikat anfordern (Zertifikat mit mehreren Domänennamen)]]&lt;br /&gt;
* [[Mit IIS 7.x einen Seafile Server per https absichern]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Internet Explorer&#039;&#039;&#039;===&lt;br /&gt;
* [[Internet Explorer Google lässt sich nicht als Standard Suchanbieter setzen]]&lt;br /&gt;
* [[Excel Internet Explorer speichert xlsx als xls]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Java&#039;&#039;&#039;===&lt;br /&gt;
* [[Java - Zertifikat konnte nicht validiert werden. Die Anwendung wird nicht ausgeführt]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Links&#039;&#039;&#039;===&lt;br /&gt;
* https://www.uwe-sieber.de/misc_tools.html -&amp;gt; Unter anderem Tool um Popup fenster zu finden und nicht mehr vorhandene USB-Geräte zu löschen&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Microsoft SQL Server 2000 / 2005 / 2008&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:SQL2000 - MSDE 2000 nachträglich Netzwerkfähig machen|MSDE 2000 nachträglich Netzwerkfähig machen / Netzwerkzugriff erlauben]]&lt;br /&gt;
* [[Windows:SQL2000 - MSDE 2000 Management Console / Verwaltungskonsole / SQL Server Management Studio Express|MSDE 2000 Management Console / Verwaltungskonsole / SQL Server Management Studio Express installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Netzwerk&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Windows7+2008-IPv6-deaktivieren|IPv6 richtig deaktivieren unter Windows Vista / 7 / 2008 / 2008 R2]]&lt;br /&gt;
* [[Windows:WebDAV als Laufwerk per net use Befehl verbinden|WebDAV als Laufwerk per net use Befehl verbinden]]&lt;br /&gt;
* [http://www.nord-ostsee-it-service.de/aktuelles/1296-deaktivieren-von-isatap.html Deaktivieren von Isatap, Teredo, 6to4] (externer Link)&lt;br /&gt;
* [[Windows herausfinden welches Programm mit einer bestimmten IP-Adresse kommuniziert]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;ODBC - Datenquellen&#039;&#039;&#039;===&lt;br /&gt;
* [[32 und 64 Bit ODBC Datenquellen auf 64 Bit Systemen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;PowerShell&#039;&#039;&#039;===&lt;br /&gt;
* [[PowerShell aktuellen Pfad des Skripts ermitteln]]&lt;br /&gt;
* [[PowerShell watch Befehl wie bei Linux]]&lt;br /&gt;
* [[PowerShell tail Befehl wie bei Linux]]&lt;br /&gt;
* [https://tmintner.wordpress.com/2011/07/08/windows-7-notification-area-automation-falling-back-down-the-binary-registry-rabbit-hole/ Programm Icon im Infobereich immer anzeigen]&lt;br /&gt;
* [[PowerShell DHCP-Reservierungen kopieren]]&lt;br /&gt;
* [[PowerShell Userhome Benutzerordner Rechte neu setzen]]&lt;br /&gt;
* [[PowerShell Ordnern Gruppen zuordnen und Rechte setzen]]&lt;br /&gt;
* [[PowerShell Batteriestand von Bluetooth oder PnP Geräten abfragen]]&lt;br /&gt;
* https://powershellisfun.com/2023/06/06/changing-your-windows-terminal-background-image/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Robocopy===&lt;br /&gt;
* [[Sammlung ROBOCOPY Aufruf mit Parameter]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Tablet mit Windows 8.1 / 7===&lt;br /&gt;
* [[Mauszeiger für Windows 8.1 Tablets für leichtere Bedienung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Terminal&#039;&#039;&#039;===&lt;br /&gt;
* Windows Terminal Config. Stored in .\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState\profiles.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Terminalserver&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Logoff_before_Reboot|Benutzer abmelden vor Neustart des Terminalservers]]&lt;br /&gt;
* [[Windows:Abmelden_UPHClean_Remapping|Abmelden von TS dauert lange, UPHClean.exe meldet Remapping]]&lt;br /&gt;
* [http://www.theshonkproject.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=50&amp;amp;Itemid=31 Script das verwaiste Profile löschen kann (externer Link)]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Symbole in der Taskleiste auf Terminalserver 2008 R2 entfernen - Servermanager Powershell]]&lt;br /&gt;
* [[Ordner der Benutzer werden als Eigene Dokumente oder Eigene Dateien statt mit Benutzernamen angezeigt]]&lt;br /&gt;
* [[Terminalserver - Benutzer soll sich selbst von allen anderen Servern abmelden]]&lt;br /&gt;
* [[Administrator nachträglich zu den servergespeicherten Profilen hinzufügen]]&lt;br /&gt;
* [[Terminalserver Grace Period abfragen]]&lt;br /&gt;
* [[Remotedesktopgateway 2016 Zertifikate mit Laufzeit 20 Jahre erstellen]]&lt;br /&gt;
* Terminalserverzertifikat austauschen: https://www.frankysweb.de/tipp-zertifikat-fr-rdp-austauschen/&lt;br /&gt;
* Zertifikatswarnungen abschalten: https://morgansimonsen.wordpress.com/2011/03/21/sha1-thumbprints-for-trusted-rdp-publishers/&lt;br /&gt;
* QuickSessionCollection Desktop hinzufügen: https://ryanmangansitblog.com/2014/01/04/publish-remote-desktop-session-in-a-remote-app-session-collection/&lt;br /&gt;
* FSLogix:&lt;br /&gt;
** Download neueste Version: https://aka.ms/fslogix_download&lt;br /&gt;
** https://docs.microsoft.com/de-de/azure/virtual-desktop/fslogix-containers-azure-files&lt;br /&gt;
** https://nick-it.de/blog/windows/microsoft-fslogix&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Unbeaufsichtigte Installation&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Unattended Install 2008R2 Windows 7|Nach dem Update der Installationsquelle auf SP1 funktioniert die Installation nicht mehr / Server 2008R2 / Windows 7]]&lt;br /&gt;
* [[Windows:Java 6 x86 Installation auf 64bit| Eine Scriptgesteuerte Installation von Java (32bit) auf einem 64bit Server schlägt fehl]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;WebDAV&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:WebDAV als Laufwerk per net use Befehl verbinden|WebDAV als Laufwerk per net use Befehl verbinden]]&lt;br /&gt;
* [[Windows:WebDAV Adresse vom T-Online / T-Home Mediencenter|WebDAV Adresse vom T-Online / T-Home Mediencenter]]&lt;br /&gt;
* [[Windows:WebDAV Adresse vom 1und1 / 1&amp;amp;1 Office Drive|WebDAV Adresse vom 1und1 / 1&amp;amp;1 Office Drive]]&lt;br /&gt;
* [[Windows:WebDAV Adresse von CrushFTP|WebDAV Adresse von CrushFTP]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Windows:WebDAV Beschränkungen bzw. Limits vom 1&amp;amp;1 Office Drive / 1&amp;amp;1 Online Storage|WebDAV Beschränkungen bzw. Limits vom 1&amp;amp;1 Office Drive / 1&amp;amp;1 Online Storage]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Windows Defender / Microsoft Security Essentials===&lt;br /&gt;
* [[Windows Defender oder Microsoft Security Essentials - PUA aktivieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=== Windows ISO Namen ===&lt;br /&gt;
* https://www.heidoc.net/php/myvsdump_name.php?family=Windows+10+Enterprise+LTSC+2021&amp;amp;name=Windows+10+Enterprise+LTSC+2021&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2000 / Windows 2000&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2003&#039;&#039;&#039;===&lt;br /&gt;
* [[Windows:Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten|Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[Windows:Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren|Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren]]&lt;br /&gt;
* [[Windows:Windows Server 2003 Verstärkte Sicherheitskonfiguration für Internetexplorer deaktivieren|Windows Server 2003 Verstärkte Sicherheitskonfiguration für Internetexplorer deaktivieren]]&lt;br /&gt;
* [[Windows: Windows XP oder Windows Server 2003 - Tastaturlayout für Anmeldebildschirm ändern|Tastaturlayout für Anmeldebildschirm ändern]]&lt;br /&gt;
* [[Windows:Internet Explorer - Suchanbieter funktionieren nicht richtig|Internet Explorer - Suchanbieter wie z.B. Google funktionieren nicht richtig]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen|Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Windows Domänencontroller per nslookup finden]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* [[Windows Server als Zeitserver NTP]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2008 / Server 2008 R2&#039;&#039;&#039;===&lt;br /&gt;
* [[VMware:Grafikkartentreiber gegen Mausruckeln|Maus ruckelt in Virtueller Maschine (VM) unter VMware]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[Windows:Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten|Windows Server Ereignisprotokollierung für Herunterfahren anzeigen abschalten]]&lt;br /&gt;
* [[Windows:Windows7+2008-IPv6-deaktivieren|IPv6 richtig deaktivieren unter Windows Vista / 7 / 2008 / 2008 R2]]&lt;br /&gt;
* [[Windows:Windows Server 2008 (R2) Drucker migrieren von einem Server zum anderen|Windows Server 2008 (R2) Drucker migrieren von einem Server zum anderen]]&lt;br /&gt;
* [[Windows: Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten|Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update|Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren|Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden|Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden (Bildschirm der bei STRG + ALT + Entf kommt)]]&lt;br /&gt;
* [[Windows:Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)|Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)]]&lt;br /&gt;
* [[Windows: Windows Server 2008 - Verstärkte Sicherheitskonfiguration Internet Explorer deaktivieren|Windows Server 2008 - Verstärkte Sicherheitskonfiguration Internet Explorer deaktivieren]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 - Verwaltungstools (Active Directory Benutzer und Computer etc.) auf Memberserver|Windows Server 2008 R2 - Verwaltungstools (Active Directory Benutzer und Computer etc.) auf Memberserver]]&lt;br /&gt;
* [[Windows:Windows 2003 - Microsoft Print Migrator 3.1 - Kernel Drivers Blocked|Windows 2003 - Microsoft Print Migrator 3.1 - Kernel Drivers Blocked]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/224c95bc-e6b3-4b66-82e1-22de625b7dc6/ Userenvdebug Logging in Windows Server 2008]&lt;br /&gt;
* [[VMware:Windows Server 2008 R2 als NFS Ziel für ESX/ESXi konfigurieren|Windows Server 2008 R2 als NFS Ziel für ESX/ESXi konfigurieren]]&lt;br /&gt;
* [[Windows:How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7|How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [[Windows:Windows 2003 / 2008 R2 - Servergespeicherte Profile (Roaming Profiles) werden nach Umzug auf neuen Server nicht geladen|Windows 2003 / 2008 R2 - Servergespeicherte Profile (Roaming Profiles) werden nach Umzug auf neuen Server nicht geladen]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen|Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen]]&lt;br /&gt;
* [http://technet.microsoft.com/de-de/library/722f3aa8-2f22-462f-bcc6-72ad31713ddd.aspx Windows Web Access Gateway für Remotedesktopdienste Schritt-für-Schritt einrichten]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 - dcpromo hängt / dauert lange / Bluescreen / Rechner Server friert ein|Windows Server 2008 R2 - dcpromo hängt / dauert lange / Bluescreen / Rechner Server friert ein]]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 - Aero Desing aktivieren + Snipping Tool + Windows Sidebar nutzen|Windows Server 2008 R2 - Aero Desing aktivieren + Snipping Tool + Windows Sidebar nutzen]]&lt;br /&gt;
* [[Windows:Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc|Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc]]&lt;br /&gt;
* [[Windows:Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf|Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf]]&lt;br /&gt;
* [[Windows:Windows Server 2008 R2 als VPN Einwahlserver für Windows 7 hinter Firewall mit Boardmitteln|Windows Server 2008 R2 als VPN Einwahlserver für Windows 7 hinter Firewall mit Boardmitteln]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern|Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern]]&lt;br /&gt;
* [[Windows:Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen|Windows 2003 / 2008 / 2008 R2 - Domänencontroller umbenennen]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Windows:Winsat von Windows 7 auch unter 2008 R2 benutzen|Winsat von Windows 7 auch unter 2008 R2 benutzen]]&lt;br /&gt;
* [[AccessPoint - Windows 7 oder Windows Server 2008 R2 als WLAN Hotspot für andere Geräte]]&lt;br /&gt;
* [[Festplatte vergößern Windows Server 2008 - Fehlermeldung &amp;quot;Falscher Parameter&amp;quot;]]&lt;br /&gt;
* [[Pfad des Start Menü und des Desktop für alle Benutzer]]&lt;br /&gt;
* [[Dummy Drucker / Nirwana Drucker / NUL oder NULL Drucker anlegen / einrichten]]&lt;br /&gt;
* [[Zertifikate mit gültigkeitsdauer länger als 1 Jahr erlauben bei eigener Zertifizierungsstelle]]&lt;br /&gt;
* [[IIS SAN Zertifikat anfordern (Zertifikat mit mehreren Domänennamen)]]&lt;br /&gt;
* [[Aero funktioniert nicht mehr - Grafik langsam / rucklig nach Installation IE10 oder Plattformupdate 2670838]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Internet Explorer funktioniert nicht mehr - Appcrash bei IE9 oder IE10 z.B. beim beenden oder schliessen von Tabs / Registerkarten]]&lt;br /&gt;
* [[Neuer DHCP Server lässt sich nicht autorisieren]]&lt;br /&gt;
* [[Dropbox &amp;amp; Co bei der Arbeit zusehen - Status Monitor welche Datei gerade abgearbeitet wird]]&lt;br /&gt;
* [[Zeitserver auf Domänencontroller und anderen Server einstellen und prüfen]]&lt;br /&gt;
* [[Windows Domänencontroller per nslookup finden]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Falsche oder fehlende Symbole - Icon Cache löschen und neu aufbauen]]&lt;br /&gt;
* [[Mit IIS 7.x einen Seafile Server per https absichern]]&lt;br /&gt;
* [[Prüfen ob ein Server ein Terminalserver ist]]&lt;br /&gt;
* [[Windows 2008 R2 hat 2 IPv6 Adressen aus gleichen Adressbereich]]&lt;br /&gt;
* [[Print Jobs in Eventlog - Druckaufträge im Ereignisprotoll monitoren Windows]]&lt;br /&gt;
* [[Foto im Active Directory hinterlegen und bei Benutzeranmeldung anzeigen]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* [[Windows Server 2012 R2 Internet Explorer 11 IE11 startet nicht weisses Fenster Desktop und Published Application]]&lt;br /&gt;
* [[Windows Server als Zeitserver NTP]] &lt;br /&gt;
* File-Locking Probleme Fileserver: [https://blogs.technet.microsoft.com/the_microsoft_excel_support_team_blog/2012/05/14/the-definitive-locked-file-post-updated-772014/ The Definitive &#039;Locked File&#039; Post (updated 7/7/2014)]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Windows Server 2012 / Server 2012 R2 / Server 2016 / Server 2019 / Server 2022&#039;&#039;&#039;===&lt;br /&gt;
* [[.NET 3.5 kann auf Windows Server 2012 R2 ROK Version nicht installiert werden]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* Windows Server 2012 R2 Terminalserver Lizenzserver 120 Tage zurück setzen: http://www.davidmercer.co.uk/2012-rds-120-day-grace-period-reset/&lt;br /&gt;
* [[Windows laufende Prozesse auf anderen Server oder Rechner anzeigen lassen]]&lt;br /&gt;
* Fileserver vor Locky und Co schützen: https://www.frankysweb.de/windows-fileserver-vor-ransomware-crypto-locker-schuetzen/&lt;br /&gt;
* Fileserver vor Locky und Co schützen: https://www.frankysweb.de/windows-fileserver-vor-ransomware-schuetzen-update/&lt;br /&gt;
* Rechner vor Locky und Co schützen: http://www.bleepingcomputer.com/virus-removal/locky-ransomware-information-help#locky-encryption&lt;br /&gt;
* [[Windows Server als Zeitserver NTP]]&lt;br /&gt;
* File-Locking Probleme Fileserver: [https://blogs.technet.microsoft.com/the_microsoft_excel_support_team_blog/2012/05/14/the-definitive-locked-file-post-updated-772014/ The Definitive &#039;Locked File&#039; Post (updated 7/7/2014)]&lt;br /&gt;
* [[Windows Server Domänencontroller keine NETLOGON Freigabe und kein scripts Verzeichnis]]&lt;br /&gt;
* [[Windows Updates manuell einspielen]]&lt;br /&gt;
* [[Windows Server 2012 2016 Zugriff auf C$ Administrative Freigaben]]&lt;br /&gt;
* [[FibreChannel oder iSCSI - LUN-ID unter Windows anzeigen lassen]]&lt;br /&gt;
* Server 2016: https://www.tech-faq.net/windows-wird-vorbereitet-schalten-sie-den-computer-nicht-aus/&lt;br /&gt;
* [[Windows Updates per PowerShell und Aufgabenplanung installieren]]&lt;br /&gt;
* [[Windows Dedup Deduplizierung Deduplikation Sammlung von PowerShell-Befehle]]&lt;br /&gt;
* [[Windows Server 2022 Windows 11 verschieben vergrößern Recovery Wiederherstellungspartition Partition]]&lt;br /&gt;
* [[Windows IPv4 bevorzugen vor IPv6]]&lt;br /&gt;
* https://4sysops.com/archives/renew-windows-root-ca-certificate/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Windows Server Hyper V==&lt;br /&gt;
* http://www.hyper-v-server.de/management/administration-eines-hyper-v-server-2008-r2-sp1-mit-windows-7-sp1-und-den-rsat-tools-ohne-domne/&lt;br /&gt;
* http://www.google.de/imgres?imgurl=http%3A%2F%2Fwinsupersite.com%2Fcontent%2Fcontent%2F127572%2Fserver%2Fhyperv2_01.jpg&amp;amp;imgrefurl=http%3A%2F%2Fwinsupersite.com%2Fwindows-server%2Fmicrosoft-hyper-v-server-2008-r2-preview&amp;amp;h=366&amp;amp;w=665&amp;amp;tbnid=xiZTU9Ec5nyjFM%3A&amp;amp;zoom=1&amp;amp;docid=c0xusYiBNTyhQM&amp;amp;ei=82Q4VIa0MqGBywOEvYCgCw&amp;amp;tbm=isch&amp;amp;client=firefox-a&amp;amp;iact=rc&amp;amp;uact=3&amp;amp;dur=3456&amp;amp;page=1&amp;amp;start=0&amp;amp;ndsp=39&amp;amp;ved=0CCgQrQMwAg&lt;br /&gt;
* http://virtualizationreview.com/Articles/2011/03/29/Free-Free-Hyper-V-GUI.aspx?Page=2&lt;br /&gt;
* https://coreconfig.codeplex.com/&lt;br /&gt;
* http://www.windowspro.de/tipp/zwischen-minimal-server-interface-server-core-gui-umschalten&lt;br /&gt;
* http://teusje.wordpress.com/2011/02/19/download-file-with-powershell/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;Windows 7 &amp;amp; Windows 8&#039;&#039;&#039;==&lt;br /&gt;
* [[Windows:7 Einzelne Benutzer auf Anmeldebildschirm ausblenden|Einzelne Benutzer auf Windows 7 Anmeldebildschirm ausblenden]]&lt;br /&gt;
* [[VMware:Grafikkartentreiber gegen Mausruckeln|Maus ruckelt in Virtueller Maschine (VM) unter VMware]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[Windows:Windows7+2008-IPv6-deaktivieren|IPv6 richtig deaktivieren unter Windows Vista / 7 / 2008 / 2008 R2]]&lt;br /&gt;
* [[Windows:Windows Server 2008 (R2) Drucker migrieren von einem Server zum anderen|Drucker migrieren von einem Rechner zum anderen (Anleitung ist Server, funktioniert aber genauso)]]&lt;br /&gt;
* [[Windows: Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten|Windows 7 / 2008 R2 - Datei öffnen Warnung abschalten]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update|Windows 7 / 2008 R2 - Internet Proxy setzen auch für Dienste und Windows Update]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren|Windows 7 / 2008 R2 - Windows ohne 100MByte Startpartition installieren]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden|Windows 7 / 2008 R2 - Windows Security Screen - Menüpunkte ausblenden oder einblenden (Bildschirm der bei STRG + ALT + Entf kommt)]]&lt;br /&gt;
* [[Windows:Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)|Windows 7 / Windows Vista / Windows Server 2008 R2 - CMD.EXE starten während des Setups (DOS-Box, Eingabeaufforderung)]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [[Windows:How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7|How-to - KMS Server aufsetzen und verwalten für Windows 2008 / 2008R2 / Vista / 7]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [http://www.unawave.de/installation/downgrade.html Windows 7 oder Vista - Downgrade von Ultimate auf Professional oder Home Premium]&lt;br /&gt;
* [[Windows:Windows Vista / Windows 7 gespeicherte Kennwörter für Proxy, Webseiten, Outlook löschen|Windows Vista / Windows 7 gespeicherte Kennwörter für Proxy, Webseiten, Outlook löschen]]&lt;br /&gt;
* [[Windows:Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen|Windows 7 / 2008 R2 - Eingabeaufforderung per Rechtsklick auf beliebigen Ordnern öffnen]]&lt;br /&gt;
* [[Windows:Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc|Windows 7 / Server 2008 / Server 2008 R2 - Liste aller Management Controls (MMC) *.msc]]&lt;br /&gt;
* [[Windows:Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf|Windows 2008 / 2008 R2 / Vista / 7 - Übersicht über Dienste mit Beschreibung und net start Aufruf]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern|Größe des Benutzerbild und der Schrift auf Anmeldebildschirm und auf dem Desktop ändern oder vergrößern]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Windows:Windows 7 - Festplattenperformance messen mit Boardmitteln WinSAT|Windows 7 - Festplattenperformance messen mit Boardmitteln WinSAT]]&lt;br /&gt;
* [[AHCI unter Windows 7 nachträglich aktivieren]]&lt;br /&gt;
* [[Windows 7 Installation auf neue Hardware / Mainboard verschieben]]&lt;br /&gt;
* [[Systemdateien unter Windows 7 überprüfen]]&lt;br /&gt;
* [[AccessPoint - Windows 7 oder Windows Server 2008 R2 als WLAN Hotspot für andere Geräte]]&lt;br /&gt;
* [[Pfad des Start Menü und des Desktop für alle Benutzer]]&lt;br /&gt;
* [[Dummy Drucker / Nirwana Drucker / NUL oder NULL Drucker anlegen / einrichten]]&lt;br /&gt;
* [[Aero funktioniert nicht mehr - Grafik langsam / rucklig nach Installation IE10 oder Plattformupdate 2670838]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Internet Explorer funktioniert nicht mehr - Appcrash bei IE9 oder IE10 z.B. beim beenden oder schliessen von Tabs / Registerkarten]]&lt;br /&gt;
* [[Dropbox &amp;amp; Co bei der Arbeit zusehen - Status Monitor welche Datei gerade abgearbeitet wird]]&lt;br /&gt;
* [[Thumbs.db loswerden unter Windows 8]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Windows 7 oder 8 - Netzwerkdrucker Treiber installieren als normaler einfacher Benutzer]]&lt;br /&gt;
* [[Falsche oder fehlende Symbole - Icon Cache löschen und neu aufbauen]]&lt;br /&gt;
* [[Programm immer als Administrator starten ohne UAC Abfrage]]&lt;br /&gt;
* [[Foto im Active Directory hinterlegen und bei Benutzeranmeldung anzeigen]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* File-Locking Probleme Fileserver: [https://blogs.technet.microsoft.com/the_microsoft_excel_support_team_blog/2012/05/14/the-definitive-locked-file-post-updated-772014/ The Definitive &#039;Locked File&#039; Post (updated 7/7/2014)]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Windows 10==&lt;br /&gt;
* [[Windows Datenträgerbereinigung per direkten Befehl aufrufen]]&lt;br /&gt;
* Bootmenü: http://www.deskmodder.de/wiki/index.php/Bootmen%C3%BC_reparieren_wiederherstellen_Windows_10&lt;br /&gt;
* [[Windows alle Treiber exportieren sichern Backup]]&lt;br /&gt;
* [[BitLocker Wiederherstellungsinformationen nachträglich im Active Directory speichern]]&lt;br /&gt;
* UAC für Fernwartung abschalten: https://www.windowspro.de/tipp/uac-filter-fuer-windows-fernwartung-abschalten&lt;br /&gt;
* Startmenü Probleme mit Roaming Profiles: http://www.edugeek.net/forums/windows-10/173918-start-menu-roaming-profiles-fix.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Windows 11==&lt;br /&gt;
* [[Windows 11 ohne Internet einrichten ohne Microsoft Konto einrichten]]&lt;br /&gt;
* [https://www.deskmodder.de/wiki/index.php?title=Windows_11_auch_ohne_TPM_und_Secure_Boot_installieren Windows 11 ohne TPM und Secure Boot installieren]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;Windows XP&#039;&#039;&#039;==&lt;br /&gt;
* [[Windows:7 Einzelne Benutzer auf Anmeldebildschirm ausblenden|Einzelne Benutzer auf Windows XP Anmeldebildschirm ausblenden - Beschreibung ist Windows 7, ist jedoch bei XP gleich]]&lt;br /&gt;
* [[Windows:Automatische Anmeldung|Automatische Anmeldung an Windows]]&lt;br /&gt;
* [[VMware:VMware View Bildschirmschoner Anmeldebildschirm ausschalten|Bildschirmschoner Anmeldebildschirm ausschalten]]&lt;br /&gt;
* [[VMware:VMware View Windows XP Leistungsoptionen Optimiert|Leistungsoptionen auf Optimiert (alle Effekte deaktivieren)]]&lt;br /&gt;
* [[Windows:Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren|Windows XP oder Windows Server 2003 - Fehlerberichtserstattung deaktivieren]]&lt;br /&gt;
* [[VMware:VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung|Windows XP - VMware View Mustergruppenrichtline aus Beispielumgebung für Linked-Clones Umgebung]]&lt;br /&gt;
* [[Windows: Windows XP oder Windows Server 2003 - Tastaturlayout für Anmeldebildschirm ändern|Tastaturlayout für Anmeldebildschirm ändern]]&lt;br /&gt;
* [[Windows:Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen|Nicht mehr vorhandene Geräte im Gerätemanager anzeigen lassen]]&lt;br /&gt;
* [[Windows:WMI Verbindung über das Netzwerk testen|WMI Verbindung über das Netzwerk testen]]&lt;br /&gt;
* [[Windows:Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)|Windows alle Versionen - Remote Kennwort ändern (lokale oder Domänenbenutzer)]]&lt;br /&gt;
* [[Windows:Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart|Windows 2000 / 2003 / 2008 (R2) / XP / Vista / 7 Festplatte erweitern im laufenden Betrieb mit Diskpart]]&lt;br /&gt;
* [[Windows:Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable|Automatisches Mounten von Festplatten deaktivieren - diskpart automount disable]]&lt;br /&gt;
* [[Windows:Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers|Wichtige Registry-Schlüssel für das Mappen von Netzwerkdruckern und das Setzen des Standarddruckers]]&lt;br /&gt;
* [[Dummy Drucker / Nirwana Drucker / NUL oder NULL Drucker anlegen / einrichten]]&lt;br /&gt;
* [[Schreibcache der Festplatte ist bei jedem Neustart deaktiviert / Schreib-Cache automatisch aktivieren / per Batch aktivieren]]&lt;br /&gt;
* [[Window Dienste - die verschiedenen Startmodi Manuell, Automatisch, Verzögerter Start, Start durch Auslöser]]&lt;br /&gt;
* [[Windows Dateien mit zu langen Dateinamen Pfadnamen kopieren Dateiname zu lang Quelle oder Ziel]]&lt;br /&gt;
* [[Windows XP Windows Updates nach Neuinstallation 2018 2019 2020 ermöglichen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==WSUS==&lt;br /&gt;
* WSUS unter 2016: https://www.windowspro.de/wolfgang-sommergut/anleitung-wsus-windows-server-2016-installieren&lt;br /&gt;
** Die Links aus dem Setup (die sich wiederholen)&lt;br /&gt;
** 1. SSL mit WSUS verwenden: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
** 2. Computergruppen erstellen: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
** 3. Mit Gruppenrichtlinien Computern Gruppen zuweisen: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
** Regeln für automatische Genehmigung konfigurieren: https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/dn343567(v=ws.11)&lt;br /&gt;
* Windows-Updates per PowerShell: https://gallery.technet.microsoft.com/scriptcenter/Execute-Windows-Update-fc6acb16&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Zertifikate==&lt;br /&gt;
* [[Windows Zertifizierungsstelle CA Voreinstellungen Einstellungen]]&lt;br /&gt;
* Windows Zertifikatsstelle umziehen: https://asichel.de/2017/01/02/zertifizierungsstelle-ca-auf-server-2016-umziehen-pki-migration/&lt;br /&gt;
* https://www.miniorange.com/de/guide-to-setup-ldaps-on-windows-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Ufw_Geoblocking_mit_Ubuntu_24.04&amp;diff=15784</id>
		<title>Ufw Geoblocking mit Ubuntu 24.04</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Ufw_Geoblocking_mit_Ubuntu_24.04&amp;diff=15784"/>
		<updated>2026-04-10T07:09:08Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Vorwort==&lt;br /&gt;
Unter Apache2 nutze ich ein Geoblocking - ich habe aber nach einer Möglichkeit gesucht, das ganz schon vor dem Apache zu blockieren (und mir die Logeinträge dafür damit zu sparen).&amp;lt;br&amp;gt;&lt;br /&gt;
Dafür habe ich diese Anleitung gefunden:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://www.seenlyst.com/blog/geo-blocking-ufw-iptables/&lt;br /&gt;
Die aber für Ubuntu 20.04 geschrieben wurde und so nicht mehr funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe die Fehler und Änderungen herausgesucht und hier ist meine Version des Artikels:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich wechsle einmal am Anfang zum {{code|root}}, alle nachfolgenden Befehle werden also als dieser ausgeführt!&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen installieren==&lt;br /&gt;
 apt update -y&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 apt install curl perl unzip xtables-addons-common libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Verzeichnis für unsere Daten erstellen==&lt;br /&gt;
 mkdir -p /usr/share/xt_geoip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Downloadskript erstellen==&lt;br /&gt;
 nano /usr/local/bin/update-geoip.sh&lt;br /&gt;
mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Create temporary directory&lt;br /&gt;
mkdir -p /usr/share/xt_geoip/tmp/&lt;br /&gt;
mkdir -p /usr/share/xt_geoip/tmp/ip2loc/&lt;br /&gt;
&lt;br /&gt;
# Download latest from db-ip.com&lt;br /&gt;
cd /usr/share/xt_geoip/tmp/&lt;br /&gt;
/usr/libexec/xtables-addons/xt_geoip_dl&lt;br /&gt;
&lt;br /&gt;
# Download maxmind legacy csv and process&lt;br /&gt;
wget https://mailfud.org/geoip-legacy/GeoIP-legacy.csv.gz -O /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
gunzip /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
cat /usr/share/xt_geoip/tmp/GeoIP-legacy.csv | tr -d &#039;&amp;quot;&#039; | cut -d, -f1,2,5 &amp;gt; /usr/share/xt_geoip/tmp/GeoIP-legacy-processed.csv&lt;br /&gt;
rm /usr/share/xt_geoip/tmp/GeoIP-legacy.csv&lt;br /&gt;
# rm /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
&lt;br /&gt;
# Download latest from https://github.com/sapics/ip-location-db&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geo-whois-asn-country/geo-whois-asn-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geo-whois-asn-country/geo-whois-asn-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/iptoasn-country/iptoasn-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/iptoasn-country/iptoasn-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/dbip-country/dbip-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/dbip-country/dbip-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geolite2-country/geolite2-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geolite2-country/geolite2-country-ipv6.csv&lt;br /&gt;
&lt;br /&gt;
# Combine all csv and remove duplicates&lt;br /&gt;
cd /usr/share/xt_geoip/tmp/&lt;br /&gt;
cat *.csv &amp;gt; geoip.csv&lt;br /&gt;
sort -u geoip.csv -o /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
&lt;br /&gt;
# Remove temp directory and update geoip xtables&lt;br /&gt;
cd /usr/share/xt_geoip/&lt;br /&gt;
rm -r /usr/share/xt_geoip/tmp/&lt;br /&gt;
/usr/libexec/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip/ -i /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
rm /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
&lt;br /&gt;
# reload ufw&lt;br /&gt;
ufw reload&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Skript noch ausführbar machen und testen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/update-geoip.sh&lt;br /&gt;
 /usr/local/bin/update-geoip.sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Blocking in Firewallregeln einbauen==&lt;br /&gt;
 nano /etc/ufw/before.rules&lt;br /&gt;
und unten vor dem {{code|COMMIT}} in der letzten Zeile folgendes einfügen:&amp;lt;br&amp;gt;&lt;br /&gt;
 #GeoBlocking&lt;br /&gt;
 -A ufw-before-input -m geoip --src-cc RU,CN,HK -j DROP&lt;br /&gt;
Das gleiche für IPv6:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ufw/before6.rules&lt;br /&gt;
und unten das hier einfügen (ist nicht das gleiche wie bei IPv4!)&lt;br /&gt;
 #GeoBlocking&lt;br /&gt;
 -A ufw6-before-input -m geoip --src-cc RU,CN,HK -j DROP&lt;br /&gt;
Damit ist Russland (RU), China (CN) und Hongkong (HK) für alles gesperrt!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Regel aktivieren==&lt;br /&gt;
 ufw reload&lt;br /&gt;
Gibt es dabei eine Fehler, so ist die Firewall ausgeschaltet!&lt;br /&gt;
In der Fehlermeldung wird die Datei und die Zeile stehen in der etwas falsch ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Korrigieren und dann die Firewall mit&lt;br /&gt;
 ufw enable&lt;br /&gt;
 ufw reload&lt;br /&gt;
neu starten und die Regeln prüfen!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Beispiele für weitere Regeln==&lt;br /&gt;
{{code|/etc/ufw/before.rules}}&lt;br /&gt;
 -A ufw-before-input -p tcp --dport 3000 -m geoip --src-cc RU,CN -j DROP&lt;br /&gt;
{{code|/etc/ufw/before6.rules}}&lt;br /&gt;
 -A ufw6-before-input -p tcp --dport 3000 -m geoip --src-cc RU,CN -j DROP&lt;br /&gt;
Sperrt TCP Datenverkehr auf Port 3000 für RU und CN&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Cronjob erstellen==&lt;br /&gt;
Einmal im Monat sollte man die Geodaten aktualisieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 Kommt noch - es muss das Skript einfach noch einmal gestartet werden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Exchange%2BOutlook&amp;diff=15783</id>
		<title>Exchange+Outlook</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Exchange%2BOutlook&amp;diff=15783"/>
		<updated>2026-04-02T11:16:27Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Verschiedenes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:Outlook]]&lt;br /&gt;
==Vorab==&lt;br /&gt;
Erstmal vorab: &#039;&#039;&#039;DIE&#039;&#039;&#039; deutschsprachigen Seiten rund um Exchange und Outlook:&lt;br /&gt;
&lt;br /&gt;
 [http://www.msxfaq.de/ http://www.msxfaq.de/]&lt;br /&gt;
 [https://www.frankysweb.de https://www.frankysweb.de]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==BlackBerry==&lt;br /&gt;
* [[Exchange+Outlook:BlackBerry Enterprise 5 - USB Geräte verbinden geht nicht|BlackBerry Enterprise 5 - USB Geräte verbinden geht nicht]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==eFa email Filter appliance==&lt;br /&gt;
* [[eFa Appliance Active Directory in MailScanner und Postfix konfigurieren]]&lt;br /&gt;
* Die Fußnote / Signatur unter den zugestellten Emails entfernen: https://forum.efa-project.org/viewtopic.php?t=2907&lt;br /&gt;
* Dateianhänge mit VBA Makros blocken: https://forum.efa-project.org/viewtopic.php?t=1896&lt;br /&gt;
* [[eFa Appliance Emails mit VBA Makros Skripten blocken]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Exchange Event-ID Ereignis-ID==&lt;br /&gt;
 [https://social.technet.microsoft.com/Forums/lync/en-US/cf64139e-b63c-483d-8af3-e5cb35707c11/why-am-i-getting-um-error-when-i-dont-use-um-event-1446the-microsoft-exchange-unified?forum=exchangesvrgeneral 1446  MSExchange Unified Messaging] =&amp;gt; Dienste deaktivieren wenn UM nicht genutzt wird&lt;br /&gt;
 [https://www.experts-exchange.com/questions/29116247/Windows-2016-Event-36874.html 36874 Schannel] =&amp;gt; Registry Eintrag zur Unterdrückung&lt;br /&gt;
 [https://social.technet.microsoft.com/Forums/de-DE/a48c8243-fc3a-4f88-93fe-1ec0ce9cc801/event-id-3028-msexchangeapplicationlogic?forum=exchangesvradmin 3028  MSExchangeApplicationLogic] =&amp;gt; Keine Lösung, ignorieren&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Outlook==&lt;br /&gt;
* [[Exchange+Outlook:Outlook 2007 + Outlook 2010 - Email über sichere Verbindung Senden und Empfangen (TLS + SSL) beim Provider 1und1|Outlook 2007 + Outlook 2010 - Email über sichere Verbindung Senden und Empfangen (TLS + SSL) beim Provider 1und1]]&lt;br /&gt;
* [[Exchange+Outlook:Outlook 2007 + Outlook 2010 - Email über sichere Verbindung Senden und Empfangen (TLS + SSL) beim Provider T-Online|Outlook 2007 + Outlook 2010 - Email über sichere Verbindung Senden und Empfangen (TLS + SSL) beim Provider T-Online]]&lt;br /&gt;
* Exchange und/oder Outlook: Defete / Unsichtbare Regeln löschen: http://exchangeshare.wordpress.com/2008/04/10/delete-corrupted-hidden-or-stale-rules-from-mailbox-with-mfcmapi/&lt;br /&gt;
* [[Exchange+Outlook:Outlook PST Dateien ohne Outlook öffnen um an wichtige eMail Elemente heranzukommen|Outlook PST Dateien ohne Outlook öffnen um an wichtige eMail Elemente heranzukommen]]&lt;br /&gt;
* [[Signatur bei Exchange 2010 automatisch an jede ausgehende Email anhängen - mit Vorname Name etc]]&lt;br /&gt;
* Andere Lösung zum Thema Signaturen: https://www.faq-o-matic.net/2013/08/26/outlook-signaturen-und-wie-bekmpft-man-die-anarchie-12/&lt;br /&gt;
* Und die wahrscheinlich bekannteste Lösung: http://www.outlook-stuff.com/tipps-tricks/problemloesungen/717-einheitliche-outlook-signaturen-zentral-im-firmennetz-verwalten.html&lt;br /&gt;
* [[Outlook Protokollierung]] für Fehlersuche&lt;br /&gt;
* Outlook Social Media Connector deaktivieren: https://www.groovypost.com/howto/howto/outlook-2010-disable-people-pane-social-connector/&lt;br /&gt;
* [[Outlook Suche soll nur lokale Cachedatei nutzen]]&lt;br /&gt;
* [[Outlook Anwesenheitssymbole werden nicht angezeigt]]&lt;br /&gt;
* [[Outlook fragt immer nach Passwort]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Outlook Web App==&lt;br /&gt;
* [[Outlook Web App Exchange 2010 IE 11 nur Outlook Web App Light verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Exchange==&lt;br /&gt;
* [[Exchange+Outlook:Exchange 2010 Dienste starten nicht|Exchange 2007 / 2010 - Dienste starten nicht mehr (diverse Gründe)]]&lt;br /&gt;
* [[Exchange+Outlook:Exchange 2010 Setup - Probleme mit &amp;quot;einheitlichen Modus von Windows Server 2003&amp;quot;|Exchange 2010 Setup - Probleme mit &amp;quot;einheitlichen Modus von Windows Server 2003&amp;quot;]]&lt;br /&gt;
* [[Exchange+Outlook:Exchange 2010 / 2007 - Discovery Postfach anlegen|Exchange 2010 / 2007 - Discovery Postfach anlegen]]&lt;br /&gt;
* [[Exchange+Outlook:Exchange 2010 / 2007 - Defekte oder Unsichtbare Regeln Postfach (InboxRules) löschen|Exchange 2010 / 2007 - Defekte oder Unsichtbare Regeln Postfach (InboxRules) löschen]]&lt;br /&gt;
* [http://blog.icewolf.ch/archive/2010/03/15/backup-exchange-20072010-with-vss-plugin-and-windows-server-backup.aspx Exchange 2010 auf Server 2008 R2 mit Boardmittel sichern Variante 1: Windows-Server Sicherung]&lt;br /&gt;
* [http://www.youtube.com/watch?v=OJqI_iE25hY Exchange 2010 - Beispielsicherung und Wiederherstellung mit Windows-Server Sicherung]&lt;br /&gt;
* [[Exchange+Outlook:Exchange 2010 Export von Postfächern in PST-Dateien|Exchange 2010 Export von Postfächern in PST-Dateien]]&lt;br /&gt;
* [[Exchange+Outlook:Exchange 2007 / 2010 - Transcodieren von Anlagen deaktivieren|Exchange 2007 / 2010 - Transcodieren von Anlagen deaktivieren]]&lt;br /&gt;
* [[SAN-Zertifikat in Exchange 2007 per PowerShell anfordern / einrichten]]&lt;br /&gt;
* [[Signatur bei Exchange 2010 automatisch an jede ausgehende Email anhängen - mit Vorname Name etc]]&lt;br /&gt;
* Andere Lösung zum Thema Signaturen: https://www.faq-o-matic.net/2013/08/26/outlook-signaturen-und-wie-bekmpft-man-die-anarchie-12/&lt;br /&gt;
* Und die wahrscheinlich bekannteste Lösung: http://www.outlook-stuff.com/tipps-tricks/problemloesungen/717-einheitliche-outlook-signaturen-zentral-im-firmennetz-verwalten.html&lt;br /&gt;
* [[Exchange 2010 Protokollierung / Protokoll Empfangsconnector - Speicherort der Protokolldateien]]&lt;br /&gt;
* [[Exchange 2010 AntiSpam Filter aktivieren]]&lt;br /&gt;
* [[Exchange 2010 Version Edition von Standard auf Enterprise Unternehmen ändern]]&lt;br /&gt;
* [[Exchange 2010 Downgrade Version Edition von Enterprise auf Standard ändern]]&lt;br /&gt;
* [[Exchange 2010 2013 Abwesenheitsassistent per Powershell einschalten und konfigurieren]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Exchange 2010 2013 2016 2019 inklusive Outlook Anywhere RPC over http]]&lt;br /&gt;
* [[Exchange 2016 DAG Linksammlung]]&lt;br /&gt;
* [[Exchange gesamtstrukturübergreifende Verschiebungen Linksammlung]]&lt;br /&gt;
* Lets Encrypt Zertifikate Anleitung: https://www.frankysweb.de/exchange-certificate-assistant-keine-neue-version-aber-eine-bessere-alternative-win-acme/&lt;br /&gt;
* Exchange 2019 Kerberos Authentifizierung aktivieren: https://www.frankysweb.de/exchange-2019-kerberos-authentifizierung-aktivieren/&lt;br /&gt;
* [[Exchange manuell aus Active Directory entfernen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Verschiedenes==&lt;br /&gt;
* [[Exchange+Outlook:Outlook.prf|Outlook.prf - Outlook findet seinen Exchange-Server selbst]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:Mailtest TU-Berlin|Schneller Mailtest - Testmail mit automatischer Antwort von TU-Berlin]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:SMTP über Telnet testen|SMTP über Telnet testen - auch mit Anmeldung]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:Besitzer einer Emailadresse finden (Benutzer, Gruppe, Öffentlicher Ordner)|Besitzer einer Emailadresse finden (Benutzer, Gruppe, Öffentlicher Ordner)]]&lt;br /&gt;
* [[Exchange+Outlook:Abfragen welcher Mailserver für eine Domäne zuständig ist per DOS-Box|Abfragen welcher Mailserver für eine Domäne zuständig ist per DOS-Box]]&lt;br /&gt;
* [[Blacklist - Prüfen ob der eigene Mailserver auf einer Blacklist steht]]&lt;br /&gt;
* [http://www.administrator.de/wissen/squid-2-x-als-reverse-proxy-f%C3%BCr-exchange-2010-192704.html Exchange 2010 hinter Squid als Reverse Proxy]&lt;br /&gt;
* Echo-Mailer: https://de.wikipedia.org/wiki/Echo-Mailer&lt;br /&gt;
* DMARC Tester: https://www.dmarctester.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Öffentliche Ordner==&lt;br /&gt;
* [[Exchange+Outlook:Exchange 2007 + 2010 Verteilergruppen für Rechte Öffentliche Ordner nutzen|Exchange 2007 + 2010 Verteilergruppen für Rechte Öffentliche Ordner nutzen]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:Exchange PowerShell Benutzer Zugriff auf alle Öffentliche Ordner geben |Exchange PowerShell Benutzer Zugriff auf alle Öffentliche Ordner geben]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==PowerShell==&lt;br /&gt;
* [[Exchange+Outlook:Exchange PowerShell Befehler|Exchange PowerShell Befehle mit Beispielen]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:Exchange PowerShell Zugriffsrechte alle Postfächer|Exchange PowerShell Vollzugriff auf alle Postfächerll]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:Exchange PowerShell Postfächer importieren ohne Rückfragen|Exchange PowerShell Postfächer importieren ohne Rückfragen]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:Exchange PowerShell Benutzer Zugriff auf alle Öffentliche Ordner geben |Exchange PowerShell Benutzer Zugriff auf alle Öffentliche Ordner geben]]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Exchange+Outlook:Exchange PowerShell Exchange 2010 SP1 Export von Postfächern in PST-Dateien|Exchange PowerShell Exchange 2010 SP1 Export von Postfächern in PST-Dateien]]&lt;br /&gt;
* [[Postfachgrößen unter Exchange 2007 oder 2010 per PowerShell abfragen]]&lt;br /&gt;
* [[Getrennte Postfächer in Exchange 2007 / Exchange 2010 werden nicht angezeigt]]&lt;br /&gt;
* [[Sprache aller Postfächer per Exchange 2007 / 2010 Powershell umstellen]]&lt;br /&gt;
* [[Exchange 2010 Falsche Bezeichnungen Posteingang1 Postausgang1 korrigieren]]&lt;br /&gt;
* [[Exchange Statistik und Anzahl Mobile Devices]]&lt;br /&gt;
* [[Exchange PowerShell alle SMTP Email-Adressen eines Benutzers ermitteln]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Spam Filter==&lt;br /&gt;
* [[Exchange 2010 AntiSpam Filter deaktivieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Einmal- / Einweg- / Temporäre Emailadressen==&lt;br /&gt;
* [[Internet und Web:Einweg Emailadressen|Einweg Emailadressen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Zertifikate==&lt;br /&gt;
* [[Lets Encrypt Zertifikate für Exchange]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=FSMO_Rollen_eines_Dom%C3%A4nencontroller_an_einen_anderen_%C3%BCbertragen_-_der_Klassiker_2003_2008_2008R2_2012_2012R2_2016_2019_2022&amp;diff=15782</id>
		<title>FSMO Rollen eines Domänencontroller an einen anderen übertragen - der Klassiker 2003 2008 2008R2 2012 2012R2 2016 2019 2022</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=FSMO_Rollen_eines_Dom%C3%A4nencontroller_an_einen_anderen_%C3%BCbertragen_-_der_Klassiker_2003_2008_2008R2_2012_2012R2_2016_2019_2022&amp;diff=15782"/>
		<updated>2026-03-31T07:11:51Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Aktuelle Besitzer abfragen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Active_Directory]]&lt;br /&gt;
&amp;lt;u&amp;gt;Changelog:&amp;lt;/u&amp;gt;&lt;br /&gt;
* vor Urzeiten: erste Version&lt;br /&gt;
* 18.01.2022 zum ersten Mal in meinem Leben hatte der Benutzer nicht die Rechte um das Schema zu übergeben. Lösung hinzugefügt&lt;br /&gt;
----&lt;br /&gt;
Vorweg: Am Vorgehen hat sich seit Windows Server 2003 nichts geändert. Also nicht von &amp;quot;älteren Screenshots&amp;quot; irritieren lassen&lt;br /&gt;
----&lt;br /&gt;
Man installiert einen neuen Windows-Domänencontroller - und der alte soll weg?&amp;lt;br&amp;gt;&lt;br /&gt;
Nun, alle Domänencontroller unter Windows sind gleich / gleichberechtigt ... doch einer ist gleicher als die anderen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser hält die so genannten FSMO-Rollen:&amp;lt;br&amp;gt;&lt;br /&gt;
* Schemamaster - bezogen auf die Gesamtstruktur (ein Schemamaster pro Gesamtstruktur). Der Inhaber dieser Funktion ist berechtigt, das Schema einer Active Directory-Gesamtstruktur zu erweitern oder den Befehl adprep /domainprep auszuführen.&lt;br /&gt;
* Domänennamen-Master - bezogen auf die Gesamtstruktur (ein Domänennamen-Master pro Gesamtstruktur). Der Inhaber dieser Funktion ist berechtigt, einer Gesamtstruktur Domänen oder Anwendungspartitionen hinzuzufügen oder diese aus der Gesamtstruktur zu entfernen.&lt;br /&gt;
* RID-Master - für die gesamte Domäne zuständig (ein RID-Master pro Domäne). Der Inhaber dieser Funktion ist für die Zuweisung des RID-Pools zuständig, um vorhandenen Domänencontrollern die Möglichkeit einzuräumen, Benutzerkonten, Computerkonten oder Sicherheitsgruppen zu erstellen.&lt;br /&gt;
* PDC-Emulator - für die gesamte Domäne zuständig (ein PDC-Emulator pro Domäne). Diese Funktion muss dem Domänencontroller zugewiesen werden, der Datenbankaktualisierungen an Windows NT-Sicherungsdomänencontroller sendet. Der Domänencontroller, der Inhaber dieser Funktion ist, ist auch das Ziel bestimmter Verwaltungsprogramme und Aktualisierungen für die Kennwörter von Benutzerkonten und Computerkonten.&lt;br /&gt;
* Infrastrukturmaster - für die gesamte Domäne zuständig (ein Infrastrukturmaster pro Domäne). Domänencontroller müssen Inhaber dieser Funktion sein, um den Befehl adprep /forestprep erfolgreich ausführen und SID-Attribute sowie die Attribute definierter Namen für Objekte aktualisieren zu können, auf die domänenübergreifend verwiesen wird.&amp;lt;br&amp;gt;&lt;br /&gt;
(Schamlos kopiert von http://support.microsoft.com/kb/255504/de)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Und diese Rollen müssen wir nun an den neuen Server übergeben.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorbereitung==&lt;br /&gt;
Wir melden uns auf dem Ziel-Domänencontroller an (also dem Domänencontroller der in Zukunft alle Rollen haben soll).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Aktuelle Besitzer abfragen==&lt;br /&gt;
 netdom query fsmo&lt;br /&gt;
Ergebnis:&lt;br /&gt;
 Schemamaster              dc.znil.local&lt;br /&gt;
 Domänennamen-Master       dc.znil.local&lt;br /&gt;
 PDC                       dc.znil.local&lt;br /&gt;
 RID-Pool-Manager          dc.znil.local&lt;br /&gt;
 Infrastrukturmaster       dc.znil.local&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==1 von 5: Schemamaster (Schema Master) übertragen==&lt;br /&gt;
Wir öffnen eine DOS Eingabeaufforderung (cmd.exe) oder drücken&lt;br /&gt;
:{{key|WIN}} + {{key|R}}&amp;lt;br&amp;gt;&lt;br /&gt;
und führen folgenden Befehl aus:&amp;lt;br&amp;gt;&lt;br /&gt;
 regsvr32 schmmgmt.dll&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-001.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-002.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dann führen wir die &#039;&#039;&#039;&#039;&#039;Management Console&#039;&#039;&#039;&#039;&#039; aus:&amp;lt;br&amp;gt;&lt;br /&gt;
 mmc&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-003.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser fügen wir ein Snap-In hinzu:&amp;lt;br&amp;gt;&lt;br /&gt;
 Datei&lt;br /&gt;
   |&lt;br /&gt;
   +--&amp;gt; Snap-In hinzufügen/entfernen...&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-004.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar das Snap-In &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039;:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-005.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-006.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wir klicken einmal auf das Kreuz vor &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039; und warten bis er die Konfiguration geladen hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann erscheinen 2 Unterordner und oben wird in eckigen Klammern der Name des momentanen Betriebsmasters angezeigt (hier [dc.znil.local]).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wir müssen zunächst auf unseren neuen Server wechseln. Dazu klicken wir mit der rechten Maustaste auf &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039; und wählen gleich den ersten Eintrag&amp;lt;br&amp;gt;&lt;br /&gt;
 Active Directory-Domänencontroller ändern...&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-008.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Dialog wählen wir nun &#039;&#039;&#039;&#039;&#039;Bestimmter Domänencontroller oder AD LDS-Instanz&#039;&#039;&#039;&#039;&#039; und dann unseren neuen Ziel-Server:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-009.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es kommt eine Hinweismeldung die wir bestätigen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-010.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun steht hinter &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039; in eckigen Klammern der Name des neuen Servers.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann klicken wir mit der rechten Maustaste auf diese Zeile und wählen:&amp;lt;br&amp;gt;&lt;br /&gt;
 Betriebsmaster&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-007.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Dialog einfach einmal auf {{key|Ändern}} klicken:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-011.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Warnung bestätigen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-012.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dann sollte eine Erfolgsmeldung kommen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-013.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das war es schon - und das war die umständlichste Rolle von allen.&amp;lt;br&amp;gt;&lt;br /&gt;
Schliesst einfach alle Fenster.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Was tun wenn wenn Ändern ausgegraut ist?===&lt;br /&gt;
Wenn Ihr das Problem hier habt:&lt;br /&gt;
:[[Datei:ClipCapIt-220118-112702.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so kann es daran liegen das euer Benutzer (und wenn es der Domänen-Administrator ist) nicht Mitglied der Gruppe Schema-Admins ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Prüft das einmal, fügt den Benutzer hinzu, meldet euch ab und wieder neu an, dann sollte es klappen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==2 von 5: Domänennamen-Master (Domain naming master)==&lt;br /&gt;
Öffnet in der Verwaltung&amp;lt;br&amp;gt;&lt;br /&gt;
 Active Directory-Domänen und -Vertrauensstellungen&lt;br /&gt;
und scrollt einmal ganz nach Rechts - da steht dann warscheinlich wieder der bisherige Rolleninhaber.&amp;lt;br&amp;gt;&lt;br /&gt;
Gleiches Spiel wie eben - Rechtsklick auf &#039;&#039;&#039;&#039;&#039;Active Directory-Domänen und -Vertrauensstellungen&#039;&#039;&#039;&#039;&#039; und dann den Punkt&amp;lt;br&amp;gt;&lt;br /&gt;
 Domänencontroller ändern...&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-014.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
wählen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Dialog wählen wir nun &#039;&#039;&#039;&#039;&#039;Bestimmter Domänencontroller oder AD LDS-Instanz&#039;&#039;&#039;&#039;&#039; und dann unseren neuen Ziel-Server:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-009.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun steht hinter &#039;&#039;&#039;&#039;&#039;Active Directory-Domänen und -Vertrauensstellungen&#039;&#039;&#039;&#039;&#039; in eckigen Klammern der Name des neuen Servers.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann klicken wir mit der rechten Maustaste auf diese Zeile und wählen:&amp;lt;br&amp;gt;&lt;br /&gt;
 Betriebsmaster&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-015.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das gleiche Spiel wie eben - einmal auf {{key|Ändern...}} klicken und die Rolle wird übertragen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-016.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==3 von 5: RID-Master (RID master)==&lt;br /&gt;
Nun öffnen wir&amp;lt;br&amp;gt;&lt;br /&gt;
 Active Directory-Benutzer und -Computer&lt;br /&gt;
Oben Achten wir wieder darauf das dot auch wieder in eckigen Klammern der Name des neuen Servers drin steht - sonst wieder ändern!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Markiert die Domäne(!) und per Rechtsklick kommen wir zu dem Menüpunkt&lt;br /&gt;
 Betriebsmaster&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-017.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Der Reiter {{key|RID}} ist bereits geöffnet so das wir nur noch auf {{key|Ändern...}} klicken müssen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-018.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==4 von 5: PDC-Emulator (PDC emulator)==&lt;br /&gt;
Nur eine Registerkarte weiter wartet der PDC Emulator.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie einfach nur auf {{key|Ändern...}} klicken.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-019.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==5 von 5: Infrastruktur Master (Infrastructure master)==&lt;br /&gt;
Und die letzte Rolle wartet auf dem letzten Tab:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-020.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=FSMO_Rollen_eines_Dom%C3%A4nencontroller_an_einen_anderen_%C3%BCbertragen_-_der_Klassiker_2003_2008_2008R2_2012_2012R2_2016_2019_2022&amp;diff=15781</id>
		<title>FSMO Rollen eines Domänencontroller an einen anderen übertragen - der Klassiker 2003 2008 2008R2 2012 2012R2 2016 2019 2022</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=FSMO_Rollen_eines_Dom%C3%A4nencontroller_an_einen_anderen_%C3%BCbertragen_-_der_Klassiker_2003_2008_2008R2_2012_2012R2_2016_2019_2022&amp;diff=15781"/>
		<updated>2026-03-31T07:10:33Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Vorbereitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Active_Directory]]&lt;br /&gt;
&amp;lt;u&amp;gt;Changelog:&amp;lt;/u&amp;gt;&lt;br /&gt;
* vor Urzeiten: erste Version&lt;br /&gt;
* 18.01.2022 zum ersten Mal in meinem Leben hatte der Benutzer nicht die Rechte um das Schema zu übergeben. Lösung hinzugefügt&lt;br /&gt;
----&lt;br /&gt;
Vorweg: Am Vorgehen hat sich seit Windows Server 2003 nichts geändert. Also nicht von &amp;quot;älteren Screenshots&amp;quot; irritieren lassen&lt;br /&gt;
----&lt;br /&gt;
Man installiert einen neuen Windows-Domänencontroller - und der alte soll weg?&amp;lt;br&amp;gt;&lt;br /&gt;
Nun, alle Domänencontroller unter Windows sind gleich / gleichberechtigt ... doch einer ist gleicher als die anderen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dieser hält die so genannten FSMO-Rollen:&amp;lt;br&amp;gt;&lt;br /&gt;
* Schemamaster - bezogen auf die Gesamtstruktur (ein Schemamaster pro Gesamtstruktur). Der Inhaber dieser Funktion ist berechtigt, das Schema einer Active Directory-Gesamtstruktur zu erweitern oder den Befehl adprep /domainprep auszuführen.&lt;br /&gt;
* Domänennamen-Master - bezogen auf die Gesamtstruktur (ein Domänennamen-Master pro Gesamtstruktur). Der Inhaber dieser Funktion ist berechtigt, einer Gesamtstruktur Domänen oder Anwendungspartitionen hinzuzufügen oder diese aus der Gesamtstruktur zu entfernen.&lt;br /&gt;
* RID-Master - für die gesamte Domäne zuständig (ein RID-Master pro Domäne). Der Inhaber dieser Funktion ist für die Zuweisung des RID-Pools zuständig, um vorhandenen Domänencontrollern die Möglichkeit einzuräumen, Benutzerkonten, Computerkonten oder Sicherheitsgruppen zu erstellen.&lt;br /&gt;
* PDC-Emulator - für die gesamte Domäne zuständig (ein PDC-Emulator pro Domäne). Diese Funktion muss dem Domänencontroller zugewiesen werden, der Datenbankaktualisierungen an Windows NT-Sicherungsdomänencontroller sendet. Der Domänencontroller, der Inhaber dieser Funktion ist, ist auch das Ziel bestimmter Verwaltungsprogramme und Aktualisierungen für die Kennwörter von Benutzerkonten und Computerkonten.&lt;br /&gt;
* Infrastrukturmaster - für die gesamte Domäne zuständig (ein Infrastrukturmaster pro Domäne). Domänencontroller müssen Inhaber dieser Funktion sein, um den Befehl adprep /forestprep erfolgreich ausführen und SID-Attribute sowie die Attribute definierter Namen für Objekte aktualisieren zu können, auf die domänenübergreifend verwiesen wird.&amp;lt;br&amp;gt;&lt;br /&gt;
(Schamlos kopiert von http://support.microsoft.com/kb/255504/de)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Und diese Rollen müssen wir nun an den neuen Server übergeben.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorbereitung==&lt;br /&gt;
Wir melden uns auf dem Ziel-Domänencontroller an (also dem Domänencontroller der in Zukunft alle Rollen haben soll).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Aktuelle Besitzer abfragen==&lt;br /&gt;
 netdom query fsmo&lt;br /&gt;
Ergebnis:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==1 von 5: Schemamaster (Schema Master) übertragen==&lt;br /&gt;
Wir öffnen eine DOS Eingabeaufforderung (cmd.exe) oder drücken&lt;br /&gt;
:{{key|WIN}} + {{key|R}}&amp;lt;br&amp;gt;&lt;br /&gt;
und führen folgenden Befehl aus:&amp;lt;br&amp;gt;&lt;br /&gt;
 regsvr32 schmmgmt.dll&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-001.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-002.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dann führen wir die &#039;&#039;&#039;&#039;&#039;Management Console&#039;&#039;&#039;&#039;&#039; aus:&amp;lt;br&amp;gt;&lt;br /&gt;
 mmc&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-003.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser fügen wir ein Snap-In hinzu:&amp;lt;br&amp;gt;&lt;br /&gt;
 Datei&lt;br /&gt;
   |&lt;br /&gt;
   +--&amp;gt; Snap-In hinzufügen/entfernen...&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-004.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar das Snap-In &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039;:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-005.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-006.png]]  &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wir klicken einmal auf das Kreuz vor &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039; und warten bis er die Konfiguration geladen hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann erscheinen 2 Unterordner und oben wird in eckigen Klammern der Name des momentanen Betriebsmasters angezeigt (hier [dc.znil.local]).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wir müssen zunächst auf unseren neuen Server wechseln. Dazu klicken wir mit der rechten Maustaste auf &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039; und wählen gleich den ersten Eintrag&amp;lt;br&amp;gt;&lt;br /&gt;
 Active Directory-Domänencontroller ändern...&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-008.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Dialog wählen wir nun &#039;&#039;&#039;&#039;&#039;Bestimmter Domänencontroller oder AD LDS-Instanz&#039;&#039;&#039;&#039;&#039; und dann unseren neuen Ziel-Server:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-009.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es kommt eine Hinweismeldung die wir bestätigen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-010.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun steht hinter &#039;&#039;&#039;&#039;&#039;Active Directory-Schema&#039;&#039;&#039;&#039;&#039; in eckigen Klammern der Name des neuen Servers.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann klicken wir mit der rechten Maustaste auf diese Zeile und wählen:&amp;lt;br&amp;gt;&lt;br /&gt;
 Betriebsmaster&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-007.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Dialog einfach einmal auf {{key|Ändern}} klicken:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-011.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Warnung bestätigen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-012.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dann sollte eine Erfolgsmeldung kommen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-013.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das war es schon - und das war die umständlichste Rolle von allen.&amp;lt;br&amp;gt;&lt;br /&gt;
Schliesst einfach alle Fenster.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Was tun wenn wenn Ändern ausgegraut ist?===&lt;br /&gt;
Wenn Ihr das Problem hier habt:&lt;br /&gt;
:[[Datei:ClipCapIt-220118-112702.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so kann es daran liegen das euer Benutzer (und wenn es der Domänen-Administrator ist) nicht Mitglied der Gruppe Schema-Admins ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Prüft das einmal, fügt den Benutzer hinzu, meldet euch ab und wieder neu an, dann sollte es klappen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==2 von 5: Domänennamen-Master (Domain naming master)==&lt;br /&gt;
Öffnet in der Verwaltung&amp;lt;br&amp;gt;&lt;br /&gt;
 Active Directory-Domänen und -Vertrauensstellungen&lt;br /&gt;
und scrollt einmal ganz nach Rechts - da steht dann warscheinlich wieder der bisherige Rolleninhaber.&amp;lt;br&amp;gt;&lt;br /&gt;
Gleiches Spiel wie eben - Rechtsklick auf &#039;&#039;&#039;&#039;&#039;Active Directory-Domänen und -Vertrauensstellungen&#039;&#039;&#039;&#039;&#039; und dann den Punkt&amp;lt;br&amp;gt;&lt;br /&gt;
 Domänencontroller ändern...&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-014.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
wählen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Dialog wählen wir nun &#039;&#039;&#039;&#039;&#039;Bestimmter Domänencontroller oder AD LDS-Instanz&#039;&#039;&#039;&#039;&#039; und dann unseren neuen Ziel-Server:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-009.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun steht hinter &#039;&#039;&#039;&#039;&#039;Active Directory-Domänen und -Vertrauensstellungen&#039;&#039;&#039;&#039;&#039; in eckigen Klammern der Name des neuen Servers.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann klicken wir mit der rechten Maustaste auf diese Zeile und wählen:&amp;lt;br&amp;gt;&lt;br /&gt;
 Betriebsmaster&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-015.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das gleiche Spiel wie eben - einmal auf {{key|Ändern...}} klicken und die Rolle wird übertragen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-016.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==3 von 5: RID-Master (RID master)==&lt;br /&gt;
Nun öffnen wir&amp;lt;br&amp;gt;&lt;br /&gt;
 Active Directory-Benutzer und -Computer&lt;br /&gt;
Oben Achten wir wieder darauf das dot auch wieder in eckigen Klammern der Name des neuen Servers drin steht - sonst wieder ändern!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Markiert die Domäne(!) und per Rechtsklick kommen wir zu dem Menüpunkt&lt;br /&gt;
 Betriebsmaster&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-017.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Der Reiter {{key|RID}} ist bereits geöffnet so das wir nur noch auf {{key|Ändern...}} klicken müssen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-018.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==4 von 5: PDC-Emulator (PDC emulator)==&lt;br /&gt;
Nur eine Registerkarte weiter wartet der PDC Emulator.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie einfach nur auf {{key|Ändern...}} klicken.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-019.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==5 von 5: Infrastruktur Master (Infrastructure master)==&lt;br /&gt;
Und die letzte Rolle wartet auf dem letzten Tab:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:FSMO-Rollen-uebertragen-020.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_No_valid_subscription_bei_Community_Edition_entfernen&amp;diff=15780</id>
		<title>Proxmox Mail Gateway PMG No valid subscription bei Community Edition entfernen</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_No_valid_subscription_bei_Community_Edition_entfernen&amp;diff=15780"/>
		<updated>2026-03-20T15:23:08Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 23.04.2025 erste Version für Proxmox Mail Gateway PMG 8.2.0&lt;br /&gt;
* 12.12.2025 Anpassung an Proxmox Mail Gateway PMG 9.0.2&lt;br /&gt;
* 20.03.2026 Anpassung an Proxmox Mail Gateway PMG 9.0.6&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Artikel ist entstanden da man zwar schnell eine Anleitung findet wie man die Meldung&lt;br /&gt;
 No valid subscription&lt;br /&gt;
entfernt - allerdings kommt diese Meldund dann für Aufrufe der Quarantine-URLs für Mobile Benutzer trotzdem.&amp;lt;br&amp;gt;&lt;br /&gt;
Achtung! Beachtet ob Ihr noch Version 8 oder schon Version 9 des PMG einsetzt!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Wenn auf dem Handy oder im Browser die Meldung zunächst trotzdem noch angezeigt wird - Einmal den Browser-Cache löschen, Gegenprobe wäre mit einem anderen Browser oder im Inkognito-Modus}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Version 8: Meldung für die Weboberfläche entfernen==&lt;br /&gt;
 nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js&lt;br /&gt;
Mit {{key|ALT}} + {{key|N}} schaltet man die Zeilennummern ein!&amp;lt;br&amp;gt;&lt;br /&gt;
In Zeile 566 bzw. per {{key|STRG}} + {{key|W}} nach {{code|No vaild subscription}} suchen und dann 2 Zeilen darüber,&amp;lt;br&amp;gt;&lt;br /&gt;
steht im Original das hier:&amp;lt;br&amp;gt;&lt;br /&gt;
 566                       .data.status.toLowerCase() !== &#039;active&#039;) {&lt;br /&gt;
 567                         Ext.Msg.show({&lt;br /&gt;
 568                             title: gettext(&#039;No valid subscription&#039;),&lt;br /&gt;
 569                             icon: Ext.Msg.WARNING,&lt;br /&gt;
Bei dem {{code|&amp;lt;nowiki&amp;gt;!==&amp;lt;/nowiki&amp;gt;}} nehmt ihr das {{key|!}} weg:&amp;lt;br&amp;gt;&lt;br /&gt;
 565                       .data.status.toLowerCase() == &#039;active&#039;) {&lt;br /&gt;
Speichern und das war es schon.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Version 9: Meldung für die Weboberfläche entfernen==&lt;br /&gt;
 nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js&lt;br /&gt;
Mit {{key|ALT}} + {{key|N}} schaltet man die Zeilennummern ein!&amp;lt;br&amp;gt;&lt;br /&gt;
In Zeile 617 bzw. per {{key|STRG}} + {{key|W}} nach {{code|No valid subscription}} suchen und dann 2 Zeilen darüber,&amp;lt;br&amp;gt;&lt;br /&gt;
steht im Original das hier:&amp;lt;br&amp;gt;&lt;br /&gt;
 614                       .data.status.toLowerCase() !== &#039;active&#039;) {&lt;br /&gt;
 615                         Ext.Msg.show({&lt;br /&gt;
 616                             title: gettext(&#039;No valid subscription&#039;),&lt;br /&gt;
 617                             icon: Ext.Msg.WARNING,&lt;br /&gt;
Bei dem {{code|&amp;lt;nowiki&amp;gt;!==&amp;lt;/nowiki&amp;gt;}} nehmt ihr das {{key|!}} weg:&amp;lt;br&amp;gt;&lt;br /&gt;
 614                       .data.status.toLowerCase() == &#039;active&#039;) {&lt;br /&gt;
Speichern und das war es schon.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Version 8: Meldung für Mobile Benutzer entfernen==&lt;br /&gt;
 nano /usr/share/javascript/pmg-gui/js/pmgmanagerlib-mobile.js&lt;br /&gt;
Hier in Zeile 701:&amp;lt;br&amp;gt;&lt;br /&gt;
 701                 if (data.status?.toLowerCase() !== &#039;active&#039;) {&lt;br /&gt;
 702                     let url = data.url || &#039;https://www.proxmox.com&#039;;&lt;br /&gt;
 703                     let err = `You do not have a valid subscription for this server.&lt;br /&gt;
das gleiche Spielchen, wieder das {{key|!}} entfernen:&amp;lt;br&amp;gt;&lt;br /&gt;
 701                 if (data.status?.toLowerCase() == &#039;active&#039;) {&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Version 9: Meldung für Mobile Benutzer entfernen==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das funktioniert im Moment nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Meldung scheint in der Datei&lt;br /&gt;
 /usr/share/pmg-mobile-quarantine-ui/pmg-mobile-quarantine-ui_bg.wasm.gz&lt;br /&gt;
zu stecken, ich habe noch nicht herausbekommen wie ich diese bearbeiten kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alter Text:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.min.js&lt;br /&gt;
Das ist in der neuen Version in einem Einzeiler versteckt.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt {{key|STRG}} + {{key|W}} und sucht nach&lt;br /&gt;
 &amp;quot;active&amp;quot;===e.data&lt;br /&gt;
gleich der erste Treffer ist der richtige.&amp;lt;br&amp;gt;&lt;br /&gt;
Aus den 3 {{code|&amp;lt;nowiki&amp;gt;===&amp;lt;/nowiki&amp;gt;}} macht ihr {{code|&amp;lt;nowiki&amp;gt;!==&amp;lt;/nowiki&amp;gt;}}, also&lt;br /&gt;
 &amp;quot;active&amp;quot;!==e.data&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Fail2Ban_mit_ISPConfig_und_open_basedir_restriction_in_effect&amp;diff=15779</id>
		<title>Fail2Ban mit ISPConfig und open basedir restriction in effect</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Fail2Ban_mit_ISPConfig_und_open_basedir_restriction_in_effect&amp;diff=15779"/>
		<updated>2026-03-15T10:58:23Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Filter erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 15.03.2026 erste Version&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich betreibe schon seit Jahren Webserver mit diversen Webseiten. Basis ist bei mir immer Ubuntu-Server, schon länger setze ich dabei ISPConfig als Verwaltungssoftware ein.&amp;lt;br&amp;gt;&lt;br /&gt;
Über diese kann ich bequem die Subdomäne anlegen. ISPConfig sorgt dann dafür das die Webseiten immer unter einem jeweils eigenen Benutzer laufen, mit der gewählten PHP-Version oder auch ganz ohne.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Gerade diese Seite hier wird dabei regelmäßig nach Sicherheitslücken aller Art abgesucht.&amp;lt;br&amp;gt;&lt;br /&gt;
ISPConfig führt die Logs pro Webseite, diese finden sich unter&amp;lt;br&amp;gt;&lt;br /&gt;
 /var/www/znil.net/log/access.log&lt;br /&gt;
 /var/www/znil.net/log/error.log&lt;br /&gt;
bzw. die echten Pfade&lt;br /&gt;
 /var/www/clients/client*/web*/log/access.log&lt;br /&gt;
 /var/www/clients/client*/web*/log/error.log&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Gerade im {{code|error.log}} find ich ständig Versuche irgendwelche Shell/Bash Befehle auszuführen:&amp;lt;br&amp;gt;&lt;br /&gt;
 [Sun Mar 15 09:35:37.043222 2026] [fcgid:warn] [pid 368061] [client 85.208.96.195:64110] mod_fcgid: stderr: PHP Warning:  file_exists(): open_basedir restriction in effect.&lt;br /&gt;
 File(/bin/bash) is not within the allowed path(s):(/var/www/clients/client0/web1/web:/var/www/clients/client0/web1/private:/var/www/clients/client0/web1/tmp ...&lt;br /&gt;
Ich habe beschlossen, die Quelladressen solcher Versuche für 2h zu sperren.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgend ist die Lösung dafür.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Voraussetzung ist für dieses Beispiel, ein Webserver mit Apache2 und installierten Fail2Ban.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe vor Begin der nachfolgenden Befehle per&lt;br /&gt;
 sudo -i&lt;br /&gt;
dauerhaft zum {{code|root}} gewechselt!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Filter erstellen==&lt;br /&gt;
 nano /etc/fail2ban/filter.d/apache-basedir.conf&lt;br /&gt;
Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
# Erläuterung der Regex:&lt;br /&gt;
# ^          = Zeilenanfang&lt;br /&gt;
# .* = Beliebige Zeichen (Datum/PID)&lt;br /&gt;
# \[client &amp;lt;ADDR&amp;gt;(:\d+)?\] = Sucht nach [client IP] oder [client IP:Port]&lt;br /&gt;
# .* = Beliebige Zeichen dazwischen&lt;br /&gt;
# open_basedir restriction in effect = Der Zieltext&lt;br /&gt;
failregex = ^.*\[client &amp;lt;ADDR&amp;gt;(:\d+)?\].*open_basedir restriction in effect.*$&lt;br /&gt;
&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==jail.conf anpassen==&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
Folgendes ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
[apache-basedir]&lt;br /&gt;
enabled  = true&lt;br /&gt;
port     = http,https&lt;br /&gt;
filter   = apache-basedir&lt;br /&gt;
logpath  = /var/www/clients/client*/web*/log/error.log&lt;br /&gt;
backend  = polling&lt;br /&gt;
# oder backend = pyinotify&lt;br /&gt;
# 2 Stunden Sperrzeit&lt;br /&gt;
bantime  = 7200&lt;br /&gt;
# Wie viele Versuche (hier 1, da &amp;quot;open_basedir&amp;quot; oft ein direkter Angriffsversuch ist)&lt;br /&gt;
maxretry = 1&lt;br /&gt;
findtime = 600&lt;br /&gt;
# Eigene IP-Adressen Whitelisten, ggf. weglassen&lt;br /&gt;
ignoreip = 127.0.0.1/8 ::1 90.187.238.201 80.153.150.156&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Neustart und Test==&lt;br /&gt;
Neustart:&lt;br /&gt;
 systemctl restart fail2ban-service&lt;br /&gt;
Test:&lt;br /&gt;
 fail2ban-client status apache-basedir&lt;br /&gt;
Beispielausgabe:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Status for the jail: apache-basedir&lt;br /&gt;
|- Filter&lt;br /&gt;
|  |- Currently failed: 0&lt;br /&gt;
|  |- Total failed:     0&lt;br /&gt;
|  `- File list:        /var/www/clients/client0/web76/log/error.log /var/www/clients/client0/web59/log/error.log /var/www/clients/client0/web40/log/error.log /var/www/clients/client0/web1/log/error.log /var/www/clients/client0/web34/log/error.log /var/www/clients/client0/web24/log/error.log /var/www/clients/client0/web56/log/error.log /var/www/clients/client0/web22/log/error.log /var/www/clients/client0/web36/log/error.log /var/www/clients/client0/web50/log/error.log /var/www/clients/client0/web42/log/error.log /var/www/clients/client0/web77/log/error.log /var/www/clients/client0/web65/log/error.log /var/www/clients/client0/web10/log/error.log /var/www/clients/client0/web71/log/error.log /var/www/clients/client0/web78/log/error.log /var/www/clients/client0/web7/log/error.log /var/www/clients/client0/web61/log/error.log /var/www/clients/client0/web64/log/error.log /var/www/clients/client0/web72/log/error.log /var/www/clients/client0/web66/log/error.log /var/www/clients/client0/web63/log/error.log /var/www/clients/client0/web26/log/error.log /var/www/clients/client0/web29/log/error.log /var/www/clients/client0/web70/log/error.log /var/www/clients/client0/web74/log/error.log /var/www/clients/client0/web37/log/error.log /var/www/clients/client0/web57/log/error.log /var/www/clients/client0/web68/log/error.log /var/www/clients/client0/web47/log/error.log /var/www/clients/client0/web60/log/error.log /var/www/clients/client0/web69/log/error.log /var/www/clients/client0/web44/log/error.log /var/www/clients/client0/web39/log/error.log /var/www/clients/client0/web12/log/error.log /var/www/clients/client0/web23/log/error.log /var/www/clients/client0/web35/log/error.log /var/www/clients/client0/web73/log/error.log /var/www/clients/client0/web8/log/error.log /var/www/clients/client0/web62/log/error.log /var/www/clients/client0/web31/log/error.log /var/www/clients/client0/web67/log/error.log /var/www/clients/client0/web46/log/error.log /var/www/clients/client0/web32/log/error.log&lt;br /&gt;
`- Actions&lt;br /&gt;
   |- Currently banned: 26&lt;br /&gt;
   |- Total banned:     26&lt;br /&gt;
   `- Banned IP list:   102.208.164.150 103.148.23.225 154.255.118.195 177.192.199.144 179.106.81.176 185.244.153.128 186.224.30.81 187.74.225.19 189.90.28.210 190.130.142.14 2.213.102.207 216.73.216.101 2400:9700:103:69c5:2197:66b1:22db:c9cf 2600:1700:c165:7c00:bc0c:102a:538a:bd3 2804:14d:4cde:53be:d47c:b718:7b29:67ac 41.143.157.183 45.162.126.188 45.180.51.16 45.19.53.191 47.205.44.108 49.36.168.211 5.9.120.88 50.219.171.129 52.167.144.202 62.49.115.25 73.182.239.193&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Wie Ihr seht klappt das auch mit IPv6 Adressen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Adressen wieder entbannen==&lt;br /&gt;
Alle:&amp;lt;br&amp;gt;&lt;br /&gt;
 fail2ban-client reload --unban apache-basedir&lt;br /&gt;
Bestimmte IP:&lt;br /&gt;
 fail2ban-client set apache-basedir unbanip 80.153.150.156&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Nachtrag==&lt;br /&gt;
Die {{code|open_basedir}} Fehlermeldung wurde durch MediaWiki erzeugt weil dieses tatsächlich einige Shell befehle ausführen würde, z.B. diff oder imagemagick.&amp;lt;br&amp;gt;&lt;br /&gt;
Trotzdem habe ich das hier mal als Beispiel für die Zukunft beibehalten.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Fail2Ban_mit_ISPConfig_und_open_basedir_restriction_in_effect&amp;diff=15778</id>
		<title>Fail2Ban mit ISPConfig und open basedir restriction in effect</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Fail2Ban_mit_ISPConfig_und_open_basedir_restriction_in_effect&amp;diff=15778"/>
		<updated>2026-03-15T09:07:43Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Filter erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 15.03.2026 erste Version&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich betreibe schon seit Jahren Webserver mit diversen Webseiten. Basis ist bei mir immer Ubuntu-Server, schon länger setze ich dabei ISPConfig als Verwaltungssoftware ein.&amp;lt;br&amp;gt;&lt;br /&gt;
Über diese kann ich bequem die Subdomäne anlegen. ISPConfig sorgt dann dafür das die Webseiten immer unter einem jeweils eigenen Benutzer laufen, mit der gewählten PHP-Version oder auch ganz ohne.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Gerade diese Seite hier wird dabei regelmäßig nach Sicherheitslücken aller Art abgesucht.&amp;lt;br&amp;gt;&lt;br /&gt;
ISPConfig führt die Logs pro Webseite, diese finden sich unter&amp;lt;br&amp;gt;&lt;br /&gt;
 /var/www/znil.net/log/access.log&lt;br /&gt;
 /var/www/znil.net/log/error.log&lt;br /&gt;
bzw. die echten Pfade&lt;br /&gt;
 /var/www/clients/client*/web*/log/access.log&lt;br /&gt;
 /var/www/clients/client*/web*/log/error.log&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Gerade im {{code|error.log}} find ich ständig Versuche irgendwelche Shell/Bash Befehle auszuführen:&amp;lt;br&amp;gt;&lt;br /&gt;
 [Sun Mar 15 09:35:37.043222 2026] [fcgid:warn] [pid 368061] [client 85.208.96.195:64110] mod_fcgid: stderr: PHP Warning:  file_exists(): open_basedir restriction in effect.&lt;br /&gt;
 File(/bin/bash) is not within the allowed path(s):(/var/www/clients/client0/web1/web:/var/www/clients/client0/web1/private:/var/www/clients/client0/web1/tmp ...&lt;br /&gt;
Ich habe beschlossen, die Quelladressen solcher Versuche für 2h zu sperren.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgend ist die Lösung dafür.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Voraussetzung ist für dieses Beispiel, ein Webserver mit Apache2 und installierten Fail2Ban.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe vor Begin der nachfolgenden Befehle per&lt;br /&gt;
 sudo -i&lt;br /&gt;
dauerhaft zum {{code|root}} gewechselt!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Filter erstellen==&lt;br /&gt;
 nano /etc/fail2ban/filter.d/apache-basedir.conf&lt;br /&gt;
Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
# Erläuterung der Regex:&lt;br /&gt;
# ^          = Zeilenanfang&lt;br /&gt;
# .* = Beliebige Zeichen (Datum/PID)&lt;br /&gt;
# \[client &amp;lt;ADDR&amp;gt;(:\d+)?\] = Sucht nach [client IP] oder [client IP:Port]&lt;br /&gt;
# .* = Beliebige Zeichen dazwischen&lt;br /&gt;
# open_basedir restriction in effect = Der Zieltext&lt;br /&gt;
failregex = ^.*\[client &amp;lt;ADDR&amp;gt;(:\d+)?\].*open_basedir restriction in effect.*$&lt;br /&gt;
&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Fail2Ban_mit_ISPConfig_und_open_basedir_restriction_in_effect&amp;diff=15777</id>
		<title>Fail2Ban mit ISPConfig und open basedir restriction in effect</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Fail2Ban_mit_ISPConfig_und_open_basedir_restriction_in_effect&amp;diff=15777"/>
		<updated>2026-03-15T09:05:59Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Die Seite wurde neu angelegt: „&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Changelog:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt; * 15.03.2026 erste Version ---- ==Vorwort== Ich betreibe schon seit Jahren Webserver mit diversen Webseiten. Basis ist bei mir immer Ubuntu-Server, schon länger setze ich dabei ISPConfig als Verwaltungssoftware ein.&amp;lt;br&amp;gt; Über diese kann ich bequem die Subdomäne anlegen. ISPConfig sorgt dann dafür das die Webseiten immer unter einem jeweils eigenen Benutzer laufen, mit der gewählten PHP-Version oder auch ganz ohne.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; G…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 15.03.2026 erste Version&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich betreibe schon seit Jahren Webserver mit diversen Webseiten. Basis ist bei mir immer Ubuntu-Server, schon länger setze ich dabei ISPConfig als Verwaltungssoftware ein.&amp;lt;br&amp;gt;&lt;br /&gt;
Über diese kann ich bequem die Subdomäne anlegen. ISPConfig sorgt dann dafür das die Webseiten immer unter einem jeweils eigenen Benutzer laufen, mit der gewählten PHP-Version oder auch ganz ohne.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Gerade diese Seite hier wird dabei regelmäßig nach Sicherheitslücken aller Art abgesucht.&amp;lt;br&amp;gt;&lt;br /&gt;
ISPConfig führt die Logs pro Webseite, diese finden sich unter&amp;lt;br&amp;gt;&lt;br /&gt;
 /var/www/znil.net/log/access.log&lt;br /&gt;
 /var/www/znil.net/log/error.log&lt;br /&gt;
bzw. die echten Pfade&lt;br /&gt;
 /var/www/clients/client*/web*/log/access.log&lt;br /&gt;
 /var/www/clients/client*/web*/log/error.log&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Gerade im {{code|error.log}} find ich ständig Versuche irgendwelche Shell/Bash Befehle auszuführen:&amp;lt;br&amp;gt;&lt;br /&gt;
 [Sun Mar 15 09:35:37.043222 2026] [fcgid:warn] [pid 368061] [client 85.208.96.195:64110] mod_fcgid: stderr: PHP Warning:  file_exists(): open_basedir restriction in effect.&lt;br /&gt;
 File(/bin/bash) is not within the allowed path(s):(/var/www/clients/client0/web1/web:/var/www/clients/client0/web1/private:/var/www/clients/client0/web1/tmp ...&lt;br /&gt;
Ich habe beschlossen, die Quelladressen solcher Versuche für 2h zu sperren.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgend ist die Lösung dafür.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Voraussetzung ist für dieses Beispiel, ein Webserver mit Apache2 und installierten Fail2Ban.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe vor Begin der nachfolgenden Befehle per&lt;br /&gt;
 sudo -i&lt;br /&gt;
dauerhaft zum {{code|root}} gewechselt!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Filter erstellen==&lt;br /&gt;
 nano /etc/fail2ban/filter.d/apache-basedir.conf&lt;br /&gt;
Inhalt:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[Definition]&lt;br /&gt;
# Erläuterung der Regex:&lt;br /&gt;
# ^          = Zeilenanfang&lt;br /&gt;
# .* = Beliebige Zeichen (Datum/PID)&lt;br /&gt;
# \[client &amp;lt;ADDR&amp;gt;(:\d+)?\] = Sucht nach [client IP] oder [client IP:Port]&lt;br /&gt;
# .* = Beliebige Zeichen dazwischen&lt;br /&gt;
# open_basedir restriction in effect = Der Zieltext&lt;br /&gt;
failregex = ^.*\[client &amp;lt;ADDR&amp;gt;(:\d+)?\].*open_basedir restriction in effect.*$&lt;br /&gt;
&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Linux&amp;diff=15776</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Linux&amp;diff=15776"/>
		<updated>2026-03-15T08:54:35Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Fail2Ban */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:Linux]]&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
* [[ARP Cache unter Linux löschen]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root bei Ubuntu &amp;amp; Co.]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root per SSH Ubuntu 14.04]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* grep, sed und awk: http://unix.stackexchange.com/questions/42047/cut-grep-and-df-h&lt;br /&gt;
* [[Links unter Linux setzen - Harte und Symbolische]]&lt;br /&gt;
* [http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1022525 VMware Tools unter Linux installieren (Ubuntu)]&lt;br /&gt;
* [[init.d Script in den automatischen Start/Stop mit aufnehmen]]&lt;br /&gt;
* [[Mini Benchmark mit bc - Vergleich Root Server]]&lt;br /&gt;
* [[Linux - Windows Freigabe automatisch beim Booten mounten]] (Ubuntu 12.04 LTS)&lt;br /&gt;
* [[Linux - Ubuntu 14.04. Windows Freigabe mounten - beim Booten automatisch mounten]]&lt;br /&gt;
* [[Linux - Festplatten / Dateisystem überprüfen beim reboot]]&lt;br /&gt;
* [[fsck.vfat not found - keine Überprüfung von FAT Datenträgern]]&lt;br /&gt;
* [[Verzeichnisgröße abfragen in der Bash Shell - Ordnergröße]]&lt;br /&gt;
* [[Linux Dateimanager wie Windows Explorer]]&lt;br /&gt;
* [[ssh scp ohne Passwort Passworteingabe einrichten]]&lt;br /&gt;
* [[Ubuntu Bash sudo ohne Passworteingabe]]&lt;br /&gt;
* [[Ubuntu installierte Pakete]]&lt;br /&gt;
* Hilfe zu regulären Ausdrücken: &lt;br /&gt;
** http://www.regexe.de/hilfe.jsp&lt;br /&gt;
** https://www.strassenprogrammierer.de/regular-expression-regex-praxis_tipp_597.html&lt;br /&gt;
* Ubuntu 18.04 IPv6 deaktivieren: https://linuxconfig.org/how-to-disable-ipv6-address-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
* Nach Infektion / Rootkits suchen: https://www.tecmint.com/scan-linux-for-malware-and-rootkits/&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Linux main binary-i386 Packages wird übersprungen]]&lt;br /&gt;
* [[Linux Ubuntu MBR Datenträger in GPT Datenträger umwandeln kein LVM]]&lt;br /&gt;
* [[Linux leere Datei erzeugen mit zufälligen oder leeren Inhalt]]&lt;br /&gt;
* [[Linux systemd Dienst warten bis Mount erfolgt ist NFS Gluster SMB]]&lt;br /&gt;
* https://www.silvesterlangen.de/?Linux___%2BGrundlagen_und_Diverses___UID%2FGID_und_Dateien_eines_Users_aendern&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Linux Netzwerkbereich pingen ohne Zusatzprogramme kein fping kein nmap]]&lt;br /&gt;
* [[Linux Listen Ports mit Programm anzeigen]]&lt;br /&gt;
* [[Linux Stresstest Hardware CPU RAM Disk Festplatte]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Der eigene Webserver / Rootserver - How-To&#039;s ==&lt;br /&gt;
* [[Postfix HELO Meldung für SMTP 220 anpassen]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* [[APC Cache mit Plesk und die APC-Admin-Seite]]&lt;br /&gt;
* [[Xcache mit Plesk und die xcache-Admin-Seite]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* [[Ubuntu Backupskript Apache Webserver und MySQL Datenbank]]&lt;br /&gt;
* [[IONOS Mietserver Ubuntu 24.04 - Einrichtung ISPConfig]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Apache2 ==&lt;br /&gt;
* [[Apache2 http zu https Umleitung]]&lt;br /&gt;
* [[Apache2 PHP Upload bringt 500 Internal Server Error]]&lt;br /&gt;
* [[Apache2 als http / https Proxy zu anderen Host]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Exchange 2010 2013 2016 2019 inklusive Outlook Anywhere RPC over http]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für VMware vCenter WebClient mit Subdomain auf Port 443]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* Apache2 Subdomains anlegen: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts&lt;br /&gt;
* [[Apache OpenSSL Prüfen ob Zertifikat und Key zusammen passen]]&lt;br /&gt;
* [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy und Loadbalancer Beispiel Proxmox]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Home Assistant]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Bash ==&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Bash cronjob alle 30 Sekunden]]&lt;br /&gt;
* [[Bash Color Prompt Links und Beispiele]]&lt;br /&gt;
* [[Bash Skript exit ohne die Shell zu beenden]]&lt;br /&gt;
* [[Bash Treesize Programm ncdu]]&lt;br /&gt;
* [[Bash cronjob Dateien älter als x Tage löschen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BitTorrentSync ==&lt;br /&gt;
* [[Ubuntu 14.04.x btsync BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Raspbian lowmemorykiller: Killing &#039;btsync&#039;]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== BookStack ==&lt;br /&gt;
* [[BookStack CSS Beispiele Verbesserungen Hacks]]&lt;br /&gt;
* Import/Export: https://github.com/toras9000/bookstack-export-import&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Clipperz ==&lt;br /&gt;
* [[Clipperz - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Cockpit ==&lt;br /&gt;
* [[Linux Cockpit hinter Subdomain statt Port 9090 per Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Docker ==&lt;br /&gt;
* [[Ubuntu 24.02 als Docker-Host]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== DynDNS ==&lt;br /&gt;
* [[DynDNS Update Skript Linux Bash]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== EFA - Email Filter Appliance ==&lt;br /&gt;
* [[eFa Appliance Active Directory in MailScanner und Postfix konfigurieren]]&lt;br /&gt;
* Die Fußnote / Signatur unter den zugestellten Emails entfernen: https://forum.efa-project.org/viewtopic.php?t=2907&lt;br /&gt;
* Dateianhänge mit VBA Makros blocken: https://forum.efa-project.org/viewtopic.php?t=1896&lt;br /&gt;
* [[eFa Appliance Emails mit VBA Makros Skripten blocken]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Etherpad ==&lt;br /&gt;
* [[Etherpad - Installion auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fail2Ban ==&lt;br /&gt;
* [[Fail2Ban mit ISPConfig und open_basedir restriction in effect]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== GateOne ==&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== GitLab ==&lt;br /&gt;
* [[GitLab GitLab Community Edition unter Ubuntu 16.04.x LTS in Subdomain installieren]]&lt;br /&gt;
* GitLab anpassen: http://axilleas.me/en/blog/2014/custom-gitlab-login-page/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Guacamole ==&lt;br /&gt;
* [[Ubuntu 20.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 18.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 16.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Zabbix mit Guacamole in Kombination|Zabbix mit Guacamole in Kombination - Demo-Video]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Gogs ==&lt;br /&gt;
* [[CentOS 7 Gogs Git-Server installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Icinga==&lt;br /&gt;
* [[Linksammlung Icinga2 unter CentOS 7]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ISPConfig ==&lt;br /&gt;
* [[ISPConfig - Webinterface als Subdomain auf Port 443 einrichten]]&lt;br /&gt;
* [[ISPConfig ab 3.1.x - Webinterface als Subdomain auf Port 443 https einrichten]]&lt;br /&gt;
* [https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/ ISPConfig - PHP 7.0.0 Installieren]&lt;br /&gt;
* [[ISPConfig 3.0.5.4p8 Webseiten https mit letsencrypt absichern und Zertifikate automatisch erneuern]]&lt;br /&gt;
* Basic Auth für Website https://davidstein.cz/2025/01/15/isp-config-website-password-protection/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Kodi ==&lt;br /&gt;
* Kodi nachträglich auf Raspbian: https://www.makeuseof.com/tag/install-kodi-raspbian-media-center/&lt;br /&gt;
* Kodi 18 auf Raspbian Stretch: https://www.raspberrypi.org/forums/viewtopic.php?t=222954&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Encrypt ==&lt;br /&gt;
* [[Lets Encrypt Zertifikate erneuern mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Lets Encrypt Liste der Server Firewall]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== LVM ==&lt;br /&gt;
* [[LVM root boot Volume umbenennen Ubuntu Debian]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mattermost ==&lt;br /&gt;
* [[Mattermost unter Ubuntu 16.04 mit Apache und ISPConfig in Subdomain installieren]]&lt;br /&gt;
* [[Mattermost Farbschema]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Minecraft ==&lt;br /&gt;
* [[Minecraft Server mit rfwadmin unter Ubuntu 14.04 LTS und ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Monitorix ==&lt;br /&gt;
* [[Monitorix unter Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Multipathing==&lt;br /&gt;
* [[Solaris Multipathing Status abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== mySQL ==&lt;br /&gt;
* [[mySQL - Verbindungsdaten ( Connections ) anzeigen lassen]]&lt;br /&gt;
* [[mySQL - weitere Instanz auf gleichen Server starten / betreiben]]&lt;br /&gt;
* [[MySQL - Datenbank direkt zwischen 2 Servern kopieren]]&lt;br /&gt;
* https://github.com/major/MySQLTuner-perl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==NetBox==&lt;br /&gt;
* [[NetBox unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== NextCloud ==&lt;br /&gt;
* [[NextCloud unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
* [[NextCloud unter Ubuntu 22.04 LTS installieren]]&lt;br /&gt;
* Monitoring URL mit curl abfragen + Token dafür erstellen: https://help.nextcloud.com/t/howto-use-serverinfo-with-curl/173360&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenSim ==&lt;br /&gt;
* [[OpenSim Server auf Ubuntu 14.04.x LTS mit ISPConfig installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenVPN ==&lt;br /&gt;
* OpenVPN Server unter Ubuntu Einfachlösung: https://www.cyberciti.biz/faq/ubuntu-20-04-lts-set-up-openvpn-server-in-5-minutes/#Install_OpenVPN_server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenWISP ==&lt;br /&gt;
* [[OpenWISP Manager auf Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Parallels Plesk Panel ==&lt;br /&gt;
* [[SFTP Zugang unter Parallels Plesk Panel aktivieren]]&lt;br /&gt;
* [[Parallels Plesk 11 - Emails an anderen Mailserver weiterleiten]]&lt;br /&gt;
* [[Parallels Plesk lästige Statusmeldungen abschalten]]&lt;br /&gt;
* [[Parallels Plesk - Zugriff auf alle MySQL Datenbanken - Benutzer root funktioniert nicht]]&lt;br /&gt;
* [[Parallels Plesk - database disk image is malformed]]&lt;br /&gt;
* [[ERROR Zend_Db_Adapter_Exception SQLSTATE HY000 2002 No such file or directory]]&lt;br /&gt;
* Alt aber viel interessantes: http://www.grafxsoftware.com/faq.php/HOW-TO-Setup-a-PLESK-Dedicated-Server/1/4/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== pfSense ==&lt;br /&gt;
* [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&lt;br /&gt;
* [[pfSense - IPv6 mit Tunnel Broker und Reverse DNS rDNS]]&lt;br /&gt;
* [[pfSense - IPSec mit IPv4 Remote IP wird aber IPv6 genommen]]&lt;br /&gt;
* [[pfsense - Tor Proxy mit Anmeldung über Internet squid polipo]]&lt;br /&gt;
* [[pfsense - GeoIP Blocking auf bestimmte Ports oder Dienste IPv4 IPv6]]&lt;br /&gt;
* [[pfSense - GeoIP Blocking und Lets Encrypt Zertifikate]]&lt;br /&gt;
* https://www.biteno.com/tutorial/openvpn-auf-einer-pfsense-firewall-einrichten/&lt;br /&gt;
* pfSense und Duo.com: &lt;br /&gt;
** https://forum.netgate.com/topic/119303/openvpn-with-active-directory-authentication-and-duo-security&lt;br /&gt;
** https://github.com/jasonbeitler/www/wiki/PFSense-and-Duo-2FA&lt;br /&gt;
* [[pfSense - HAProxy + Lets Encrypt ACME + GeoIP-Blocking pfBlockerNG]]&lt;br /&gt;
* [[pfSense - ACME-Zertifikate auf anderen Server kopieren]]&lt;br /&gt;
* https://www.cyberciti.biz/faq/howto-configure-dual-wan-load-balance-failover-pfsense-router/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==phpIPAM==&lt;br /&gt;
* https://github.com/thetechguysguide/thetechguysguide.github.io&lt;br /&gt;
** https://www.youtube.com/watch?v=GfBvFJLClHQ&lt;br /&gt;
* [[phpIPAM MAC-Adressen per arp ermitteln und hinzufügen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==PHPMyAdmin==&lt;br /&gt;
* [[PHPMyAdmin alle Benutzer bis auf einen verbieten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PiHole ==&lt;br /&gt;
* [[PiHole Whitelist Amazon]]&lt;br /&gt;
* Liste der Microsoft 365: https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
* [[Ubuntu root alle Emails weiterleiten an Postfach auf Exchange Server]]&lt;br /&gt;
* https://patrik.kernstock.net/2013/01/postfix-mailwarteschlange-ansehen-flushen-und-leeren/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PuTTY ==&lt;br /&gt;
* [[PuTTY sinnvoll Voreinstellungen machen / Default Settings ändern]]&lt;br /&gt;
* [[PuTTY Anmeldung per SSH-Key ohne Pageant ganz ohne Passwort]]&lt;br /&gt;
* [[PuTTY nano in SSH Sitzung mit Maus bedienen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
* [[Python Skripte als Dienst unter Windows oder Linux]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== qmail ==&lt;br /&gt;
* qmail Queue löschen: http://dragos.fedorovici.com/plesk-clear-qmail-queue/&lt;br /&gt;
* qmail Queue diverses: http://www.debianhelp.co.uk/qmailqueue.htm&lt;br /&gt;
* qmail Bounce Messages verhindern: http://g33kinfo.com/info/archives/4080/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== RedHat ==&lt;br /&gt;
* [[Anmeldung per SSH-Key nicht möglich wenn der home-Ordner auf einem NFS-Share liegt]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Repository ==&lt;br /&gt;
* [[Ubuntu Offline Mirror Repository erstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Samba==&lt;br /&gt;
* [[Samba Das angegebene Netzwerkkennwort ist falsch NTLMv2]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Seafile ==&lt;br /&gt;
* [[Seafile Server Docker - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 20.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 18.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 16.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 12.04.x LTS mit Plesk]]&lt;br /&gt;
* [[Seafile Server - als separater Server hinter Webserver mit Apache2]]&lt;br /&gt;
* [[Seafile - Speicherplatz freigeben von gelöschten Dateien]]&lt;br /&gt;
* [[Seafile Server - Upgrade Version 3 auf 4]]&lt;br /&gt;
* [[Seafile Server - Update/Upgrade des Servers auf neuere Version]]&lt;br /&gt;
* [[Seafile Terminal Client - Installation und Synchronisation unter Ubuntu 14.04.x LTS]]&lt;br /&gt;
* [http://seafile.com/en/help/ignore/ Seafile Server - Dateien oder Ordner beim Upload Client-seitig ignorieren]&lt;br /&gt;
* [[Seafile Server - Active Directory Anbindung]]&lt;br /&gt;
* [[Seafile Server - inaktive LDAP Benutzer finden - inactive LDAPUsers]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SNMP ==&lt;br /&gt;
* [[PoE am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* [[Port am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* https://www.m00nie.com/2010/08/how-to-install-and-use-snmpwalk/&lt;br /&gt;
* [[nmap Beispielsammlung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SOLARIS ==&lt;br /&gt;
* [[Oracle Solaris FC Multipath Fibre Channel Multipathing prüfen und wiederherstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== SUSE ==&lt;br /&gt;
* [[SUSE Version abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Syncthing ==&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== systemctl ==&lt;br /&gt;
* systemctl auf die Schnelle: http://mikuerschner.org/node/26&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Tor ==&lt;br /&gt;
* Anleitung Tor Server: https://2019.www.torproject.org/docs/tor-onion-service.html.en&lt;br /&gt;
* Eigene .onion-Adressen erstellen: https://www.jamieweb.net/blog/onionv3-vanity-address/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
* [[Ubuntu Netzwerkkarteneinstellungen ändern ohne GUI in der Console]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP Version auf 5.3.27 updaten]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP intl PECL-Erweiterung nachinstallieren]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Ubuntu 12.05 LTS - Gateone SSH Client installieren auf Server mit Plesk]]&lt;br /&gt;
* [[Ubuntu - Pakete installieren, entfernen, suchen und installierte anzeigen lassen]]&lt;br /&gt;
* [[Ubuntu - alte Version findet keine Paketquellen mehr]]&lt;br /&gt;
* [[VMware Tools Ubuntu installieren in der Bash / Shell]]&lt;br /&gt;
* [[Linux Farbiger Standard Prompt in der Bash auch bei root und PuTTY]]&lt;br /&gt;
* [[Linux Reboot per cron-Job automatisch]]&lt;br /&gt;
* [[Linux Script oder Befehl nach reboot ausführen]]&lt;br /&gt;
* [[Email nach SSH Login auf Linux-Server]]&lt;br /&gt;
* [[Bash bunter Text und Banner mit toilet]]&lt;br /&gt;
* [[Bash Hollywood - Hollywood in der Bash]]&lt;br /&gt;
* [[Logfiles in Logrotate aufnehmen - automatisches packen, rotieren und leeren von Logs]]&lt;br /&gt;
* [[Ubuntu Version in der Bash abfragen]]&lt;br /&gt;
* [[Linux SCP mit IPv6 nutzen]]&lt;br /&gt;
* [[Linux rsync statt scp zum kopieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
* Virtuelle Maschinen auf Ubuntu Server:&lt;br /&gt;
** http://www.serveradventures.com/the-adventures/virtual-machines-in-ubuntu-server-virtualbox-phpvirtualbox&lt;br /&gt;
** http://www.unixmen.com/install-oracle-virtualbox-manage-using-phpvirtualbox-ubuntu-14-04-headless-server/&lt;br /&gt;
** http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.3-on-a-headless-ubuntu-14.04-lts-server&lt;br /&gt;
* [[Ubuntu Linux - Festplatte mit LVM im laufenden Betrieb ohne Neustart vergrößern]]&lt;br /&gt;
* Ubuntu puTTY Zugriff mit SSH-Keys absichern: https://www.howtoforge.de/anleitung/key-basierte-ssh-logins-mit-putty/&lt;br /&gt;
* [[Ubuntu Bilder betrachten anzeigen mit puTTY in Konsole]]&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x Inhalt der .bashrc]]&lt;br /&gt;
* [[Ubuntu 14.04.x Server minimale GUI und andere Spielereien]]&lt;br /&gt;
* [[IBM Storage Manager unter Ubuntu Linux installieren]]&lt;br /&gt;
* [[Ubuntu nano ist auf Englisch]]&lt;br /&gt;
* [[TSM Client auf Ubuntu installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x NFS Freigabe erstellen und verbinden]]&lt;br /&gt;
* [[Linux Bash wget etc http https Proxy angeben]]&lt;br /&gt;
* [[Ubuntu 14.04.x Apache 2.4.7 GeoIP Blocking mit IPv4 und IPv6 einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x 2-Faktor bei SSH mit Google Authenticator einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x Automatische Updates aktivieren oder deaktivieren in der Bash]]&lt;br /&gt;
* [[Ubuntu 16.04.x tmux für die Verwendung mit puTTY oder kiTTY]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu UFW konfigurieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==ufw Firewall==&lt;br /&gt;
* [[ufw Geoblocking mit Ubuntu 24.04]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vaultwarden==&lt;br /&gt;
* [[Vaultwarden unter Ubuntu 24.04 und Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Solaris==&lt;br /&gt;
* [[Solaris 10 - SSH Zugriff für root freischalten]]&lt;br /&gt;
* [[Solaris 10 - Tabulator und Pfeiltasten wie unter Linux]]&lt;br /&gt;
* [[Solaris 10 - NetBackup Client NetBackup Agent unter Solaris installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== STRATO ==&lt;br /&gt;
* [[V-PowerServer startet nach Wiederherstellung eines Backups mit BackupControl nicht - mySQL startet nicht]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Linux&amp;diff=15775</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Linux&amp;diff=15775"/>
		<updated>2026-03-15T08:54:28Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* GateOne */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:Linux]]&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
* [[ARP Cache unter Linux löschen]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root bei Ubuntu &amp;amp; Co.]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root per SSH Ubuntu 14.04]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* grep, sed und awk: http://unix.stackexchange.com/questions/42047/cut-grep-and-df-h&lt;br /&gt;
* [[Links unter Linux setzen - Harte und Symbolische]]&lt;br /&gt;
* [http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1022525 VMware Tools unter Linux installieren (Ubuntu)]&lt;br /&gt;
* [[init.d Script in den automatischen Start/Stop mit aufnehmen]]&lt;br /&gt;
* [[Mini Benchmark mit bc - Vergleich Root Server]]&lt;br /&gt;
* [[Linux - Windows Freigabe automatisch beim Booten mounten]] (Ubuntu 12.04 LTS)&lt;br /&gt;
* [[Linux - Ubuntu 14.04. Windows Freigabe mounten - beim Booten automatisch mounten]]&lt;br /&gt;
* [[Linux - Festplatten / Dateisystem überprüfen beim reboot]]&lt;br /&gt;
* [[fsck.vfat not found - keine Überprüfung von FAT Datenträgern]]&lt;br /&gt;
* [[Verzeichnisgröße abfragen in der Bash Shell - Ordnergröße]]&lt;br /&gt;
* [[Linux Dateimanager wie Windows Explorer]]&lt;br /&gt;
* [[ssh scp ohne Passwort Passworteingabe einrichten]]&lt;br /&gt;
* [[Ubuntu Bash sudo ohne Passworteingabe]]&lt;br /&gt;
* [[Ubuntu installierte Pakete]]&lt;br /&gt;
* Hilfe zu regulären Ausdrücken: &lt;br /&gt;
** http://www.regexe.de/hilfe.jsp&lt;br /&gt;
** https://www.strassenprogrammierer.de/regular-expression-regex-praxis_tipp_597.html&lt;br /&gt;
* Ubuntu 18.04 IPv6 deaktivieren: https://linuxconfig.org/how-to-disable-ipv6-address-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
* Nach Infektion / Rootkits suchen: https://www.tecmint.com/scan-linux-for-malware-and-rootkits/&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Linux main binary-i386 Packages wird übersprungen]]&lt;br /&gt;
* [[Linux Ubuntu MBR Datenträger in GPT Datenträger umwandeln kein LVM]]&lt;br /&gt;
* [[Linux leere Datei erzeugen mit zufälligen oder leeren Inhalt]]&lt;br /&gt;
* [[Linux systemd Dienst warten bis Mount erfolgt ist NFS Gluster SMB]]&lt;br /&gt;
* https://www.silvesterlangen.de/?Linux___%2BGrundlagen_und_Diverses___UID%2FGID_und_Dateien_eines_Users_aendern&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Linux Netzwerkbereich pingen ohne Zusatzprogramme kein fping kein nmap]]&lt;br /&gt;
* [[Linux Listen Ports mit Programm anzeigen]]&lt;br /&gt;
* [[Linux Stresstest Hardware CPU RAM Disk Festplatte]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Der eigene Webserver / Rootserver - How-To&#039;s ==&lt;br /&gt;
* [[Postfix HELO Meldung für SMTP 220 anpassen]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* [[APC Cache mit Plesk und die APC-Admin-Seite]]&lt;br /&gt;
* [[Xcache mit Plesk und die xcache-Admin-Seite]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* [[Ubuntu Backupskript Apache Webserver und MySQL Datenbank]]&lt;br /&gt;
* [[IONOS Mietserver Ubuntu 24.04 - Einrichtung ISPConfig]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Apache2 ==&lt;br /&gt;
* [[Apache2 http zu https Umleitung]]&lt;br /&gt;
* [[Apache2 PHP Upload bringt 500 Internal Server Error]]&lt;br /&gt;
* [[Apache2 als http / https Proxy zu anderen Host]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Exchange 2010 2013 2016 2019 inklusive Outlook Anywhere RPC over http]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für VMware vCenter WebClient mit Subdomain auf Port 443]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* Apache2 Subdomains anlegen: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts&lt;br /&gt;
* [[Apache OpenSSL Prüfen ob Zertifikat und Key zusammen passen]]&lt;br /&gt;
* [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy und Loadbalancer Beispiel Proxmox]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Home Assistant]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Bash ==&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Bash cronjob alle 30 Sekunden]]&lt;br /&gt;
* [[Bash Color Prompt Links und Beispiele]]&lt;br /&gt;
* [[Bash Skript exit ohne die Shell zu beenden]]&lt;br /&gt;
* [[Bash Treesize Programm ncdu]]&lt;br /&gt;
* [[Bash cronjob Dateien älter als x Tage löschen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BitTorrentSync ==&lt;br /&gt;
* [[Ubuntu 14.04.x btsync BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Raspbian lowmemorykiller: Killing &#039;btsync&#039;]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== BookStack ==&lt;br /&gt;
* [[BookStack CSS Beispiele Verbesserungen Hacks]]&lt;br /&gt;
* Import/Export: https://github.com/toras9000/bookstack-export-import&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Clipperz ==&lt;br /&gt;
* [[Clipperz - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Cockpit ==&lt;br /&gt;
* [[Linux Cockpit hinter Subdomain statt Port 9090 per Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Docker ==&lt;br /&gt;
* [[Ubuntu 24.02 als Docker-Host]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== DynDNS ==&lt;br /&gt;
* [[DynDNS Update Skript Linux Bash]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== EFA - Email Filter Appliance ==&lt;br /&gt;
* [[eFa Appliance Active Directory in MailScanner und Postfix konfigurieren]]&lt;br /&gt;
* Die Fußnote / Signatur unter den zugestellten Emails entfernen: https://forum.efa-project.org/viewtopic.php?t=2907&lt;br /&gt;
* Dateianhänge mit VBA Makros blocken: https://forum.efa-project.org/viewtopic.php?t=1896&lt;br /&gt;
* [[eFa Appliance Emails mit VBA Makros Skripten blocken]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Etherpad ==&lt;br /&gt;
* [[Etherpad - Installion auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fail2Ban ==&lt;br /&gt;
 * [[Fail2Ban mit ISPConfig und open_basedir restriction in effect]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== GateOne ==&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== GitLab ==&lt;br /&gt;
* [[GitLab GitLab Community Edition unter Ubuntu 16.04.x LTS in Subdomain installieren]]&lt;br /&gt;
* GitLab anpassen: http://axilleas.me/en/blog/2014/custom-gitlab-login-page/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Guacamole ==&lt;br /&gt;
* [[Ubuntu 20.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 18.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 16.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Zabbix mit Guacamole in Kombination|Zabbix mit Guacamole in Kombination - Demo-Video]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Gogs ==&lt;br /&gt;
* [[CentOS 7 Gogs Git-Server installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Icinga==&lt;br /&gt;
* [[Linksammlung Icinga2 unter CentOS 7]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ISPConfig ==&lt;br /&gt;
* [[ISPConfig - Webinterface als Subdomain auf Port 443 einrichten]]&lt;br /&gt;
* [[ISPConfig ab 3.1.x - Webinterface als Subdomain auf Port 443 https einrichten]]&lt;br /&gt;
* [https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/ ISPConfig - PHP 7.0.0 Installieren]&lt;br /&gt;
* [[ISPConfig 3.0.5.4p8 Webseiten https mit letsencrypt absichern und Zertifikate automatisch erneuern]]&lt;br /&gt;
* Basic Auth für Website https://davidstein.cz/2025/01/15/isp-config-website-password-protection/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Kodi ==&lt;br /&gt;
* Kodi nachträglich auf Raspbian: https://www.makeuseof.com/tag/install-kodi-raspbian-media-center/&lt;br /&gt;
* Kodi 18 auf Raspbian Stretch: https://www.raspberrypi.org/forums/viewtopic.php?t=222954&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Encrypt ==&lt;br /&gt;
* [[Lets Encrypt Zertifikate erneuern mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Lets Encrypt Liste der Server Firewall]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== LVM ==&lt;br /&gt;
* [[LVM root boot Volume umbenennen Ubuntu Debian]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mattermost ==&lt;br /&gt;
* [[Mattermost unter Ubuntu 16.04 mit Apache und ISPConfig in Subdomain installieren]]&lt;br /&gt;
* [[Mattermost Farbschema]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Minecraft ==&lt;br /&gt;
* [[Minecraft Server mit rfwadmin unter Ubuntu 14.04 LTS und ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Monitorix ==&lt;br /&gt;
* [[Monitorix unter Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Multipathing==&lt;br /&gt;
* [[Solaris Multipathing Status abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== mySQL ==&lt;br /&gt;
* [[mySQL - Verbindungsdaten ( Connections ) anzeigen lassen]]&lt;br /&gt;
* [[mySQL - weitere Instanz auf gleichen Server starten / betreiben]]&lt;br /&gt;
* [[MySQL - Datenbank direkt zwischen 2 Servern kopieren]]&lt;br /&gt;
* https://github.com/major/MySQLTuner-perl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==NetBox==&lt;br /&gt;
* [[NetBox unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== NextCloud ==&lt;br /&gt;
* [[NextCloud unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
* [[NextCloud unter Ubuntu 22.04 LTS installieren]]&lt;br /&gt;
* Monitoring URL mit curl abfragen + Token dafür erstellen: https://help.nextcloud.com/t/howto-use-serverinfo-with-curl/173360&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenSim ==&lt;br /&gt;
* [[OpenSim Server auf Ubuntu 14.04.x LTS mit ISPConfig installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenVPN ==&lt;br /&gt;
* OpenVPN Server unter Ubuntu Einfachlösung: https://www.cyberciti.biz/faq/ubuntu-20-04-lts-set-up-openvpn-server-in-5-minutes/#Install_OpenVPN_server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenWISP ==&lt;br /&gt;
* [[OpenWISP Manager auf Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Parallels Plesk Panel ==&lt;br /&gt;
* [[SFTP Zugang unter Parallels Plesk Panel aktivieren]]&lt;br /&gt;
* [[Parallels Plesk 11 - Emails an anderen Mailserver weiterleiten]]&lt;br /&gt;
* [[Parallels Plesk lästige Statusmeldungen abschalten]]&lt;br /&gt;
* [[Parallels Plesk - Zugriff auf alle MySQL Datenbanken - Benutzer root funktioniert nicht]]&lt;br /&gt;
* [[Parallels Plesk - database disk image is malformed]]&lt;br /&gt;
* [[ERROR Zend_Db_Adapter_Exception SQLSTATE HY000 2002 No such file or directory]]&lt;br /&gt;
* Alt aber viel interessantes: http://www.grafxsoftware.com/faq.php/HOW-TO-Setup-a-PLESK-Dedicated-Server/1/4/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== pfSense ==&lt;br /&gt;
* [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&lt;br /&gt;
* [[pfSense - IPv6 mit Tunnel Broker und Reverse DNS rDNS]]&lt;br /&gt;
* [[pfSense - IPSec mit IPv4 Remote IP wird aber IPv6 genommen]]&lt;br /&gt;
* [[pfsense - Tor Proxy mit Anmeldung über Internet squid polipo]]&lt;br /&gt;
* [[pfsense - GeoIP Blocking auf bestimmte Ports oder Dienste IPv4 IPv6]]&lt;br /&gt;
* [[pfSense - GeoIP Blocking und Lets Encrypt Zertifikate]]&lt;br /&gt;
* https://www.biteno.com/tutorial/openvpn-auf-einer-pfsense-firewall-einrichten/&lt;br /&gt;
* pfSense und Duo.com: &lt;br /&gt;
** https://forum.netgate.com/topic/119303/openvpn-with-active-directory-authentication-and-duo-security&lt;br /&gt;
** https://github.com/jasonbeitler/www/wiki/PFSense-and-Duo-2FA&lt;br /&gt;
* [[pfSense - HAProxy + Lets Encrypt ACME + GeoIP-Blocking pfBlockerNG]]&lt;br /&gt;
* [[pfSense - ACME-Zertifikate auf anderen Server kopieren]]&lt;br /&gt;
* https://www.cyberciti.biz/faq/howto-configure-dual-wan-load-balance-failover-pfsense-router/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==phpIPAM==&lt;br /&gt;
* https://github.com/thetechguysguide/thetechguysguide.github.io&lt;br /&gt;
** https://www.youtube.com/watch?v=GfBvFJLClHQ&lt;br /&gt;
* [[phpIPAM MAC-Adressen per arp ermitteln und hinzufügen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==PHPMyAdmin==&lt;br /&gt;
* [[PHPMyAdmin alle Benutzer bis auf einen verbieten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PiHole ==&lt;br /&gt;
* [[PiHole Whitelist Amazon]]&lt;br /&gt;
* Liste der Microsoft 365: https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
* [[Ubuntu root alle Emails weiterleiten an Postfach auf Exchange Server]]&lt;br /&gt;
* https://patrik.kernstock.net/2013/01/postfix-mailwarteschlange-ansehen-flushen-und-leeren/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PuTTY ==&lt;br /&gt;
* [[PuTTY sinnvoll Voreinstellungen machen / Default Settings ändern]]&lt;br /&gt;
* [[PuTTY Anmeldung per SSH-Key ohne Pageant ganz ohne Passwort]]&lt;br /&gt;
* [[PuTTY nano in SSH Sitzung mit Maus bedienen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
* [[Python Skripte als Dienst unter Windows oder Linux]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== qmail ==&lt;br /&gt;
* qmail Queue löschen: http://dragos.fedorovici.com/plesk-clear-qmail-queue/&lt;br /&gt;
* qmail Queue diverses: http://www.debianhelp.co.uk/qmailqueue.htm&lt;br /&gt;
* qmail Bounce Messages verhindern: http://g33kinfo.com/info/archives/4080/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== RedHat ==&lt;br /&gt;
* [[Anmeldung per SSH-Key nicht möglich wenn der home-Ordner auf einem NFS-Share liegt]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Repository ==&lt;br /&gt;
* [[Ubuntu Offline Mirror Repository erstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Samba==&lt;br /&gt;
* [[Samba Das angegebene Netzwerkkennwort ist falsch NTLMv2]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Seafile ==&lt;br /&gt;
* [[Seafile Server Docker - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 20.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 18.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 16.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 12.04.x LTS mit Plesk]]&lt;br /&gt;
* [[Seafile Server - als separater Server hinter Webserver mit Apache2]]&lt;br /&gt;
* [[Seafile - Speicherplatz freigeben von gelöschten Dateien]]&lt;br /&gt;
* [[Seafile Server - Upgrade Version 3 auf 4]]&lt;br /&gt;
* [[Seafile Server - Update/Upgrade des Servers auf neuere Version]]&lt;br /&gt;
* [[Seafile Terminal Client - Installation und Synchronisation unter Ubuntu 14.04.x LTS]]&lt;br /&gt;
* [http://seafile.com/en/help/ignore/ Seafile Server - Dateien oder Ordner beim Upload Client-seitig ignorieren]&lt;br /&gt;
* [[Seafile Server - Active Directory Anbindung]]&lt;br /&gt;
* [[Seafile Server - inaktive LDAP Benutzer finden - inactive LDAPUsers]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SNMP ==&lt;br /&gt;
* [[PoE am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* [[Port am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* https://www.m00nie.com/2010/08/how-to-install-and-use-snmpwalk/&lt;br /&gt;
* [[nmap Beispielsammlung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SOLARIS ==&lt;br /&gt;
* [[Oracle Solaris FC Multipath Fibre Channel Multipathing prüfen und wiederherstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== SUSE ==&lt;br /&gt;
* [[SUSE Version abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Syncthing ==&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== systemctl ==&lt;br /&gt;
* systemctl auf die Schnelle: http://mikuerschner.org/node/26&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Tor ==&lt;br /&gt;
* Anleitung Tor Server: https://2019.www.torproject.org/docs/tor-onion-service.html.en&lt;br /&gt;
* Eigene .onion-Adressen erstellen: https://www.jamieweb.net/blog/onionv3-vanity-address/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
* [[Ubuntu Netzwerkkarteneinstellungen ändern ohne GUI in der Console]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP Version auf 5.3.27 updaten]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP intl PECL-Erweiterung nachinstallieren]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Ubuntu 12.05 LTS - Gateone SSH Client installieren auf Server mit Plesk]]&lt;br /&gt;
* [[Ubuntu - Pakete installieren, entfernen, suchen und installierte anzeigen lassen]]&lt;br /&gt;
* [[Ubuntu - alte Version findet keine Paketquellen mehr]]&lt;br /&gt;
* [[VMware Tools Ubuntu installieren in der Bash / Shell]]&lt;br /&gt;
* [[Linux Farbiger Standard Prompt in der Bash auch bei root und PuTTY]]&lt;br /&gt;
* [[Linux Reboot per cron-Job automatisch]]&lt;br /&gt;
* [[Linux Script oder Befehl nach reboot ausführen]]&lt;br /&gt;
* [[Email nach SSH Login auf Linux-Server]]&lt;br /&gt;
* [[Bash bunter Text und Banner mit toilet]]&lt;br /&gt;
* [[Bash Hollywood - Hollywood in der Bash]]&lt;br /&gt;
* [[Logfiles in Logrotate aufnehmen - automatisches packen, rotieren und leeren von Logs]]&lt;br /&gt;
* [[Ubuntu Version in der Bash abfragen]]&lt;br /&gt;
* [[Linux SCP mit IPv6 nutzen]]&lt;br /&gt;
* [[Linux rsync statt scp zum kopieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
* Virtuelle Maschinen auf Ubuntu Server:&lt;br /&gt;
** http://www.serveradventures.com/the-adventures/virtual-machines-in-ubuntu-server-virtualbox-phpvirtualbox&lt;br /&gt;
** http://www.unixmen.com/install-oracle-virtualbox-manage-using-phpvirtualbox-ubuntu-14-04-headless-server/&lt;br /&gt;
** http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.3-on-a-headless-ubuntu-14.04-lts-server&lt;br /&gt;
* [[Ubuntu Linux - Festplatte mit LVM im laufenden Betrieb ohne Neustart vergrößern]]&lt;br /&gt;
* Ubuntu puTTY Zugriff mit SSH-Keys absichern: https://www.howtoforge.de/anleitung/key-basierte-ssh-logins-mit-putty/&lt;br /&gt;
* [[Ubuntu Bilder betrachten anzeigen mit puTTY in Konsole]]&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x Inhalt der .bashrc]]&lt;br /&gt;
* [[Ubuntu 14.04.x Server minimale GUI und andere Spielereien]]&lt;br /&gt;
* [[IBM Storage Manager unter Ubuntu Linux installieren]]&lt;br /&gt;
* [[Ubuntu nano ist auf Englisch]]&lt;br /&gt;
* [[TSM Client auf Ubuntu installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x NFS Freigabe erstellen und verbinden]]&lt;br /&gt;
* [[Linux Bash wget etc http https Proxy angeben]]&lt;br /&gt;
* [[Ubuntu 14.04.x Apache 2.4.7 GeoIP Blocking mit IPv4 und IPv6 einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x 2-Faktor bei SSH mit Google Authenticator einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x Automatische Updates aktivieren oder deaktivieren in der Bash]]&lt;br /&gt;
* [[Ubuntu 16.04.x tmux für die Verwendung mit puTTY oder kiTTY]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu UFW konfigurieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==ufw Firewall==&lt;br /&gt;
* [[ufw Geoblocking mit Ubuntu 24.04]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vaultwarden==&lt;br /&gt;
* [[Vaultwarden unter Ubuntu 24.04 und Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Solaris==&lt;br /&gt;
* [[Solaris 10 - SSH Zugriff für root freischalten]]&lt;br /&gt;
* [[Solaris 10 - Tabulator und Pfeiltasten wie unter Linux]]&lt;br /&gt;
* [[Solaris 10 - NetBackup Client NetBackup Agent unter Solaris installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== STRATO ==&lt;br /&gt;
* [[V-PowerServer startet nach Wiederherstellung eines Backups mit BackupControl nicht - mySQL startet nicht]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15774</id>
		<title>Vorlage:Installation-Ubuntu-2404</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15774"/>
		<updated>2026-03-06T19:16:23Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Grundinstallation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Grundinstallation===&lt;br /&gt;
{{Hinweis| Ich habe die offizielle ISO verwendet: https://ubuntu.com/download/server }}&lt;br /&gt;
{{Hinweis| Ich installiere mit Absicht &#039;&#039;&#039;OHNE&#039;&#039;&#039; LVM. Ubuntu erstellt inzwischen keine eigene Partition für SWAP mehr und ohne LVM lässt sich der Festplattenplatz bei einer Installation als VM auf einfachste Weise im laufenden Betrieb erweitern. Natürlich ginge das auch mit LVM (mit mehr Schritten), ich sehe hier den Nutzen und Vorteil aber nicht.}}&lt;br /&gt;
CD einlegen und los,&amp;lt;br&amp;gt;&lt;br /&gt;
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-251210-111023.PNG|50px]] Try or Install Ubuntu Server&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140440.PNG|50px]] Deutsch&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-115808.PNG|50px]] German / German&amp;lt;br&amp;gt;&lt;br /&gt;
:Wenn er einen neueren Installer findet und fragt ob er auf diesen aktualisieren soll - Ja!&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Install_Ubuntu2204_Pic2.png|50px]] Ubuntu Server&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120131.PNG|50px]] Jetzt könnt Ihr schon die gewünschte feste IP-Adresse einstellen. Wählt dazu mit den Pfeiltasten den &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; Eintrag aus und drückt {{Key|Enter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152546.PNG|50px]] ens192 =&amp;gt; Bearbeite IPv4&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152642.PNG|50px]] Manuell&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152742.PNG|50px]] Bei Subnetz kommt nicht die Subnetzmaske sondern das Netzwerk mit Suffix. Bei einer 24 Maske (= 255.255.255.0) ist das die IP 0 mit Suffix /24&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-153302.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120259.PNG|50px]] Bei Bedarf, sonst leer lassen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120335.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120400.PNG|50px]] Nutzt die ganze Festplatte ohne LVM (also Haken entfernen). Die Festplatte lässt sich später trotzdem leicht vergrößern&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120443.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120505.PNG|50px]] Fortfahren&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120827.PNG|50px]] Den Servernamen festlegen. Ich lege hier den Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; an. Wählt euren Benutzer und Passwort nach Wunsch (Aufschreiben!)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140937.PNG|50px]] Falls Ihr Ubuntu Pro habt, könnet Ihr es hier aktiveren, ansonsten einfach {{Key|[Fortfahren]}}&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141106.PNG|50px]] OpenSSH-Server auswählen =&amp;gt; Erledigt (für Zugriff z.B. mit Putty)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141137.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
Ab jetzt heißt es abwarten. Wenn er kann lädt er gleich ein paar Sicherheitsupdates nach:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-121943.PNG|50px]] Jetzt neustarten&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122036.PNG|50px]] ISO aus der VM entfernen und {{Key|Enter}} drücken&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122152.PNG|50px]] Nach dem Reboot wartet ab bis diverse Meldungen abgelaufen sind&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PuTTY===&lt;br /&gt;
Ab dieser Stelle könnt Ihr PuTTY oder den SSH Client eurer Wahl nutzen - was ich dringend empfehle. Denn dann könnt Ihr hier vorgeschlagenen Befehle einfach per Copy&amp;amp;Paste übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die IP-Adresse habt Ihr zu diesem Zeitpunkt ja bereits festgelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-155245.PNG|150px]] [[Datei:ClipCapIt-200521-155339.PNG|150px]] [[Datei:ClipCapIt-200521-160706.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Anmeldung nutze ich immer gerne ein&lt;br /&gt;
 sudo -i&lt;br /&gt;
Damit wechselt man dauerhaft zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und muss nicht vor jedem Befehl ein &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; stellen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===root wieder freischalten===&lt;br /&gt;
{{Hinweis| Ob nun wie ich immer als root arbeiten wollt oder aber als einfacher Benutzer und dann immer &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; verwendet müsst Ihr selbst wissen}}&lt;br /&gt;
* Mit Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; anmelden&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
* Kennwort des Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
 passwd root&lt;br /&gt;
* neues Kennwort für &amp;quot;root&amp;quot; 2x eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161108.PNG|150px]]&lt;br /&gt;
* Lokal Anmelden kann man sich nun mit &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
* Damit diese auch funktioniert müsst ihr die &amp;lt;code&amp;gt;sshd_config&amp;lt;/code&amp;gt; bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
sucht nach der Zeile ({{Key|STRG}} + {{Key|W}} ist Suchen) nach&lt;br /&gt;
 #PermitRootLogin without-password&lt;br /&gt;
und stellt den Cursor in die Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt nun einmal {{Key|F9}} und 2x {{Key|F10}} - damit erstellt Ihr eine Kopie der Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert die Kopie wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161435.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Speichert die Datei ({{Key|STRG}} + {{Key|x}}, dann {{Key|y}} und {{Key|Enter}}) und startet den ssh Dienst neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart ssh.service&lt;br /&gt;
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über &#039;&#039;&#039;puTTY&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt 2x&amp;lt;br&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
eintippen wodurch sich das PuTTY Fenster schließt - der (eingeschränkte) Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; hat sich somit abgemeldet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ja, ich persönlich arbeite gerne als root und habe diesen für die Anmeldung freigeschaltet. Was ich nicht mache ist das Login per SSH mit Passwort zu erlauben. Ich hinterlege also immer einen SSH-Key für die Anmeldung und nutze diesen statt des Kennwortes. Die Lösung hier ist einfach gehalten, der Profi mögen anpassen wie er es braucht. Ein Anmeldung als eingeschränkter Benutzer geht natürlich auch, das erste was ich dann immer mache ist ein &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt; um dauerhaft zum root zu wechseln}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Anmelden als root===&lt;br /&gt;
Startet PuTTY wieder und meldet euch diesmal gleich als Benutzer &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; an.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===nano &amp;amp; Co auf Deutsch===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;nano&#039;&#039;&#039;&#039;&#039; war eben z.B. noch auf Englisch, mit&lt;br /&gt;
 apt install -y language-pack-de&lt;br /&gt;
ist es (und vieles andere) auf deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===root farbiger Prompt===&lt;br /&gt;
Als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; anmelden:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
Zeile 39 ({{Key|Alt}} + {{Key|C}} aktiviert Zeilennummernanzeige):&amp;lt;br&amp;gt;&lt;br /&gt;
 #force_color_prompt=yes&lt;br /&gt;
ändern zu (# entfernen):&amp;lt;br&amp;gt;&lt;br /&gt;
 force_color_prompt=yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162422.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wer den sofort haben will (ohne neu Anmelden):&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
----&lt;br /&gt;
===Bash History aus mehreren Sitzungen gleichzeitig===&lt;br /&gt;
Wenn man mehr als eine SSH Sitzung zum Zabbix-Server hat, gewinnt in der Bash-Histoy die Sitzung von der man sich zuletzt abmeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgende Änderung sorgt dafür das sich alle Sitzungen eine Bash-History teilen, was ich in Session 1 also aufrufe lässt sich sofort danach in Session 2 per Pfeil nach oben oder {{key|STRG}} + {{key|R}} Suche finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu bearbeiten man noch einmal die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
und hängt ganz unten folgendes an:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# don&#039;t put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;
# ... or force ignoredups and ignorespace&lt;br /&gt;
HISTCONTROL=ignoredups:ignorespace:erasedups&lt;br /&gt;
&lt;br /&gt;
# append to the history file, don&#039;t overwrite it&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&lt;br /&gt;
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)&lt;br /&gt;
HISTSIZE=50000&lt;br /&gt;
HISTFILESIZE=50000&lt;br /&gt;
&lt;br /&gt;
# After each command, append to the history file&lt;br /&gt;
#  and reread it&lt;br /&gt;
export PROMPT_COMMAND=&amp;quot;${PROMPT_COMMAND:+$PROMPT_COMMAND$&#039;n&#039;}history -a; history -c; history -r&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit es sofort aktiv wird wieder&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
Ja, {{code|HISTSIZE}} und {{code|HISTFILESIZE}} stehen nun 2x in der Datei, der letzte Eintrag gewinnt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Feste IP-Adresse vergeben===&lt;br /&gt;
Der Server hat dank des neuen Setupdialoges nun bereits eine feste IP-Adresse.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr an dieser etwas ändern müssen so müssen wir erst das Cloud-Init deaktivieren: &lt;br /&gt;
 nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg&lt;br /&gt;
Inhalt:&lt;br /&gt;
 network: {config: disabled}&lt;br /&gt;
Dann könnte Ihr in der folgenden Datei etwas ändern, die Warnungen das es einen reboot nicht übersteht könnt Ihr ignorieren, dafür haben wir die andere Datei angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162802.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Weiter unten deinstalliere ich Cloud-Init komplett (wenn die VM nicht bei einem Hoster läuft), da könnte man sich diesen Schritt hier sparen}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Updates einspielen===&lt;br /&gt;
* wieder anmelden als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; bzw. zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; wechseln&lt;br /&gt;
* Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)&lt;br /&gt;
 apt update&lt;br /&gt;
* Updates einspielen:&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
* Nach Update überflüssige Pakete entfernen:&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich mache das normalerweise immer als Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===VM Integrationsdienste installieren===&lt;br /&gt;
Wenn euer installiertes System eine VM, eine &#039;&#039;&#039;V&#039;&#039;&#039;irtuelle &#039;&#039;&#039;M&#039;&#039;&#039;aschine, ist, solltest Ihr je nach verwendeten Hypervisor die passenden Integrationsdienste installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====VMware====&lt;br /&gt;
Unter VMware braucht ihr nichts tun, die&lt;br /&gt;
 apt install open-vm-tools&lt;br /&gt;
sind per Default installiert und aktiv. Ist es keine VMware VM, so könnt Ihr die Tools per&lt;br /&gt;
 apt remove open-vm-tools&lt;br /&gt;
entfernen&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====Hyper-V====&lt;br /&gt;
In den Einstellungen der VM solltet Ihr hier den Haken setzen:&lt;br /&gt;
:[[Datei:ClipCapIt-250527-112648.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der VM die folgende Datei bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/initramfs-tools/modules&lt;br /&gt;
und ganz unten die folgenden 4 Zeilen anhängen:&amp;lt;br&amp;gt;&lt;br /&gt;
 hv_vmbus&lt;br /&gt;
 hv_storvsc&lt;br /&gt;
 hv_blkvsc&lt;br /&gt;
 hv_netvsc&lt;br /&gt;
Und dann die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
und neu starten:&lt;br /&gt;
 reboot&lt;br /&gt;
Quelle: https://community.veeam.com/blogs-and-podcasts-57/how-to-install-hyper-v-integration-services-in-the-ubuntu-linux-vm-6353&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Proxmox PVE====&lt;br /&gt;
In den Einstellungen der VM den Agenten aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250527-113037.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann in der VM die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install qemu-guest-agent&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Multipathing deinstallieren (wenn der Server eine VM ist)===&lt;br /&gt;
Ab Werk wird nun das&lt;br /&gt;
 /var/log/syslog&lt;br /&gt;
mit Multipath-Meldungen vollgemüllt:&amp;lt;br&amp;gt;&lt;br /&gt;
 2024-05-27T12:32:47.571374+00:00 ubuntu2404 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.&lt;br /&gt;
 2024-05-27T12:32:47.592304+00:00 ubuntu2404 kernel: systemd[1]: Listening on multipathd.socket - multipathd control socket.&lt;br /&gt;
 2024-05-27T12:32:47.592385+00:00 ubuntu2404 kernel: systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...&lt;br /&gt;
 2024-05-27T12:32:48.141146+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:48.141212+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:48.141278+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:32:57.634912+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:32:57.667862+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:57.667930+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:57.667959+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:07.637080+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:07.676773+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:33:07.676839+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:07.676865+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:17.641466+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:17.709843+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709915+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709942+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:17.709969+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:28.134951+00:00 ubuntu2404 multipathd[467]: sda: not initialized after 3 udev retriggers&lt;br /&gt;
 2024-05-27T12:33:29.139933+00:00 ubuntu2404 multipathd[467]: sda: add missing path&lt;br /&gt;
 2024-05-27T12:33:29.140037+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140063+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140086+00:00 ubuntu2404 multipathd[467]: sda: no WWID in state &amp;quot;undef&lt;br /&gt;
 2024-05-27T12:33:29.140109+00:00 ubuntu2404 multipathd[467]: &amp;quot;, giving up&lt;br /&gt;
 2024-05-27T12:33:29.140181+00:00 ubuntu2404 multipathd[467]: sda: check_path() failed, removing&lt;br /&gt;
Unter Ubuntu 24.04/22.04 scheint es nicht mehr ganz so schlimm wie unter 20.04 - aber in einer VM macht Multipath keinen Sinn, also deaktivieren und deinstallieren um das Syslog von den Meldungen befreien:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl stop multipathd.service &amp;amp;&amp;amp; systemctl disable multipathd.service&lt;br /&gt;
 apt install kpartx libsgutils2-1.46-2 sg3-utils sg3-utils-udev&lt;br /&gt;
 apt remove -y multipath-tools &amp;amp;&amp;amp; apt purge -y multipath-tools&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakete werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Cloud-Init deinstallieren (Wenn es keine VM bei einem Cloudanbieter ist)===&lt;br /&gt;
Wenn Ihr die VM reboootet und die Console betrachtet tauchen kurz nach dem Reboot (Fehler-)Meldungen zum Cloud-init auf:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-163633.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Cloud-Init ist - wenn ich mich recht erinnere - dafür da falls eure VM z.B. bei Amazon AWS, Azure oder andere Anbieter läuft um z.B. die Netzwerkinformationen vom Hoster/Provider zu erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Brauchen wir nicht, also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &#039;datasource_list: [ None ]&#039; | tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg&lt;br /&gt;
 apt purge -y cloud-init&lt;br /&gt;
 rm -rf /etc/cloud/ &amp;amp;&amp;amp; sudo rm -rf /var/lib/cloud/&lt;br /&gt;
 apt install eatmydata libeatmydata1 python-babel-localedata python3-babel python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-tz -y&lt;br /&gt;
 reboot&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakte werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===OpenIPMI und IPMItool deinstallieren===&lt;br /&gt;
Bei meinen VMs schlägt der Start dieses Dienstes eh immer fehl (weil es keine passende Hardware gibt), also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove openipmi ipmitool -y &amp;amp;&amp;amp; apt purge openipmi ipmitool &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Unter Hyper-V wird das Paket scheinbar nicht automatisch installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Zeitzone setzen===&lt;br /&gt;
In meiner VM ist die Uhrzeit zu diesem Zeitpunkt falsch (gebt mal probeweise &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; ein) - weil der ESXi-Host auf UTC Zeit läuft und die Ubuntu in der VM die richtige Zeitzone nicht eingestellt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir korrigieren das mit&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl set-timezone Europe/Berlin&lt;br /&gt;
ein&lt;br /&gt;
 date&lt;br /&gt;
sollte dann die richtige Uhrzeit ausspucken.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Zeitserver setzen===&lt;br /&gt;
{{Hinweis| Wenn Ihr diesen Schritt überspringt, wird {{Key|ntp.ubuntu.com}} als Zeitserver verwendet}}&lt;br /&gt;
Für die Zeitsynchronisierung ist der Dienst &amp;lt;code&amp;gt;systemd-timesyncd.service&amp;lt;/code&amp;gt; zuständig, dieser wird über die Datei&lt;br /&gt;
 nano /etc/systemd/timesyncd.conf&lt;br /&gt;
konfiguriert:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source &amp;quot;lang=bash&amp;quot;&amp;gt;&lt;br /&gt;
#  This file is part of systemd.&lt;br /&gt;
#&lt;br /&gt;
#  systemd is free software; you can redistribute it and/or modify it under the&lt;br /&gt;
#  terms of the GNU Lesser General Public License as published by the Free&lt;br /&gt;
#  Software Foundation; either version 2.1 of the License, or (at your option)&lt;br /&gt;
#  any later version.&lt;br /&gt;
#&lt;br /&gt;
# Entries in this file show the compile time defaults. Local configuration&lt;br /&gt;
# should be created by either modifying this file (or a copy of it placed in&lt;br /&gt;
# /etc/ if the original file is shipped in /usr/), or by creating &amp;quot;drop-ins&amp;quot; in&lt;br /&gt;
# the /etc/systemd/timesyncd.conf.d/ directory. The latter is generally&lt;br /&gt;
# recommended. Defaults can be restored by simply deleting the main&lt;br /&gt;
# configuration file and all drop-ins located in /etc/.&lt;br /&gt;
#&lt;br /&gt;
# Use &#039;systemd-analyze cat-config systemd/timesyncd.conf&#039; to display the full config.&lt;br /&gt;
#&lt;br /&gt;
# See timesyncd.conf(5) for details.&lt;br /&gt;
&lt;br /&gt;
[Time]&lt;br /&gt;
NTP=192.168.1.81&lt;br /&gt;
FallbackNTP=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
RootDistanceMaxSec=30&lt;br /&gt;
#PollIntervalMinSec=32&lt;br /&gt;
#PollIntervalMaxSec=2048&lt;br /&gt;
#ConnectionRetrySec=30&lt;br /&gt;
#SaveIntervalSec=60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sowohl die Liste der &#039;&#039;&#039;NTP=&#039;&#039;&#039; als auch der &#039;&#039;&#039;FallbackNTP=&#039;&#039;&#039; erwartet eine per Leerzeichen getrennte Liste der möglichen Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Laut Anleitung hört der Dienst aber beim ersten Treffer auf zu suchen. In der Praxis setzt also einen NTP-Server und ggf. die Fallback. Setzt Ihr einen Wert nicht, lasst diesen also auskommentiert, so gilt der Default-Wert, beim Fallback gilt dann &amp;lt;code&amp;gt;FallbackNTP=ntp.ubuntu.com&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Änderung müsst Ihr den Dienst einmal neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart systemd-timesyncd.service&lt;br /&gt;
und mit folgenden Befehl könnt Ihr den Status abfragen:&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl show-timesync&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 LinkNTPServers=fd00::1eed:6fff:fe71:f1c0&lt;br /&gt;
 SystemNTPServers=192.168.1.81&lt;br /&gt;
 FallbackNTPServers=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
 ServerName=192.168.1.81&lt;br /&gt;
 ServerAddress=192.168.1.81&lt;br /&gt;
 RootDistanceMaxUSec=30s&lt;br /&gt;
 PollIntervalMinUSec=32s&lt;br /&gt;
 PollIntervalMaxUSec=34min 8s&lt;br /&gt;
 PollIntervalUSec=2min 8s&lt;br /&gt;
 NTPMessage={ Leap=0, Version=3, Mode=4, Stratum=3, Precision=-23, RootDelay=20.324ms, RootDispersion=28.579ms, Reference=C0A801C6, OriginateTimestamp=Tue 2024-06-04 08:22:24 CEST, &lt;br /&gt;
 ReceiveTimestamp=Tue 2024-06-04 08:22:24 CEST, TransmitTimestamp=Tue 2024-06-04 08:22:24 CEST, DestinationTimestamp=Tue 2024-06-04 08:22:24 CEST, Ignored=no, PacketCount=2, Jitter=239us }&lt;br /&gt;
 Frequency=1158037&lt;br /&gt;
Wenn die untere Zeile mit &amp;lt;code&amp;gt;NTPMessage=&amp;lt;/code&amp;gt; nicht erscheint, habt Ihr ein Problem!&amp;lt;br&amp;gt;&lt;br /&gt;
Mit&amp;lt;br&amp;gt;&lt;br /&gt;
 journalctl -fu systemd-timesyncd.service&lt;br /&gt;
könnte Ihr nach dem Grund suchen. Steht da etwas wie &#039;&#039;&#039;&#039;&#039;Server has to large root distance. Disconnecting&#039;&#039;&#039;&#039;&#039; und es gegen einen Domänencontroller geht so stellt sicher das&lt;br /&gt;
* Es der PDC ist&lt;br /&gt;
* Dieser sich auch selbst mit einer externen Quelle synchronisiert&lt;br /&gt;
* Stellt ggf. den Wert von &amp;lt;code&amp;gt;RootDistanceMaxUSec=30s&amp;lt;/code&amp;gt; noch höher.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatische Updates deaktivieren===&lt;br /&gt;
Ich persönlich möchte nicht das der Zabbix-Server automatisch Updates einspielt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates aktualisieren - soweit ich das beobachten konnte - nur den Kernel. Aber auch das möchte ich nicht. Ich möchte das geplant durchführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates verhindern wir mit&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove -y unattended-upgrades&lt;br /&gt;
Wer möchte kann auch die Suche nach Updates deaktivieren. Ansonsten schaut das Ubuntu täglich an einem zufälligen Zeitpunkt nach, ob es Updates gibt. Bei der Anmeldung per SSH erhält man dann eine entsprechende Meldung. Deaktivieren kann man die automatsche Suche danach per&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apt/apt.conf.d/20auto-upgrades&lt;br /&gt;
und in der Datei beide Optionen auf {{code|0}} setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
 APT::Periodic::Update-Package-Lists &amp;quot;0&amp;quot;;&lt;br /&gt;
 APT::Periodic::Unattended-Upgrade &amp;quot;0&amp;quot;;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatischen Neustart von Diensten bei Updates deaktivieren===&lt;br /&gt;
Wie schon zuvor beschrieben aktualisiere ich Ubuntu (und andere Software aus Repos) gerne per folgenden Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
In neueren Versionen werden dabei Dienste ggf. automatische neu gestartet, es gibt dann eine Meldung wie diese:&lt;br /&gt;
 systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service&lt;br /&gt;
 &lt;br /&gt;
 Dienste deren Neustart verschoben wurde:&lt;br /&gt;
  systemctl restart ModemManager.service&lt;br /&gt;
  /etc/needrestart/restart.d/dbus.service&lt;br /&gt;
  systemctl restart getty@tty1.service&lt;br /&gt;
  systemctl restart systemd-logind.service&lt;br /&gt;
Im Normalfall ist es kein Problem. Allerdings scheinen die Abhängigkeiten der Dienste nicht beachtet zu werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ist zum Beispiel ein Dienst abhängig von der Datenbank / MySQL|MariaDB, das steht auch so in der &amp;lt;code&amp;gt;/usr/lib/systemd/system/namedesdienstes.service&amp;lt;/code&amp;gt;:&lt;br /&gt;
 After=mysql.service&lt;br /&gt;
 After=mysqld.service&lt;br /&gt;
 After=mariadb.service&lt;br /&gt;
Der automatische Neustart startet aber z.B. MariaDB gnadenlos durch ohne vorher abhängige Dienste zu beenden. Schön ist das nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Als Lösung schalte ich inzwischen den automatischen Neustart der Dienste ab, es wird dann nur eine Liste der Dienste ausgegeben die neu gestartet werden müssten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/needrestart/needrestart.conf&lt;br /&gt;
und dort ziemlich am Anfang:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.&lt;br /&gt;
#&lt;br /&gt;
# ATTENTION: If needrestart is configured to run in interactive mode but is run&lt;br /&gt;
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.&lt;br /&gt;
#&lt;br /&gt;
# UBUNTU: the default restart mode when running as part of the APT hook is &#039;a&#039;,&lt;br /&gt;
# unless a specific UI is configured (see below).&lt;br /&gt;
#$nrconf{restart} = &#039;i&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;, wie es auch in der obersten Zeile beschrieben wird:&lt;br /&gt;
 $nrconf{restart} = &#039;l&#039;;&lt;br /&gt;
So werden notwendige Neustarts nur aufgelistet. Diese kann man dann von Hand neu starten oder einfach das ganze System rebooten.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Seafile_Server_Docker_-_Installation_auf_Ubuntu_24.04.x_LTS&amp;diff=15773</id>
		<title>Seafile Server Docker - Installation auf Ubuntu 24.04.x LTS</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Seafile_Server_Docker_-_Installation_auf_Ubuntu_24.04.x_LTS&amp;diff=15773"/>
		<updated>2026-03-06T19:15:47Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:AchtungBaustelle}}&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 01.12.2025 erste Version&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Die Seafile Community-Version gibt es ab Version 13 nur noch als Docker-Ausführung - diese Anleitung habe ich mir selbst geschrieben über die Installation und Einrichtung damit.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Installation Ubuntu Server 24.04.x LTS (Long Term Support)==&lt;br /&gt;
===Einstellungen VM===&lt;br /&gt;
Falls Ihr Seafile in einer VM installiert, so sollte diese mindestens über 2 CPU-Kerne und 2 GB RAM verfügen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Boot-Festplatte wähle ich mit 32GB (welche dann aber einfach vergrößert werden kann) und lege diese in der Regel auf NVMe oder SSD-Speicher.&amp;lt;br&amp;gt;&lt;br /&gt;
Auf dieser liegt dann Seafile selbst sowie die Datenbank.&amp;lt;br&amp;gt;&lt;br /&gt;
Für die eigentlichen Datenblöcke binde ich eine 2. Festplatte ein die dann auf z.B. einer normalen HDD / Festplatte mit drehenden Spindeln liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
{{Vorlage:Installation-Ubuntu-2404}}&lt;br /&gt;
==Installation Docker==&lt;br /&gt;
bla&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Hauptseite&amp;diff=15772</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Hauptseite&amp;diff=15772"/>
		<updated>2026-02-17T17:18:48Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOCACHE__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_row2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_orange&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Letzte Meldungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;16.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Update: Die &#039;&#039;&#039;UFW&#039;&#039;&#039; Firewall unter Ubuntu kann auch Geoblocking! Der Artikel war schon älter und für Ubuntu 20.04, mit etwas Fehlersuche und Anpassungen funktioniert das aber ganz hervorragend. Das ganze habe ich mir hier zusammengeschrieben: [[ufw Geoblocking mit Ubuntu 24.04]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag: Die CPU-Last des Servers hat nun enorm abgenommen, &#039;&#039;&#039;UFW&#039;&#039;&#039; verbraucht erheblich weniger ressourcen beim Blocken als der Apache.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
USA sind nun auch Blockiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Mediawiki-Funktion bzw. Spezialseite um alle Änderungen in einem bestimmten Zeitraum abzufragen.&amp;lt;br&amp;gt;&lt;br /&gt;
Das ist eine Datenbankabfrage. Und genau diese kommt nun schon seit mehren Tagen fast pausenlos aus Kalifornien, USA, über verschiedene IP-Adressen.&amp;lt;br&amp;gt;&lt;br /&gt;
Und erzeugt hohe Last auf meinem Webserver.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich sperre die mal für eine paar Tage aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich brauche dringend mal eine Firewall davor die das Geoblocking übernimmt (im Moment mache ich es im Apache).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Extrem hohe Last auf dem Webserver hier ...&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Internetzugang fing an &amp;quot;zu spinnen&amp;quot;, dieser Webserver hier war nahezu auf 100%, der Upload stand bei konstant 10MBit/s ...&amp;lt;br&amp;gt;&lt;br /&gt;
Diesmal lag es lag es an einer Testversion vom März 2025 dieser Webseite. Vor dem Upgrade hatte ich eine Kopie erstellt welche unter der Domäne &amp;quot;testwiki.znil.net&amp;quot; zu erreichen war.&amp;lt;br&amp;gt;&lt;br /&gt;
Die war natürlich nicht gepatched und hatte kein Geoblocking.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe diese nun einfach gelöscht und Ruhe ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.12.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Geo-Blocking von Ländern:&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist der 1. eines Monats und da bekomme ich immer die Auswertung von Matomo - das ist das Tool mit dem ich die Zugriffe auf meine Webseite auswerte. Normalerweise sind das so um die 5 bis 10.000 Besucher im Monat, während Corona waren es auch mal 20.000 (Der Artikel über Guacamole RDP war äußerst beliebt).&amp;lt;br&amp;gt;&lt;br /&gt;
In November waren es dann 167.000 eindeutige Besucher ... ok, hier stimmt etwas nicht. Ein Blick auf den Webserver - jupp der brummt für znil.net ordentlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Blicke ins Log zeigen aber das zum einen - wie üblich - die ein oder andere Suchmaschine wieder mal die ganze Webseite abgrast. Das ist aber sonst auch so.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber es gibt auch jede Menge Versuche, die Webseite zu hacken. Mit vergeblichen Aufrufen für Wordpress-Installationen, aber auch gezielt Mediwiki. Eine IP aus Polen die zufällig gerade stark aktiv war, habe ich dann von Hand gesperrt. Und mir die anderen Einträge mit solchen versuchen angeschaut.&amp;lt;br&amp;gt;&lt;br /&gt;
Tja, es sind ja eigentlich Klischees, aber China und Russland sind jetzt geblockt für diese Webseite. Die beiden Länder waren für 90% der fehlgeschlagenen Einträge verantwortlich,&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;09.06.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Lang vor mir hergeschoben - aber nun ist meine Webseite hier endlich auf der neuen MediaWiki LTS Version 1.43 welche dann bis Dezember 2027 Updates erhalten wird. Die bisherige Version 1.39 wäre im November diesen Jahres ausgelaufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Probleme gab es diesmal überraschend wenig:&amp;lt;br&amp;gt;&lt;br /&gt;
* Die 2 Faktor-Authentifizierung in 1.43 hat einen Upgrade-Fehler, man muss manuell einmal das SQL-Skript für das Anlegen der Tabelleneinträge ausführen und die {{code|update.php}} noch mal starten. Dann klappte die Anmeldung mit dem bisherigen Token&lt;br /&gt;
* Mein Skin {{code|Pivot}} funktionierte nicht mehr, es musste die aktuelle Version sein. Zudem musste ich den Namen im Skin-Verzeichnis von {{code|pivot}} auf {{code|Pivot}} ändern, also mit Großschreibung. Sonst fehlten die Symbole bei den Menüs etc.&lt;br /&gt;
* Die Kommentarfunktion &amp;lt;strike&amp;gt;zickt noch, ich habe die aktuelle Version der Erweiterung einfach als Extension geladen. Die Darstellung funktioniert, es fehlen noch die Felder die es anonymen Benutzern erlaubte einen gewählten Namen anzugeben. Zudem Kann man als nicht angemeldeter Benutzer noch gar keine Kommentare anlegen (gibt eine Fehlermeldung). Ich habe da in der Vergangenheit immer eigene Anpassungen gemacht, die muss ich gleich noch einarbeiten.&amp;lt;/strike&amp;gt; funktioniert jetzt auch wieder&lt;br /&gt;
Am besten gefällt mir aber, das die Erweiterung {{code|ClipUpload}} immer noch funktioniert. Die Erweiterung erlaubt es, in der Code-Ansicht beim Editieren einen Screenshot aus der Zwischenablage einfach per {{key|STRG}} + {{key|V}} einzufügen, ohne Nachfragen, direkter Upload und Einfügen des Dateinamens. Das normale Vorgehen will 1.001 Frage beantwortet haben (Lizenz, Name usw) und dauert mir beim dem Erstellen von Anleitungen viel zu lange.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;24.04.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Webseite ist umgezogen - und läuft nun &amp;quot;im Homeoffice&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie immer unter Ubuntu - die aktuelle 24.04 LTS Version, mit Apache2 Webserver und MariaDB Datenbank. Mal schauen ob 500MBit/s an Upload reichen :-)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;Und die Seite ist - endlich - auch wieder über IPv6 zu erreichen.&amp;lt;/strike&amp;gt; Sollte gehen, geht aber nicht. Ausgehend kein Problem, aber die Portweiterleitung der FRITZ!Box zickt scheinbar rum&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe hier noch einen 2. Linux Rechner mit IPv4, dieser lässt sich trotz identischer Einstellungen von außen pingen. Mal sehen ob ich herausbekomme woran das liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Update:&#039;&#039;&#039;&amp;lt;/u&amp;gt; Schön wenn man ein anderes System zum vergleichen hat. Es fehlte schlicht in der Netzwerkkonfiguration das IPv6 Gateway.&amp;lt;br&amp;gt;&lt;br /&gt;
Warum auch immer der ausgehende IPv6 Traffic trotzdem funktioniert hatte ...&amp;lt;br&amp;gt;&lt;br /&gt;
Also: Die Seite ist - endlich - auch wieder über IPv6 zu erreichen!&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;12.03.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Umzug der Webseite im April!&amp;lt;br&amp;gt;&lt;br /&gt;
Mein bestehender Glasfaseranschluss der Telekom wird Anfang April zu einem Geschäftskundenanschluss geändert (Business Glasfaser Pro 1000), mit fester IP-Adresse (IPv4 und IPv6).&amp;lt;br&amp;gt;&lt;br /&gt;
Der Upload beträgt dann 500MBit - das ist zwar nur halb so schnell wie es angeblich zur Zeit ist (laut IONOS 1GBit/s), aber so viele Aufrufe hat meine Webseite nicht (abgesehen von sporadischen Hacking versuchen).&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde die Webseite dann von zu Hause hosten. In dem Zuge werde ich das Mediawiki dann auch auf die letzte LTS-Version bringen, im Moment läuft es noch auf der LTS-Version &#039;&#039;&#039;1.39.x&#039;&#039;&#039; die noch bis November 2025 unterstützt wird, aktuell wäre &#039;&#039;&#039;1.43.x&#039;&#039;&#039; welches bis November 2027 unterstützt wird. Meine Sorgenkinder bei Upgrades sind immer die &amp;quot;Paste from Clipboard&amp;quot; Funktion um Screenshots schnell in Artikel einzufügen und die Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich dann aber ja voll Kontrolle über den Server habe, wird es dann einfach mit Backups und Snapshots.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Moment bereite ich das Netzwerk und die Firewall dafür vor - ich bin ein großer Freund von Reverse Proxy, Geo-IP-Blocking und Let&#039;s Encrypt Zertifikaten, im Zweifel alles 3 zusammen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde über den Stand dann an dieser Stelle berichten.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;18.12.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard schlägt IPSec!&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe fast den ganzen gestrigen Tag damit verbracht, die VPN-Verbindung zwischen meiner FRITZ!Box und meinem Mietserver von IPSec auf WireGuard umzustellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Den Tunnel aufzubauen hatte schon nach ein paar Minuten geklappt, leider hat die FRITZ!Box aber hartnäckig ein NAT über den Tunnel gemacht. Konnte ich Lösen und habe eine Anleitung dafür geschrieben: [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
Gemacht habe ich das ganze ich das weil ich mir eine besser Performance erhofft hatte. Und erste Tests mit {{code|iperf3}} zeigten einen um 40% höher Datendurchsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Heute Nacht lief nun das erste Backup (eine Veeam Replikation) über WireGuard statt IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
Vorher mit IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112649.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nun mit WireGuard:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112719.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
2h25m schneller! Bei sogar 1GByte mehr Daten. und von den 1h45m sind eine Stunde alleine die &#039;&#039;&#039;Retention Policy&#039;&#039;&#039;, also das löschen und zusammenführen alter Snapshots am Ziel.&amp;lt;br&amp;gt;&lt;br /&gt;
Fazit: hat sich gelohnt!&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;29.09.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich konnte mich endlich auch mal etwas mehr mit Proxmox beschäftigen (und wie gut Veeam es schon unterstützt).&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst auf einen Mini-PC der 200Euro Klasse (Intel N95 Prozessor, 16GB RAM, 512GB SSD, 2 x LAN) mit dem ich etwas herumgespielt habe, inklusive der Migration einer VMware-VM dorthin. Um die Live-Migration zu testen habe ich mir dann noch einen 2. Mini-PC gekauft. Und hatte dann eine steile Lernkurve (Datenträger müssen auf alles System gleich sein - und ZFS formatiert sein), inklusive einer kompletten Migration da ich beide Nodes noch mal neu mit ZFS installieren musste.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ich das später auch wieder hinbekommen, gibt es nun links einen neuen Bereich Proxmox unter welchen ich dann wie immer sammle was ich interessant fand bzw. wie ich mein System eingerichtet habe.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.07.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Kommentarfunktion braucht ein paar Anpassungen an das aktuelle PHP8.3&amp;lt;br&amp;gt;&lt;br /&gt;
Da kommen zwar nur Warnungen, aber die erscheinen halt ständig im Log. Es gibt auf GitHub bereits eine angepasste Version (leider ohne angepasste Versionsnummer), die arbeitet aber mit meiner &amp;quot;alten&amp;quot; Mediawiki-Version 1.39 nicht zusammen. Das ist aber nun mal die aktuelle LTS-Version und die neue ist noch nicht erschienen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt muss ich also entweder mit den Warnungen leben, diese Seite auf dem älteren PHP8.1 laufen lassen, eine Kurzzeit-Mediawiki-Version mit nur einem Jahr Support einsetzen oder die Kommentarfunktion dauerhaft abschalten. Ich habe mich noch nicht entschieden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze eine von mir angepasste Version von https://www.mediawiki.org/wiki/Extension:Comments die ich immer dahingehend ändere das auch anonyme Kommentare möglich sind (mit freier Angabe eines Names oder Email-Adresse). Zudem ist eine - mini - AntiSPAM Funktion eingebaut und ich erhalte immer sofort eine Email über einen neuen Kommentar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das habe ich mir gut Dokumentiert, ist trotzdem ein Sonntagnachmittag Arbeit das jedes mal einzupflegen.&amp;lt;br&amp;gt;Nur um mich dann per Kommentar beschimpfen zu lassen wenn da jemanden etwas nicht passt ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe mal die Kommentarfunktion meiner Seite deaktiviert, da gab es heute wohl einen Angriff wo versuchte wurde diese als Lücke zu missbrauchen. Laut Logs hat das nicht geklappt, aber so habe ich den Angriff ins leere laufen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 09:45Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist 2024 ... und ich bekomme IPv6 an meinem neuen Server nicht zum laufen. Offensichtlich wird es nicht durchgelassen. Jedenfalls kommt kein IPv6 Datenverkehr an meinem Server an.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 00:55Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net läuft nun auf einem neuen virtuellen Server bei IONOS. Nach 2 Tagen war der alte zwar migriert. Aber der neue - die technischen Daten sind identisch - kostet nur 4 statt 5 Euro im Monat. Und ich konnte so parallel gleich auf Ubuntu 24.04 LTS + PHP8.3 umziehen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt geht es ins Bett, morgen muss ich noch genauer prüfen ob noch alles funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:44Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
So, telefonisch konnte ich ein Ticket eröffnen. Nein, das ist nicht normal, die VM hätte schon längst wieder laufen sollen. Es wird jetzt geschaut was bei meiner VM hakt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:02Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240620-130053.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so so, 20 Minuten. Die Meldung habe ich im Portal gefunden, wenn ich versuche auf &#039;&#039;&#039;&#039;&#039;Server &amp;amp; Cloud&#039;&#039;&#039;&#039;&#039; zu zugreifen werde ich immer noch sofort abgemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich suche gerade wo ich dort ein Ticket eröffnen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 09:35Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Na IONOS, das klappt ja scheinbar toll. Statt &amp;quot;kurzer Unterbrechung&amp;quot; sind es nun schon fast 20h Ausfall, laut deren Status Webseite https://www.ionos-status.de/ läuft alles Störungsfrei, das Portal für die Cloud-Server Verwaltung ist immer noch komplett abgeschaltet (zumindest für mich).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.06.2024 20:23Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Heute seit 15:00 Uhr stellt IONOS meinen vServer um auf dem diese Webseite läuft. Das sollte angeblich nicht lange dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt, 5h später, ist mein Server immer noch nicht erreichbar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Webportal von IONOS zur Verwaltung meines vServers ist auch komplett abgeschaltet - man wird sogar sofort ausgeloggt wenn man auf den betreffenden Menüpunkt geht.&amp;lt;br&amp;gt;&lt;br /&gt;
Genügend Gelegenheit einmal mein Backup zu testen.&amp;lt;br&amp;gt;&lt;br /&gt;
So konnte ich meine Webseite mit Stand gestern, 22:00 Uhr wiederherstellen. Die Webseite läuft im Moment auf meinen Heimserver. Der hat zwar genügend Dampf, mein Internetanschluß von Kabel Deutschland hat aber leider nur 50MBit Upload.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber besser als nichts, zur Not kann ich die Seite auch noch auf einen anderen Server mit 250Mbit Upload umziehen, aber das hier war jetzt schneller und einfacher.&amp;lt;br&amp;gt;&lt;br /&gt;
Und es wäre schön wenn der Originalserver doch noch wieder hoch kommt, ich habe heute noch diverses im Wiki geschrieben/korrigiert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich bin endlich dazu gekommen eine aktuelle Anleitung für Ubuntu 24.04 und Zabbix 6 / Zabbix 7 zu schreiben: [[Zabbix Server + Agent unter Ubuntu 24.04 LTS installieren]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es waren nicht so viele Änderungen wie befürchtet. Schlecht ist aber schon mal das ich bisher keine aus Zabbix 6 exportierten Templates in Zabbix 7 importiert bekommen habe, das muss ich mir noch mal genauer anschauen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein jetziger Zabbix 6.0 LTS Server stammt von von meinen allerersten Zabbix-Server 2.2 ab, dieser wurde immer wieder geupgradet. Nun möchte ich mal einen Neuanfang machen, auch um jede menge Altlasten los zu werden, z.B. habe meine Items noch alle eine Server-Node Id, allen Item-Ids ist also eine &amp;lt;code&amp;gt;42042000000&amp;lt;/code&amp;gt; vorangestellt, das werde ich sonst nie los.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.05.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net ist nun nur noch über IPv4 zu erreichen. Grund ist das IONOS die virtuelle Maschine auf welcher diese Webseite läuft, migriert und dabei neue IPv6 Adressen zuweisen wird. Dei IPv4 soll unverändert erhalten bleiben.&amp;lt;br&amp;gt;Scheinbar wird dabei auch der darunterliegende Hypervisor geändert. Bisher ist meine VM eine VMware vSphere-VM, mal sehen was es danach ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Extension &amp;quot;ClipUpload&amp;quot; funktioniert nun doch. Nachdem ich bei einem Kunden die Extension [https://www.mediawiki.org/wiki/Extension:MsUpload MsUpload] gesehen hatte - mit der kann man einfach per Drag&amp;amp;Drop viele Dateien/Bilder in einem Rutsch hochladen - hatte ich diese bei mir installiert. Die Extension funktioniert aber nur in Verbindung mit dem [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]. Der ist &amp;quot;ab Werk&amp;quot; dabei, ich hatte den aber deaktiviert weil ich diesen nicht gebraucht habe. Der WikiEditor erscheint in dem von mir bevorzugten Quelltext-Editor. Und in diesem / mit diesem funktioniert mein heiß geliebtes und Innig geliebtes &amp;quot;ClipUpload&amp;quot;. Mit dieser Erweiterung kann ich Screenshots (aus der Zwischenablage) im Quelltext-Editor einfach per {{Key|STRG}} + {{Key|V}} einfügen - ohne nervige Nachfragen etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.02.2023&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das MediaWiki-System auf dem diese Webseite basiert wurde von der LTS-Version 1.35.9 auf die neue LTS-Version 1.39.1 aktualisiert. Wie immer gab es Probleme mit einigen Erweiterungen. Bei den meisten reichte die für MediaWiki 1.39.x passende Version zu installieren. Die Kommentarfunktion musste ich wieder nach meinen Ansprüchen anpassen - was relativ schnell ging da ich beim letzten mal ordentlich dokumentiert hatte - so musste ich nur in der alten Version nach meinen Kommentaren suchen und die Abschnitte entsprechend in der neuen Version ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider - &#039;&#039;&#039;LEIDER&#039;&#039;&#039; - ist die Extension &amp;quot;ClipUpload&amp;quot; nun auf der Strecke geblieben, beim letzten mal konnte man die noch mit Codeänderungen zum laufen bringen. Die Erweiterung erlaubte es per {{Key|STRTG}} + {{Key|V}} einfach Bilder in das Mediawiki einzufügen. Es wird auf [https://www.mediawiki.org/wiki/Extension:SimpleBatchUpload simple-batch-upload] verwiesen ... mhh, nicht wirklich das selbe.&amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes steht dann das Upgrade auf 22.04 LTS + PHP8 an.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag: Es gibt einen &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Extension:VisualEditor VisualEditor]&#039;&#039;&#039; der ab Werk bei MediaWiki dabei ist (keine Ahnung seit welcher Version), der kann das auch. In Umständlich. Titel, Beschreibung usw. muss alles über Dialoge angegeben werden anstatt das Bild einfach sofort hochzuladen (ich weis schon was ich tue).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.10.2022&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zabbix Summit 2022 in Riga: [https://www.meinekleinefarm.net Marco Hofmann] hat einen Vortrag darüber gehalten wie man unter Windows den Zabbix Agenten auf hunderten von Systemen und verschiedenen Kundenumgebungen synchron hält. Das erwähne ich weil er dazu unter anderem auch Werkzeuge von mir einsetzt - eine Abwandlung meiner [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei|InstallZabbixAgent.bat]] und das Tool für [[Agent Auto Updater|automatische Updates des Agenten]].&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Hofmann-1200x628px.png|400px|link=https://www.meinekleinefarm.net/zabbix-summit-2022-in-riga-keeping-hundreds-of-windows-zabbix-agents-in-sync-across-different-customers/]]&amp;lt;br&amp;gt;&lt;br /&gt;
Seinen Vortrag findet ihr hier auf Youtube: https://youtu.be/IQQwTEtwl7M?t=19987 &amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.10.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Mediwiki dieser Seite ist nun auf Version 1.35.4. Und ich müsste mal daran gehen wieder eine Kommentar-Übersichtsseite zu programmieren ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;06.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das waren jetzt fast 4h Arbeit - aber die Kommentarfunktion funktioniert wieder wie vorher.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Extension basiert wieder auf dem aktuellen Original: https://www.mediawiki.org/wiki/Extension:Comments und wurde wieder nach meinen Bedürfnissen angepasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter anderem war in der aktuellen Version der Datenbank gar kein Feld mehr für den Namen/Email-Adresse vorgesehen, das habe ich wieder nachgerüstet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die meiste Zeit habe ich damit verbracht die Stelle in den ganzen PHP-Skripten zu finden an der die eigentliche Datenbankabfrage durchgeführt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Großes Update der Webseite!&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Upgrade auf die Mediawiki LTS Version 1.35.2&lt;br /&gt;
* Umzug von Ubuntu 18.04 LTS auf 20.04 LTS&lt;br /&gt;
* Umzug von MySQL auf MariaDB&lt;br /&gt;
* Umzug von PHP 7.2 auf 7.4.3&lt;br /&gt;
* Umzug auf V-Server M von IONOS&lt;br /&gt;
* Seite ist nun über IPv4 und IPv6 erreichbar!&lt;br /&gt;
Hat im ganzen ganz gut geklappt. Auf der Strecke sind 2 Erweiterungen geblieben: Die Anzeige der zuletzt geänderten Artikel sowie eine selbst programmierte Seite welche mir alle Kommentare auf einer Seite angezeigt hatte.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch die Schaltfläche die auf jeder Seite unten rechts zum Hochscrollen war fehlt noch.&amp;lt;br&amp;gt;&lt;br /&gt;
Ganz hervorragend am &#039;&#039;&#039;IONOS V Server&#039;&#039;&#039; gefällt mir das es eine VM unter VMware ist, die Firewall davor in der man selbst Port für Port freischalten muss - und das ich die mit dem &#039;&#039;&#039;&#039;&#039;Veeam Agent for Linux&#039;&#039;&#039;&#039;&#039; einfach sichern kann. Und die Büchse ist angenehm schnell, mit 300Mbit angebunden und kostet nur 5 Euro im Monat.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nachtrag:&#039;&#039;&#039; Die Kommentarfunktion funktioniert ... aber der Refresh nachdem man senden gedrückt hat sieht komisch aus. {{Key|F5}} behebt das, mal sehen ob ich da was ändern kann. Das ist eine Extension die ich so angepasst habe das man auch ohne Anmeldung mit einem Namen etwas posten kann und das mir eine Email gesendet wird wenn es einen Kommentar gibt. Es gibt eine neuere Version davon die ich dann allerdings auch wieder neu anpassen muss.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe einen neuen Artikel zum Thema GeoIP-Blocking mit Apache2 veröffentlicht: [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und das ganze auch gleich als Gelegenheit genutzt bei meinen diversen Subdomänen das ganze umzusetzen. Meine Seafile- oder mein Zabbix-Server müssen z.B. nur aus Deutschland erreichbar sein.&amp;lt;br&amp;gt;[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;30.12.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Eigentlich wollte ich diesen Webserver mal auf Ubuntu 20.04 LTS aktualiseren ... aber das hat per &amp;lt;code&amp;gt;do-release-upgrade&amp;lt;/code&amp;gt; im Gegensatz zu meinen anderen VMs nicht geklappt. MediaWiki 1.3 mag irgendwie PHP 7.4 auch nicht richtig (auch wenn ich es woanders schon habe laufen gesehen). Also doch wie immer - neuen Server installieren und dann die Domänen Stück-für-Stück umziehen.&amp;lt;br&amp;gt; [[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.06.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:MFA_Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;MFA technical Certification&amp;quot; der Firma WatchGuard abgeschlossen. Es geht um die [https://www.watchguard.com/de/wgrd-products/authpoint-multi-factor-authentication MFA Lösung AuthPoint der Firma WatchGuard] - bei der Vorbereitung war hilfreich das ich MFA schon länger auch privat für den Schutz meiner Zugänge einsetze. Unter anderem [https://duo.com/ duo.com] für RDP da es bis 10 Personen auch kostenlos genutzt werden kann. WatchGuard ist - aus meiner Sicht - mehr pures MFA, DUO hat dafür quasi jeden Anwendungsfall eine eigene Anleitung und geht tiefer auf die Endgeräte ein. Wobei z.B. eine nicht aktuelle Android-Version ständig angemeckert wird.&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;26.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Stromkosten: Auch ich sitze nun mehr im Homeoffice. Und in meinem Kellerbüro habe ich meinen Rechner hinter mir - und einen 40HE Datenschrank im Blick vor mir. Mit den Tagen ging mir zum einen der Lärm der ganzen Lüfter irgendwann auf den Kecks. Und den Stromverbrauch (den ich bis dato aber nicht gemessen habe) wollte ich auch senken. Den Verbrauch der Switche kannte ich durch Einzelmessungen, der lag bei ca. 100 Watt (für 48 Gigabit Ports + 6 PoE Ports). Diesen habe ich durch einen neuen Switch Allnet-SG8428M (13 Watt maximal!) und einen sparsameren PoE Sitch für die Telefone und Kameras stark reduziert. Zeitgleich habe ich mit Gosund SP111 WLAN-Steckdosenschaltern herumgespielt. Mit der Tasmota Firmware und einer Kalibrierung taugen diese scheinbar auch ganz gut als Strommessgeräte.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab nun also meinen Datenschrank zu Hause daran gehängt und musste ernüchternd einen Dauerstromverbrauch von 140 bis 150 Watt feststellen.&amp;lt;br&amp;gt;&lt;br /&gt;
* 44 Watt davon gehen für PoE drauf - 5 Cisco Telefone und 2 IP-Kameras.&amp;lt;br&amp;gt;&lt;br /&gt;
* 16 Watt maximal für die beiden anderen Switche (der ALLNET und ein 16 Port Netgear) &lt;br /&gt;
* 9 Watt mein ESXi Server auf Basis eines APU2C4 von PC Engines (inklusive 2TB USB Festplatte daran)&lt;br /&gt;
* um die 20 Watt schätze ich die beiden FritzBoxen ...&lt;br /&gt;
* bleiben ca. 89 Watt für meinen Heimserver - mit 2x 128GB SSD und 4 x 4TB HDD&lt;br /&gt;
* und die USV wird da mit Ihrem Eigenanteil auch irgendwo dazwischen liegen&lt;br /&gt;
Wenn ich den Verbrauch mal in einen Kostenrechner werfe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200426-192323.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:(erstellt mit [https://www.stromverbrauchinfo.de/stromkostenrechner.php stromverbrauch info])&amp;lt;br&amp;gt;&lt;br /&gt;
weis ich nun auch warum wir immer so eine fette Stromrechnung habe. Als 4 Personenhaushalt verbrauchen wir soviel wie einer mit 8. Und dabei habe ich doch gerade schon soviel eingespart ...&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde das nun - dank mit Zabbix überwachten Strom/Leistungsverbrauch mal besser beobachten und schauen wie ich da in Zukunft noch mehr einsparen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedes Watt sind 2,60 €/Jahr oder 22 Cent/Monat - klingt nicht viel aber wie man sieht läppert es sich.&amp;lt;br&amp;gt;&lt;br /&gt;
Mal sehen wie der Durchschnitt nach einem Monat ist. Nachts schaltet sich z.B. die Beleuchtung der IP-Telefone ab was schon 10 Watt spart.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Mit gewissen Stolz habe ich meine Version eines &amp;quot;Active Directory-Gruppe mit Zabbix Benutzern Abgleichen via LDAP&amp;quot; Skriptes fertiggstellt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://github.com/BernhardLinz/zabbix-ldap-sync-bash&lt;br /&gt;
Wer nach so etwas googelt landet quasi ausschließlich bei dem von Marc Schöchlin geschriebenen Python Script: https://github.com/zabbix-tooling/zabbix-ldap-sync&amp;lt;br&amp;gt;&lt;br /&gt;
An dem haben mich aber schon immer die ganzen Abhängigkeiten gestört wie &#039;&#039;&#039;pyldap&#039;&#039;&#039; oder &#039;&#039;&#039;pyzabbix&#039;&#039;&#039;. Ich hab nun mal leider auch Kunden mit Systemen ohne Internetanbindung oder älteren Linux Versionen - und da ist es schwer diese zu erfüllen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Skript ist &amp;quot;pures&amp;quot; Bash. Es wird nur der Befehl &#039;&#039;&#039;ldapsearch&#039;&#039;&#039; und &#039;&#039;&#039;curl&#039;&#039;&#039; benötigt - und bisher waren die in allen Repositories der Distributionen vorhanden.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze nun [https://www.google.com/search?q=tripwire+ubuntu Tripwire] um meinen Webserver zu überwachen. Gefällt mir sehr gut, man muss nur daran denken nach jeden Update oder Änderung die Datenbank wieder auf Stand zu bringen. Ich bekomme im Moment jeden Tag einen Email-Report dazu - da muss ich noch mal schauen wir ich das in Zabbix unterbringe bzw. mir nur eine mail senden lasse wenn auch etwas ansteht.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Noch ein Nachtrag zum &amp;quot;Angriff&amp;quot;:&amp;lt;br&amp;gt; zwischendurch fehlten auf dem Server 16G an Speicherplatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Gemerkt habe ich das mit Zabbix weil dadurch ein Schwellwert erst unter- und dann wieder überschritten wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 16G waren das &amp;lt;code&amp;gt;error.log&amp;lt;/code&amp;gt; für die Domäne &#039;&#039;&#039;znil.net&#039;&#039;&#039;. Darin fand ich jede Menge Fehlermeldung das versucht wurde &amp;lt;code&amp;gt;\bin\bash&amp;lt;/code&amp;gt; zu starten - was aber nun mal nicht erlaubt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Bin im Moment gerade glücklich darüber das ich jede Domäne / Webseite / Subdomäne unter einem eigenen, eingeschränkten Benutzer laufen lasse.&amp;lt;br&amp;gt;&lt;br /&gt;
Das mache ich nicht von Hand sondern per ISPConfig weil ich faul bin. Funktioniert aber scheinbar ja prima.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Also, wenn ich so ein Online-Tool nutze um meine Webseite zu überprüfen dann melden diese ggf. (nicht immer) eine &amp;quot;SQL-Injection&amp;quot; Lücke in meiner Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar weil wohl dann gängige Test-SQL-Abfragen mit gesendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden erfolgt via JavaScript im Browser des Benutzers, der Empfänger ist das PHP-Skript auf dem Server.&amp;lt;br&amp;gt;&lt;br /&gt;
In der letzten Version dieses Skriptes (angepasst von mir) gibt es keine Filter mehr, er nimmt einfach alles an. Früher habe ich dort auf Viagra &amp;amp; Co gefiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber der Teil darunter der dann den Text in die Datenbank schreibt ist wohl ausreichend gefestigt - er schreibt einfach alles was kommt in den Datensatz der Datenbank. Die SQL-Injections tauchen so einfach als Text im Kommentarfeld auf, werden aber nicht ausgeführt. Also alles gut Denke ich.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Angriff auf diese Webseite:&amp;lt;br&amp;gt;&lt;br /&gt;
In der Nacht von gestern auf heute hat jemand versucht per SQL-Injektion sich Zugriff auf diese Webseite zu verschaffen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Schwachstelle&amp;quot; ist die Kommentarfunktion. Ein Online-Scurity-Scanner hatte mir diese bereits mal als anfällig dafür gemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich die Mediawiki-Extension überarbeitet hatte, habe ich umfangreiche &amp;quot;Suchen und Erstzen&amp;quot;-Regeln erstellt die alles was mit SQL zu tun hat ausfiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb sehen manche Kommentare hier dann komisch aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich prüfe mal das System intensiv ob die Abwehr erfolgreich war ... oder ob ich doch ein Backup wieder einspiele.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net weiterhin &amp;quot;Tracker-frei&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze Matomo (ehemals Piwik) um Statistiken für diese Webseite zu erhalten. Eigentlich mehr aus Neugier um zu sehen wie das funktioniert, es hat mir aber auch schon bei Verbesserungen geholfen da man manchmal recht gut erkennen kann wenn die Leute bei Suchanfragen falsch abbiegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab in einem meiner Browser seit einiger Zeit ein &amp;quot;Anti-Tracking-Tool&amp;quot; installiert weil dadurch sich die Ladezeiten bei einer meiner Lieblingwebseiten dramatisch verbessert haben (https://thingiverse.com). Voller Freude sehe ich das ich wohl alles richtig gemacht habe - denn das Tool zeigt mir bei dieser Seite an das es nicht zu blockieren gibt. Alles bleibt also innerhalb dieser Seite. Siehe auch: [https://znil.net/index.php?title=Znilwiki:Impressum#Datenschutzerkl.C3.A4rung Datenschutzerklärung]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Sieht nicht nach Leben aus wenn sich die Startseite nie ändert - ich muss noch mal wieder nach einer Mediawiki-Extension schauen welche die neuesten Artikel hier präsentiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Hatte ich schon mal, funktionierte nach einem Update nur nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;04.07.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Seite ab sofort nur noch über &#039;&#039;&#039;&#039;&#039;https://&#039;&#039;&#039;&#039;&#039; zu erreichen - die meisten Aufrufe kamen sowieso schon darüber.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;08.06.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mediawiki-Installation ist nun auf 1.13.2 aktulisiert - einige potentielle Sicherheitslücken wurden geschlossen. Hier der Artikel dazu: https://lists.wikimedia.org/pipermail/mediawiki-announce/2019-June/000230.html&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man nicht alles testet ... die Kommentarfunktion war ohne &amp;quot;Funktion&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Glück ist es eine Erweiterung die noch gepflegt wird, ich habe mir die neue Version herunter geladen und wieder an diese Webseite angepasst: https://git.znil.net/mediawiki/Comments&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:WG Network Security Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;Network Security Technical Certification&amp;quot; der Firma WatchGuard abgeschlossen.&lt;br /&gt;
Ich hatte auch schon mal leichtere Prüfungen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Wiki ist wieder einmal umgezogen. Statt auf einem Server in Frankreich läuft es nun auf einem Server in Deutschland - vielen Dank an meinen Arbeitgeber.&amp;lt;br&amp;gt;&lt;br /&gt;
Im gleichen Atemzug habe ich von der Mediawiki-Version 1.27 LTS auf die Version 1.31 LTS gewechselt - der Support läuft im Juni aus und 1.31 bietet nun wieder Updates bis Juni 2021.&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist leider die &#039;&#039;&#039;WikiLog&#039;&#039;&#039;-Erweiterung auf der Strecke geblieben, diese ist nicht mehr kompatibel und wird auch schon länger nicht mehr weiter einwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Also mache ich das jetzt von Hand ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_ocean&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Wie ist &amp;lt;del&amp;gt;meine&amp;lt;/del&amp;gt; deine IP-Adresse?&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot; style=&amp;quot;font-family:&#039;Courier New&#039;, Monospace; background: #FFFFCC;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 70%; background-color: #FFFFCC&amp;quot;|&amp;lt;big&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IP :&#039;&#039;&#039; &amp;lt;ClientIP /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Typ:&#039;&#039;&#039; &amp;lt;IPv4orv6 /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DNS:&#039;&#039;&#039; &amp;lt;ClientName /&amp;gt; &amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|| Ermittelt mit den PHP-Funktionen dafür&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Cookies und Datenschutz ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
Diese Webseite verwendet bei Besuchern Cookies! [http://www.cookie-checker.com/check-cookies.php?url=znil.net www.cookie-checker.com]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;!--        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten 10 Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
{{RecentActivity:type=edits|count=10}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_blue&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Tools - Kleine Programme für Batchdateien und anderes&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* [[ZnilTools:ifmemberDELUXE.exe|ifmemberDELUXE]] - Netzlaufwerke und Netzwerkdrucker in Anmeldeskripten verbinden&amp;lt;!--, kann Drucker-Server für 32/64 Bit wählen--&amp;gt;&lt;br /&gt;
* [[ZnilTools:Telnet_SMTP_Test_Tool|Telnet_SMTP_Test_Tool.exe]] - Grafische Oberfläche für den Test von SMTP-Servern per Telnet&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung mit vielen Beispielen&lt;br /&gt;
* [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;br /&gt;
* [[Calibre eBook MultiUser Tool / Funktion]] - Calibre mit mehreren Benutzern gleichzeitig nutzen&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_green&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Webseiten die ich regelmäßig besuche ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* http://c64-online.com/ -&amp;gt; Alles über den C64 &amp;amp; Geniales zum Raspberry Pi&lt;br /&gt;
* https://forum.iobroker.net/ -&amp;gt; Alles zu ioBroker&lt;br /&gt;
* https://www.autoit.de -&amp;gt; Wo sonst bekäme man so viel deutsche Hilfe zu AutoIt!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--{{RecentActivity:type=new|count=10}}--&amp;gt;&lt;br /&gt;
{{Special:RecentChanges/days=365,limit=10,hidebots,hideminor,hidecategorization}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_grey&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Spezial:Statistik|Informationen]] zum znilwiki, Stand {{CURRENTDAY2}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} um {{LOCALTIME}} Uhr:&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- * znil.net über das Tor Netzwerk: http://znilnet655kecmslpvcrvpwujeameq4ac42ueg7jvqanzdfk4clnleyd.onion&amp;lt;br&amp;gt; --&amp;gt;&lt;br /&gt;
* Dieses Wiki enthält &#039;&#039;&#039;{{NUMBEROFPAGES}}&#039;&#039;&#039; Seiten, zusammengefasst in &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; Themen...&amp;lt;br&amp;gt;&lt;br /&gt;
* Die Beiträge wurden &#039;&#039;&#039;{{NUMBEROFEDITS}}&#039;&#039;&#039; mal bearbeitet (inklusive der Erstellung)&lt;br /&gt;
* Dieses Wiki wurde laut Matomo schon so oft besucht: &amp;lt;html&amp;gt;&amp;lt;img src=&amp;quot;https://znil.net/piwik/index.php?module=ClassicCounter&amp;amp;action=svg&amp;amp;idSite=1&amp;quot; width=&amp;quot;180&amp;quot; height=&amp;quot;43&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!--* Letzte Änderung am &#039;&#039;&#039;{{REVISIONDAY2}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONMONTH}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONYEAR}}&#039;&#039;&#039; durch &#039;&#039;&#039;{{REVISIONUSER}}&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
* MediaWiki-Version: &#039;&#039;&#039;{{CURRENTVERSION}}&#039;&#039;&#039; - siehe auch [[Spezial:Version]]&lt;br /&gt;
&amp;lt;!--* Seitenaufrufe im Monat: &#039;&#039;&#039;&amp;gt; 12.000&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Datei:Piwik-001.png]]&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;[[Testbereich|.]][[Testbereich:Seite2|.]][[Testbereich:Seite3|.]][[Testbereich:Seite4|π]]&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15771</id>
		<title>Vorlage:Installation-Ubuntu-2404</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15771"/>
		<updated>2026-02-17T17:15:20Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Automatischen Neustart von Diensten bei Updates deaktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Grundinstallation===&lt;br /&gt;
{{Hinweis| Ich habe die offizielle ISO verwendet: https://ubuntu.com/download/server }}&lt;br /&gt;
{{Hinweis| Ich installiere mit Absicht &#039;&#039;&#039;OHNE&#039;&#039;&#039; LVM. Ubuntu erstellt inzwischen keine eigene Partition für SWAP mehr und ohne LVM lässt sich der Festplattenplatz bei einer Installation als VM auf einfachste Weise im laufenden Betrieb erweitern. Natürlich ginge das auch mit LVM (mit mehr Schritten), ich sehe hier den Nutzen und Vorteil aber nicht.}}&lt;br /&gt;
CD einlegen und los,&amp;lt;br&amp;gt;&lt;br /&gt;
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-251210-111023.PNG|50px]] Try or Install Ubuntu Server&amp;lt;br&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140440.PNG|50px]] Deutsch&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-115808.PNG|50px]] German / German&amp;lt;br&amp;gt;&lt;br /&gt;
:Wenn er einen neueren Installer findet und fragt ob er auf diesen aktualisieren soll - Ja!&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Install_Ubuntu2204_Pic2.png|50px]] Ubuntu Server&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120131.PNG|50px]] Jetzt könnt Ihr schon die gewünschte feste IP-Adresse einstellen. Wählt dazu mit den Pfeiltasten den &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; Eintrag aus und drückt {{Key|Enter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152546.PNG|50px]] ens192 =&amp;gt; Bearbeite IPv4&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152642.PNG|50px]] Manuell&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152742.PNG|50px]] Bei Subnetz kommt nicht die Subnetzmaske sondern das Netzwerk mit Suffix. Bei einer 24 Maske (= 255.255.255.0) ist das die IP 0 mit Suffix /24&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-153302.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120259.PNG|50px]] Bei Bedarf, sonst leer lassen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120335.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120400.PNG|50px]] Nutzt die ganze Festplatte ohne LVM (also Haken entfernen). Die Festplatte lässt sich später trotzdem leicht vergrößern&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120443.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120505.PNG|50px]] Fortfahren&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120827.PNG|50px]] Den Servernamen festlegen. Ich lege hier den Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; an. Wählt euren Benutzer und Passwort nach Wunsch (Aufschreiben!)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140937.PNG|50px]] Falls Ihr Ubuntu Pro habt, könnet Ihr es hier aktiveren, ansonsten einfach {{Key|[Fortfahren]}}&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141106.PNG|50px]] OpenSSH-Server auswählen =&amp;gt; Erledigt (für Zugriff z.B. mit Putty)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141137.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
Ab jetzt heißt es abwarten. Wenn er kann lädt er gleich ein paar Sicherheitsupdates nach:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-121943.PNG|50px]] Jetzt neustarten&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122036.PNG|50px]] ISO aus der VM entfernen und {{Key|Enter}} drücken&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122152.PNG|50px]] Nach dem Reboot wartet ab bis diverse Meldungen abgelaufen sind&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PuTTY===&lt;br /&gt;
Ab dieser Stelle könnt Ihr PuTTY oder den SSH Client eurer Wahl nutzen - was ich dringend empfehle. Denn dann könnt Ihr hier vorgeschlagenen Befehle einfach per Copy&amp;amp;Paste übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die IP-Adresse habt Ihr zu diesem Zeitpunkt ja bereits festgelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-155245.PNG|150px]] [[Datei:ClipCapIt-200521-155339.PNG|150px]] [[Datei:ClipCapIt-200521-160706.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Anmeldung nutze ich immer gerne ein&lt;br /&gt;
 sudo -i&lt;br /&gt;
Damit wechselt man dauerhaft zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und muss nicht vor jedem Befehl ein &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; stellen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===root wieder freischalten===&lt;br /&gt;
{{Hinweis| Ob nun wie ich immer als root arbeiten wollt oder aber als einfacher Benutzer und dann immer &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; verwendet müsst Ihr selbst wissen}}&lt;br /&gt;
* Mit Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; anmelden&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
* Kennwort des Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
 passwd root&lt;br /&gt;
* neues Kennwort für &amp;quot;root&amp;quot; 2x eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161108.PNG|150px]]&lt;br /&gt;
* Lokal Anmelden kann man sich nun mit &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
* Damit diese auch funktioniert müsst ihr die &amp;lt;code&amp;gt;sshd_config&amp;lt;/code&amp;gt; bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
sucht nach der Zeile ({{Key|STRG}} + {{Key|W}} ist Suchen) nach&lt;br /&gt;
 #PermitRootLogin without-password&lt;br /&gt;
und stellt den Cursor in die Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt nun einmal {{Key|F9}} und 2x {{Key|F10}} - damit erstellt Ihr eine Kopie der Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert die Kopie wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161435.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Speichert die Datei ({{Key|STRG}} + {{Key|x}}, dann {{Key|y}} und {{Key|Enter}}) und startet den ssh Dienst neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart ssh.service&lt;br /&gt;
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über &#039;&#039;&#039;puTTY&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt 2x&amp;lt;br&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
eintippen wodurch sich das PuTTY Fenster schließt - der (eingeschränkte) Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; hat sich somit abgemeldet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ja, ich persönlich arbeite gerne als root und habe diesen für die Anmeldung freigeschaltet. Was ich nicht mache ist das Login per SSH mit Passwort zu erlauben. Ich hinterlege also immer einen SSH-Key für die Anmeldung und nutze diesen statt des Kennwortes. Die Lösung hier ist einfach gehalten, der Profi mögen anpassen wie er es braucht. Ein Anmeldung als eingeschränkter Benutzer geht natürlich auch, das erste was ich dann immer mache ist ein &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt; um dauerhaft zum root zu wechseln}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Anmelden als root===&lt;br /&gt;
Startet PuTTY wieder und meldet euch diesmal gleich als Benutzer &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; an.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===nano &amp;amp; Co auf Deutsch===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;nano&#039;&#039;&#039;&#039;&#039; war eben z.B. noch auf Englisch, mit&lt;br /&gt;
 apt install -y language-pack-de&lt;br /&gt;
ist es (und vieles andere) auf deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===root farbiger Prompt===&lt;br /&gt;
Als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; anmelden:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
Zeile 39 ({{Key|Alt}} + {{Key|C}} aktiviert Zeilennummernanzeige):&amp;lt;br&amp;gt;&lt;br /&gt;
 #force_color_prompt=yes&lt;br /&gt;
ändern zu (# entfernen):&amp;lt;br&amp;gt;&lt;br /&gt;
 force_color_prompt=yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162422.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wer den sofort haben will (ohne neu Anmelden):&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
----&lt;br /&gt;
===Bash History aus mehreren Sitzungen gleichzeitig===&lt;br /&gt;
Wenn man mehr als eine SSH Sitzung zum Zabbix-Server hat, gewinnt in der Bash-Histoy die Sitzung von der man sich zuletzt abmeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgende Änderung sorgt dafür das sich alle Sitzungen eine Bash-History teilen, was ich in Session 1 also aufrufe lässt sich sofort danach in Session 2 per Pfeil nach oben oder {{key|STRG}} + {{key|R}} Suche finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu bearbeiten man noch einmal die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
und hängt ganz unten folgendes an:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# don&#039;t put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;
# ... or force ignoredups and ignorespace&lt;br /&gt;
HISTCONTROL=ignoredups:ignorespace:erasedups&lt;br /&gt;
&lt;br /&gt;
# append to the history file, don&#039;t overwrite it&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&lt;br /&gt;
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)&lt;br /&gt;
HISTSIZE=50000&lt;br /&gt;
HISTFILESIZE=50000&lt;br /&gt;
&lt;br /&gt;
# After each command, append to the history file&lt;br /&gt;
#  and reread it&lt;br /&gt;
export PROMPT_COMMAND=&amp;quot;${PROMPT_COMMAND:+$PROMPT_COMMAND$&#039;n&#039;}history -a; history -c; history -r&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit es sofort aktiv wird wieder&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
Ja, {{code|HISTSIZE}} und {{code|HISTFILESIZE}} stehen nun 2x in der Datei, der letzte Eintrag gewinnt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Feste IP-Adresse vergeben===&lt;br /&gt;
Der Server hat dank des neuen Setupdialoges nun bereits eine feste IP-Adresse.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr an dieser etwas ändern müssen so müssen wir erst das Cloud-Init deaktivieren: &lt;br /&gt;
 nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg&lt;br /&gt;
Inhalt:&lt;br /&gt;
 network: {config: disabled}&lt;br /&gt;
Dann könnte Ihr in der folgenden Datei etwas ändern, die Warnungen das es einen reboot nicht übersteht könnt Ihr ignorieren, dafür haben wir die andere Datei angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162802.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Weiter unten deinstalliere ich Cloud-Init komplett (wenn die VM nicht bei einem Hoster läuft), da könnte man sich diesen Schritt hier sparen}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Updates einspielen===&lt;br /&gt;
* wieder anmelden als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; bzw. zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; wechseln&lt;br /&gt;
* Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)&lt;br /&gt;
 apt update&lt;br /&gt;
* Updates einspielen:&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
* Nach Update überflüssige Pakete entfernen:&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich mache das normalerweise immer als Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===VM Integrationsdienste installieren===&lt;br /&gt;
Wenn euer installiertes System eine VM, eine &#039;&#039;&#039;V&#039;&#039;&#039;irtuelle &#039;&#039;&#039;M&#039;&#039;&#039;aschine, ist, solltest Ihr je nach verwendeten Hypervisor die passenden Integrationsdienste installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====VMware====&lt;br /&gt;
Unter VMware braucht ihr nichts tun, die&lt;br /&gt;
 apt install open-vm-tools&lt;br /&gt;
sind per Default installiert und aktiv. Ist es keine VMware VM, so könnt Ihr die Tools per&lt;br /&gt;
 apt remove open-vm-tools&lt;br /&gt;
entfernen&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====Hyper-V====&lt;br /&gt;
In den Einstellungen der VM solltet Ihr hier den Haken setzen:&lt;br /&gt;
:[[Datei:ClipCapIt-250527-112648.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der VM die folgende Datei bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/initramfs-tools/modules&lt;br /&gt;
und ganz unten die folgenden 4 Zeilen anhängen:&amp;lt;br&amp;gt;&lt;br /&gt;
 hv_vmbus&lt;br /&gt;
 hv_storvsc&lt;br /&gt;
 hv_blkvsc&lt;br /&gt;
 hv_netvsc&lt;br /&gt;
Und dann die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
und neu starten:&lt;br /&gt;
 reboot&lt;br /&gt;
Quelle: https://community.veeam.com/blogs-and-podcasts-57/how-to-install-hyper-v-integration-services-in-the-ubuntu-linux-vm-6353&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Proxmox PVE====&lt;br /&gt;
In den Einstellungen der VM den Agenten aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250527-113037.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann in der VM die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install qemu-guest-agent&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Multipathing deinstallieren (wenn der Server eine VM ist)===&lt;br /&gt;
Ab Werk wird nun das&lt;br /&gt;
 /var/log/syslog&lt;br /&gt;
mit Multipath-Meldungen vollgemüllt:&amp;lt;br&amp;gt;&lt;br /&gt;
 2024-05-27T12:32:47.571374+00:00 ubuntu2404 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.&lt;br /&gt;
 2024-05-27T12:32:47.592304+00:00 ubuntu2404 kernel: systemd[1]: Listening on multipathd.socket - multipathd control socket.&lt;br /&gt;
 2024-05-27T12:32:47.592385+00:00 ubuntu2404 kernel: systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...&lt;br /&gt;
 2024-05-27T12:32:48.141146+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:48.141212+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:48.141278+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:32:57.634912+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:32:57.667862+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:57.667930+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:57.667959+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:07.637080+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:07.676773+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:33:07.676839+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:07.676865+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:17.641466+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:17.709843+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709915+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709942+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:17.709969+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:28.134951+00:00 ubuntu2404 multipathd[467]: sda: not initialized after 3 udev retriggers&lt;br /&gt;
 2024-05-27T12:33:29.139933+00:00 ubuntu2404 multipathd[467]: sda: add missing path&lt;br /&gt;
 2024-05-27T12:33:29.140037+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140063+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140086+00:00 ubuntu2404 multipathd[467]: sda: no WWID in state &amp;quot;undef&lt;br /&gt;
 2024-05-27T12:33:29.140109+00:00 ubuntu2404 multipathd[467]: &amp;quot;, giving up&lt;br /&gt;
 2024-05-27T12:33:29.140181+00:00 ubuntu2404 multipathd[467]: sda: check_path() failed, removing&lt;br /&gt;
Unter Ubuntu 24.04/22.04 scheint es nicht mehr ganz so schlimm wie unter 20.04 - aber in einer VM macht Multipath keinen Sinn, also deaktivieren und deinstallieren um das Syslog von den Meldungen befreien:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl stop multipathd.service &amp;amp;&amp;amp; systemctl disable multipathd.service&lt;br /&gt;
 apt install kpartx libsgutils2-1.46-2 sg3-utils sg3-utils-udev&lt;br /&gt;
 apt remove -y multipath-tools &amp;amp;&amp;amp; apt purge -y multipath-tools&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakete werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Cloud-Init deinstallieren (Wenn es keine VM bei einem Cloudanbieter ist)===&lt;br /&gt;
Wenn Ihr die VM reboootet und die Console betrachtet tauchen kurz nach dem Reboot (Fehler-)Meldungen zum Cloud-init auf:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-163633.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Cloud-Init ist - wenn ich mich recht erinnere - dafür da falls eure VM z.B. bei Amazon AWS, Azure oder andere Anbieter läuft um z.B. die Netzwerkinformationen vom Hoster/Provider zu erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Brauchen wir nicht, also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &#039;datasource_list: [ None ]&#039; | tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg&lt;br /&gt;
 apt purge -y cloud-init&lt;br /&gt;
 rm -rf /etc/cloud/ &amp;amp;&amp;amp; sudo rm -rf /var/lib/cloud/&lt;br /&gt;
 apt install eatmydata libeatmydata1 python-babel-localedata python3-babel python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-tz -y&lt;br /&gt;
 reboot&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakte werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===OpenIPMI und IPMItool deinstallieren===&lt;br /&gt;
Bei meinen VMs schlägt der Start dieses Dienstes eh immer fehl (weil es keine passende Hardware gibt), also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove openipmi ipmitool -y &amp;amp;&amp;amp; apt purge openipmi ipmitool &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Unter Hyper-V wird das Paket scheinbar nicht automatisch installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Zeitzone setzen===&lt;br /&gt;
In meiner VM ist die Uhrzeit zu diesem Zeitpunkt falsch (gebt mal probeweise &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; ein) - weil der ESXi-Host auf UTC Zeit läuft und die Ubuntu in der VM die richtige Zeitzone nicht eingestellt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir korrigieren das mit&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl set-timezone Europe/Berlin&lt;br /&gt;
ein&lt;br /&gt;
 date&lt;br /&gt;
sollte dann die richtige Uhrzeit ausspucken.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Zeitserver setzen===&lt;br /&gt;
{{Hinweis| Wenn Ihr diesen Schritt überspringt, wird {{Key|ntp.ubuntu.com}} als Zeitserver verwendet}}&lt;br /&gt;
Für die Zeitsynchronisierung ist der Dienst &amp;lt;code&amp;gt;systemd-timesyncd.service&amp;lt;/code&amp;gt; zuständig, dieser wird über die Datei&lt;br /&gt;
 nano /etc/systemd/timesyncd.conf&lt;br /&gt;
konfiguriert:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source &amp;quot;lang=bash&amp;quot;&amp;gt;&lt;br /&gt;
#  This file is part of systemd.&lt;br /&gt;
#&lt;br /&gt;
#  systemd is free software; you can redistribute it and/or modify it under the&lt;br /&gt;
#  terms of the GNU Lesser General Public License as published by the Free&lt;br /&gt;
#  Software Foundation; either version 2.1 of the License, or (at your option)&lt;br /&gt;
#  any later version.&lt;br /&gt;
#&lt;br /&gt;
# Entries in this file show the compile time defaults. Local configuration&lt;br /&gt;
# should be created by either modifying this file (or a copy of it placed in&lt;br /&gt;
# /etc/ if the original file is shipped in /usr/), or by creating &amp;quot;drop-ins&amp;quot; in&lt;br /&gt;
# the /etc/systemd/timesyncd.conf.d/ directory. The latter is generally&lt;br /&gt;
# recommended. Defaults can be restored by simply deleting the main&lt;br /&gt;
# configuration file and all drop-ins located in /etc/.&lt;br /&gt;
#&lt;br /&gt;
# Use &#039;systemd-analyze cat-config systemd/timesyncd.conf&#039; to display the full config.&lt;br /&gt;
#&lt;br /&gt;
# See timesyncd.conf(5) for details.&lt;br /&gt;
&lt;br /&gt;
[Time]&lt;br /&gt;
NTP=192.168.1.81&lt;br /&gt;
FallbackNTP=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
RootDistanceMaxSec=30&lt;br /&gt;
#PollIntervalMinSec=32&lt;br /&gt;
#PollIntervalMaxSec=2048&lt;br /&gt;
#ConnectionRetrySec=30&lt;br /&gt;
#SaveIntervalSec=60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sowohl die Liste der &#039;&#039;&#039;NTP=&#039;&#039;&#039; als auch der &#039;&#039;&#039;FallbackNTP=&#039;&#039;&#039; erwartet eine per Leerzeichen getrennte Liste der möglichen Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Laut Anleitung hört der Dienst aber beim ersten Treffer auf zu suchen. In der Praxis setzt also einen NTP-Server und ggf. die Fallback. Setzt Ihr einen Wert nicht, lasst diesen also auskommentiert, so gilt der Default-Wert, beim Fallback gilt dann &amp;lt;code&amp;gt;FallbackNTP=ntp.ubuntu.com&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Änderung müsst Ihr den Dienst einmal neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart systemd-timesyncd.service&lt;br /&gt;
und mit folgenden Befehl könnt Ihr den Status abfragen:&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl show-timesync&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 LinkNTPServers=fd00::1eed:6fff:fe71:f1c0&lt;br /&gt;
 SystemNTPServers=192.168.1.81&lt;br /&gt;
 FallbackNTPServers=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
 ServerName=192.168.1.81&lt;br /&gt;
 ServerAddress=192.168.1.81&lt;br /&gt;
 RootDistanceMaxUSec=30s&lt;br /&gt;
 PollIntervalMinUSec=32s&lt;br /&gt;
 PollIntervalMaxUSec=34min 8s&lt;br /&gt;
 PollIntervalUSec=2min 8s&lt;br /&gt;
 NTPMessage={ Leap=0, Version=3, Mode=4, Stratum=3, Precision=-23, RootDelay=20.324ms, RootDispersion=28.579ms, Reference=C0A801C6, OriginateTimestamp=Tue 2024-06-04 08:22:24 CEST, &lt;br /&gt;
 ReceiveTimestamp=Tue 2024-06-04 08:22:24 CEST, TransmitTimestamp=Tue 2024-06-04 08:22:24 CEST, DestinationTimestamp=Tue 2024-06-04 08:22:24 CEST, Ignored=no, PacketCount=2, Jitter=239us }&lt;br /&gt;
 Frequency=1158037&lt;br /&gt;
Wenn die untere Zeile mit &amp;lt;code&amp;gt;NTPMessage=&amp;lt;/code&amp;gt; nicht erscheint, habt Ihr ein Problem!&amp;lt;br&amp;gt;&lt;br /&gt;
Mit&amp;lt;br&amp;gt;&lt;br /&gt;
 journalctl -fu systemd-timesyncd.service&lt;br /&gt;
könnte Ihr nach dem Grund suchen. Steht da etwas wie &#039;&#039;&#039;&#039;&#039;Server has to large root distance. Disconnecting&#039;&#039;&#039;&#039;&#039; und es gegen einen Domänencontroller geht so stellt sicher das&lt;br /&gt;
* Es der PDC ist&lt;br /&gt;
* Dieser sich auch selbst mit einer externen Quelle synchronisiert&lt;br /&gt;
* Stellt ggf. den Wert von &amp;lt;code&amp;gt;RootDistanceMaxUSec=30s&amp;lt;/code&amp;gt; noch höher.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatische Updates deaktivieren===&lt;br /&gt;
Ich persönlich möchte nicht das der Zabbix-Server automatisch Updates einspielt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates aktualisieren - soweit ich das beobachten konnte - nur den Kernel. Aber auch das möchte ich nicht. Ich möchte das geplant durchführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates verhindern wir mit&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove -y unattended-upgrades&lt;br /&gt;
Wer möchte kann auch die Suche nach Updates deaktivieren. Ansonsten schaut das Ubuntu täglich an einem zufälligen Zeitpunkt nach, ob es Updates gibt. Bei der Anmeldung per SSH erhält man dann eine entsprechende Meldung. Deaktivieren kann man die automatsche Suche danach per&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apt/apt.conf.d/20auto-upgrades&lt;br /&gt;
und in der Datei beide Optionen auf {{code|0}} setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
 APT::Periodic::Update-Package-Lists &amp;quot;0&amp;quot;;&lt;br /&gt;
 APT::Periodic::Unattended-Upgrade &amp;quot;0&amp;quot;;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatischen Neustart von Diensten bei Updates deaktivieren===&lt;br /&gt;
Wie schon zuvor beschrieben aktualisiere ich Ubuntu (und andere Software aus Repos) gerne per folgenden Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
In neueren Versionen werden dabei Dienste ggf. automatische neu gestartet, es gibt dann eine Meldung wie diese:&lt;br /&gt;
 systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service&lt;br /&gt;
 &lt;br /&gt;
 Dienste deren Neustart verschoben wurde:&lt;br /&gt;
  systemctl restart ModemManager.service&lt;br /&gt;
  /etc/needrestart/restart.d/dbus.service&lt;br /&gt;
  systemctl restart getty@tty1.service&lt;br /&gt;
  systemctl restart systemd-logind.service&lt;br /&gt;
Im Normalfall ist es kein Problem. Allerdings scheinen die Abhängigkeiten der Dienste nicht beachtet zu werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ist zum Beispiel ein Dienst abhängig von der Datenbank / MySQL|MariaDB, das steht auch so in der &amp;lt;code&amp;gt;/usr/lib/systemd/system/namedesdienstes.service&amp;lt;/code&amp;gt;:&lt;br /&gt;
 After=mysql.service&lt;br /&gt;
 After=mysqld.service&lt;br /&gt;
 After=mariadb.service&lt;br /&gt;
Der automatische Neustart startet aber z.B. MariaDB gnadenlos durch ohne vorher abhängige Dienste zu beenden. Schön ist das nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Als Lösung schalte ich inzwischen den automatischen Neustart der Dienste ab, es wird dann nur eine Liste der Dienste ausgegeben die neu gestartet werden müssten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/needrestart/needrestart.conf&lt;br /&gt;
und dort ziemlich am Anfang:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.&lt;br /&gt;
#&lt;br /&gt;
# ATTENTION: If needrestart is configured to run in interactive mode but is run&lt;br /&gt;
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.&lt;br /&gt;
#&lt;br /&gt;
# UBUNTU: the default restart mode when running as part of the APT hook is &#039;a&#039;,&lt;br /&gt;
# unless a specific UI is configured (see below).&lt;br /&gt;
#$nrconf{restart} = &#039;i&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;, wie es auch in der obersten Zeile beschrieben wird:&lt;br /&gt;
 $nrconf{restart} = &#039;l&#039;;&lt;br /&gt;
So werden notwendige Neustarts nur aufgelistet. Diese kann man dann von Hand neu starten oder einfach das ganze System rebooten.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15770</id>
		<title>Vorlage:Installation-Ubuntu-2404</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15770"/>
		<updated>2026-02-17T17:12:44Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Automatischen Neustart von Diensten bei Updates deaktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Grundinstallation===&lt;br /&gt;
{{Hinweis| Ich habe die offizielle ISO verwendet: https://ubuntu.com/download/server }}&lt;br /&gt;
{{Hinweis| Ich installiere mit Absicht &#039;&#039;&#039;OHNE&#039;&#039;&#039; LVM. Ubuntu erstellt inzwischen keine eigene Partition für SWAP mehr und ohne LVM lässt sich der Festplattenplatz bei einer Installation als VM auf einfachste Weise im laufenden Betrieb erweitern. Natürlich ginge das auch mit LVM (mit mehr Schritten), ich sehe hier den Nutzen und Vorteil aber nicht.}}&lt;br /&gt;
CD einlegen und los,&amp;lt;br&amp;gt;&lt;br /&gt;
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-251210-111023.PNG|50px]] Try or Install Ubuntu Server&amp;lt;br&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140440.PNG|50px]] Deutsch&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-115808.PNG|50px]] German / German&amp;lt;br&amp;gt;&lt;br /&gt;
:Wenn er einen neueren Installer findet und fragt ob er auf diesen aktualisieren soll - Ja!&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Install_Ubuntu2204_Pic2.png|50px]] Ubuntu Server&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120131.PNG|50px]] Jetzt könnt Ihr schon die gewünschte feste IP-Adresse einstellen. Wählt dazu mit den Pfeiltasten den &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; Eintrag aus und drückt {{Key|Enter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152546.PNG|50px]] ens192 =&amp;gt; Bearbeite IPv4&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152642.PNG|50px]] Manuell&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152742.PNG|50px]] Bei Subnetz kommt nicht die Subnetzmaske sondern das Netzwerk mit Suffix. Bei einer 24 Maske (= 255.255.255.0) ist das die IP 0 mit Suffix /24&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-153302.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120259.PNG|50px]] Bei Bedarf, sonst leer lassen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120335.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120400.PNG|50px]] Nutzt die ganze Festplatte ohne LVM (also Haken entfernen). Die Festplatte lässt sich später trotzdem leicht vergrößern&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120443.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120505.PNG|50px]] Fortfahren&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120827.PNG|50px]] Den Servernamen festlegen. Ich lege hier den Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; an. Wählt euren Benutzer und Passwort nach Wunsch (Aufschreiben!)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140937.PNG|50px]] Falls Ihr Ubuntu Pro habt, könnet Ihr es hier aktiveren, ansonsten einfach {{Key|[Fortfahren]}}&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141106.PNG|50px]] OpenSSH-Server auswählen =&amp;gt; Erledigt (für Zugriff z.B. mit Putty)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141137.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
Ab jetzt heißt es abwarten. Wenn er kann lädt er gleich ein paar Sicherheitsupdates nach:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-121943.PNG|50px]] Jetzt neustarten&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122036.PNG|50px]] ISO aus der VM entfernen und {{Key|Enter}} drücken&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122152.PNG|50px]] Nach dem Reboot wartet ab bis diverse Meldungen abgelaufen sind&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PuTTY===&lt;br /&gt;
Ab dieser Stelle könnt Ihr PuTTY oder den SSH Client eurer Wahl nutzen - was ich dringend empfehle. Denn dann könnt Ihr hier vorgeschlagenen Befehle einfach per Copy&amp;amp;Paste übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die IP-Adresse habt Ihr zu diesem Zeitpunkt ja bereits festgelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-155245.PNG|150px]] [[Datei:ClipCapIt-200521-155339.PNG|150px]] [[Datei:ClipCapIt-200521-160706.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Anmeldung nutze ich immer gerne ein&lt;br /&gt;
 sudo -i&lt;br /&gt;
Damit wechselt man dauerhaft zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und muss nicht vor jedem Befehl ein &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; stellen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===root wieder freischalten===&lt;br /&gt;
{{Hinweis| Ob nun wie ich immer als root arbeiten wollt oder aber als einfacher Benutzer und dann immer &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; verwendet müsst Ihr selbst wissen}}&lt;br /&gt;
* Mit Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; anmelden&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
* Kennwort des Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
 passwd root&lt;br /&gt;
* neues Kennwort für &amp;quot;root&amp;quot; 2x eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161108.PNG|150px]]&lt;br /&gt;
* Lokal Anmelden kann man sich nun mit &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
* Damit diese auch funktioniert müsst ihr die &amp;lt;code&amp;gt;sshd_config&amp;lt;/code&amp;gt; bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
sucht nach der Zeile ({{Key|STRG}} + {{Key|W}} ist Suchen) nach&lt;br /&gt;
 #PermitRootLogin without-password&lt;br /&gt;
und stellt den Cursor in die Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt nun einmal {{Key|F9}} und 2x {{Key|F10}} - damit erstellt Ihr eine Kopie der Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert die Kopie wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161435.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Speichert die Datei ({{Key|STRG}} + {{Key|x}}, dann {{Key|y}} und {{Key|Enter}}) und startet den ssh Dienst neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart ssh.service&lt;br /&gt;
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über &#039;&#039;&#039;puTTY&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt 2x&amp;lt;br&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
eintippen wodurch sich das PuTTY Fenster schließt - der (eingeschränkte) Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; hat sich somit abgemeldet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ja, ich persönlich arbeite gerne als root und habe diesen für die Anmeldung freigeschaltet. Was ich nicht mache ist das Login per SSH mit Passwort zu erlauben. Ich hinterlege also immer einen SSH-Key für die Anmeldung und nutze diesen statt des Kennwortes. Die Lösung hier ist einfach gehalten, der Profi mögen anpassen wie er es braucht. Ein Anmeldung als eingeschränkter Benutzer geht natürlich auch, das erste was ich dann immer mache ist ein &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt; um dauerhaft zum root zu wechseln}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Anmelden als root===&lt;br /&gt;
Startet PuTTY wieder und meldet euch diesmal gleich als Benutzer &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; an.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===nano &amp;amp; Co auf Deutsch===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;nano&#039;&#039;&#039;&#039;&#039; war eben z.B. noch auf Englisch, mit&lt;br /&gt;
 apt install -y language-pack-de&lt;br /&gt;
ist es (und vieles andere) auf deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===root farbiger Prompt===&lt;br /&gt;
Als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; anmelden:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
Zeile 39 ({{Key|Alt}} + {{Key|C}} aktiviert Zeilennummernanzeige):&amp;lt;br&amp;gt;&lt;br /&gt;
 #force_color_prompt=yes&lt;br /&gt;
ändern zu (# entfernen):&amp;lt;br&amp;gt;&lt;br /&gt;
 force_color_prompt=yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162422.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wer den sofort haben will (ohne neu Anmelden):&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
----&lt;br /&gt;
===Bash History aus mehreren Sitzungen gleichzeitig===&lt;br /&gt;
Wenn man mehr als eine SSH Sitzung zum Zabbix-Server hat, gewinnt in der Bash-Histoy die Sitzung von der man sich zuletzt abmeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgende Änderung sorgt dafür das sich alle Sitzungen eine Bash-History teilen, was ich in Session 1 also aufrufe lässt sich sofort danach in Session 2 per Pfeil nach oben oder {{key|STRG}} + {{key|R}} Suche finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu bearbeiten man noch einmal die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
und hängt ganz unten folgendes an:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# don&#039;t put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;
# ... or force ignoredups and ignorespace&lt;br /&gt;
HISTCONTROL=ignoredups:ignorespace:erasedups&lt;br /&gt;
&lt;br /&gt;
# append to the history file, don&#039;t overwrite it&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&lt;br /&gt;
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)&lt;br /&gt;
HISTSIZE=50000&lt;br /&gt;
HISTFILESIZE=50000&lt;br /&gt;
&lt;br /&gt;
# After each command, append to the history file&lt;br /&gt;
#  and reread it&lt;br /&gt;
export PROMPT_COMMAND=&amp;quot;${PROMPT_COMMAND:+$PROMPT_COMMAND$&#039;n&#039;}history -a; history -c; history -r&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit es sofort aktiv wird wieder&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
Ja, {{code|HISTSIZE}} und {{code|HISTFILESIZE}} stehen nun 2x in der Datei, der letzte Eintrag gewinnt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Feste IP-Adresse vergeben===&lt;br /&gt;
Der Server hat dank des neuen Setupdialoges nun bereits eine feste IP-Adresse.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr an dieser etwas ändern müssen so müssen wir erst das Cloud-Init deaktivieren: &lt;br /&gt;
 nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg&lt;br /&gt;
Inhalt:&lt;br /&gt;
 network: {config: disabled}&lt;br /&gt;
Dann könnte Ihr in der folgenden Datei etwas ändern, die Warnungen das es einen reboot nicht übersteht könnt Ihr ignorieren, dafür haben wir die andere Datei angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162802.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Weiter unten deinstalliere ich Cloud-Init komplett (wenn die VM nicht bei einem Hoster läuft), da könnte man sich diesen Schritt hier sparen}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Updates einspielen===&lt;br /&gt;
* wieder anmelden als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; bzw. zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; wechseln&lt;br /&gt;
* Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)&lt;br /&gt;
 apt update&lt;br /&gt;
* Updates einspielen:&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
* Nach Update überflüssige Pakete entfernen:&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich mache das normalerweise immer als Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===VM Integrationsdienste installieren===&lt;br /&gt;
Wenn euer installiertes System eine VM, eine &#039;&#039;&#039;V&#039;&#039;&#039;irtuelle &#039;&#039;&#039;M&#039;&#039;&#039;aschine, ist, solltest Ihr je nach verwendeten Hypervisor die passenden Integrationsdienste installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====VMware====&lt;br /&gt;
Unter VMware braucht ihr nichts tun, die&lt;br /&gt;
 apt install open-vm-tools&lt;br /&gt;
sind per Default installiert und aktiv. Ist es keine VMware VM, so könnt Ihr die Tools per&lt;br /&gt;
 apt remove open-vm-tools&lt;br /&gt;
entfernen&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====Hyper-V====&lt;br /&gt;
In den Einstellungen der VM solltet Ihr hier den Haken setzen:&lt;br /&gt;
:[[Datei:ClipCapIt-250527-112648.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der VM die folgende Datei bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/initramfs-tools/modules&lt;br /&gt;
und ganz unten die folgenden 4 Zeilen anhängen:&amp;lt;br&amp;gt;&lt;br /&gt;
 hv_vmbus&lt;br /&gt;
 hv_storvsc&lt;br /&gt;
 hv_blkvsc&lt;br /&gt;
 hv_netvsc&lt;br /&gt;
Und dann die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
und neu starten:&lt;br /&gt;
 reboot&lt;br /&gt;
Quelle: https://community.veeam.com/blogs-and-podcasts-57/how-to-install-hyper-v-integration-services-in-the-ubuntu-linux-vm-6353&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Proxmox PVE====&lt;br /&gt;
In den Einstellungen der VM den Agenten aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250527-113037.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann in der VM die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install qemu-guest-agent&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Multipathing deinstallieren (wenn der Server eine VM ist)===&lt;br /&gt;
Ab Werk wird nun das&lt;br /&gt;
 /var/log/syslog&lt;br /&gt;
mit Multipath-Meldungen vollgemüllt:&amp;lt;br&amp;gt;&lt;br /&gt;
 2024-05-27T12:32:47.571374+00:00 ubuntu2404 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.&lt;br /&gt;
 2024-05-27T12:32:47.592304+00:00 ubuntu2404 kernel: systemd[1]: Listening on multipathd.socket - multipathd control socket.&lt;br /&gt;
 2024-05-27T12:32:47.592385+00:00 ubuntu2404 kernel: systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...&lt;br /&gt;
 2024-05-27T12:32:48.141146+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:48.141212+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:48.141278+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:32:57.634912+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:32:57.667862+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:57.667930+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:57.667959+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:07.637080+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:07.676773+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:33:07.676839+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:07.676865+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:17.641466+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:17.709843+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709915+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709942+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:17.709969+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:28.134951+00:00 ubuntu2404 multipathd[467]: sda: not initialized after 3 udev retriggers&lt;br /&gt;
 2024-05-27T12:33:29.139933+00:00 ubuntu2404 multipathd[467]: sda: add missing path&lt;br /&gt;
 2024-05-27T12:33:29.140037+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140063+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140086+00:00 ubuntu2404 multipathd[467]: sda: no WWID in state &amp;quot;undef&lt;br /&gt;
 2024-05-27T12:33:29.140109+00:00 ubuntu2404 multipathd[467]: &amp;quot;, giving up&lt;br /&gt;
 2024-05-27T12:33:29.140181+00:00 ubuntu2404 multipathd[467]: sda: check_path() failed, removing&lt;br /&gt;
Unter Ubuntu 24.04/22.04 scheint es nicht mehr ganz so schlimm wie unter 20.04 - aber in einer VM macht Multipath keinen Sinn, also deaktivieren und deinstallieren um das Syslog von den Meldungen befreien:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl stop multipathd.service &amp;amp;&amp;amp; systemctl disable multipathd.service&lt;br /&gt;
 apt install kpartx libsgutils2-1.46-2 sg3-utils sg3-utils-udev&lt;br /&gt;
 apt remove -y multipath-tools &amp;amp;&amp;amp; apt purge -y multipath-tools&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakete werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Cloud-Init deinstallieren (Wenn es keine VM bei einem Cloudanbieter ist)===&lt;br /&gt;
Wenn Ihr die VM reboootet und die Console betrachtet tauchen kurz nach dem Reboot (Fehler-)Meldungen zum Cloud-init auf:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-163633.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Cloud-Init ist - wenn ich mich recht erinnere - dafür da falls eure VM z.B. bei Amazon AWS, Azure oder andere Anbieter läuft um z.B. die Netzwerkinformationen vom Hoster/Provider zu erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Brauchen wir nicht, also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &#039;datasource_list: [ None ]&#039; | tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg&lt;br /&gt;
 apt purge -y cloud-init&lt;br /&gt;
 rm -rf /etc/cloud/ &amp;amp;&amp;amp; sudo rm -rf /var/lib/cloud/&lt;br /&gt;
 apt install eatmydata libeatmydata1 python-babel-localedata python3-babel python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-tz -y&lt;br /&gt;
 reboot&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakte werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===OpenIPMI und IPMItool deinstallieren===&lt;br /&gt;
Bei meinen VMs schlägt der Start dieses Dienstes eh immer fehl (weil es keine passende Hardware gibt), also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove openipmi ipmitool -y &amp;amp;&amp;amp; apt purge openipmi ipmitool &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Unter Hyper-V wird das Paket scheinbar nicht automatisch installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Zeitzone setzen===&lt;br /&gt;
In meiner VM ist die Uhrzeit zu diesem Zeitpunkt falsch (gebt mal probeweise &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; ein) - weil der ESXi-Host auf UTC Zeit läuft und die Ubuntu in der VM die richtige Zeitzone nicht eingestellt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir korrigieren das mit&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl set-timezone Europe/Berlin&lt;br /&gt;
ein&lt;br /&gt;
 date&lt;br /&gt;
sollte dann die richtige Uhrzeit ausspucken.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Zeitserver setzen===&lt;br /&gt;
{{Hinweis| Wenn Ihr diesen Schritt überspringt, wird {{Key|ntp.ubuntu.com}} als Zeitserver verwendet}}&lt;br /&gt;
Für die Zeitsynchronisierung ist der Dienst &amp;lt;code&amp;gt;systemd-timesyncd.service&amp;lt;/code&amp;gt; zuständig, dieser wird über die Datei&lt;br /&gt;
 nano /etc/systemd/timesyncd.conf&lt;br /&gt;
konfiguriert:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source &amp;quot;lang=bash&amp;quot;&amp;gt;&lt;br /&gt;
#  This file is part of systemd.&lt;br /&gt;
#&lt;br /&gt;
#  systemd is free software; you can redistribute it and/or modify it under the&lt;br /&gt;
#  terms of the GNU Lesser General Public License as published by the Free&lt;br /&gt;
#  Software Foundation; either version 2.1 of the License, or (at your option)&lt;br /&gt;
#  any later version.&lt;br /&gt;
#&lt;br /&gt;
# Entries in this file show the compile time defaults. Local configuration&lt;br /&gt;
# should be created by either modifying this file (or a copy of it placed in&lt;br /&gt;
# /etc/ if the original file is shipped in /usr/), or by creating &amp;quot;drop-ins&amp;quot; in&lt;br /&gt;
# the /etc/systemd/timesyncd.conf.d/ directory. The latter is generally&lt;br /&gt;
# recommended. Defaults can be restored by simply deleting the main&lt;br /&gt;
# configuration file and all drop-ins located in /etc/.&lt;br /&gt;
#&lt;br /&gt;
# Use &#039;systemd-analyze cat-config systemd/timesyncd.conf&#039; to display the full config.&lt;br /&gt;
#&lt;br /&gt;
# See timesyncd.conf(5) for details.&lt;br /&gt;
&lt;br /&gt;
[Time]&lt;br /&gt;
NTP=192.168.1.81&lt;br /&gt;
FallbackNTP=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
RootDistanceMaxSec=30&lt;br /&gt;
#PollIntervalMinSec=32&lt;br /&gt;
#PollIntervalMaxSec=2048&lt;br /&gt;
#ConnectionRetrySec=30&lt;br /&gt;
#SaveIntervalSec=60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sowohl die Liste der &#039;&#039;&#039;NTP=&#039;&#039;&#039; als auch der &#039;&#039;&#039;FallbackNTP=&#039;&#039;&#039; erwartet eine per Leerzeichen getrennte Liste der möglichen Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Laut Anleitung hört der Dienst aber beim ersten Treffer auf zu suchen. In der Praxis setzt also einen NTP-Server und ggf. die Fallback. Setzt Ihr einen Wert nicht, lasst diesen also auskommentiert, so gilt der Default-Wert, beim Fallback gilt dann &amp;lt;code&amp;gt;FallbackNTP=ntp.ubuntu.com&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Änderung müsst Ihr den Dienst einmal neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart systemd-timesyncd.service&lt;br /&gt;
und mit folgenden Befehl könnt Ihr den Status abfragen:&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl show-timesync&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 LinkNTPServers=fd00::1eed:6fff:fe71:f1c0&lt;br /&gt;
 SystemNTPServers=192.168.1.81&lt;br /&gt;
 FallbackNTPServers=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
 ServerName=192.168.1.81&lt;br /&gt;
 ServerAddress=192.168.1.81&lt;br /&gt;
 RootDistanceMaxUSec=30s&lt;br /&gt;
 PollIntervalMinUSec=32s&lt;br /&gt;
 PollIntervalMaxUSec=34min 8s&lt;br /&gt;
 PollIntervalUSec=2min 8s&lt;br /&gt;
 NTPMessage={ Leap=0, Version=3, Mode=4, Stratum=3, Precision=-23, RootDelay=20.324ms, RootDispersion=28.579ms, Reference=C0A801C6, OriginateTimestamp=Tue 2024-06-04 08:22:24 CEST, &lt;br /&gt;
 ReceiveTimestamp=Tue 2024-06-04 08:22:24 CEST, TransmitTimestamp=Tue 2024-06-04 08:22:24 CEST, DestinationTimestamp=Tue 2024-06-04 08:22:24 CEST, Ignored=no, PacketCount=2, Jitter=239us }&lt;br /&gt;
 Frequency=1158037&lt;br /&gt;
Wenn die untere Zeile mit &amp;lt;code&amp;gt;NTPMessage=&amp;lt;/code&amp;gt; nicht erscheint, habt Ihr ein Problem!&amp;lt;br&amp;gt;&lt;br /&gt;
Mit&amp;lt;br&amp;gt;&lt;br /&gt;
 journalctl -fu systemd-timesyncd.service&lt;br /&gt;
könnte Ihr nach dem Grund suchen. Steht da etwas wie &#039;&#039;&#039;&#039;&#039;Server has to large root distance. Disconnecting&#039;&#039;&#039;&#039;&#039; und es gegen einen Domänencontroller geht so stellt sicher das&lt;br /&gt;
* Es der PDC ist&lt;br /&gt;
* Dieser sich auch selbst mit einer externen Quelle synchronisiert&lt;br /&gt;
* Stellt ggf. den Wert von &amp;lt;code&amp;gt;RootDistanceMaxUSec=30s&amp;lt;/code&amp;gt; noch höher.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatische Updates deaktivieren===&lt;br /&gt;
Ich persönlich möchte nicht das der Zabbix-Server automatisch Updates einspielt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates aktualisieren - soweit ich das beobachten konnte - nur den Kernel. Aber auch das möchte ich nicht. Ich möchte das geplant durchführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates verhindern wir mit&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove -y unattended-upgrades&lt;br /&gt;
Wer möchte kann auch die Suche nach Updates deaktivieren. Ansonsten schaut das Ubuntu täglich an einem zufälligen Zeitpunkt nach, ob es Updates gibt. Bei der Anmeldung per SSH erhält man dann eine entsprechende Meldung. Deaktivieren kann man die automatsche Suche danach per&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apt/apt.conf.d/20auto-upgrades&lt;br /&gt;
und in der Datei beide Optionen auf {{code|0}} setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
 APT::Periodic::Update-Package-Lists &amp;quot;0&amp;quot;;&lt;br /&gt;
 APT::Periodic::Unattended-Upgrade &amp;quot;0&amp;quot;;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatischen Neustart von Diensten bei Updates deaktivieren===&lt;br /&gt;
Wie schon zuvor beschrieben aktualisiere ich Ubuntu (und andere Software aus Repos) gerne per folgenden Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
In neueren Versionen werden dabei Dienste ggf. automatische neu gestartet, es gibt dann eine Meldung wie diese:&lt;br /&gt;
 systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service&lt;br /&gt;
 &lt;br /&gt;
 Dienste deren Neustart verschoben wurde:&lt;br /&gt;
  systemctl restart ModemManager.service&lt;br /&gt;
  /etc/needrestart/restart.d/dbus.service&lt;br /&gt;
  systemctl restart getty@tty1.service&lt;br /&gt;
  systemctl restart systemd-logind.service&lt;br /&gt;
Im Normalfall ist es kein Problem. Allerdings scheinen die Abhängigkeiten der Dienste nicht beachtet zu werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Beispiel der Zabbix-Server Dienst ist abhängig von der Datenbank, das steht auch so in der &amp;lt;code&amp;gt;/usr/lib/systemd/system/zabbix-server.service&amp;lt;/code&amp;gt;:&lt;br /&gt;
 After=mysql.service&lt;br /&gt;
 After=mysqld.service&lt;br /&gt;
 After=mariadb.service&lt;br /&gt;
Der automatische Neustart startet aber z.B. MariaDB gnadenlos durch ohne vorher den Zabbix zu beenden. Dabei hängt sich das ganze gerne mal weg. Per {{Key|STRG} + {Key|C} kann man das abbrechen und rebooten, schön ist das aber nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Als Lösung schalte ich inzwischen den automatischen Neustart der Dienste ab, es wird dann nur eine Liste der Dienste ausgegeben die neu gestartet werden müssten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/needrestart/needrestart.conf&lt;br /&gt;
und dort ziemlich am Anfang:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.&lt;br /&gt;
#&lt;br /&gt;
# ATTENTION: If needrestart is configured to run in interactive mode but is run&lt;br /&gt;
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.&lt;br /&gt;
#&lt;br /&gt;
# UBUNTU: the default restart mode when running as part of the APT hook is &#039;a&#039;,&lt;br /&gt;
# unless a specific UI is configured (see below).&lt;br /&gt;
#$nrconf{restart} = &#039;i&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;, wie es auch in der obersten Zeile beschrieben wird:&lt;br /&gt;
 $nrconf{restart} = &#039;l&#039;;&lt;br /&gt;
So werden notwendige Neustarts nur aufgelistet.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15769</id>
		<title>Vorlage:Installation-Ubuntu-2404</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15769"/>
		<updated>2026-02-17T17:11:28Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Grundinstallation===&lt;br /&gt;
{{Hinweis| Ich habe die offizielle ISO verwendet: https://ubuntu.com/download/server }}&lt;br /&gt;
{{Hinweis| Ich installiere mit Absicht &#039;&#039;&#039;OHNE&#039;&#039;&#039; LVM. Ubuntu erstellt inzwischen keine eigene Partition für SWAP mehr und ohne LVM lässt sich der Festplattenplatz bei einer Installation als VM auf einfachste Weise im laufenden Betrieb erweitern. Natürlich ginge das auch mit LVM (mit mehr Schritten), ich sehe hier den Nutzen und Vorteil aber nicht.}}&lt;br /&gt;
CD einlegen und los,&amp;lt;br&amp;gt;&lt;br /&gt;
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-251210-111023.PNG|50px]] Try or Install Ubuntu Server&amp;lt;br&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140440.PNG|50px]] Deutsch&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-115808.PNG|50px]] German / German&amp;lt;br&amp;gt;&lt;br /&gt;
:Wenn er einen neueren Installer findet und fragt ob er auf diesen aktualisieren soll - Ja!&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Install_Ubuntu2204_Pic2.png|50px]] Ubuntu Server&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120131.PNG|50px]] Jetzt könnt Ihr schon die gewünschte feste IP-Adresse einstellen. Wählt dazu mit den Pfeiltasten den &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; Eintrag aus und drückt {{Key|Enter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152546.PNG|50px]] ens192 =&amp;gt; Bearbeite IPv4&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152642.PNG|50px]] Manuell&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152742.PNG|50px]] Bei Subnetz kommt nicht die Subnetzmaske sondern das Netzwerk mit Suffix. Bei einer 24 Maske (= 255.255.255.0) ist das die IP 0 mit Suffix /24&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-153302.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120259.PNG|50px]] Bei Bedarf, sonst leer lassen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120335.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120400.PNG|50px]] Nutzt die ganze Festplatte ohne LVM (also Haken entfernen). Die Festplatte lässt sich später trotzdem leicht vergrößern&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120443.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120505.PNG|50px]] Fortfahren&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120827.PNG|50px]] Den Servernamen festlegen. Ich lege hier den Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; an. Wählt euren Benutzer und Passwort nach Wunsch (Aufschreiben!)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140937.PNG|50px]] Falls Ihr Ubuntu Pro habt, könnet Ihr es hier aktiveren, ansonsten einfach {{Key|[Fortfahren]}}&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141106.PNG|50px]] OpenSSH-Server auswählen =&amp;gt; Erledigt (für Zugriff z.B. mit Putty)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141137.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
Ab jetzt heißt es abwarten. Wenn er kann lädt er gleich ein paar Sicherheitsupdates nach:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-121943.PNG|50px]] Jetzt neustarten&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122036.PNG|50px]] ISO aus der VM entfernen und {{Key|Enter}} drücken&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122152.PNG|50px]] Nach dem Reboot wartet ab bis diverse Meldungen abgelaufen sind&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PuTTY===&lt;br /&gt;
Ab dieser Stelle könnt Ihr PuTTY oder den SSH Client eurer Wahl nutzen - was ich dringend empfehle. Denn dann könnt Ihr hier vorgeschlagenen Befehle einfach per Copy&amp;amp;Paste übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die IP-Adresse habt Ihr zu diesem Zeitpunkt ja bereits festgelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-155245.PNG|150px]] [[Datei:ClipCapIt-200521-155339.PNG|150px]] [[Datei:ClipCapIt-200521-160706.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Anmeldung nutze ich immer gerne ein&lt;br /&gt;
 sudo -i&lt;br /&gt;
Damit wechselt man dauerhaft zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und muss nicht vor jedem Befehl ein &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; stellen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===root wieder freischalten===&lt;br /&gt;
{{Hinweis| Ob nun wie ich immer als root arbeiten wollt oder aber als einfacher Benutzer und dann immer &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; verwendet müsst Ihr selbst wissen}}&lt;br /&gt;
* Mit Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; anmelden&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
* Kennwort des Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
 passwd root&lt;br /&gt;
* neues Kennwort für &amp;quot;root&amp;quot; 2x eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161108.PNG|150px]]&lt;br /&gt;
* Lokal Anmelden kann man sich nun mit &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
* Damit diese auch funktioniert müsst ihr die &amp;lt;code&amp;gt;sshd_config&amp;lt;/code&amp;gt; bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
sucht nach der Zeile ({{Key|STRG}} + {{Key|W}} ist Suchen) nach&lt;br /&gt;
 #PermitRootLogin without-password&lt;br /&gt;
und stellt den Cursor in die Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt nun einmal {{Key|F9}} und 2x {{Key|F10}} - damit erstellt Ihr eine Kopie der Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert die Kopie wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161435.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Speichert die Datei ({{Key|STRG}} + {{Key|x}}, dann {{Key|y}} und {{Key|Enter}}) und startet den ssh Dienst neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart ssh.service&lt;br /&gt;
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über &#039;&#039;&#039;puTTY&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt 2x&amp;lt;br&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
eintippen wodurch sich das PuTTY Fenster schließt - der (eingeschränkte) Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; hat sich somit abgemeldet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ja, ich persönlich arbeite gerne als root und habe diesen für die Anmeldung freigeschaltet. Was ich nicht mache ist das Login per SSH mit Passwort zu erlauben. Ich hinterlege also immer einen SSH-Key für die Anmeldung und nutze diesen statt des Kennwortes. Die Lösung hier ist einfach gehalten, der Profi mögen anpassen wie er es braucht. Ein Anmeldung als eingeschränkter Benutzer geht natürlich auch, das erste was ich dann immer mache ist ein &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt; um dauerhaft zum root zu wechseln}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Anmelden als root===&lt;br /&gt;
Startet PuTTY wieder und meldet euch diesmal gleich als Benutzer &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; an.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===nano &amp;amp; Co auf Deutsch===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;nano&#039;&#039;&#039;&#039;&#039; war eben z.B. noch auf Englisch, mit&lt;br /&gt;
 apt install -y language-pack-de&lt;br /&gt;
ist es (und vieles andere) auf deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===root farbiger Prompt===&lt;br /&gt;
Als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; anmelden:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
Zeile 39 ({{Key|Alt}} + {{Key|C}} aktiviert Zeilennummernanzeige):&amp;lt;br&amp;gt;&lt;br /&gt;
 #force_color_prompt=yes&lt;br /&gt;
ändern zu (# entfernen):&amp;lt;br&amp;gt;&lt;br /&gt;
 force_color_prompt=yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162422.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wer den sofort haben will (ohne neu Anmelden):&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
----&lt;br /&gt;
===Bash History aus mehreren Sitzungen gleichzeitig===&lt;br /&gt;
Wenn man mehr als eine SSH Sitzung zum Zabbix-Server hat, gewinnt in der Bash-Histoy die Sitzung von der man sich zuletzt abmeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgende Änderung sorgt dafür das sich alle Sitzungen eine Bash-History teilen, was ich in Session 1 also aufrufe lässt sich sofort danach in Session 2 per Pfeil nach oben oder {{key|STRG}} + {{key|R}} Suche finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu bearbeiten man noch einmal die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
und hängt ganz unten folgendes an:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# don&#039;t put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;
# ... or force ignoredups and ignorespace&lt;br /&gt;
HISTCONTROL=ignoredups:ignorespace:erasedups&lt;br /&gt;
&lt;br /&gt;
# append to the history file, don&#039;t overwrite it&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&lt;br /&gt;
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)&lt;br /&gt;
HISTSIZE=50000&lt;br /&gt;
HISTFILESIZE=50000&lt;br /&gt;
&lt;br /&gt;
# After each command, append to the history file&lt;br /&gt;
#  and reread it&lt;br /&gt;
export PROMPT_COMMAND=&amp;quot;${PROMPT_COMMAND:+$PROMPT_COMMAND$&#039;n&#039;}history -a; history -c; history -r&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit es sofort aktiv wird wieder&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
Ja, {{code|HISTSIZE}} und {{code|HISTFILESIZE}} stehen nun 2x in der Datei, der letzte Eintrag gewinnt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Feste IP-Adresse vergeben===&lt;br /&gt;
Der Server hat dank des neuen Setupdialoges nun bereits eine feste IP-Adresse.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr an dieser etwas ändern müssen so müssen wir erst das Cloud-Init deaktivieren: &lt;br /&gt;
 nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg&lt;br /&gt;
Inhalt:&lt;br /&gt;
 network: {config: disabled}&lt;br /&gt;
Dann könnte Ihr in der folgenden Datei etwas ändern, die Warnungen das es einen reboot nicht übersteht könnt Ihr ignorieren, dafür haben wir die andere Datei angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162802.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Weiter unten deinstalliere ich Cloud-Init komplett (wenn die VM nicht bei einem Hoster läuft), da könnte man sich diesen Schritt hier sparen}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Updates einspielen===&lt;br /&gt;
* wieder anmelden als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; bzw. zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; wechseln&lt;br /&gt;
* Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)&lt;br /&gt;
 apt update&lt;br /&gt;
* Updates einspielen:&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
* Nach Update überflüssige Pakete entfernen:&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich mache das normalerweise immer als Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===VM Integrationsdienste installieren===&lt;br /&gt;
Wenn euer installiertes System eine VM, eine &#039;&#039;&#039;V&#039;&#039;&#039;irtuelle &#039;&#039;&#039;M&#039;&#039;&#039;aschine, ist, solltest Ihr je nach verwendeten Hypervisor die passenden Integrationsdienste installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====VMware====&lt;br /&gt;
Unter VMware braucht ihr nichts tun, die&lt;br /&gt;
 apt install open-vm-tools&lt;br /&gt;
sind per Default installiert und aktiv. Ist es keine VMware VM, so könnt Ihr die Tools per&lt;br /&gt;
 apt remove open-vm-tools&lt;br /&gt;
entfernen&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====Hyper-V====&lt;br /&gt;
In den Einstellungen der VM solltet Ihr hier den Haken setzen:&lt;br /&gt;
:[[Datei:ClipCapIt-250527-112648.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der VM die folgende Datei bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/initramfs-tools/modules&lt;br /&gt;
und ganz unten die folgenden 4 Zeilen anhängen:&amp;lt;br&amp;gt;&lt;br /&gt;
 hv_vmbus&lt;br /&gt;
 hv_storvsc&lt;br /&gt;
 hv_blkvsc&lt;br /&gt;
 hv_netvsc&lt;br /&gt;
Und dann die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
und neu starten:&lt;br /&gt;
 reboot&lt;br /&gt;
Quelle: https://community.veeam.com/blogs-and-podcasts-57/how-to-install-hyper-v-integration-services-in-the-ubuntu-linux-vm-6353&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Proxmox PVE====&lt;br /&gt;
In den Einstellungen der VM den Agenten aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250527-113037.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann in der VM die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install qemu-guest-agent&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Multipathing deinstallieren (wenn der Server eine VM ist)===&lt;br /&gt;
Ab Werk wird nun das&lt;br /&gt;
 /var/log/syslog&lt;br /&gt;
mit Multipath-Meldungen vollgemüllt:&amp;lt;br&amp;gt;&lt;br /&gt;
 2024-05-27T12:32:47.571374+00:00 ubuntu2404 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.&lt;br /&gt;
 2024-05-27T12:32:47.592304+00:00 ubuntu2404 kernel: systemd[1]: Listening on multipathd.socket - multipathd control socket.&lt;br /&gt;
 2024-05-27T12:32:47.592385+00:00 ubuntu2404 kernel: systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...&lt;br /&gt;
 2024-05-27T12:32:48.141146+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:48.141212+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:48.141278+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:32:57.634912+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:32:57.667862+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:57.667930+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:57.667959+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:07.637080+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:07.676773+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:33:07.676839+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:07.676865+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:17.641466+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:17.709843+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709915+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709942+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:17.709969+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:28.134951+00:00 ubuntu2404 multipathd[467]: sda: not initialized after 3 udev retriggers&lt;br /&gt;
 2024-05-27T12:33:29.139933+00:00 ubuntu2404 multipathd[467]: sda: add missing path&lt;br /&gt;
 2024-05-27T12:33:29.140037+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140063+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140086+00:00 ubuntu2404 multipathd[467]: sda: no WWID in state &amp;quot;undef&lt;br /&gt;
 2024-05-27T12:33:29.140109+00:00 ubuntu2404 multipathd[467]: &amp;quot;, giving up&lt;br /&gt;
 2024-05-27T12:33:29.140181+00:00 ubuntu2404 multipathd[467]: sda: check_path() failed, removing&lt;br /&gt;
Unter Ubuntu 24.04/22.04 scheint es nicht mehr ganz so schlimm wie unter 20.04 - aber in einer VM macht Multipath keinen Sinn, also deaktivieren und deinstallieren um das Syslog von den Meldungen befreien:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl stop multipathd.service &amp;amp;&amp;amp; systemctl disable multipathd.service&lt;br /&gt;
 apt install kpartx libsgutils2-1.46-2 sg3-utils sg3-utils-udev&lt;br /&gt;
 apt remove -y multipath-tools &amp;amp;&amp;amp; apt purge -y multipath-tools&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakete werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Cloud-Init deinstallieren (Wenn es keine VM bei einem Cloudanbieter ist)===&lt;br /&gt;
Wenn Ihr die VM reboootet und die Console betrachtet tauchen kurz nach dem Reboot (Fehler-)Meldungen zum Cloud-init auf:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-163633.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Cloud-Init ist - wenn ich mich recht erinnere - dafür da falls eure VM z.B. bei Amazon AWS, Azure oder andere Anbieter läuft um z.B. die Netzwerkinformationen vom Hoster/Provider zu erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Brauchen wir nicht, also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &#039;datasource_list: [ None ]&#039; | tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg&lt;br /&gt;
 apt purge -y cloud-init&lt;br /&gt;
 rm -rf /etc/cloud/ &amp;amp;&amp;amp; sudo rm -rf /var/lib/cloud/&lt;br /&gt;
 apt install eatmydata libeatmydata1 python-babel-localedata python3-babel python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-tz -y&lt;br /&gt;
 reboot&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakte werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===OpenIPMI und IPMItool deinstallieren===&lt;br /&gt;
Bei meinen VMs schlägt der Start dieses Dienstes eh immer fehl (weil es keine passende Hardware gibt), also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove openipmi ipmitool -y &amp;amp;&amp;amp; apt purge openipmi ipmitool &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Unter Hyper-V wird das Paket scheinbar nicht automatisch installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Zeitzone setzen===&lt;br /&gt;
In meiner VM ist die Uhrzeit zu diesem Zeitpunkt falsch (gebt mal probeweise &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; ein) - weil der ESXi-Host auf UTC Zeit läuft und die Ubuntu in der VM die richtige Zeitzone nicht eingestellt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir korrigieren das mit&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl set-timezone Europe/Berlin&lt;br /&gt;
ein&lt;br /&gt;
 date&lt;br /&gt;
sollte dann die richtige Uhrzeit ausspucken.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Zeitserver setzen===&lt;br /&gt;
{{Hinweis| Wenn Ihr diesen Schritt überspringt, wird {{Key|ntp.ubuntu.com}} als Zeitserver verwendet}}&lt;br /&gt;
Für die Zeitsynchronisierung ist der Dienst &amp;lt;code&amp;gt;systemd-timesyncd.service&amp;lt;/code&amp;gt; zuständig, dieser wird über die Datei&lt;br /&gt;
 nano /etc/systemd/timesyncd.conf&lt;br /&gt;
konfiguriert:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source &amp;quot;lang=bash&amp;quot;&amp;gt;&lt;br /&gt;
#  This file is part of systemd.&lt;br /&gt;
#&lt;br /&gt;
#  systemd is free software; you can redistribute it and/or modify it under the&lt;br /&gt;
#  terms of the GNU Lesser General Public License as published by the Free&lt;br /&gt;
#  Software Foundation; either version 2.1 of the License, or (at your option)&lt;br /&gt;
#  any later version.&lt;br /&gt;
#&lt;br /&gt;
# Entries in this file show the compile time defaults. Local configuration&lt;br /&gt;
# should be created by either modifying this file (or a copy of it placed in&lt;br /&gt;
# /etc/ if the original file is shipped in /usr/), or by creating &amp;quot;drop-ins&amp;quot; in&lt;br /&gt;
# the /etc/systemd/timesyncd.conf.d/ directory. The latter is generally&lt;br /&gt;
# recommended. Defaults can be restored by simply deleting the main&lt;br /&gt;
# configuration file and all drop-ins located in /etc/.&lt;br /&gt;
#&lt;br /&gt;
# Use &#039;systemd-analyze cat-config systemd/timesyncd.conf&#039; to display the full config.&lt;br /&gt;
#&lt;br /&gt;
# See timesyncd.conf(5) for details.&lt;br /&gt;
&lt;br /&gt;
[Time]&lt;br /&gt;
NTP=192.168.1.81&lt;br /&gt;
FallbackNTP=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
RootDistanceMaxSec=30&lt;br /&gt;
#PollIntervalMinSec=32&lt;br /&gt;
#PollIntervalMaxSec=2048&lt;br /&gt;
#ConnectionRetrySec=30&lt;br /&gt;
#SaveIntervalSec=60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sowohl die Liste der &#039;&#039;&#039;NTP=&#039;&#039;&#039; als auch der &#039;&#039;&#039;FallbackNTP=&#039;&#039;&#039; erwartet eine per Leerzeichen getrennte Liste der möglichen Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Laut Anleitung hört der Dienst aber beim ersten Treffer auf zu suchen. In der Praxis setzt also einen NTP-Server und ggf. die Fallback. Setzt Ihr einen Wert nicht, lasst diesen also auskommentiert, so gilt der Default-Wert, beim Fallback gilt dann &amp;lt;code&amp;gt;FallbackNTP=ntp.ubuntu.com&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Änderung müsst Ihr den Dienst einmal neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart systemd-timesyncd.service&lt;br /&gt;
und mit folgenden Befehl könnt Ihr den Status abfragen:&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl show-timesync&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 LinkNTPServers=fd00::1eed:6fff:fe71:f1c0&lt;br /&gt;
 SystemNTPServers=192.168.1.81&lt;br /&gt;
 FallbackNTPServers=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
 ServerName=192.168.1.81&lt;br /&gt;
 ServerAddress=192.168.1.81&lt;br /&gt;
 RootDistanceMaxUSec=30s&lt;br /&gt;
 PollIntervalMinUSec=32s&lt;br /&gt;
 PollIntervalMaxUSec=34min 8s&lt;br /&gt;
 PollIntervalUSec=2min 8s&lt;br /&gt;
 NTPMessage={ Leap=0, Version=3, Mode=4, Stratum=3, Precision=-23, RootDelay=20.324ms, RootDispersion=28.579ms, Reference=C0A801C6, OriginateTimestamp=Tue 2024-06-04 08:22:24 CEST, &lt;br /&gt;
 ReceiveTimestamp=Tue 2024-06-04 08:22:24 CEST, TransmitTimestamp=Tue 2024-06-04 08:22:24 CEST, DestinationTimestamp=Tue 2024-06-04 08:22:24 CEST, Ignored=no, PacketCount=2, Jitter=239us }&lt;br /&gt;
 Frequency=1158037&lt;br /&gt;
Wenn die untere Zeile mit &amp;lt;code&amp;gt;NTPMessage=&amp;lt;/code&amp;gt; nicht erscheint, habt Ihr ein Problem!&amp;lt;br&amp;gt;&lt;br /&gt;
Mit&amp;lt;br&amp;gt;&lt;br /&gt;
 journalctl -fu systemd-timesyncd.service&lt;br /&gt;
könnte Ihr nach dem Grund suchen. Steht da etwas wie &#039;&#039;&#039;&#039;&#039;Server has to large root distance. Disconnecting&#039;&#039;&#039;&#039;&#039; und es gegen einen Domänencontroller geht so stellt sicher das&lt;br /&gt;
* Es der PDC ist&lt;br /&gt;
* Dieser sich auch selbst mit einer externen Quelle synchronisiert&lt;br /&gt;
* Stellt ggf. den Wert von &amp;lt;code&amp;gt;RootDistanceMaxUSec=30s&amp;lt;/code&amp;gt; noch höher.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatische Updates deaktivieren===&lt;br /&gt;
Ich persönlich möchte nicht das der Zabbix-Server automatisch Updates einspielt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates aktualisieren - soweit ich das beobachten konnte - nur den Kernel. Aber auch das möchte ich nicht. Ich möchte das geplant durchführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates verhindern wir mit&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove -y unattended-upgrades&lt;br /&gt;
Wer möchte kann auch die Suche nach Updates deaktivieren. Ansonsten schaut das Ubuntu täglich an einem zufälligen Zeitpunkt nach, ob es Updates gibt. Bei der Anmeldung per SSH erhält man dann eine entsprechende Meldung. Deaktivieren kann man die automatsche Suche danach per&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apt/apt.conf.d/20auto-upgrades&lt;br /&gt;
und in der Datei beide Optionen auf {{code|0}} setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
 APT::Periodic::Update-Package-Lists &amp;quot;0&amp;quot;;&lt;br /&gt;
 APT::Periodic::Unattended-Upgrade &amp;quot;0&amp;quot;;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatischen Neustart von Diensten bei Updates deaktivieren===&lt;br /&gt;
Wie schon zuvor beschrieben aktualisiere ich Ubuntu (und andere Software aus Repositorien wie Zabbix) gerne per folgenden Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
In neueren Versionen werden dabei Dienste ggf. automatische neu gestartet, es gibt dann eine Meldung wie diese:&lt;br /&gt;
 systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service&lt;br /&gt;
 &lt;br /&gt;
 Dienste deren Neustart verschoben wurde:&lt;br /&gt;
  systemctl restart ModemManager.service&lt;br /&gt;
  /etc/needrestart/restart.d/dbus.service&lt;br /&gt;
  systemctl restart getty@tty1.service&lt;br /&gt;
  systemctl restart systemd-logind.service&lt;br /&gt;
Im Normalfall ist es kein Problem. Allerdings scheinen die Abhängigkeiten der Dienste nicht beachtet zu werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Beispiel der Zabbix-Server Dienst ist abhängig von der Datenbank, das steht auch so in der &amp;lt;code&amp;gt;/usr/lib/systemd/system/zabbix-server.service&amp;lt;/code&amp;gt;:&lt;br /&gt;
 After=mysql.service&lt;br /&gt;
 After=mysqld.service&lt;br /&gt;
 After=mariadb.service&lt;br /&gt;
Der automatische Neustart startet aber z.B. MariaDB gnadenlos durch ohne vorher den Zabbix zu beenden. Dabei hängt sich das ganze gerne mal weg. Per {{Key|STRG} + {Key|C} kann man das abbrechen und rebooten, schön ist das aber nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Als Lösung schalte ich inzwischen den automatischen Neustart der Dienste ab, es wird dann nur eine Liste der Dienste ausgegeben die neu gestartet werden müssten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/needrestart/needrestart.conf&lt;br /&gt;
und dort ziemlich am Anfang:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.&lt;br /&gt;
#&lt;br /&gt;
# ATTENTION: If needrestart is configured to run in interactive mode but is run&lt;br /&gt;
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.&lt;br /&gt;
#&lt;br /&gt;
# UBUNTU: the default restart mode when running as part of the APT hook is &#039;a&#039;,&lt;br /&gt;
# unless a specific UI is configured (see below).&lt;br /&gt;
#$nrconf{restart} = &#039;i&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;, wie es auch in der obersten Zeile beschrieben wird:&lt;br /&gt;
 $nrconf{restart} = &#039;l&#039;;&lt;br /&gt;
So werden notwendige Neustarts nur aufgelistet.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=NextCloud_unter_Ubuntu_24.04_LTS_installieren&amp;diff=15768</id>
		<title>NextCloud unter Ubuntu 24.04 LTS installieren</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=NextCloud_unter_Ubuntu_24.04_LTS_installieren&amp;diff=15768"/>
		<updated>2026-02-17T17:10:27Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Grundinstallation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 27.05.2024 erste Version&lt;br /&gt;
* 16.06.2024 Feintuning und diverse Anpassungen&lt;br /&gt;
* 17.02.2026 Anleitung für die Installation von Ubuntu durch meine allgemeine Vorlage ersetzt&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Installation Ubuntu Server 24.04.x LTS (Long Term Support)==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Einstellungen für die VM===&lt;br /&gt;
Falls Ihr den NextCloud-Server als virtuelle Maschine (VM) installiert so könnt Ihr Beispielsweise folgenden Einstellungen nehmen. Diese berücksichtigen auch die Mindestanforderungen von Ubuntu 24.04&amp;lt;br&amp;gt;&lt;br /&gt;
* Konfiguration: &#039;&#039;&#039;Typisch&#039;&#039;&#039;&lt;br /&gt;
* Name und Speicherort: &#039;&#039;&#039;Nach eigener Wahl&#039;&#039;&#039;&lt;br /&gt;
* Speicher: &#039;&#039;&#039;Nach eigener Wahl&#039;&#039;&#039;&lt;br /&gt;
* Gastbetriebssystem: &#039;&#039;&#039;(*) Linux --&amp;gt; Ubuntu (64-Bit)&#039;&#039;&#039;&lt;br /&gt;
* Netzwerk:&lt;br /&gt;
** Wie viele Netzwerkkarten möchten Sie anschließen: &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
** Netzwerk: &#039;&#039;&#039;Nach Wahl (VM Network?)&#039;&#039;&#039;&lt;br /&gt;
** Adapter: &#039;&#039;&#039;VMXNET 3&#039;&#039;&#039;&lt;br /&gt;
* Größer der virtuellen Festplatte: &lt;br /&gt;
** Hängt von der Anzahl der überwachten Geräte / Items ab. &lt;br /&gt;
** Ich empfehle min &#039;&#039;&#039;32GB&#039;&#039;&#039; für das Betriebssystem des Servers. Für die Datenpartition hängen wir später noch eine zweite Festplatte an. &lt;br /&gt;
** Die Festplatte kann bei einer VM nachträglich vergrößert werden - siehe dazu den Abschnitt in diesem Artikel weiter unten&lt;br /&gt;
** &#039;&#039;&#039;Thick-Provision Lazy-Zeroed&#039;&#039;&#039;&lt;br /&gt;
Danach Einstellungen der VM bearbeiten:&lt;br /&gt;
&amp;lt;u&amp;gt;Reiter Hardware:&amp;lt;/u&amp;gt;&lt;br /&gt;
* Arbeitsspeicher:&lt;br /&gt;
** &#039;&#039;&#039;4GB&#039;&#039;&#039; oder mehr&lt;br /&gt;
* CPUs:&lt;br /&gt;
** Anzahl der virtuellen Sockets&lt;br /&gt;
*** &#039;&#039;&#039;4 oder mehr&#039;&#039;&#039;&lt;br /&gt;
** Anzahl der Cores pro Socket: &#039;&#039;&#039;1&#039;&#039;&#039; (Immer Anzahl der Sockets erhöhen)&lt;br /&gt;
&amp;lt;u&amp;gt;Reiter Optionen&amp;lt;/u&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Installation-Ubuntu-2404}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Benötigte Programme für Nextcloud installieren===&lt;br /&gt;
Die nachfolgende Zeile installiert alles notwendige die auch nachfolgend beschriebenen Features von NextCloud  zu nutzen. Als Datenbank wird MariaDB verwendet.&amp;lt;br&amp;gt;&lt;br /&gt;
 apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip php-ldap php-bz2 php-json unzip zip imagemagick -y&lt;br /&gt;
{{Tipp| Zum kopieren der oberen Zeile mit der Maus vor das &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; gehen und 3x Klicken. Ggf. mehrmals versuchen - bis die ganze Zeile markiert ist. Diese kann dann so in z.B. PuTTY eingefügt werden}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Festplatte einbinden==&lt;br /&gt;
Die Daten von NextCloud sollen auf einer 2. Festplatte gespeichert werden - exklusive der SQL-Datenbank, diese wird auf der Festplatte mit dem Betriebssystem liegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu habe ich der VM einfach eine weitere Festplatte mit 50GiB hinzugefügt. Diese können wir später bei bedarf einfach vergrößern.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem hinzufügen startet Ihr den Server einmal neu.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Zuerst müssen wir herausfinden wie die 2. Festplatte unter Ubuntu heißt:&amp;lt;br&amp;gt;&lt;br /&gt;
 ls -l /dev/sd*&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Ausgabe:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
brw-rw---- 1 root disk 8,  0 Jan 29 10:46 /dev/sda&lt;br /&gt;
brw-rw---- 1 root disk 8,  1 Jan 29 10:46 /dev/sda1&lt;br /&gt;
brw-rw---- 1 root disk 8,  2 Jan 29 10:46 /dev/sda2&lt;br /&gt;
brw-rw---- 1 root disk 8, 16 Jan 29 10:46 /dev/sdb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt; ist die erste Festplatte, &amp;lt;code&amp;gt;sda1&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sda2&amp;lt;/code&amp;gt; sind Partitionen auf dieser.&amp;lt;br&amp;gt;&lt;br /&gt;
Unsere Zielfestplatte Platte ist die &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Da wir hier keine &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; sehen hat diese Festplatte noch keine Partitionen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich arbeite hier ohne LVM, die Festplatte können wir später trotzdem leicht vergrößern.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Warnung| Das müsst Ihr nur machen falls Ihr noch keine Partition habt, also kein &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; sondern nur &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
Wir tippen ein:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Da kommt dann etwas Text und die Aufforderung&amp;lt;br&amp;gt;&lt;br /&gt;
 Willkommen bei fdisk (util-linux 2.39.3).&lt;br /&gt;
 Änderungen werden vorerst nur im Speicher vorgenommen, bis Sie sich&lt;br /&gt;
 entscheiden, sie zu schreiben.&lt;br /&gt;
 Seien Sie vorsichtig, bevor Sie den Schreibbefehl anwenden.&lt;br /&gt;
 &lt;br /&gt;
 Gerät enthält keine erkennbare Partitionstabelle.&lt;br /&gt;
 Created a new DOS (MBR) disklabel with disk identifier 0xa720af51.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;Befehl (m für Hilfe):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wir drücken&lt;br /&gt;
 g&lt;br /&gt;
um auf den GPT-Partitionsstil zu wechseln, es sollte eine Zeile wie&lt;br /&gt;
 Eine neue GPT-Festplattenbezeichnung wurde erstellt (GUID: E27F99AE-C130-4D72-A392-8CD8A9E933B1).&lt;br /&gt;
erscheinen. Dann drücken wir&lt;br /&gt;
 n&lt;br /&gt;
um eine neue Partition zu erstellen und dann&lt;br /&gt;
 1&lt;br /&gt;
für die erste Partition.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann drückt 2x {{Key|Enter}} um die vorgeschlagenen Werte zu übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
 Partitionsnummer (1-128, Vorgabe 1): 1&lt;br /&gt;
 Erster Sektor (2048-2147483614, Vorgabe 2048):&lt;br /&gt;
 Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (2048-2147483614, Vorgabe 2147481599):&lt;br /&gt;
 &lt;br /&gt;
 Eine neue Partition 1 des Typs „Linux filesystem“ und der Größe 1024 GiB wurde erstellt.&lt;br /&gt;
Jetzt sollte da wieder&lt;br /&gt;
 &#039;&#039;&#039;Befehl (m für Hilfe):&#039;&#039;&#039;&lt;br /&gt;
stehen und wir drücken &lt;br /&gt;
 w&lt;br /&gt;
um das ganze auf die Platte zu schreiben.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das sollte also etwas so aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
 root@cloud:~# fdisk /dev/sdb&lt;br /&gt;
 &lt;br /&gt;
 Willkommen bei fdisk (util-linux 2.39.3).&lt;br /&gt;
 Änderungen werden vorerst nur im Speicher vorgenommen, bis Sie sich&lt;br /&gt;
 entscheiden, sie zu schreiben.&lt;br /&gt;
 Seien Sie vorsichtig, bevor Sie den Schreibbefehl anwenden.&lt;br /&gt;
 &lt;br /&gt;
 Gerät enthält keine erkennbare Partitionstabelle.&lt;br /&gt;
 Created a new DOS (MBR) disklabel with disk identifier 0xa720af51.&lt;br /&gt;
 &lt;br /&gt;
 Befehl (m für Hilfe): g&lt;br /&gt;
 Eine neue GPT-Festplattenbezeichnung wurde erstellt (GUID: E27F99AE-C130-4D72-A392-8CD8A9E933B1).&lt;br /&gt;
 &lt;br /&gt;
 Befehl (m für Hilfe): n&lt;br /&gt;
 Partitionsnummer (1-128, Vorgabe 1): 1&lt;br /&gt;
 Erster Sektor (2048-2147483614, Vorgabe 2048):&lt;br /&gt;
 Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (2048-2147483614, Vorgabe 2147481599):&lt;br /&gt;
 &lt;br /&gt;
 Eine neue Partition 1 des Typs „Linux filesystem“ und der Größe 1024 GiB wurde erstellt.&lt;br /&gt;
 &lt;br /&gt;
 Befehl (m für Hilfe): w&lt;br /&gt;
 Die Partitionstabelle wurde verändert.&lt;br /&gt;
 ioctl() wird aufgerufen, um die Partitionstabelle neu einzulesen.&lt;br /&gt;
 Festplatten werden synchronisiert.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Prima, jetzt haben wir eine Partition &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt;, diese formatieren wir nun mit dem &#039;&#039;&#039;&#039;&#039;ext4&#039;&#039;&#039;&#039;&#039; Dateisystem:&amp;lt;br&amp;gt;&lt;br /&gt;
 mkfs.ext4 /dev/sdb1&lt;br /&gt;
Ausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 root@nextcloud1:~# mkfs.ext4 /dev/sdb1&lt;br /&gt;
 mke2fs 1.46.5 (30-Dec-2021)&lt;br /&gt;
 Geräteblöcke werden verworfen: erledigt&lt;br /&gt;
 Ein Dateisystem mit 13106944 (4k) Blöcken und 3276800 Inodes wird erzeugt.&lt;br /&gt;
 UUID des Dateisystems: 2ead4117-e280-4ac4-8038-f41ef64c1e70&lt;br /&gt;
 Superblock-Sicherungskopien gespeichert in den Blöcken:&lt;br /&gt;
         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,&lt;br /&gt;
         4096000, 7962624, 11239424&lt;br /&gt;
 &lt;br /&gt;
 beim Anfordern von Speicher für die Gruppentabellen: erledigt&lt;br /&gt;
 Inode-Tabellen werden geschrieben: erledigt&lt;br /&gt;
 Das Journal (65536 Blöcke) wird angelegt: fertig&lt;br /&gt;
 Die Superblöcke und die Informationen über die Dateisystemnutzung werden&lt;br /&gt;
 geschrieben: erledigt&lt;br /&gt;
&lt;br /&gt;
Nun müssen wir die Festplatte noch mounten. NextCloud werden wir nach&lt;br /&gt;
 /var/www/nextcloud&lt;br /&gt;
installieren. Deshalb hängen wir die neue Festplatte unterhalb von &amp;lt;code&amp;gt;/var/www&amp;lt;/code&amp;gt; ein. In diesem Verzeichnis gibt es im Moment noch das Unterverzeichnis &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; was wir uns vorher wegsichern:&amp;lt;br&amp;gt;&lt;br /&gt;
 mv /var/www/html /tmp/html&lt;br /&gt;
Dann mounten wir unsere neue Partition an diesen Pfad:&amp;lt;br&amp;gt;&lt;br /&gt;
 mount /dev/sdb1 /var/www/&lt;br /&gt;
Prüfen wir ob das geklappt hat:&lt;br /&gt;
 root@nextcloud1:~# df -h&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,5G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
 /dev/sdb1        49G     24K   47G    1% /var/www&lt;br /&gt;
In der letzten Zeile sehen wir das es geklappt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Nun müssen wir dafür sorgen das dies auch beim nächsten Booten automatisch gemacht wird. Dazu brauchen wir die UUID die wir wie folgt herausbekommen:&amp;lt;br&amp;gt;&lt;br /&gt;
 ls -l /dev/disk/by-uuid/ | grep sdb&lt;br /&gt;
Ergebnis bei mir:&amp;lt;br&amp;gt;&lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Jan 29 11:10 2ead4117-e280-4ac4-8038-f41ef64c1e70 -&amp;gt; ../../sdb1&lt;br /&gt;
Nun bearbeiten wir die &amp;lt;code&amp;gt;fstab&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/fstab&lt;br /&gt;
und hängen unten folgende Zeile an:&lt;br /&gt;
 /dev/disk/by-uuid/2ead4117-e280-4ac4-8038-f41ef64c1e70 /var/www ext4 defaults 0 1&lt;br /&gt;
Die Werte bedeuten:&lt;br /&gt;
 /dev/disk/by-uuid/2ead4117-e280-4ac4-8038-f41ef64c1e70   : Pfad mit UUID des Datenträgers&lt;br /&gt;
 /var/www                                                 : Das Verzeichnis in das gemountet werden soll&lt;br /&gt;
 ext4                                                     : Welches Dateisystem soll gemountet werden, ggf. auch mit &#039;&#039;&#039;auto&#039;&#039;&#039; probieren&lt;br /&gt;
 defaults                                                 : Mit Standardeinstellungen / Rechten mounten, Detail siehe z.B. hier: https://wiki.archlinux.de/title/Fstab&lt;br /&gt;
 0                                                        : Für den Befehl Dump, 0 bedeutet &amp;quot;keine Systempartition&amp;quot;&lt;br /&gt;
 0                                                        : Für Dateisystemprüfung, 1 bedeutet &amp;quot;mit Prüfung&amp;quot; einbinden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bevor wir nun neu Starten verschieben wir noch das &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; Verzeichnis zurück:&amp;lt;br&amp;gt;&lt;br /&gt;
 mv /tmp/html /var/www/html&lt;br /&gt;
Als Test nun einen Reboot - danach sollte die Platte weiterhin/wieder eingehängt sein. Das könnte ihr wieder mit &amp;lt;code&amp;gt;df -h&amp;lt;/code&amp;gt; kontrollieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,5G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 /dev/sdb1        49G     40K   47G    1% /var/www&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Nextcloud installieren==&lt;br /&gt;
Die folgenden Installationsschritte habe ich mir aus verschiedenen Anleitungen zusammengesucht, die Quellen sind:&amp;lt;br&amp;gt;&lt;br /&gt;
* https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html&lt;br /&gt;
* https://mailserverguru.com/install-nextcloud-on-ubuntu-22-04-lts/&lt;br /&gt;
----&lt;br /&gt;
===Datenbank erstellen===&lt;br /&gt;
NextCloud benötigt eine MySQL / MariaDB Datenbank die wir wie folgt erstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mysql -u root -e &amp;quot;CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci&amp;quot;&lt;br /&gt;
mysql -u root -e &amp;quot;CREATE USER &#039;dbusernextcloud&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password4nextclouddb&#039;&amp;quot;&lt;br /&gt;
mysql -u root -e &amp;quot;GRANT ALL PRIVILEGES ON nextcloud.* TO &#039;dbusernextcloud&#039;@&#039;localhost&#039;&amp;quot;&lt;br /&gt;
mysql -u root -e &amp;quot;FLUSH PRIVILEGES&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit wird eine Datenbank &#039;&#039;&#039;&#039;&#039;nextcloud&#039;&#039;&#039;&#039;&#039; erstellt (falls noch nicht vorhanden) und dem lokalen Benutzer &#039;&#039;&#039;&#039;&#039;dbusernextcloud&#039;&#039;&#039;&#039;&#039; mit dem Passwort &#039;&#039;&#039;&#039;&#039;password4nextclouddb&#039;&#039;&#039;&#039;&#039; darauf Zugriff gewährt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===NextCloud herunterladen===&lt;br /&gt;
Die folgenden Befehle laden die aktuellste Version als {{Key|.zip}} herunter, entpacken diese in den Ordern &amp;lt;code&amp;gt;/var/www/nextcloud&amp;lt;/code&amp;gt;, löschen die {{Key|.zip}} und geben dem Benzutzer unter dem der Webserver läuft volle Rechte auf den Ordner:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /var/www/&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://download.nextcloud.com/server/releases/latest.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 unzip latest.zip&lt;br /&gt;
 rm -rf latest.zip&lt;br /&gt;
 chown -R www-data:www-data /var/www/nextcloud/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Webserver auf NextCloud-Pfad setzen===&lt;br /&gt;
Die Default-Webseite zeigt im Moment noch auf &amp;lt;code&amp;gt;/var/www/html&amp;lt;/code&amp;gt;, wir ändern dies auf unser neues Verzeichnis:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
Mit {{Key|F9}} könnt Ihr den gesamten Inhalt der Datei löschen und das nachfolgende einfügen.&amp;lt;br&amp;gt;&lt;br /&gt;
Geändert wird aber erst einmal nur die Zeile mit &#039;&#039;&#039;&#039;&#039;DocumentRoot&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        # The ServerName directive sets the request scheme, hostname and port that&lt;br /&gt;
        # the server uses to identify itself. This is used when creating&lt;br /&gt;
        # redirection URLs. In the context of virtual hosts, the ServerName&lt;br /&gt;
        # specifies what hostname must appear in the request&#039;s Host: header to&lt;br /&gt;
        # match this virtual host. For the default virtual host (this file) this&lt;br /&gt;
        # value is not decisive as it is used as a last resort host regardless.&lt;br /&gt;
        # However, you must set it for any further virtual host explicitly.&lt;br /&gt;
        #ServerName www.example.com&lt;br /&gt;
&lt;br /&gt;
        ServerAdmin webmaster@localhost&lt;br /&gt;
        DocumentRoot /var/www/nextcloud&lt;br /&gt;
&lt;br /&gt;
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,&lt;br /&gt;
        # error, crit, alert, emerg.&lt;br /&gt;
        # It is also possible to configure the loglevel for particular&lt;br /&gt;
        # modules, e.g.&lt;br /&gt;
        #LogLevel info ssl:warn&lt;br /&gt;
&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&lt;br /&gt;
        # For most configuration files from conf-available/, which are&lt;br /&gt;
        # enabled or disabled at a global level, it is possible to&lt;br /&gt;
        # include a line for only one particular virtual host. For example the&lt;br /&gt;
        # following line enables the CGI configuration for this host only&lt;br /&gt;
        # after it has been globally disabled with &amp;quot;a2disconf&amp;quot;.&lt;br /&gt;
        #Include conf-available/serve-cgi-bin.conf&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Wo wir schon mal dabei sind aktivieren wir gleich weitere Apache2 Module die wir gleich noch brauchen:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2enmod rewrite dir mime env headers&lt;br /&gt;
und starten den Webserver dann neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Grundsetup über das Webinterface===&lt;br /&gt;
Im Webbrowser müsstet Ihr jetzt über die IP-Adresse des Servers das Setup erreichen:&amp;lt;br&amp;gt;&lt;br /&gt;
 http://IP-eurer-NextCloud-VM/&lt;br /&gt;
:[[Datei:ImageNextCloudSetup.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Den Benutzernamen und das Passwort dürft Ihr euch frei ausdenken. Das wird der erste Admin-Benutzer.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Datenverzeichnis lasst Ihr so stehen wie vorgeschlagen auf&lt;br /&gt;
 /var/www/nextcloud/data&lt;br /&gt;
Beim Datenbank-Benutzer müsst tragt Ihr - wenn Ihr mein Beispiel übernommen habt&lt;br /&gt;
 dbusernextcloud&lt;br /&gt;
ein, das Passwort ist&amp;lt;br&amp;gt;&lt;br /&gt;
 password4nextclouddb&lt;br /&gt;
und der Datenbank-Name&lt;br /&gt;
 nextcloud&lt;br /&gt;
Den Host last ihr wie er ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Auf installieren drücken und Geduld beweisen, nach 10 bis 30 Sekunden geht es weiter:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudSetup2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das könnt Ihr nach eigenen Gutdünken entscheiden, ich überspringe hier da ich den Server nur für den Austausch von Dateien verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Es folgt eine Infoseite durch die man sich durchklickt bis man bei &#039;&#039;&#039;&#039;&#039;Los gehts!&#039;&#039;&#039;&#039;&#039; landet.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fertig! Der grundlegende NextCloud-Server läuft nun!&lt;br /&gt;
----&lt;br /&gt;
==Feintuning Teil 1==&lt;br /&gt;
Im Verwaltungsbereich wird uns NextCloud ein paar Warnung bezüglich verschiedener Einstellungen geben, ein paar davon stellen wir hier ab.&amp;lt;br&amp;gt;&lt;br /&gt;
Zudem folgen wir den Empfehlungen von https://mailserverguru.com/install-nextcloud-on-ubuntu-22-04-lts/ und bauen auf PHP-FPM um, das wird auch von NextCloud selbst empfohlen (aus Performancegründen):&lt;br /&gt;
 apt install php-fpm&lt;br /&gt;
Der Dienst dazu sollte automatisch starten, das können wir per&lt;br /&gt;
  systemctl status php8.3-fpm.service&lt;br /&gt;
prüfen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nun wechseln wir die PHP-Engine von Apache:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2dismod php8.3&lt;br /&gt;
 a2dismod mpm_prefork&lt;br /&gt;
 a2enmod mpm_event proxy_fcgi setenvif&lt;br /&gt;
 a2enconf php8.3-fpm&lt;br /&gt;
dann bearbeiten wir die Datei &lt;br /&gt;
 nano /etc/php/8.3/fpm/php.ini&lt;br /&gt;
und ändern folgende Zeilen ({{Key|STRG}} + {{Key|W}} ist suchen):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
upload_max_filesize = 1024M &lt;br /&gt;
post_max_size = 1536M &lt;br /&gt;
memory_limit = 2048M &lt;br /&gt;
max_execution_time = 600&lt;br /&gt;
max_input_vars = 3000 &lt;br /&gt;
max_input_time = 1000&lt;br /&gt;
opcache.interned_strings_buffer=32&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun noch die FPM-Pool-Einstellungen:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/php/8.3/fpm/pool.d/www.conf&lt;br /&gt;
und folgende Änderungen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
pm.max_children = 64&lt;br /&gt;
pm.start_servers = 16&lt;br /&gt;
pm.min_spare_servers = 16&lt;br /&gt;
pm.max_spare_servers = 32&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Im Anschluss den Dients neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart php8.3-fpm.service&lt;br /&gt;
Jetzt noch die Webseitenkonfiguration anpassen damit php-fpm verwendet wird:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        # The ServerName directive sets the request scheme, hostname and port that&lt;br /&gt;
        # the server uses to identify itself. This is used when creating&lt;br /&gt;
        # redirection URLs. In the context of virtual hosts, the ServerName&lt;br /&gt;
        # specifies what hostname must appear in the request&#039;s Host: header to&lt;br /&gt;
        # match this virtual host. For the default virtual host (this file) this&lt;br /&gt;
        # value is not decisive as it is used as a last resort host regardless.&lt;br /&gt;
        # However, you must set it for any further virtual host explicitly.&lt;br /&gt;
        #ServerName www.example.com&lt;br /&gt;
&lt;br /&gt;
        ServerAdmin webmaster@localhost&lt;br /&gt;
        DocumentRoot /var/www/nextcloud&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /var/www/nextcloud&amp;gt;&lt;br /&gt;
          Options Indexes FollowSymLinks&lt;br /&gt;
          AllowOverride All&lt;br /&gt;
          Require all granted&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.php$&amp;quot;&amp;gt;&lt;br /&gt;
         SetHandler &amp;quot;proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/&amp;quot;&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,&lt;br /&gt;
        # error, crit, alert, emerg.&lt;br /&gt;
        # It is also possible to configure the loglevel for particular&lt;br /&gt;
        # modules, e.g.&lt;br /&gt;
        #LogLevel info ssl:warn&lt;br /&gt;
&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&lt;br /&gt;
        # For most configuration files from conf-available/, which are&lt;br /&gt;
        # enabled or disabled at a global level, it is possible to&lt;br /&gt;
        # include a line for only one particular virtual host. For example the&lt;br /&gt;
        # following line enables the CGI configuration for this host only&lt;br /&gt;
        # after it has been globally disabled with &amp;quot;a2disconf&amp;quot;.&lt;br /&gt;
        #Include conf-available/serve-cgi-bin.conf&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Jetzt noch den Apache neu starten:&lt;br /&gt;
 systemctl restart apache2.service&lt;br /&gt;
und testen, die Webseite sollte wie gewohnt funktionieren&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Umbau auf https - Selbstsigniertes Zertifikat==&lt;br /&gt;
In der &amp;lt;code&amp;gt;http://&amp;lt;/code&amp;gt; Anzeige funktioniert zunächst alles, aber zum Beispiel das kopieren von Links zum Teilen nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir machen den Server also über &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; erreichbar, zunächst mit einem selbst signierten Zertifikat:&amp;lt;br&amp;gt;&lt;br /&gt;
https-Unterstützung des Apache2 aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
Dann erstellen wir unser eigenes SSL-Zertifikat:&amp;lt;br&amp;gt;&lt;br /&gt;
 openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt&lt;br /&gt;
Die Fragen beantwortet ihr nach eigenem Gutdünken oder eben gar nicht (einfach mit Enter bestätigen).&amp;lt;br&amp;gt;&lt;br /&gt;
Bei &#039;&#039;&#039;&#039;&#039;Common Name (e.g. server FQDN or YOUR name) []:&#039;&#039;&#039;&#039;&#039; solltet Ihr den DNS-Namen eintragen unter dem der Server später erreicht werden soll:&amp;lt;br&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:nextcloud1.test.local&lt;br /&gt;
Nun erstellen wir eine neue Apache2-Konfiguration für den verschlüsselten Zugriff:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apache2/sites-available/nextcloud-ssl.conf&lt;br /&gt;
mit folgendem Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
        ServerAdmin webmaster@localhost&lt;br /&gt;
        DocumentRoot /var/www/nextcloud&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /var/www/nextcloud&amp;gt;&lt;br /&gt;
                Options Indexes FollowSymLinks&lt;br /&gt;
                AllowOverride All&lt;br /&gt;
                Require all granted&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
&lt;br /&gt;
        SSLCertificateFile    /etc/ssl/certs/nextcloud-selfsigned.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/nextcloud-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                        SSLOptions +StdEnvVars&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                        SSLOptions +StdEnvVars&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der Bereich mit {{Key|&amp;lt;Directory /var/www/nextcloud&amp;gt;}} ist wichtig damit später die &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; Dateien funktionieren!&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Seite noch aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2ensite nextcloud-ssl.conf&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
Nun müssen wir NextCloud noch davon erzählen - das der Zugriff per DNS-Name aus dem Zertifikat ok ist:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und oben folgenden Eintrag ergänzen (der &amp;lt;code&amp;gt;1 =&amp;gt;&amp;lt;/code&amp;gt;):&amp;lt;br&amp;gt;&lt;br /&gt;
   array (&lt;br /&gt;
    0 =&amp;gt; &#039;192.168.1.10&#039;,&lt;br /&gt;
    1 =&amp;gt; &#039;nextcloud1.test.local&#039;,&lt;br /&gt;
  ),&lt;br /&gt;
und nun sollte Ihr im Webbrowser eure NextCloud-Installation auch per https erreichen. (mit Zertifikatswarnung).&amp;lt;br&amp;gt;&lt;br /&gt;
Damit es über den Namen klappt müsst Ihr diesen auf eurem DNS-Server hinterlegen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==kurze URLs verwenden==&lt;br /&gt;
{{Hinweis| Das funktioniert nur wenn ihr den vorherigen Umbau auf PHP-FPM gemacht habt!}}&amp;lt;br&amp;gt;&lt;br /&gt;
Die Links wenn Ihr später Dateien teilt enthalten immer die &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 https://192.168.1.10/index.php/s/2D7HRQ2NnzHX8BW&lt;br /&gt;
Um diese Anzeige zu entfernen bearbeiten wir die Konfigurationsdatei von NextCloud:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und hängen unten folgende Zeile an (vor dem &amp;lt;code&amp;gt;);&amp;lt;/code&amp;gt; in der letzten Zeile):&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;overwrite.cli.url&#039; =&amp;gt; &#039;https://nextcloud1.test.local/&#039;,&lt;br /&gt;
 &#039;htaccess.RewriteBase&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
Speichern und dann folgenden Befehl ausführen:&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:update:htaccess&lt;br /&gt;
Ab jetzt müsstet Ihr den Server über seinen DNS-Namen aufrufen!&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==LDAP / Active Directory anbinden==&lt;br /&gt;
Für die LDAP-Anbindung muss das LDAP-PHP Modul installiert sein, nach dieser Anleitung ist das schon der Fall.&amp;lt;br&amp;gt;&lt;br /&gt;
Ansonsten:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt install php-ldap&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst brauchen wir im Active Directory einen Benutzer für die LDAP-Abfrage.&amp;lt;br&amp;gt;&lt;br /&gt;
Das ist ein ganz normales Benutzerkonto ohne weitere Rechte, es muss sich nur am AD anmelden können.&amp;lt;br&amp;gt;&lt;br /&gt;
Erstellt den Benutzer. Der Benutzer sollte nicht mehr in eine andere OU verschoben werden nachdem er in NextCloud eingetragen wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nenne meinen Benutzer&lt;br /&gt;
 ldapnextcloud&lt;br /&gt;
Das Kennwort des Benutzers sollte nie ablaufen und er muss es auch nicht bei der nächsten Anmeldung ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt brauchen wir noch den &#039;&#039;&#039;Distinguished Name&#039;&#039;&#039; des Benutzers. Öffnet auf dem Domänencontroller eine Eingabeaufforderung und nutz folgenden Befehl:&amp;lt;br&amp;gt;&lt;br /&gt;
 dsquery user -samid ldapnextcloud&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;quot;CN=ldapnextcloud,OU=Funktionsbenutzer,OU=Benutzer,OU=Sonstiges,DC=test,DC=local&amp;quot;&lt;br /&gt;
Den Pfad, ohne die &amp;lt;code&amp;gt;&amp;quot; &amp;quot;&amp;lt;/code&amp;gt; brauchen wir gleich.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann bauen wir noch eine Gruppe. Nur Mitglieder in dieser Gruppe sollen NextCloud nutzen können.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nenne meine Gruppe hier &amp;quot;nextcloud&amp;quot;. Den &#039;&#039;&#039;Distinguished Name&#039;&#039;&#039; brauchen wir ebenfalls, diesen ermitteln wir mit dem - fast - gleichen Befehl wie zuvor:&amp;lt;br&amp;gt;&lt;br /&gt;
 dsquery group -samid nextcloud&lt;br /&gt;
Ausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;quot;CN=nextcloud,OU=VerwaltungsGruppen,OU=Gruppen,OU=Sonstiges,DC=test,DC=local&amp;quot;&lt;br /&gt;
Zum testen packen wir auch ein paar Benutzer in diese Gruppe.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wir gehen in der Managementoberfläche in das Apps-Menü und aktivieren das &#039;&#039;&#039;&#039;&#039;LDAP user an group backend&#039;&#039;&#039;&#039;&#039;:&amp;lt;br&amp;gt;[[Datei:ImageNextCloudLDAP1.png]]&lt;br /&gt;
&lt;br /&gt;
Danach könnt Ihr wieder zurück in die Verwaltungseinstellungen wechseln, dort gibt es nun einen neuen Abschnitt &amp;quot;LDAP/AD-Integration&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Auf der ersten Seite tragen wir unseren Server ein. Das kann eine IP-Adresse sein, aber auch ein Domänenname. In der Regel wird Port 389 verwendet, das ist der unverschlüsselt LDAP-Port. Kopiert den DN des benutzers hinein und sein Passwort. Drückt auf &#039;&#039;&#039;Zugangsdaten speichern&#039;&#039;&#039; und danach auf &#039;&#039;&#039;Base DN ermitteln&#039;&#039;&#039; - das ist dann der erste Test ob der Zugriff klappt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP2.png]]&lt;br /&gt;
&lt;br /&gt;
Mit &#039;&#039;&#039;Fortsetzen&#039;&#039;&#039; wechseln wir auf den Reiter &#039;&#039;&#039;Benutzer&#039;&#039;&#039;. Hier können wir unter Nur aus diesen Gruppen nach unserer Gruppe suchen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP3.png]]&lt;br /&gt;
&lt;br /&gt;
Markiert den Treffer (2) und drückt dann auf &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; bei (3)&lt;br /&gt;
&lt;br /&gt;
Der LDAP-Filter sollte sich dann entsprechend ändern:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP4.png]]&lt;br /&gt;
&lt;br /&gt;
Nach einem Klick auf &#039;&#039;&#039;Fortsetzen&#039;&#039;&#039; können wir wählen  welche Attribute für die Anmeldung erlaubt sind, ob Benutzername und/oder Emailadresse:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP5.png]]&lt;br /&gt;
&lt;br /&gt;
Unten links könnt Ihr das testen.&lt;br /&gt;
&lt;br /&gt;
Bei Bedarf können auch noch Gruppen ausgewählt werden die in NextCloud verwendet werden sollen.&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr nun in die Benutzerverwaltung wechselt, tauchen dort die Gruppenmitglieder aus dem Active Directory auf:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP6.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Cronjob für interne Verarbeitung einrichten==&lt;br /&gt;
NextCloud muss von Zeit zu Zeit Hintergrundaufgaben ausführen. NextCloud ist aber eine PHP-Anwendung in einer Webseite und würde somit nur beim Aufruf der Seite ausgeführt. Damit regelmäßige Aufgaben auch ausgeführt werden wenn niemand gerade die Webseite benutzt richten wir einen CronJob ein.&amp;lt;br&amp;gt;&lt;br /&gt;
In NextCloud stellt Ihr unter&lt;br /&gt;
 Verwaltungseinstellungen =&amp;gt; Verwaltung - Grundeinstellungen&lt;br /&gt;
Die &#039;&#039;&#039;Hintergrund-Job&#039;&#039;&#039; um auf &amp;lt;code&amp;gt;Cron&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Auf der NextCloud-VM melden wir uns per SSH (puTTY) an, wechseln zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und geben folgenden Befehl ein:&amp;lt;br&amp;gt;&lt;br /&gt;
 crontab -u www-data -e&lt;br /&gt;
Falls da eine Auswahl kommt die nach dem zu verwendenden Editor fragt nehmt die &amp;lt;code&amp;gt;1. /bin/nano&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Hängt unten and die Datei die folgenden Zeile an:&amp;lt;br&amp;gt;&lt;br /&gt;
 */5  *  *  *  * php -f /var/www/nextcloud/cron.php&lt;br /&gt;
Speichern und fertig! In der Weboberfläche wo Ihr auf Cron umgestellt habt könnt Ihr - als ungefähre Zeitangabe wie &#039;&#039;&#039;&#039;&#039;Der letzte Job lief vor einer Minute&#039;&#039;&#039;&#039;&#039; sehen ob es funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Backup der VM (Hot Backup - Datenbank einfrieren)==&lt;br /&gt;
Bei dieser Methode passiert folgendes:&lt;br /&gt;
* Die Datenbank wird vor einem Snapshot auf &amp;quot;READ ONLY&amp;quot; gesetzt - zuvor werden noch alle Daten geschrieben (&amp;quot;FLUSH TABLES&amp;quot;)&lt;br /&gt;
* Der Snapshot wird erstellt&lt;br /&gt;
* Die Datenbank wird wieder für Schreibzugriffe freigegeben&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unter VMware funktioniert das mit 2 Skripten die wir wie folgt anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/sbin/pre-freeze-script&lt;br /&gt;
mit folgendem Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
{{Warnung|Vergesst nicht das Passwort in Zeile 9 zu setzen (steht auf Leer was per Default passen sollte)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# 2018-04-20 Bernhard Linz&lt;br /&gt;
# Original script by Pascal Di Marco, check https://www.veeam.com/wp-consistent-protection-mysql-mariadb.html for more information&lt;br /&gt;
# Log will be write to syslog and(!) to /tmp/snapshot.log&lt;br /&gt;
echo &amp;quot;$0 pre-freeze start&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;-------------------------------------------------------------------------------------&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) pre-freeze start&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
# Set Username and Passwort for MySQL Access. Set mysql_password=&amp;quot;&amp;quot; if no password needed&lt;br /&gt;
mysql_username=&amp;quot;root&amp;quot;&lt;br /&gt;
mysql_password=&amp;quot;&amp;quot;&lt;br /&gt;
timeout=300&lt;br /&gt;
&lt;br /&gt;
# ************************************************************************************************&lt;br /&gt;
# No Changes behind this line!&lt;br /&gt;
# ************************************************************************************************&lt;br /&gt;
# Check if username + password is used&lt;br /&gt;
if [ -n &amp;quot;$mysql_password&amp;quot; ]; then&lt;br /&gt;
    use_credentials=&amp;quot;-u$mysql_username -p$mysql_password&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    use_credentials=&amp;quot;&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Name of the Lockfile&lt;br /&gt;
lock_file=/tmp/mysql_tables_read_lock&lt;br /&gt;
&lt;br /&gt;
sleep_time=$((timeout+10))&lt;br /&gt;
rm -f $lock_file&lt;br /&gt;
echo &amp;quot;$0 executing FLUSH TABLES WITH READ LOCK&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) executing FLUSH TABLES WITH READ LOCK&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
# Start READ LOCK - Process will send to background (and will still run after script is completed. Lock will stop if process is stopped&lt;br /&gt;
# After READ ONLY mode is entered the lockfile will be created. Process will stop when getting stop signal from post-thaw-script or timeout reached&lt;br /&gt;
mysql $use_credentials -e &amp;quot;FLUSH TABLES WITH READ LOCK; system touch $lock_file; system nohup sleep $sleep_time; system echo lock released|logger; &amp;quot; &amp;gt; /dev/null &amp;amp;&lt;br /&gt;
# get the PID of the mysql process&lt;br /&gt;
mysql_pid=$!&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$0 child pid $mysql_pid&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) child pid $mysql_pid&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
# Waiting for the lockfile ...&lt;br /&gt;
c=0&lt;br /&gt;
while [ ! -f $lock_file ]&lt;br /&gt;
do&lt;br /&gt;
    # check if mysql is running&lt;br /&gt;
    if ! ps -p $mysql_pid 1&amp;gt;/dev/null ; then&lt;br /&gt;
        echo &amp;quot;$0 mysql command has failed (bad credentials?)&amp;quot; | logger&lt;br /&gt;
        echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) mysql command has failed (bad credentials?)&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
    sleep 1&lt;br /&gt;
    c=$((c+1))&lt;br /&gt;
    # check if the script run into timeout&lt;br /&gt;
    if [ $c -gt $timeout ]; then&lt;br /&gt;
        echo &amp;quot;$0 timed out waiting for lock&amp;quot; | logger&lt;br /&gt;
        echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) timed out waiting for lock&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
        touch $lock_file&lt;br /&gt;
        kill $mysql_pid&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
# write PID into the lockfile&lt;br /&gt;
echo $mysql_pid &amp;gt; $lock_file&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$0 pre-freeze stop&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) pre-freeze stop&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
und&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/sbin/post-thaw-script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# 2018-04-20 Bernhard Linz&lt;br /&gt;
# Original script by Pascal Di Marco, check https://www.veeam.com/wp-consistent-protection-mysql-mariadb.html for more information&lt;br /&gt;
# Log will be write to syslog and(!) to /tmp/snapshot.log&lt;br /&gt;
echo &amp;quot;$0 post-thaw start&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0  $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) post-thaw start&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
lock_file=/tmp/mysql_tables_read_lock&lt;br /&gt;
&lt;br /&gt;
# get PID from lockfile&lt;br /&gt;
mysql_pid=$(cat $lock_file)&lt;br /&gt;
echo &amp;quot;$0 sending sigterm to $mysql_pid&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0  $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) sending sigterm to $mysql_pid&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
# and send stop to process&lt;br /&gt;
pkill -9 -P $mysql_pid&lt;br /&gt;
rm -f $lock_file&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$0 post-thaw stop&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0  $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) post-thaw stop&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt müssen wir die beiden Skripte noch ausführbar machen und dem root zuordnen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod 0700 /usr/sbin/pre-freeze-script&lt;br /&gt;
 chmod 0700 /usr/sbin/post-thaw-script&lt;br /&gt;
 chown root:root /usr/sbin/pre-freeze-script&lt;br /&gt;
 chown root:root /usr/sbin/post-thaw-script&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Voraussetzung ist das die VMware-Tools installiert sind!&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist es egal ob es sich um die Original VMware-Tools oder um die Open-VM-Tools aus den Repositories handelt.&amp;lt;br&amp;gt; &lt;br /&gt;
Nun können wir die Skripts testen indem wir einen Snapshot mit den folgenden Einstellungen erstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-204401.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Beispielausgabe aus der &lt;br /&gt;
 cat /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
 -------------------------------------------------------------------------------------&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:14 pre-freeze start&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:14 executing FLUSH TABLES WITH READ LOCK&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:14 child pid 11824&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:15 pre-freeze stop&lt;br /&gt;
 /usr/sbin/post-thaw-script  2023-03-20 12:49:18 post-thaw start&lt;br /&gt;
 /usr/sbin/post-thaw-script  2023-03-20 12:49:18 sending sigterm to 11824&lt;br /&gt;
 /usr/sbin/post-thaw-script  2023-03-20 12:49:18 post-thaw stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Falls es mit dem Passwort mal hakt so müsste das auch dort stehen:&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2018-06-13 12:01:04 mysql command has failed (bad credentials?)&lt;br /&gt;
Mehr Details stehen ggf. im &#039;&#039;&#039;&#039;&#039;syslog&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 tail -f -n 500 /var/log/syslog&lt;br /&gt;
In den meisten Umgebungen geht das so schnell das die Anwendungen das nicht einmal mitbekommen (4 bis 5 Sekunden).&amp;lt;br&amp;gt;&lt;br /&gt;
Es müsste schon in diesen Sekunden ein Schreibzugriff stattfinden - und dieser würde dann statt Millisekunden die 4 bis 6 Sekunden dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Das ganze funktioniert sowohl mit den original VMware-Tools als auch den Open-VM-Tools!}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Festplatte im laufenden Betrieb vergrößern==&lt;br /&gt;
Ihr habt den NextCloud-Server nach dieser Anleitung hier als VM installiert (und ohne LVM) und nun geht euch der Platz aus?&amp;lt;br&amp;gt;&lt;br /&gt;
Kein Problem, Ihr könnt die Festplatte im laufenden Betrieb vergößern!&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Schritt 1: Platz an die Festplatte anhängen===&lt;br /&gt;
* Stellt sicher das auf der VM zur zeit kein Snapshot aktiv ist!&lt;br /&gt;
* Vergrößert die Festplatte um den benötigten Speicherplatz&lt;br /&gt;
in dem Beispiel hier wird der Platz von 50 auf 100GB vergrößert.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Schritt 2: Betriebssystem die neue Größe erkennen lassen===&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Die einfachste und sicherste Methode ist den Server neu zu starten.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Wer will kann es aber auch im laufenden Betrieb durchführen, und das geht so:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wir müssen die Festplattenkontroller-Adapternummer ermitteln:&lt;br /&gt;
 grep mpt /sys/class/scsi_host/host*/proc_name&lt;br /&gt;
findet er nichts probiert&lt;br /&gt;
 grep pvscsi /sys/class/scsi_host/host*/proc_name&lt;br /&gt;
Beispielausgaben (eine von beiden wird kommen):&lt;br /&gt;
 /sys/class/scsi_host/&#039;&#039;&#039;host32&#039;&#039;&#039;/proc_name:mptspi&lt;br /&gt;
 /sys/class/scsi_host/&#039;&#039;&#039;host2&#039;&#039;&#039;/proc_name:vmw_pvscsi&lt;br /&gt;
Die Nummer ist in diesem Fall &amp;lt;code&amp;gt;host2&amp;lt;/code&amp;gt;! Die brauchen wir für den nächsten Befehl:&amp;lt;br&amp;gt;&lt;br /&gt;
 find /sys -name rescan | grep host2&lt;br /&gt;
Beispielausgabe:&lt;br /&gt;
 /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/target2:0:1/2:0:1:0/rescan&lt;br /&gt;
 /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/target2:0:0/2:0:0:0/rescan&lt;br /&gt;
Das sind unsere beiden Festplatten, die mit &amp;quot;target2:0:0&amp;quot; ist unsere Bootplatte, die mit &amp;quot;target2:0:1&amp;quot; unsere zweite Festplatte. Keine Angst, es geht nicht kaputt wenn ihr den nächsten Befehl an die falsche Festplatte sendet.&amp;lt;bt&amp;gt;&lt;br /&gt;
Ok, an die 2. Festplatte schicken wir jetzt eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; um den Rescan auszulösen:&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/target2:0:1/2:0:1:0/rescan&lt;br /&gt;
Fertig!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Anschluß zur Kontrolle ein&lt;br /&gt;
 fdisk -l&lt;br /&gt;
Die Ausgabe sollte ähnlich wie diese sein:&amp;lt;br&amp;gt;&lt;br /&gt;
 Festplatte /dev/sda: 25 GiB, 26843545600 Bytes, 52428800 Sektoren&lt;br /&gt;
 Festplattenmodell: Virtual disk&lt;br /&gt;
 Einheiten: Sektoren von 1 * 512 = 512 Bytes&lt;br /&gt;
 Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes&lt;br /&gt;
 E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes&lt;br /&gt;
 Festplattenbezeichnungstyp: gpt&lt;br /&gt;
 Festplattenbezeichner: 9BE90D25-A550-48DB-9E50-6CAC38D87217&lt;br /&gt;
 &lt;br /&gt;
 Gerät       Anfang     Ende Sektoren Größe Typ&lt;br /&gt;
 /dev/sda1     2048  2203647  2201600    1G EFI-System&lt;br /&gt;
 /dev/sda2  2203648 134215679 132012032 62,9G Linux-Dateisystem&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GPT-PMBR-Größenunterschied (419430399 != 524287999) wird durch »write« korrigiert.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Die GPT-Sicherungstabelle befindet sich nicht am Ende des Gerätes.&amp;lt;/span&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 Festplatte /dev/sdb: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;250 GiB&amp;lt;/span&amp;gt;, 268435456000 Bytes, 524288000 Sektore&lt;br /&gt;
 Festplattenmodell: Virtual disk&lt;br /&gt;
 Einheiten: Sektoren von 1 * 512 = 512 Bytes&lt;br /&gt;
 Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes&lt;br /&gt;
 E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes&lt;br /&gt;
 Festplattenbezeichnungstyp: gpt&lt;br /&gt;
 Festplattenbezeichner: 94010BD5-E5E2-42C3-8751-0A815B7F8E18&lt;br /&gt;
 &lt;br /&gt;
 Gerät      Anfang      Ende  Sektoren Größe Typ&lt;br /&gt;
 /dev/sdb1    2048 419428351 419426304  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;200G&amp;lt;/span&amp;gt; Linux-Dateisystem&lt;br /&gt;
Wir können sehen das {{key|sdb}} nun 250GB groß ist, in der letzten zeile sehen wir aber das die Partition {{key|sdb1}} zur Zeit noch 200Gb groß ist - prima!&amp;lt;br&amp;gt;&lt;br /&gt;
Die &amp;quot;Fehlermeldung&amp;quot; in Rot über den GPT-PMBR-Größenunterschied steht zwar direkt unter {{Key|sda2}}, die Meldung gehört aber zur nächsten Festplatte, also unserer {{Key|sdb}}.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Schritt 3: Partition vergrößern===&lt;br /&gt;
Das &amp;lt;code&amp;gt;/var/www&amp;lt;/code&amp;gt; Verzeichnis unserer zweiten Festplatte befindet sich auf dem Gerät&lt;br /&gt;
 /dev/sdb1&lt;br /&gt;
wenn Ihr nach dieser Anleitung installiert hattet. Kontrollieren könnte Ihr das z.B. mit&lt;br /&gt;
 df -h&lt;br /&gt;
und dann schauen was links vom Verzeichnis &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; steht:&amp;lt;br&amp;gt;&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,6G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;/dev/sdb1        49G    655M   46G    2% /var/www&amp;lt;/span&amp;gt;&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
Die nächsten Befehle gehen von {{Key|/dev/sdb1}}, wenn der Pfad anderes ist müsst Ihr diesen anpassen!&amp;lt;br&amp;gt;&lt;br /&gt;
 growpart /dev/sdb 1&lt;br /&gt;
 resize2fs /dev/sdb1&lt;br /&gt;
Ja, beim ersten Befehl ist da ein Leerzeichen zwischen dem sdb und der 1, beim zweiten Befehl nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Schritt 4: Das war schon alles!===&lt;br /&gt;
Ihr könnt mit&amp;lt;br&amp;gt;&lt;br /&gt;
 df -h&lt;br /&gt;
es einmal kontrollieren - aber das war schon alles:&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,6G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 /dev/sdb1        99G    655M   93G    1% /var/www&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
----&lt;br /&gt;
==Feintuning Teil 2==&lt;br /&gt;
{{Warnung| Ihr könnte die nachfolgenden Zeilen so in die &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; einfügen, inklusive der Kommentare dahinter. Diese werden aber bei der nächsten Konfigurationsänderung über die Weboberfläche wieder verschwinden, Nextcloud schreibt dann jedes mal die gesamte Datei neu.}}&lt;br /&gt;
Wir editieren die Datei&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und setzen noch zusätzlich folgende Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
   &#039;defaultapp&#039; =&amp;gt; &#039;files&#039;,                         // Standardansicht nach der Anmeldung ist nun die Dateiansicht.&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;&#039;skeletondirectory&#039; =&amp;gt; &#039;&#039;,&amp;lt;/nowiki&amp;gt;                       // Neuen Benutzern werden nicht die üblichen Startdateien kopiert&lt;br /&gt;
   &#039;default_language&#039; =&amp;gt; &#039;de&#039;,                      // Anzeigesprache Deutsch, kann sich der Benutzer umstellen&lt;br /&gt;
   &#039;overwritehost&#039; =&amp;gt; &#039;nextcloud1.test.local&#039;,      // Keine Autoermittlung der URL sondern in Links diesen Host einsetzen (wichtig für Reverse Proxy)&lt;br /&gt;
   &#039;overwriteprotocol&#039; =&amp;gt; &#039;https&#039;,                  // Keine Autoermittlung des Protokolls sondern immer dieses in Links verwenden&lt;br /&gt;
   &#039;versions_retention_obligation&#039; =&amp;gt; &#039;auto, 30&#039;,   // Versionen gemäß Plan behalten, Versionen älter als 30 Tage aber löschen.&lt;br /&gt;
   //&#039;versions_retention_obligation&#039; =&amp;gt; &#039;disabled&#039;, // Alternativ: Versionierung deaktivieren&lt;br /&gt;
   &#039;trashbin_retention_obligation&#039; =&amp;gt; &#039;3,7&#039;,        // gelöschte Dateien bleiben mindestens 3 Tage im Papierkorb und werden spätestens nach 7 Tagen gelöscht&lt;br /&gt;
   //&#039;trashbin_retention_obligation&#039; =&amp;gt; &#039;3,auto&#039;,   // gelöschte Dateien bleiben mindestens 3 Tage im Papierkorb und werden bei Bedarf automatisch gelöscht&lt;br /&gt;
   //&#039;trashbin_retention_obligation&#039; =&amp;gt; &#039;auto,7&#039;,   // Dateien werden bei Bedarf automatisch gelöscht&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Feintuning Teil 3==&lt;br /&gt;
und noch mehr Optionen für die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und zwar:&lt;br /&gt;
  &#039;force_language&#039; =&amp;gt; &#039;de&#039;,                         // und zwar Zwangsweise, der Benutzer kann diese nicht ändern&lt;br /&gt;
  &#039;default_locale&#039; =&amp;gt; &#039;de_DE&#039;,                      // Für Editoren &amp;amp; Co&lt;br /&gt;
  &#039;force_locale&#039; =&amp;gt; &#039;de_DE&#039;,                        // wieder zwangsweise&lt;br /&gt;
  &#039;default_phone_region&#039; =&amp;gt; &#039;DE&#039;,                   // Telefonnummern ist per Default aus Deutschland&lt;br /&gt;
  &#039;maintenance_window_start&#039; =&amp;gt; 1,                  // Intensive Wartung um 01:00 und 05:00 Uhr ausführen&lt;br /&gt;
und für die Apache2 Konfigurationsdatei:&lt;br /&gt;
 nano /etc/apache2/sites-available/nextcloud-ssl.conf&lt;br /&gt;
folgendes mit einbauen:&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
                Header always set Strict-Transport-Security &amp;quot;max-age=15552000; includeSubDomains&amp;quot;&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
Was dafür sorgt das https nicht umgangen werden kann.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=NextCloud_unter_Ubuntu_24.04_LTS_installieren&amp;diff=15767</id>
		<title>NextCloud unter Ubuntu 24.04 LTS installieren</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=NextCloud_unter_Ubuntu_24.04_LTS_installieren&amp;diff=15767"/>
		<updated>2026-02-17T17:10:00Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 27.05.2024 erste Version&lt;br /&gt;
* 16.06.2024 Feintuning und diverse Anpassungen&lt;br /&gt;
* 17.02.2026 Anleitung für die Installation von Ubuntu durch meine allgemeine Vorlage ersetzt&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Installation Ubuntu Server 24.04.x LTS (Long Term Support)==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Einstellungen für die VM===&lt;br /&gt;
Falls Ihr den NextCloud-Server als virtuelle Maschine (VM) installiert so könnt Ihr Beispielsweise folgenden Einstellungen nehmen. Diese berücksichtigen auch die Mindestanforderungen von Ubuntu 24.04&amp;lt;br&amp;gt;&lt;br /&gt;
* Konfiguration: &#039;&#039;&#039;Typisch&#039;&#039;&#039;&lt;br /&gt;
* Name und Speicherort: &#039;&#039;&#039;Nach eigener Wahl&#039;&#039;&#039;&lt;br /&gt;
* Speicher: &#039;&#039;&#039;Nach eigener Wahl&#039;&#039;&#039;&lt;br /&gt;
* Gastbetriebssystem: &#039;&#039;&#039;(*) Linux --&amp;gt; Ubuntu (64-Bit)&#039;&#039;&#039;&lt;br /&gt;
* Netzwerk:&lt;br /&gt;
** Wie viele Netzwerkkarten möchten Sie anschließen: &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
** Netzwerk: &#039;&#039;&#039;Nach Wahl (VM Network?)&#039;&#039;&#039;&lt;br /&gt;
** Adapter: &#039;&#039;&#039;VMXNET 3&#039;&#039;&#039;&lt;br /&gt;
* Größer der virtuellen Festplatte: &lt;br /&gt;
** Hängt von der Anzahl der überwachten Geräte / Items ab. &lt;br /&gt;
** Ich empfehle min &#039;&#039;&#039;32GB&#039;&#039;&#039; für das Betriebssystem des Servers. Für die Datenpartition hängen wir später noch eine zweite Festplatte an. &lt;br /&gt;
** Die Festplatte kann bei einer VM nachträglich vergrößert werden - siehe dazu den Abschnitt in diesem Artikel weiter unten&lt;br /&gt;
** &#039;&#039;&#039;Thick-Provision Lazy-Zeroed&#039;&#039;&#039;&lt;br /&gt;
Danach Einstellungen der VM bearbeiten:&lt;br /&gt;
&amp;lt;u&amp;gt;Reiter Hardware:&amp;lt;/u&amp;gt;&lt;br /&gt;
* Arbeitsspeicher:&lt;br /&gt;
** &#039;&#039;&#039;4GB&#039;&#039;&#039; oder mehr&lt;br /&gt;
* CPUs:&lt;br /&gt;
** Anzahl der virtuellen Sockets&lt;br /&gt;
*** &#039;&#039;&#039;4 oder mehr&#039;&#039;&#039;&lt;br /&gt;
** Anzahl der Cores pro Socket: &#039;&#039;&#039;1&#039;&#039;&#039; (Immer Anzahl der Sockets erhöhen)&lt;br /&gt;
&amp;lt;u&amp;gt;Reiter Optionen&amp;lt;/u&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Grundinstallation===&lt;br /&gt;
{{Vorlage:Installation-Ubuntu-2404}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Benötigte Programme für Nextcloud installieren===&lt;br /&gt;
Die nachfolgende Zeile installiert alles notwendige die auch nachfolgend beschriebenen Features von NextCloud  zu nutzen. Als Datenbank wird MariaDB verwendet.&amp;lt;br&amp;gt;&lt;br /&gt;
 apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip php-ldap php-bz2 php-json unzip zip imagemagick -y&lt;br /&gt;
{{Tipp| Zum kopieren der oberen Zeile mit der Maus vor das &amp;lt;code&amp;gt;apt&amp;lt;/code&amp;gt; gehen und 3x Klicken. Ggf. mehrmals versuchen - bis die ganze Zeile markiert ist. Diese kann dann so in z.B. PuTTY eingefügt werden}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Festplatte einbinden==&lt;br /&gt;
Die Daten von NextCloud sollen auf einer 2. Festplatte gespeichert werden - exklusive der SQL-Datenbank, diese wird auf der Festplatte mit dem Betriebssystem liegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu habe ich der VM einfach eine weitere Festplatte mit 50GiB hinzugefügt. Diese können wir später bei bedarf einfach vergrößern.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach dem hinzufügen startet Ihr den Server einmal neu.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Zuerst müssen wir herausfinden wie die 2. Festplatte unter Ubuntu heißt:&amp;lt;br&amp;gt;&lt;br /&gt;
 ls -l /dev/sd*&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Ausgabe:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
brw-rw---- 1 root disk 8,  0 Jan 29 10:46 /dev/sda&lt;br /&gt;
brw-rw---- 1 root disk 8,  1 Jan 29 10:46 /dev/sda1&lt;br /&gt;
brw-rw---- 1 root disk 8,  2 Jan 29 10:46 /dev/sda2&lt;br /&gt;
brw-rw---- 1 root disk 8, 16 Jan 29 10:46 /dev/sdb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt; ist die erste Festplatte, &amp;lt;code&amp;gt;sda1&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;sda2&amp;lt;/code&amp;gt; sind Partitionen auf dieser.&amp;lt;br&amp;gt;&lt;br /&gt;
Unsere Zielfestplatte Platte ist die &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Da wir hier keine &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt; sehen hat diese Festplatte noch keine Partitionen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich arbeite hier ohne LVM, die Festplatte können wir später trotzdem leicht vergrößern.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Warnung| Das müsst Ihr nur machen falls Ihr noch keine Partition habt, also kein &amp;lt;code&amp;gt;/dev/sda1&amp;lt;/code&amp;gt; sondern nur &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;}}&amp;lt;br&amp;gt;&lt;br /&gt;
Wir tippen ein:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Da kommt dann etwas Text und die Aufforderung&amp;lt;br&amp;gt;&lt;br /&gt;
 Willkommen bei fdisk (util-linux 2.39.3).&lt;br /&gt;
 Änderungen werden vorerst nur im Speicher vorgenommen, bis Sie sich&lt;br /&gt;
 entscheiden, sie zu schreiben.&lt;br /&gt;
 Seien Sie vorsichtig, bevor Sie den Schreibbefehl anwenden.&lt;br /&gt;
 &lt;br /&gt;
 Gerät enthält keine erkennbare Partitionstabelle.&lt;br /&gt;
 Created a new DOS (MBR) disklabel with disk identifier 0xa720af51.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;Befehl (m für Hilfe):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wir drücken&lt;br /&gt;
 g&lt;br /&gt;
um auf den GPT-Partitionsstil zu wechseln, es sollte eine Zeile wie&lt;br /&gt;
 Eine neue GPT-Festplattenbezeichnung wurde erstellt (GUID: E27F99AE-C130-4D72-A392-8CD8A9E933B1).&lt;br /&gt;
erscheinen. Dann drücken wir&lt;br /&gt;
 n&lt;br /&gt;
um eine neue Partition zu erstellen und dann&lt;br /&gt;
 1&lt;br /&gt;
für die erste Partition.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann drückt 2x {{Key|Enter}} um die vorgeschlagenen Werte zu übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
 Partitionsnummer (1-128, Vorgabe 1): 1&lt;br /&gt;
 Erster Sektor (2048-2147483614, Vorgabe 2048):&lt;br /&gt;
 Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (2048-2147483614, Vorgabe 2147481599):&lt;br /&gt;
 &lt;br /&gt;
 Eine neue Partition 1 des Typs „Linux filesystem“ und der Größe 1024 GiB wurde erstellt.&lt;br /&gt;
Jetzt sollte da wieder&lt;br /&gt;
 &#039;&#039;&#039;Befehl (m für Hilfe):&#039;&#039;&#039;&lt;br /&gt;
stehen und wir drücken &lt;br /&gt;
 w&lt;br /&gt;
um das ganze auf die Platte zu schreiben.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das sollte also etwas so aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
 root@cloud:~# fdisk /dev/sdb&lt;br /&gt;
 &lt;br /&gt;
 Willkommen bei fdisk (util-linux 2.39.3).&lt;br /&gt;
 Änderungen werden vorerst nur im Speicher vorgenommen, bis Sie sich&lt;br /&gt;
 entscheiden, sie zu schreiben.&lt;br /&gt;
 Seien Sie vorsichtig, bevor Sie den Schreibbefehl anwenden.&lt;br /&gt;
 &lt;br /&gt;
 Gerät enthält keine erkennbare Partitionstabelle.&lt;br /&gt;
 Created a new DOS (MBR) disklabel with disk identifier 0xa720af51.&lt;br /&gt;
 &lt;br /&gt;
 Befehl (m für Hilfe): g&lt;br /&gt;
 Eine neue GPT-Festplattenbezeichnung wurde erstellt (GUID: E27F99AE-C130-4D72-A392-8CD8A9E933B1).&lt;br /&gt;
 &lt;br /&gt;
 Befehl (m für Hilfe): n&lt;br /&gt;
 Partitionsnummer (1-128, Vorgabe 1): 1&lt;br /&gt;
 Erster Sektor (2048-2147483614, Vorgabe 2048):&lt;br /&gt;
 Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (2048-2147483614, Vorgabe 2147481599):&lt;br /&gt;
 &lt;br /&gt;
 Eine neue Partition 1 des Typs „Linux filesystem“ und der Größe 1024 GiB wurde erstellt.&lt;br /&gt;
 &lt;br /&gt;
 Befehl (m für Hilfe): w&lt;br /&gt;
 Die Partitionstabelle wurde verändert.&lt;br /&gt;
 ioctl() wird aufgerufen, um die Partitionstabelle neu einzulesen.&lt;br /&gt;
 Festplatten werden synchronisiert.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Prima, jetzt haben wir eine Partition &amp;lt;code&amp;gt;/dev/sdb1&amp;lt;/code&amp;gt;, diese formatieren wir nun mit dem &#039;&#039;&#039;&#039;&#039;ext4&#039;&#039;&#039;&#039;&#039; Dateisystem:&amp;lt;br&amp;gt;&lt;br /&gt;
 mkfs.ext4 /dev/sdb1&lt;br /&gt;
Ausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 root@nextcloud1:~# mkfs.ext4 /dev/sdb1&lt;br /&gt;
 mke2fs 1.46.5 (30-Dec-2021)&lt;br /&gt;
 Geräteblöcke werden verworfen: erledigt&lt;br /&gt;
 Ein Dateisystem mit 13106944 (4k) Blöcken und 3276800 Inodes wird erzeugt.&lt;br /&gt;
 UUID des Dateisystems: 2ead4117-e280-4ac4-8038-f41ef64c1e70&lt;br /&gt;
 Superblock-Sicherungskopien gespeichert in den Blöcken:&lt;br /&gt;
         32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,&lt;br /&gt;
         4096000, 7962624, 11239424&lt;br /&gt;
 &lt;br /&gt;
 beim Anfordern von Speicher für die Gruppentabellen: erledigt&lt;br /&gt;
 Inode-Tabellen werden geschrieben: erledigt&lt;br /&gt;
 Das Journal (65536 Blöcke) wird angelegt: fertig&lt;br /&gt;
 Die Superblöcke und die Informationen über die Dateisystemnutzung werden&lt;br /&gt;
 geschrieben: erledigt&lt;br /&gt;
&lt;br /&gt;
Nun müssen wir die Festplatte noch mounten. NextCloud werden wir nach&lt;br /&gt;
 /var/www/nextcloud&lt;br /&gt;
installieren. Deshalb hängen wir die neue Festplatte unterhalb von &amp;lt;code&amp;gt;/var/www&amp;lt;/code&amp;gt; ein. In diesem Verzeichnis gibt es im Moment noch das Unterverzeichnis &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; was wir uns vorher wegsichern:&amp;lt;br&amp;gt;&lt;br /&gt;
 mv /var/www/html /tmp/html&lt;br /&gt;
Dann mounten wir unsere neue Partition an diesen Pfad:&amp;lt;br&amp;gt;&lt;br /&gt;
 mount /dev/sdb1 /var/www/&lt;br /&gt;
Prüfen wir ob das geklappt hat:&lt;br /&gt;
 root@nextcloud1:~# df -h&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,5G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
 /dev/sdb1        49G     24K   47G    1% /var/www&lt;br /&gt;
In der letzten Zeile sehen wir das es geklappt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Nun müssen wir dafür sorgen das dies auch beim nächsten Booten automatisch gemacht wird. Dazu brauchen wir die UUID die wir wie folgt herausbekommen:&amp;lt;br&amp;gt;&lt;br /&gt;
 ls -l /dev/disk/by-uuid/ | grep sdb&lt;br /&gt;
Ergebnis bei mir:&amp;lt;br&amp;gt;&lt;br /&gt;
 lrwxrwxrwx 1 root root 10 Jan 29 11:10 2ead4117-e280-4ac4-8038-f41ef64c1e70 -&amp;gt; ../../sdb1&lt;br /&gt;
Nun bearbeiten wir die &amp;lt;code&amp;gt;fstab&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/fstab&lt;br /&gt;
und hängen unten folgende Zeile an:&lt;br /&gt;
 /dev/disk/by-uuid/2ead4117-e280-4ac4-8038-f41ef64c1e70 /var/www ext4 defaults 0 1&lt;br /&gt;
Die Werte bedeuten:&lt;br /&gt;
 /dev/disk/by-uuid/2ead4117-e280-4ac4-8038-f41ef64c1e70   : Pfad mit UUID des Datenträgers&lt;br /&gt;
 /var/www                                                 : Das Verzeichnis in das gemountet werden soll&lt;br /&gt;
 ext4                                                     : Welches Dateisystem soll gemountet werden, ggf. auch mit &#039;&#039;&#039;auto&#039;&#039;&#039; probieren&lt;br /&gt;
 defaults                                                 : Mit Standardeinstellungen / Rechten mounten, Detail siehe z.B. hier: https://wiki.archlinux.de/title/Fstab&lt;br /&gt;
 0                                                        : Für den Befehl Dump, 0 bedeutet &amp;quot;keine Systempartition&amp;quot;&lt;br /&gt;
 0                                                        : Für Dateisystemprüfung, 1 bedeutet &amp;quot;mit Prüfung&amp;quot; einbinden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bevor wir nun neu Starten verschieben wir noch das &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; Verzeichnis zurück:&amp;lt;br&amp;gt;&lt;br /&gt;
 mv /tmp/html /var/www/html&lt;br /&gt;
Als Test nun einen Reboot - danach sollte die Platte weiterhin/wieder eingehängt sein. Das könnte ihr wieder mit &amp;lt;code&amp;gt;df -h&amp;lt;/code&amp;gt; kontrollieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,5G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 /dev/sdb1        49G     40K   47G    1% /var/www&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Nextcloud installieren==&lt;br /&gt;
Die folgenden Installationsschritte habe ich mir aus verschiedenen Anleitungen zusammengesucht, die Quellen sind:&amp;lt;br&amp;gt;&lt;br /&gt;
* https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html&lt;br /&gt;
* https://mailserverguru.com/install-nextcloud-on-ubuntu-22-04-lts/&lt;br /&gt;
----&lt;br /&gt;
===Datenbank erstellen===&lt;br /&gt;
NextCloud benötigt eine MySQL / MariaDB Datenbank die wir wie folgt erstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mysql -u root -e &amp;quot;CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci&amp;quot;&lt;br /&gt;
mysql -u root -e &amp;quot;CREATE USER &#039;dbusernextcloud&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password4nextclouddb&#039;&amp;quot;&lt;br /&gt;
mysql -u root -e &amp;quot;GRANT ALL PRIVILEGES ON nextcloud.* TO &#039;dbusernextcloud&#039;@&#039;localhost&#039;&amp;quot;&lt;br /&gt;
mysql -u root -e &amp;quot;FLUSH PRIVILEGES&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit wird eine Datenbank &#039;&#039;&#039;&#039;&#039;nextcloud&#039;&#039;&#039;&#039;&#039; erstellt (falls noch nicht vorhanden) und dem lokalen Benutzer &#039;&#039;&#039;&#039;&#039;dbusernextcloud&#039;&#039;&#039;&#039;&#039; mit dem Passwort &#039;&#039;&#039;&#039;&#039;password4nextclouddb&#039;&#039;&#039;&#039;&#039; darauf Zugriff gewährt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===NextCloud herunterladen===&lt;br /&gt;
Die folgenden Befehle laden die aktuellste Version als {{Key|.zip}} herunter, entpacken diese in den Ordern &amp;lt;code&amp;gt;/var/www/nextcloud&amp;lt;/code&amp;gt;, löschen die {{Key|.zip}} und geben dem Benzutzer unter dem der Webserver läuft volle Rechte auf den Ordner:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /var/www/&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;https://download.nextcloud.com/server/releases/latest.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 unzip latest.zip&lt;br /&gt;
 rm -rf latest.zip&lt;br /&gt;
 chown -R www-data:www-data /var/www/nextcloud/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Webserver auf NextCloud-Pfad setzen===&lt;br /&gt;
Die Default-Webseite zeigt im Moment noch auf &amp;lt;code&amp;gt;/var/www/html&amp;lt;/code&amp;gt;, wir ändern dies auf unser neues Verzeichnis:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
Mit {{Key|F9}} könnt Ihr den gesamten Inhalt der Datei löschen und das nachfolgende einfügen.&amp;lt;br&amp;gt;&lt;br /&gt;
Geändert wird aber erst einmal nur die Zeile mit &#039;&#039;&#039;&#039;&#039;DocumentRoot&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        # The ServerName directive sets the request scheme, hostname and port that&lt;br /&gt;
        # the server uses to identify itself. This is used when creating&lt;br /&gt;
        # redirection URLs. In the context of virtual hosts, the ServerName&lt;br /&gt;
        # specifies what hostname must appear in the request&#039;s Host: header to&lt;br /&gt;
        # match this virtual host. For the default virtual host (this file) this&lt;br /&gt;
        # value is not decisive as it is used as a last resort host regardless.&lt;br /&gt;
        # However, you must set it for any further virtual host explicitly.&lt;br /&gt;
        #ServerName www.example.com&lt;br /&gt;
&lt;br /&gt;
        ServerAdmin webmaster@localhost&lt;br /&gt;
        DocumentRoot /var/www/nextcloud&lt;br /&gt;
&lt;br /&gt;
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,&lt;br /&gt;
        # error, crit, alert, emerg.&lt;br /&gt;
        # It is also possible to configure the loglevel for particular&lt;br /&gt;
        # modules, e.g.&lt;br /&gt;
        #LogLevel info ssl:warn&lt;br /&gt;
&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&lt;br /&gt;
        # For most configuration files from conf-available/, which are&lt;br /&gt;
        # enabled or disabled at a global level, it is possible to&lt;br /&gt;
        # include a line for only one particular virtual host. For example the&lt;br /&gt;
        # following line enables the CGI configuration for this host only&lt;br /&gt;
        # after it has been globally disabled with &amp;quot;a2disconf&amp;quot;.&lt;br /&gt;
        #Include conf-available/serve-cgi-bin.conf&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Wo wir schon mal dabei sind aktivieren wir gleich weitere Apache2 Module die wir gleich noch brauchen:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2enmod rewrite dir mime env headers&lt;br /&gt;
und starten den Webserver dann neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Grundsetup über das Webinterface===&lt;br /&gt;
Im Webbrowser müsstet Ihr jetzt über die IP-Adresse des Servers das Setup erreichen:&amp;lt;br&amp;gt;&lt;br /&gt;
 http://IP-eurer-NextCloud-VM/&lt;br /&gt;
:[[Datei:ImageNextCloudSetup.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Den Benutzernamen und das Passwort dürft Ihr euch frei ausdenken. Das wird der erste Admin-Benutzer.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Datenverzeichnis lasst Ihr so stehen wie vorgeschlagen auf&lt;br /&gt;
 /var/www/nextcloud/data&lt;br /&gt;
Beim Datenbank-Benutzer müsst tragt Ihr - wenn Ihr mein Beispiel übernommen habt&lt;br /&gt;
 dbusernextcloud&lt;br /&gt;
ein, das Passwort ist&amp;lt;br&amp;gt;&lt;br /&gt;
 password4nextclouddb&lt;br /&gt;
und der Datenbank-Name&lt;br /&gt;
 nextcloud&lt;br /&gt;
Den Host last ihr wie er ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Auf installieren drücken und Geduld beweisen, nach 10 bis 30 Sekunden geht es weiter:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudSetup2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das könnt Ihr nach eigenen Gutdünken entscheiden, ich überspringe hier da ich den Server nur für den Austausch von Dateien verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Es folgt eine Infoseite durch die man sich durchklickt bis man bei &#039;&#039;&#039;&#039;&#039;Los gehts!&#039;&#039;&#039;&#039;&#039; landet.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fertig! Der grundlegende NextCloud-Server läuft nun!&lt;br /&gt;
----&lt;br /&gt;
==Feintuning Teil 1==&lt;br /&gt;
Im Verwaltungsbereich wird uns NextCloud ein paar Warnung bezüglich verschiedener Einstellungen geben, ein paar davon stellen wir hier ab.&amp;lt;br&amp;gt;&lt;br /&gt;
Zudem folgen wir den Empfehlungen von https://mailserverguru.com/install-nextcloud-on-ubuntu-22-04-lts/ und bauen auf PHP-FPM um, das wird auch von NextCloud selbst empfohlen (aus Performancegründen):&lt;br /&gt;
 apt install php-fpm&lt;br /&gt;
Der Dienst dazu sollte automatisch starten, das können wir per&lt;br /&gt;
  systemctl status php8.3-fpm.service&lt;br /&gt;
prüfen.&amp;lt;br&amp;gt;&lt;br /&gt;
Nun wechseln wir die PHP-Engine von Apache:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2dismod php8.3&lt;br /&gt;
 a2dismod mpm_prefork&lt;br /&gt;
 a2enmod mpm_event proxy_fcgi setenvif&lt;br /&gt;
 a2enconf php8.3-fpm&lt;br /&gt;
dann bearbeiten wir die Datei &lt;br /&gt;
 nano /etc/php/8.3/fpm/php.ini&lt;br /&gt;
und ändern folgende Zeilen ({{Key|STRG}} + {{Key|W}} ist suchen):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
upload_max_filesize = 1024M &lt;br /&gt;
post_max_size = 1536M &lt;br /&gt;
memory_limit = 2048M &lt;br /&gt;
max_execution_time = 600&lt;br /&gt;
max_input_vars = 3000 &lt;br /&gt;
max_input_time = 1000&lt;br /&gt;
opcache.interned_strings_buffer=32&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun noch die FPM-Pool-Einstellungen:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/php/8.3/fpm/pool.d/www.conf&lt;br /&gt;
und folgende Änderungen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
pm.max_children = 64&lt;br /&gt;
pm.start_servers = 16&lt;br /&gt;
pm.min_spare_servers = 16&lt;br /&gt;
pm.max_spare_servers = 32&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Im Anschluss den Dients neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart php8.3-fpm.service&lt;br /&gt;
Jetzt noch die Webseitenkonfiguration anpassen damit php-fpm verwendet wird:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apache2/sites-enabled/000-default.conf&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
        # The ServerName directive sets the request scheme, hostname and port that&lt;br /&gt;
        # the server uses to identify itself. This is used when creating&lt;br /&gt;
        # redirection URLs. In the context of virtual hosts, the ServerName&lt;br /&gt;
        # specifies what hostname must appear in the request&#039;s Host: header to&lt;br /&gt;
        # match this virtual host. For the default virtual host (this file) this&lt;br /&gt;
        # value is not decisive as it is used as a last resort host regardless.&lt;br /&gt;
        # However, you must set it for any further virtual host explicitly.&lt;br /&gt;
        #ServerName www.example.com&lt;br /&gt;
&lt;br /&gt;
        ServerAdmin webmaster@localhost&lt;br /&gt;
        DocumentRoot /var/www/nextcloud&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /var/www/nextcloud&amp;gt;&lt;br /&gt;
          Options Indexes FollowSymLinks&lt;br /&gt;
          AllowOverride All&lt;br /&gt;
          Require all granted&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.php$&amp;quot;&amp;gt;&lt;br /&gt;
         SetHandler &amp;quot;proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/&amp;quot;&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,&lt;br /&gt;
        # error, crit, alert, emerg.&lt;br /&gt;
        # It is also possible to configure the loglevel for particular&lt;br /&gt;
        # modules, e.g.&lt;br /&gt;
        #LogLevel info ssl:warn&lt;br /&gt;
&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&lt;br /&gt;
        # For most configuration files from conf-available/, which are&lt;br /&gt;
        # enabled or disabled at a global level, it is possible to&lt;br /&gt;
        # include a line for only one particular virtual host. For example the&lt;br /&gt;
        # following line enables the CGI configuration for this host only&lt;br /&gt;
        # after it has been globally disabled with &amp;quot;a2disconf&amp;quot;.&lt;br /&gt;
        #Include conf-available/serve-cgi-bin.conf&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Jetzt noch den Apache neu starten:&lt;br /&gt;
 systemctl restart apache2.service&lt;br /&gt;
und testen, die Webseite sollte wie gewohnt funktionieren&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Umbau auf https - Selbstsigniertes Zertifikat==&lt;br /&gt;
In der &amp;lt;code&amp;gt;http://&amp;lt;/code&amp;gt; Anzeige funktioniert zunächst alles, aber zum Beispiel das kopieren von Links zum Teilen nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir machen den Server also über &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; erreichbar, zunächst mit einem selbst signierten Zertifikat:&amp;lt;br&amp;gt;&lt;br /&gt;
https-Unterstützung des Apache2 aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2enmod ssl&lt;br /&gt;
 systemctl restart apache2&lt;br /&gt;
Dann erstellen wir unser eigenes SSL-Zertifikat:&amp;lt;br&amp;gt;&lt;br /&gt;
 openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt&lt;br /&gt;
Die Fragen beantwortet ihr nach eigenem Gutdünken oder eben gar nicht (einfach mit Enter bestätigen).&amp;lt;br&amp;gt;&lt;br /&gt;
Bei &#039;&#039;&#039;&#039;&#039;Common Name (e.g. server FQDN or YOUR name) []:&#039;&#039;&#039;&#039;&#039; solltet Ihr den DNS-Namen eintragen unter dem der Server später erreicht werden soll:&amp;lt;br&amp;gt;&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:nextcloud1.test.local&lt;br /&gt;
Nun erstellen wir eine neue Apache2-Konfiguration für den verschlüsselten Zugriff:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apache2/sites-available/nextcloud-ssl.conf&lt;br /&gt;
mit folgendem Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
        ServerAdmin webmaster@localhost&lt;br /&gt;
        DocumentRoot /var/www/nextcloud&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Directory /var/www/nextcloud&amp;gt;&lt;br /&gt;
                Options Indexes FollowSymLinks&lt;br /&gt;
                AllowOverride All&lt;br /&gt;
                Require all granted&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
        CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&lt;br /&gt;
        SSLEngine on&lt;br /&gt;
&lt;br /&gt;
        SSLCertificateFile    /etc/ssl/certs/nextcloud-selfsigned.crt&lt;br /&gt;
        SSLCertificateKeyFile /etc/ssl/private/nextcloud-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;\.(cgi|shtml|phtml|php)$&amp;quot;&amp;gt;&lt;br /&gt;
                        SSLOptions +StdEnvVars&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
        &amp;lt;Directory /usr/lib/cgi-bin&amp;gt;&lt;br /&gt;
                        SSLOptions +StdEnvVars&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der Bereich mit {{Key|&amp;lt;Directory /var/www/nextcloud&amp;gt;}} ist wichtig damit später die &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; Dateien funktionieren!&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt müssen wir die Seite noch aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 a2ensite nextcloud-ssl.conf&lt;br /&gt;
 systemctl reload apache2&lt;br /&gt;
Nun müssen wir NextCloud noch davon erzählen - das der Zugriff per DNS-Name aus dem Zertifikat ok ist:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und oben folgenden Eintrag ergänzen (der &amp;lt;code&amp;gt;1 =&amp;gt;&amp;lt;/code&amp;gt;):&amp;lt;br&amp;gt;&lt;br /&gt;
   array (&lt;br /&gt;
    0 =&amp;gt; &#039;192.168.1.10&#039;,&lt;br /&gt;
    1 =&amp;gt; &#039;nextcloud1.test.local&#039;,&lt;br /&gt;
  ),&lt;br /&gt;
und nun sollte Ihr im Webbrowser eure NextCloud-Installation auch per https erreichen. (mit Zertifikatswarnung).&amp;lt;br&amp;gt;&lt;br /&gt;
Damit es über den Namen klappt müsst Ihr diesen auf eurem DNS-Server hinterlegen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==kurze URLs verwenden==&lt;br /&gt;
{{Hinweis| Das funktioniert nur wenn ihr den vorherigen Umbau auf PHP-FPM gemacht habt!}}&amp;lt;br&amp;gt;&lt;br /&gt;
Die Links wenn Ihr später Dateien teilt enthalten immer die &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 https://192.168.1.10/index.php/s/2D7HRQ2NnzHX8BW&lt;br /&gt;
Um diese Anzeige zu entfernen bearbeiten wir die Konfigurationsdatei von NextCloud:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und hängen unten folgende Zeile an (vor dem &amp;lt;code&amp;gt;);&amp;lt;/code&amp;gt; in der letzten Zeile):&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;overwrite.cli.url&#039; =&amp;gt; &#039;https://nextcloud1.test.local/&#039;,&lt;br /&gt;
 &#039;htaccess.RewriteBase&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
Speichern und dann folgenden Befehl ausführen:&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:update:htaccess&lt;br /&gt;
Ab jetzt müsstet Ihr den Server über seinen DNS-Namen aufrufen!&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==LDAP / Active Directory anbinden==&lt;br /&gt;
Für die LDAP-Anbindung muss das LDAP-PHP Modul installiert sein, nach dieser Anleitung ist das schon der Fall.&amp;lt;br&amp;gt;&lt;br /&gt;
Ansonsten:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt install php-ldap&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst brauchen wir im Active Directory einen Benutzer für die LDAP-Abfrage.&amp;lt;br&amp;gt;&lt;br /&gt;
Das ist ein ganz normales Benutzerkonto ohne weitere Rechte, es muss sich nur am AD anmelden können.&amp;lt;br&amp;gt;&lt;br /&gt;
Erstellt den Benutzer. Der Benutzer sollte nicht mehr in eine andere OU verschoben werden nachdem er in NextCloud eingetragen wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nenne meinen Benutzer&lt;br /&gt;
 ldapnextcloud&lt;br /&gt;
Das Kennwort des Benutzers sollte nie ablaufen und er muss es auch nicht bei der nächsten Anmeldung ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt brauchen wir noch den &#039;&#039;&#039;Distinguished Name&#039;&#039;&#039; des Benutzers. Öffnet auf dem Domänencontroller eine Eingabeaufforderung und nutz folgenden Befehl:&amp;lt;br&amp;gt;&lt;br /&gt;
 dsquery user -samid ldapnextcloud&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;quot;CN=ldapnextcloud,OU=Funktionsbenutzer,OU=Benutzer,OU=Sonstiges,DC=test,DC=local&amp;quot;&lt;br /&gt;
Den Pfad, ohne die &amp;lt;code&amp;gt;&amp;quot; &amp;quot;&amp;lt;/code&amp;gt; brauchen wir gleich.&amp;lt;br&amp;gt;&lt;br /&gt;
Dann bauen wir noch eine Gruppe. Nur Mitglieder in dieser Gruppe sollen NextCloud nutzen können.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nenne meine Gruppe hier &amp;quot;nextcloud&amp;quot;. Den &#039;&#039;&#039;Distinguished Name&#039;&#039;&#039; brauchen wir ebenfalls, diesen ermitteln wir mit dem - fast - gleichen Befehl wie zuvor:&amp;lt;br&amp;gt;&lt;br /&gt;
 dsquery group -samid nextcloud&lt;br /&gt;
Ausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;quot;CN=nextcloud,OU=VerwaltungsGruppen,OU=Gruppen,OU=Sonstiges,DC=test,DC=local&amp;quot;&lt;br /&gt;
Zum testen packen wir auch ein paar Benutzer in diese Gruppe.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wir gehen in der Managementoberfläche in das Apps-Menü und aktivieren das &#039;&#039;&#039;&#039;&#039;LDAP user an group backend&#039;&#039;&#039;&#039;&#039;:&amp;lt;br&amp;gt;[[Datei:ImageNextCloudLDAP1.png]]&lt;br /&gt;
&lt;br /&gt;
Danach könnt Ihr wieder zurück in die Verwaltungseinstellungen wechseln, dort gibt es nun einen neuen Abschnitt &amp;quot;LDAP/AD-Integration&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Auf der ersten Seite tragen wir unseren Server ein. Das kann eine IP-Adresse sein, aber auch ein Domänenname. In der Regel wird Port 389 verwendet, das ist der unverschlüsselt LDAP-Port. Kopiert den DN des benutzers hinein und sein Passwort. Drückt auf &#039;&#039;&#039;Zugangsdaten speichern&#039;&#039;&#039; und danach auf &#039;&#039;&#039;Base DN ermitteln&#039;&#039;&#039; - das ist dann der erste Test ob der Zugriff klappt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP2.png]]&lt;br /&gt;
&lt;br /&gt;
Mit &#039;&#039;&#039;Fortsetzen&#039;&#039;&#039; wechseln wir auf den Reiter &#039;&#039;&#039;Benutzer&#039;&#039;&#039;. Hier können wir unter Nur aus diesen Gruppen nach unserer Gruppe suchen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP3.png]]&lt;br /&gt;
&lt;br /&gt;
Markiert den Treffer (2) und drückt dann auf &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; bei (3)&lt;br /&gt;
&lt;br /&gt;
Der LDAP-Filter sollte sich dann entsprechend ändern:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP4.png]]&lt;br /&gt;
&lt;br /&gt;
Nach einem Klick auf &#039;&#039;&#039;Fortsetzen&#039;&#039;&#039; können wir wählen  welche Attribute für die Anmeldung erlaubt sind, ob Benutzername und/oder Emailadresse:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP5.png]]&lt;br /&gt;
&lt;br /&gt;
Unten links könnt Ihr das testen.&lt;br /&gt;
&lt;br /&gt;
Bei Bedarf können auch noch Gruppen ausgewählt werden die in NextCloud verwendet werden sollen.&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr nun in die Benutzerverwaltung wechselt, tauchen dort die Gruppenmitglieder aus dem Active Directory auf:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ImageNextCloudLDAP6.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Cronjob für interne Verarbeitung einrichten==&lt;br /&gt;
NextCloud muss von Zeit zu Zeit Hintergrundaufgaben ausführen. NextCloud ist aber eine PHP-Anwendung in einer Webseite und würde somit nur beim Aufruf der Seite ausgeführt. Damit regelmäßige Aufgaben auch ausgeführt werden wenn niemand gerade die Webseite benutzt richten wir einen CronJob ein.&amp;lt;br&amp;gt;&lt;br /&gt;
In NextCloud stellt Ihr unter&lt;br /&gt;
 Verwaltungseinstellungen =&amp;gt; Verwaltung - Grundeinstellungen&lt;br /&gt;
Die &#039;&#039;&#039;Hintergrund-Job&#039;&#039;&#039; um auf &amp;lt;code&amp;gt;Cron&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Auf der NextCloud-VM melden wir uns per SSH (puTTY) an, wechseln zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und geben folgenden Befehl ein:&amp;lt;br&amp;gt;&lt;br /&gt;
 crontab -u www-data -e&lt;br /&gt;
Falls da eine Auswahl kommt die nach dem zu verwendenden Editor fragt nehmt die &amp;lt;code&amp;gt;1. /bin/nano&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Hängt unten and die Datei die folgenden Zeile an:&amp;lt;br&amp;gt;&lt;br /&gt;
 */5  *  *  *  * php -f /var/www/nextcloud/cron.php&lt;br /&gt;
Speichern und fertig! In der Weboberfläche wo Ihr auf Cron umgestellt habt könnt Ihr - als ungefähre Zeitangabe wie &#039;&#039;&#039;&#039;&#039;Der letzte Job lief vor einer Minute&#039;&#039;&#039;&#039;&#039; sehen ob es funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Backup der VM (Hot Backup - Datenbank einfrieren)==&lt;br /&gt;
Bei dieser Methode passiert folgendes:&lt;br /&gt;
* Die Datenbank wird vor einem Snapshot auf &amp;quot;READ ONLY&amp;quot; gesetzt - zuvor werden noch alle Daten geschrieben (&amp;quot;FLUSH TABLES&amp;quot;)&lt;br /&gt;
* Der Snapshot wird erstellt&lt;br /&gt;
* Die Datenbank wird wieder für Schreibzugriffe freigegeben&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unter VMware funktioniert das mit 2 Skripten die wir wie folgt anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/sbin/pre-freeze-script&lt;br /&gt;
mit folgendem Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
{{Warnung|Vergesst nicht das Passwort in Zeile 9 zu setzen (steht auf Leer was per Default passen sollte)}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# 2018-04-20 Bernhard Linz&lt;br /&gt;
# Original script by Pascal Di Marco, check https://www.veeam.com/wp-consistent-protection-mysql-mariadb.html for more information&lt;br /&gt;
# Log will be write to syslog and(!) to /tmp/snapshot.log&lt;br /&gt;
echo &amp;quot;$0 pre-freeze start&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;-------------------------------------------------------------------------------------&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) pre-freeze start&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
# Set Username and Passwort for MySQL Access. Set mysql_password=&amp;quot;&amp;quot; if no password needed&lt;br /&gt;
mysql_username=&amp;quot;root&amp;quot;&lt;br /&gt;
mysql_password=&amp;quot;&amp;quot;&lt;br /&gt;
timeout=300&lt;br /&gt;
&lt;br /&gt;
# ************************************************************************************************&lt;br /&gt;
# No Changes behind this line!&lt;br /&gt;
# ************************************************************************************************&lt;br /&gt;
# Check if username + password is used&lt;br /&gt;
if [ -n &amp;quot;$mysql_password&amp;quot; ]; then&lt;br /&gt;
    use_credentials=&amp;quot;-u$mysql_username -p$mysql_password&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    use_credentials=&amp;quot;&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Name of the Lockfile&lt;br /&gt;
lock_file=/tmp/mysql_tables_read_lock&lt;br /&gt;
&lt;br /&gt;
sleep_time=$((timeout+10))&lt;br /&gt;
rm -f $lock_file&lt;br /&gt;
echo &amp;quot;$0 executing FLUSH TABLES WITH READ LOCK&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) executing FLUSH TABLES WITH READ LOCK&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
# Start READ LOCK - Process will send to background (and will still run after script is completed. Lock will stop if process is stopped&lt;br /&gt;
# After READ ONLY mode is entered the lockfile will be created. Process will stop when getting stop signal from post-thaw-script or timeout reached&lt;br /&gt;
mysql $use_credentials -e &amp;quot;FLUSH TABLES WITH READ LOCK; system touch $lock_file; system nohup sleep $sleep_time; system echo lock released|logger; &amp;quot; &amp;gt; /dev/null &amp;amp;&lt;br /&gt;
# get the PID of the mysql process&lt;br /&gt;
mysql_pid=$!&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$0 child pid $mysql_pid&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) child pid $mysql_pid&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
# Waiting for the lockfile ...&lt;br /&gt;
c=0&lt;br /&gt;
while [ ! -f $lock_file ]&lt;br /&gt;
do&lt;br /&gt;
    # check if mysql is running&lt;br /&gt;
    if ! ps -p $mysql_pid 1&amp;gt;/dev/null ; then&lt;br /&gt;
        echo &amp;quot;$0 mysql command has failed (bad credentials?)&amp;quot; | logger&lt;br /&gt;
        echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) mysql command has failed (bad credentials?)&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
    sleep 1&lt;br /&gt;
    c=$((c+1))&lt;br /&gt;
    # check if the script run into timeout&lt;br /&gt;
    if [ $c -gt $timeout ]; then&lt;br /&gt;
        echo &amp;quot;$0 timed out waiting for lock&amp;quot; | logger&lt;br /&gt;
        echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) timed out waiting for lock&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
        touch $lock_file&lt;br /&gt;
        kill $mysql_pid&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
# write PID into the lockfile&lt;br /&gt;
echo $mysql_pid &amp;gt; $lock_file&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$0 pre-freeze stop&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0 $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) pre-freeze stop&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
und&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/sbin/post-thaw-script&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# 2018-04-20 Bernhard Linz&lt;br /&gt;
# Original script by Pascal Di Marco, check https://www.veeam.com/wp-consistent-protection-mysql-mariadb.html for more information&lt;br /&gt;
# Log will be write to syslog and(!) to /tmp/snapshot.log&lt;br /&gt;
echo &amp;quot;$0 post-thaw start&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0  $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) post-thaw start&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
lock_file=/tmp/mysql_tables_read_lock&lt;br /&gt;
&lt;br /&gt;
# get PID from lockfile&lt;br /&gt;
mysql_pid=$(cat $lock_file)&lt;br /&gt;
echo &amp;quot;$0 sending sigterm to $mysql_pid&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0  $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) sending sigterm to $mysql_pid&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
# and send stop to process&lt;br /&gt;
pkill -9 -P $mysql_pid&lt;br /&gt;
rm -f $lock_file&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$0 post-thaw stop&amp;quot; | logger&lt;br /&gt;
echo &amp;quot;$0  $(date &#039;+%Y-%m-%d %H:%M:%S&#039;) post-thaw stop&amp;quot; &amp;gt;&amp;gt; /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt müssen wir die beiden Skripte noch ausführbar machen und dem root zuordnen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod 0700 /usr/sbin/pre-freeze-script&lt;br /&gt;
 chmod 0700 /usr/sbin/post-thaw-script&lt;br /&gt;
 chown root:root /usr/sbin/pre-freeze-script&lt;br /&gt;
 chown root:root /usr/sbin/post-thaw-script&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Voraussetzung ist das die VMware-Tools installiert sind!&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist es egal ob es sich um die Original VMware-Tools oder um die Open-VM-Tools aus den Repositories handelt.&amp;lt;br&amp;gt; &lt;br /&gt;
Nun können wir die Skripts testen indem wir einen Snapshot mit den folgenden Einstellungen erstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-204401.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Beispielausgabe aus der &lt;br /&gt;
 cat /tmp/snapshot.log&lt;br /&gt;
&lt;br /&gt;
 -------------------------------------------------------------------------------------&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:14 pre-freeze start&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:14 executing FLUSH TABLES WITH READ LOCK&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:14 child pid 11824&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2023-03-20 12:49:15 pre-freeze stop&lt;br /&gt;
 /usr/sbin/post-thaw-script  2023-03-20 12:49:18 post-thaw start&lt;br /&gt;
 /usr/sbin/post-thaw-script  2023-03-20 12:49:18 sending sigterm to 11824&lt;br /&gt;
 /usr/sbin/post-thaw-script  2023-03-20 12:49:18 post-thaw stop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Falls es mit dem Passwort mal hakt so müsste das auch dort stehen:&lt;br /&gt;
 /usr/sbin/pre-freeze-script 2018-06-13 12:01:04 mysql command has failed (bad credentials?)&lt;br /&gt;
Mehr Details stehen ggf. im &#039;&#039;&#039;&#039;&#039;syslog&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 tail -f -n 500 /var/log/syslog&lt;br /&gt;
In den meisten Umgebungen geht das so schnell das die Anwendungen das nicht einmal mitbekommen (4 bis 5 Sekunden).&amp;lt;br&amp;gt;&lt;br /&gt;
Es müsste schon in diesen Sekunden ein Schreibzugriff stattfinden - und dieser würde dann statt Millisekunden die 4 bis 6 Sekunden dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Das ganze funktioniert sowohl mit den original VMware-Tools als auch den Open-VM-Tools!}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Festplatte im laufenden Betrieb vergrößern==&lt;br /&gt;
Ihr habt den NextCloud-Server nach dieser Anleitung hier als VM installiert (und ohne LVM) und nun geht euch der Platz aus?&amp;lt;br&amp;gt;&lt;br /&gt;
Kein Problem, Ihr könnt die Festplatte im laufenden Betrieb vergößern!&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Schritt 1: Platz an die Festplatte anhängen===&lt;br /&gt;
* Stellt sicher das auf der VM zur zeit kein Snapshot aktiv ist!&lt;br /&gt;
* Vergrößert die Festplatte um den benötigten Speicherplatz&lt;br /&gt;
in dem Beispiel hier wird der Platz von 50 auf 100GB vergrößert.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Schritt 2: Betriebssystem die neue Größe erkennen lassen===&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Die einfachste und sicherste Methode ist den Server neu zu starten.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Wer will kann es aber auch im laufenden Betrieb durchführen, und das geht so:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wir müssen die Festplattenkontroller-Adapternummer ermitteln:&lt;br /&gt;
 grep mpt /sys/class/scsi_host/host*/proc_name&lt;br /&gt;
findet er nichts probiert&lt;br /&gt;
 grep pvscsi /sys/class/scsi_host/host*/proc_name&lt;br /&gt;
Beispielausgaben (eine von beiden wird kommen):&lt;br /&gt;
 /sys/class/scsi_host/&#039;&#039;&#039;host32&#039;&#039;&#039;/proc_name:mptspi&lt;br /&gt;
 /sys/class/scsi_host/&#039;&#039;&#039;host2&#039;&#039;&#039;/proc_name:vmw_pvscsi&lt;br /&gt;
Die Nummer ist in diesem Fall &amp;lt;code&amp;gt;host2&amp;lt;/code&amp;gt;! Die brauchen wir für den nächsten Befehl:&amp;lt;br&amp;gt;&lt;br /&gt;
 find /sys -name rescan | grep host2&lt;br /&gt;
Beispielausgabe:&lt;br /&gt;
 /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/target2:0:1/2:0:1:0/rescan&lt;br /&gt;
 /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/target2:0:0/2:0:0:0/rescan&lt;br /&gt;
Das sind unsere beiden Festplatten, die mit &amp;quot;target2:0:0&amp;quot; ist unsere Bootplatte, die mit &amp;quot;target2:0:1&amp;quot; unsere zweite Festplatte. Keine Angst, es geht nicht kaputt wenn ihr den nächsten Befehl an die falsche Festplatte sendet.&amp;lt;bt&amp;gt;&lt;br /&gt;
Ok, an die 2. Festplatte schicken wir jetzt eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; um den Rescan auszulösen:&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/target2:0:1/2:0:1:0/rescan&lt;br /&gt;
Fertig!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Anschluß zur Kontrolle ein&lt;br /&gt;
 fdisk -l&lt;br /&gt;
Die Ausgabe sollte ähnlich wie diese sein:&amp;lt;br&amp;gt;&lt;br /&gt;
 Festplatte /dev/sda: 25 GiB, 26843545600 Bytes, 52428800 Sektoren&lt;br /&gt;
 Festplattenmodell: Virtual disk&lt;br /&gt;
 Einheiten: Sektoren von 1 * 512 = 512 Bytes&lt;br /&gt;
 Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes&lt;br /&gt;
 E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes&lt;br /&gt;
 Festplattenbezeichnungstyp: gpt&lt;br /&gt;
 Festplattenbezeichner: 9BE90D25-A550-48DB-9E50-6CAC38D87217&lt;br /&gt;
 &lt;br /&gt;
 Gerät       Anfang     Ende Sektoren Größe Typ&lt;br /&gt;
 /dev/sda1     2048  2203647  2201600    1G EFI-System&lt;br /&gt;
 /dev/sda2  2203648 134215679 132012032 62,9G Linux-Dateisystem&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GPT-PMBR-Größenunterschied (419430399 != 524287999) wird durch »write« korrigiert.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Die GPT-Sicherungstabelle befindet sich nicht am Ende des Gerätes.&amp;lt;/span&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 Festplatte /dev/sdb: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;250 GiB&amp;lt;/span&amp;gt;, 268435456000 Bytes, 524288000 Sektore&lt;br /&gt;
 Festplattenmodell: Virtual disk&lt;br /&gt;
 Einheiten: Sektoren von 1 * 512 = 512 Bytes&lt;br /&gt;
 Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes&lt;br /&gt;
 E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes&lt;br /&gt;
 Festplattenbezeichnungstyp: gpt&lt;br /&gt;
 Festplattenbezeichner: 94010BD5-E5E2-42C3-8751-0A815B7F8E18&lt;br /&gt;
 &lt;br /&gt;
 Gerät      Anfang      Ende  Sektoren Größe Typ&lt;br /&gt;
 /dev/sdb1    2048 419428351 419426304  &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;200G&amp;lt;/span&amp;gt; Linux-Dateisystem&lt;br /&gt;
Wir können sehen das {{key|sdb}} nun 250GB groß ist, in der letzten zeile sehen wir aber das die Partition {{key|sdb1}} zur Zeit noch 200Gb groß ist - prima!&amp;lt;br&amp;gt;&lt;br /&gt;
Die &amp;quot;Fehlermeldung&amp;quot; in Rot über den GPT-PMBR-Größenunterschied steht zwar direkt unter {{Key|sda2}}, die Meldung gehört aber zur nächsten Festplatte, also unserer {{Key|sdb}}.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Schritt 3: Partition vergrößern===&lt;br /&gt;
Das &amp;lt;code&amp;gt;/var/www&amp;lt;/code&amp;gt; Verzeichnis unserer zweiten Festplatte befindet sich auf dem Gerät&lt;br /&gt;
 /dev/sdb1&lt;br /&gt;
wenn Ihr nach dieser Anleitung installiert hattet. Kontrollieren könnte Ihr das z.B. mit&lt;br /&gt;
 df -h&lt;br /&gt;
und dann schauen was links vom Verzeichnis &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; steht:&amp;lt;br&amp;gt;&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,6G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;/dev/sdb1        49G    655M   46G    2% /var/www&amp;lt;/span&amp;gt;&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
Die nächsten Befehle gehen von {{Key|/dev/sdb1}}, wenn der Pfad anderes ist müsst Ihr diesen anpassen!&amp;lt;br&amp;gt;&lt;br /&gt;
 growpart /dev/sdb 1&lt;br /&gt;
 resize2fs /dev/sdb1&lt;br /&gt;
Ja, beim ersten Befehl ist da ein Leerzeichen zwischen dem sdb und der 1, beim zweiten Befehl nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Schritt 4: Das war schon alles!===&lt;br /&gt;
Ihr könnt mit&amp;lt;br&amp;gt;&lt;br /&gt;
 df -h&lt;br /&gt;
es einmal kontrollieren - aber das war schon alles:&lt;br /&gt;
 Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf&lt;br /&gt;
 tmpfs           391M    1,2M  390M    1% /run&lt;br /&gt;
 /dev/sda2        32G    7,6G   23G   26% /&lt;br /&gt;
 tmpfs           2,0G       0  2,0G    0% /dev/shm&lt;br /&gt;
 tmpfs           5,0M       0  5,0M    0% /run/lock&lt;br /&gt;
 /dev/sdb1        99G    655M   93G    1% /var/www&lt;br /&gt;
 tmpfs           391M    4,0K  391M    1% /run/user/1000&lt;br /&gt;
----&lt;br /&gt;
==Feintuning Teil 2==&lt;br /&gt;
{{Warnung| Ihr könnte die nachfolgenden Zeilen so in die &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; einfügen, inklusive der Kommentare dahinter. Diese werden aber bei der nächsten Konfigurationsänderung über die Weboberfläche wieder verschwinden, Nextcloud schreibt dann jedes mal die gesamte Datei neu.}}&lt;br /&gt;
Wir editieren die Datei&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und setzen noch zusätzlich folgende Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
   &#039;defaultapp&#039; =&amp;gt; &#039;files&#039;,                         // Standardansicht nach der Anmeldung ist nun die Dateiansicht.&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;&#039;skeletondirectory&#039; =&amp;gt; &#039;&#039;,&amp;lt;/nowiki&amp;gt;                       // Neuen Benutzern werden nicht die üblichen Startdateien kopiert&lt;br /&gt;
   &#039;default_language&#039; =&amp;gt; &#039;de&#039;,                      // Anzeigesprache Deutsch, kann sich der Benutzer umstellen&lt;br /&gt;
   &#039;overwritehost&#039; =&amp;gt; &#039;nextcloud1.test.local&#039;,      // Keine Autoermittlung der URL sondern in Links diesen Host einsetzen (wichtig für Reverse Proxy)&lt;br /&gt;
   &#039;overwriteprotocol&#039; =&amp;gt; &#039;https&#039;,                  // Keine Autoermittlung des Protokolls sondern immer dieses in Links verwenden&lt;br /&gt;
   &#039;versions_retention_obligation&#039; =&amp;gt; &#039;auto, 30&#039;,   // Versionen gemäß Plan behalten, Versionen älter als 30 Tage aber löschen.&lt;br /&gt;
   //&#039;versions_retention_obligation&#039; =&amp;gt; &#039;disabled&#039;, // Alternativ: Versionierung deaktivieren&lt;br /&gt;
   &#039;trashbin_retention_obligation&#039; =&amp;gt; &#039;3,7&#039;,        // gelöschte Dateien bleiben mindestens 3 Tage im Papierkorb und werden spätestens nach 7 Tagen gelöscht&lt;br /&gt;
   //&#039;trashbin_retention_obligation&#039; =&amp;gt; &#039;3,auto&#039;,   // gelöschte Dateien bleiben mindestens 3 Tage im Papierkorb und werden bei Bedarf automatisch gelöscht&lt;br /&gt;
   //&#039;trashbin_retention_obligation&#039; =&amp;gt; &#039;auto,7&#039;,   // Dateien werden bei Bedarf automatisch gelöscht&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Feintuning Teil 3==&lt;br /&gt;
und noch mehr Optionen für die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /var/www/nextcloud/config/config.php&lt;br /&gt;
und zwar:&lt;br /&gt;
  &#039;force_language&#039; =&amp;gt; &#039;de&#039;,                         // und zwar Zwangsweise, der Benutzer kann diese nicht ändern&lt;br /&gt;
  &#039;default_locale&#039; =&amp;gt; &#039;de_DE&#039;,                      // Für Editoren &amp;amp; Co&lt;br /&gt;
  &#039;force_locale&#039; =&amp;gt; &#039;de_DE&#039;,                        // wieder zwangsweise&lt;br /&gt;
  &#039;default_phone_region&#039; =&amp;gt; &#039;DE&#039;,                   // Telefonnummern ist per Default aus Deutschland&lt;br /&gt;
  &#039;maintenance_window_start&#039; =&amp;gt; 1,                  // Intensive Wartung um 01:00 und 05:00 Uhr ausführen&lt;br /&gt;
und für die Apache2 Konfigurationsdatei:&lt;br /&gt;
 nano /etc/apache2/sites-available/nextcloud-ssl.conf&lt;br /&gt;
folgendes mit einbauen:&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
                Header always set Strict-Transport-Security &amp;quot;max-age=15552000; includeSubDomains&amp;quot;&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
Was dafür sorgt das https nicht umgangen werden kann.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Hauptseite&amp;diff=15766</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Hauptseite&amp;diff=15766"/>
		<updated>2026-02-16T22:32:47Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOCACHE__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_row2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_orange&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Letzte Meldungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;16.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Update: Die UFW Firewall unter Ubuntu kann auch Geoblocking! Der Artikel war schon älter und für Ubuntu 20.04, mit etwas Fehlersuche und Anpassungen funktioniert das aber ganz hervorragend. Das ganze habe ich mir hier zusammengeschrieben: [[ufw Geoblocking mit Ubuntu 24.04]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
USA sind nun auch Blockiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Mediawiki-Funktion bzw. Spezialseite um alle Änderungen in einem bestimmten Zeitraum abzufragen.&amp;lt;br&amp;gt;&lt;br /&gt;
Das ist eine Datenbankabfrage. Und genau diese kommt nun schon seit mehren Tagen fast pausenlos aus Kalifornien, USA, über verschiedene IP-Adressen.&amp;lt;br&amp;gt;&lt;br /&gt;
Und erzeugt hohe Last auf meinem Webserver.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich sperre die mal für eine paar Tage aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich brauche dringend mal eine Firewall davor die das Geoblocking übernimmt (im Moment mache ich es im Apache).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Extrem hohe Last auf dem Webserver hier ...&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Internetzugang fing an &amp;quot;zu spinnen&amp;quot;, dieser Webserver hier war nahezu auf 100%, der Upload stand bei konstant 10MBit/s ...&amp;lt;br&amp;gt;&lt;br /&gt;
Diesmal lag es lag es an einer Testversion vom März 2025 dieser Webseite. Vor dem Upgrade hatte ich eine Kopie erstellt welche unter der Domäne &amp;quot;testwiki.znil.net&amp;quot; zu erreichen war.&amp;lt;br&amp;gt;&lt;br /&gt;
Die war natürlich nicht gepatched und hatte kein Geoblocking.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe diese nun einfach gelöscht und Ruhe ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.12.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Geo-Blocking von Ländern:&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist der 1. eines Monats und da bekomme ich immer die Auswertung von Matomo - das ist das Tool mit dem ich die Zugriffe auf meine Webseite auswerte. Normalerweise sind das so um die 5 bis 10.000 Besucher im Monat, während Corona waren es auch mal 20.000 (Der Artikel über Guacamole RDP war äußerst beliebt).&amp;lt;br&amp;gt;&lt;br /&gt;
In November waren es dann 167.000 eindeutige Besucher ... ok, hier stimmt etwas nicht. Ein Blick auf den Webserver - jupp der brummt für znil.net ordentlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Blicke ins Log zeigen aber das zum einen - wie üblich - die ein oder andere Suchmaschine wieder mal die ganze Webseite abgrast. Das ist aber sonst auch so.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber es gibt auch jede Menge Versuche, die Webseite zu hacken. Mit vergeblichen Aufrufen für Wordpress-Installationen, aber auch gezielt Mediwiki. Eine IP aus Polen die zufällig gerade stark aktiv war, habe ich dann von Hand gesperrt. Und mir die anderen Einträge mit solchen versuchen angeschaut.&amp;lt;br&amp;gt;&lt;br /&gt;
Tja, es sind ja eigentlich Klischees, aber China und Russland sind jetzt geblockt für diese Webseite. Die beiden Länder waren für 90% der fehlgeschlagenen Einträge verantwortlich,&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;09.06.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Lang vor mir hergeschoben - aber nun ist meine Webseite hier endlich auf der neuen MediaWiki LTS Version 1.43 welche dann bis Dezember 2027 Updates erhalten wird. Die bisherige Version 1.39 wäre im November diesen Jahres ausgelaufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Probleme gab es diesmal überraschend wenig:&amp;lt;br&amp;gt;&lt;br /&gt;
* Die 2 Faktor-Authentifizierung in 1.43 hat einen Upgrade-Fehler, man muss manuell einmal das SQL-Skript für das Anlegen der Tabelleneinträge ausführen und die {{code|update.php}} noch mal starten. Dann klappte die Anmeldung mit dem bisherigen Token&lt;br /&gt;
* Mein Skin {{code|Pivot}} funktionierte nicht mehr, es musste die aktuelle Version sein. Zudem musste ich den Namen im Skin-Verzeichnis von {{code|pivot}} auf {{code|Pivot}} ändern, also mit Großschreibung. Sonst fehlten die Symbole bei den Menüs etc.&lt;br /&gt;
* Die Kommentarfunktion &amp;lt;strike&amp;gt;zickt noch, ich habe die aktuelle Version der Erweiterung einfach als Extension geladen. Die Darstellung funktioniert, es fehlen noch die Felder die es anonymen Benutzern erlaubte einen gewählten Namen anzugeben. Zudem Kann man als nicht angemeldeter Benutzer noch gar keine Kommentare anlegen (gibt eine Fehlermeldung). Ich habe da in der Vergangenheit immer eigene Anpassungen gemacht, die muss ich gleich noch einarbeiten.&amp;lt;/strike&amp;gt; funktioniert jetzt auch wieder&lt;br /&gt;
Am besten gefällt mir aber, das die Erweiterung {{code|ClipUpload}} immer noch funktioniert. Die Erweiterung erlaubt es, in der Code-Ansicht beim Editieren einen Screenshot aus der Zwischenablage einfach per {{key|STRG}} + {{key|V}} einzufügen, ohne Nachfragen, direkter Upload und Einfügen des Dateinamens. Das normale Vorgehen will 1.001 Frage beantwortet haben (Lizenz, Name usw) und dauert mir beim dem Erstellen von Anleitungen viel zu lange.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;24.04.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Webseite ist umgezogen - und läuft nun &amp;quot;im Homeoffice&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie immer unter Ubuntu - die aktuelle 24.04 LTS Version, mit Apache2 Webserver und MariaDB Datenbank. Mal schauen ob 500MBit/s an Upload reichen :-)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;Und die Seite ist - endlich - auch wieder über IPv6 zu erreichen.&amp;lt;/strike&amp;gt; Sollte gehen, geht aber nicht. Ausgehend kein Problem, aber die Portweiterleitung der FRITZ!Box zickt scheinbar rum&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe hier noch einen 2. Linux Rechner mit IPv4, dieser lässt sich trotz identischer Einstellungen von außen pingen. Mal sehen ob ich herausbekomme woran das liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Update:&#039;&#039;&#039;&amp;lt;/u&amp;gt; Schön wenn man ein anderes System zum vergleichen hat. Es fehlte schlicht in der Netzwerkkonfiguration das IPv6 Gateway.&amp;lt;br&amp;gt;&lt;br /&gt;
Warum auch immer der ausgehende IPv6 Traffic trotzdem funktioniert hatte ...&amp;lt;br&amp;gt;&lt;br /&gt;
Also: Die Seite ist - endlich - auch wieder über IPv6 zu erreichen!&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;12.03.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Umzug der Webseite im April!&amp;lt;br&amp;gt;&lt;br /&gt;
Mein bestehender Glasfaseranschluss der Telekom wird Anfang April zu einem Geschäftskundenanschluss geändert (Business Glasfaser Pro 1000), mit fester IP-Adresse (IPv4 und IPv6).&amp;lt;br&amp;gt;&lt;br /&gt;
Der Upload beträgt dann 500MBit - das ist zwar nur halb so schnell wie es angeblich zur Zeit ist (laut IONOS 1GBit/s), aber so viele Aufrufe hat meine Webseite nicht (abgesehen von sporadischen Hacking versuchen).&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde die Webseite dann von zu Hause hosten. In dem Zuge werde ich das Mediawiki dann auch auf die letzte LTS-Version bringen, im Moment läuft es noch auf der LTS-Version &#039;&#039;&#039;1.39.x&#039;&#039;&#039; die noch bis November 2025 unterstützt wird, aktuell wäre &#039;&#039;&#039;1.43.x&#039;&#039;&#039; welches bis November 2027 unterstützt wird. Meine Sorgenkinder bei Upgrades sind immer die &amp;quot;Paste from Clipboard&amp;quot; Funktion um Screenshots schnell in Artikel einzufügen und die Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich dann aber ja voll Kontrolle über den Server habe, wird es dann einfach mit Backups und Snapshots.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Moment bereite ich das Netzwerk und die Firewall dafür vor - ich bin ein großer Freund von Reverse Proxy, Geo-IP-Blocking und Let&#039;s Encrypt Zertifikaten, im Zweifel alles 3 zusammen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde über den Stand dann an dieser Stelle berichten.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;18.12.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard schlägt IPSec!&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe fast den ganzen gestrigen Tag damit verbracht, die VPN-Verbindung zwischen meiner FRITZ!Box und meinem Mietserver von IPSec auf WireGuard umzustellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Den Tunnel aufzubauen hatte schon nach ein paar Minuten geklappt, leider hat die FRITZ!Box aber hartnäckig ein NAT über den Tunnel gemacht. Konnte ich Lösen und habe eine Anleitung dafür geschrieben: [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
Gemacht habe ich das ganze ich das weil ich mir eine besser Performance erhofft hatte. Und erste Tests mit {{code|iperf3}} zeigten einen um 40% höher Datendurchsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Heute Nacht lief nun das erste Backup (eine Veeam Replikation) über WireGuard statt IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
Vorher mit IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112649.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nun mit WireGuard:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112719.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
2h25m schneller! Bei sogar 1GByte mehr Daten. und von den 1h45m sind eine Stunde alleine die &#039;&#039;&#039;Retention Policy&#039;&#039;&#039;, also das löschen und zusammenführen alter Snapshots am Ziel.&amp;lt;br&amp;gt;&lt;br /&gt;
Fazit: hat sich gelohnt!&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;29.09.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich konnte mich endlich auch mal etwas mehr mit Proxmox beschäftigen (und wie gut Veeam es schon unterstützt).&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst auf einen Mini-PC der 200Euro Klasse (Intel N95 Prozessor, 16GB RAM, 512GB SSD, 2 x LAN) mit dem ich etwas herumgespielt habe, inklusive der Migration einer VMware-VM dorthin. Um die Live-Migration zu testen habe ich mir dann noch einen 2. Mini-PC gekauft. Und hatte dann eine steile Lernkurve (Datenträger müssen auf alles System gleich sein - und ZFS formatiert sein), inklusive einer kompletten Migration da ich beide Nodes noch mal neu mit ZFS installieren musste.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ich das später auch wieder hinbekommen, gibt es nun links einen neuen Bereich Proxmox unter welchen ich dann wie immer sammle was ich interessant fand bzw. wie ich mein System eingerichtet habe.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.07.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Kommentarfunktion braucht ein paar Anpassungen an das aktuelle PHP8.3&amp;lt;br&amp;gt;&lt;br /&gt;
Da kommen zwar nur Warnungen, aber die erscheinen halt ständig im Log. Es gibt auf GitHub bereits eine angepasste Version (leider ohne angepasste Versionsnummer), die arbeitet aber mit meiner &amp;quot;alten&amp;quot; Mediawiki-Version 1.39 nicht zusammen. Das ist aber nun mal die aktuelle LTS-Version und die neue ist noch nicht erschienen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt muss ich also entweder mit den Warnungen leben, diese Seite auf dem älteren PHP8.1 laufen lassen, eine Kurzzeit-Mediawiki-Version mit nur einem Jahr Support einsetzen oder die Kommentarfunktion dauerhaft abschalten. Ich habe mich noch nicht entschieden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze eine von mir angepasste Version von https://www.mediawiki.org/wiki/Extension:Comments die ich immer dahingehend ändere das auch anonyme Kommentare möglich sind (mit freier Angabe eines Names oder Email-Adresse). Zudem ist eine - mini - AntiSPAM Funktion eingebaut und ich erhalte immer sofort eine Email über einen neuen Kommentar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das habe ich mir gut Dokumentiert, ist trotzdem ein Sonntagnachmittag Arbeit das jedes mal einzupflegen.&amp;lt;br&amp;gt;Nur um mich dann per Kommentar beschimpfen zu lassen wenn da jemanden etwas nicht passt ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe mal die Kommentarfunktion meiner Seite deaktiviert, da gab es heute wohl einen Angriff wo versuchte wurde diese als Lücke zu missbrauchen. Laut Logs hat das nicht geklappt, aber so habe ich den Angriff ins leere laufen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 09:45Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist 2024 ... und ich bekomme IPv6 an meinem neuen Server nicht zum laufen. Offensichtlich wird es nicht durchgelassen. Jedenfalls kommt kein IPv6 Datenverkehr an meinem Server an.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 00:55Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net läuft nun auf einem neuen virtuellen Server bei IONOS. Nach 2 Tagen war der alte zwar migriert. Aber der neue - die technischen Daten sind identisch - kostet nur 4 statt 5 Euro im Monat. Und ich konnte so parallel gleich auf Ubuntu 24.04 LTS + PHP8.3 umziehen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt geht es ins Bett, morgen muss ich noch genauer prüfen ob noch alles funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:44Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
So, telefonisch konnte ich ein Ticket eröffnen. Nein, das ist nicht normal, die VM hätte schon längst wieder laufen sollen. Es wird jetzt geschaut was bei meiner VM hakt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:02Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240620-130053.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so so, 20 Minuten. Die Meldung habe ich im Portal gefunden, wenn ich versuche auf &#039;&#039;&#039;&#039;&#039;Server &amp;amp; Cloud&#039;&#039;&#039;&#039;&#039; zu zugreifen werde ich immer noch sofort abgemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich suche gerade wo ich dort ein Ticket eröffnen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 09:35Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Na IONOS, das klappt ja scheinbar toll. Statt &amp;quot;kurzer Unterbrechung&amp;quot; sind es nun schon fast 20h Ausfall, laut deren Status Webseite https://www.ionos-status.de/ läuft alles Störungsfrei, das Portal für die Cloud-Server Verwaltung ist immer noch komplett abgeschaltet (zumindest für mich).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.06.2024 20:23Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Heute seit 15:00 Uhr stellt IONOS meinen vServer um auf dem diese Webseite läuft. Das sollte angeblich nicht lange dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt, 5h später, ist mein Server immer noch nicht erreichbar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Webportal von IONOS zur Verwaltung meines vServers ist auch komplett abgeschaltet - man wird sogar sofort ausgeloggt wenn man auf den betreffenden Menüpunkt geht.&amp;lt;br&amp;gt;&lt;br /&gt;
Genügend Gelegenheit einmal mein Backup zu testen.&amp;lt;br&amp;gt;&lt;br /&gt;
So konnte ich meine Webseite mit Stand gestern, 22:00 Uhr wiederherstellen. Die Webseite läuft im Moment auf meinen Heimserver. Der hat zwar genügend Dampf, mein Internetanschluß von Kabel Deutschland hat aber leider nur 50MBit Upload.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber besser als nichts, zur Not kann ich die Seite auch noch auf einen anderen Server mit 250Mbit Upload umziehen, aber das hier war jetzt schneller und einfacher.&amp;lt;br&amp;gt;&lt;br /&gt;
Und es wäre schön wenn der Originalserver doch noch wieder hoch kommt, ich habe heute noch diverses im Wiki geschrieben/korrigiert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich bin endlich dazu gekommen eine aktuelle Anleitung für Ubuntu 24.04 und Zabbix 6 / Zabbix 7 zu schreiben: [[Zabbix Server + Agent unter Ubuntu 24.04 LTS installieren]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es waren nicht so viele Änderungen wie befürchtet. Schlecht ist aber schon mal das ich bisher keine aus Zabbix 6 exportierten Templates in Zabbix 7 importiert bekommen habe, das muss ich mir noch mal genauer anschauen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein jetziger Zabbix 6.0 LTS Server stammt von von meinen allerersten Zabbix-Server 2.2 ab, dieser wurde immer wieder geupgradet. Nun möchte ich mal einen Neuanfang machen, auch um jede menge Altlasten los zu werden, z.B. habe meine Items noch alle eine Server-Node Id, allen Item-Ids ist also eine &amp;lt;code&amp;gt;42042000000&amp;lt;/code&amp;gt; vorangestellt, das werde ich sonst nie los.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.05.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net ist nun nur noch über IPv4 zu erreichen. Grund ist das IONOS die virtuelle Maschine auf welcher diese Webseite läuft, migriert und dabei neue IPv6 Adressen zuweisen wird. Dei IPv4 soll unverändert erhalten bleiben.&amp;lt;br&amp;gt;Scheinbar wird dabei auch der darunterliegende Hypervisor geändert. Bisher ist meine VM eine VMware vSphere-VM, mal sehen was es danach ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Extension &amp;quot;ClipUpload&amp;quot; funktioniert nun doch. Nachdem ich bei einem Kunden die Extension [https://www.mediawiki.org/wiki/Extension:MsUpload MsUpload] gesehen hatte - mit der kann man einfach per Drag&amp;amp;Drop viele Dateien/Bilder in einem Rutsch hochladen - hatte ich diese bei mir installiert. Die Extension funktioniert aber nur in Verbindung mit dem [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]. Der ist &amp;quot;ab Werk&amp;quot; dabei, ich hatte den aber deaktiviert weil ich diesen nicht gebraucht habe. Der WikiEditor erscheint in dem von mir bevorzugten Quelltext-Editor. Und in diesem / mit diesem funktioniert mein heiß geliebtes und Innig geliebtes &amp;quot;ClipUpload&amp;quot;. Mit dieser Erweiterung kann ich Screenshots (aus der Zwischenablage) im Quelltext-Editor einfach per {{Key|STRG}} + {{Key|V}} einfügen - ohne nervige Nachfragen etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.02.2023&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das MediaWiki-System auf dem diese Webseite basiert wurde von der LTS-Version 1.35.9 auf die neue LTS-Version 1.39.1 aktualisiert. Wie immer gab es Probleme mit einigen Erweiterungen. Bei den meisten reichte die für MediaWiki 1.39.x passende Version zu installieren. Die Kommentarfunktion musste ich wieder nach meinen Ansprüchen anpassen - was relativ schnell ging da ich beim letzten mal ordentlich dokumentiert hatte - so musste ich nur in der alten Version nach meinen Kommentaren suchen und die Abschnitte entsprechend in der neuen Version ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider - &#039;&#039;&#039;LEIDER&#039;&#039;&#039; - ist die Extension &amp;quot;ClipUpload&amp;quot; nun auf der Strecke geblieben, beim letzten mal konnte man die noch mit Codeänderungen zum laufen bringen. Die Erweiterung erlaubte es per {{Key|STRTG}} + {{Key|V}} einfach Bilder in das Mediawiki einzufügen. Es wird auf [https://www.mediawiki.org/wiki/Extension:SimpleBatchUpload simple-batch-upload] verwiesen ... mhh, nicht wirklich das selbe.&amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes steht dann das Upgrade auf 22.04 LTS + PHP8 an.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag: Es gibt einen &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Extension:VisualEditor VisualEditor]&#039;&#039;&#039; der ab Werk bei MediaWiki dabei ist (keine Ahnung seit welcher Version), der kann das auch. In Umständlich. Titel, Beschreibung usw. muss alles über Dialoge angegeben werden anstatt das Bild einfach sofort hochzuladen (ich weis schon was ich tue).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.10.2022&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zabbix Summit 2022 in Riga: [https://www.meinekleinefarm.net Marco Hofmann] hat einen Vortrag darüber gehalten wie man unter Windows den Zabbix Agenten auf hunderten von Systemen und verschiedenen Kundenumgebungen synchron hält. Das erwähne ich weil er dazu unter anderem auch Werkzeuge von mir einsetzt - eine Abwandlung meiner [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei|InstallZabbixAgent.bat]] und das Tool für [[Agent Auto Updater|automatische Updates des Agenten]].&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Hofmann-1200x628px.png|400px|link=https://www.meinekleinefarm.net/zabbix-summit-2022-in-riga-keeping-hundreds-of-windows-zabbix-agents-in-sync-across-different-customers/]]&amp;lt;br&amp;gt;&lt;br /&gt;
Seinen Vortrag findet ihr hier auf Youtube: https://youtu.be/IQQwTEtwl7M?t=19987 &amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.10.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Mediwiki dieser Seite ist nun auf Version 1.35.4. Und ich müsste mal daran gehen wieder eine Kommentar-Übersichtsseite zu programmieren ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;06.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das waren jetzt fast 4h Arbeit - aber die Kommentarfunktion funktioniert wieder wie vorher.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Extension basiert wieder auf dem aktuellen Original: https://www.mediawiki.org/wiki/Extension:Comments und wurde wieder nach meinen Bedürfnissen angepasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter anderem war in der aktuellen Version der Datenbank gar kein Feld mehr für den Namen/Email-Adresse vorgesehen, das habe ich wieder nachgerüstet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die meiste Zeit habe ich damit verbracht die Stelle in den ganzen PHP-Skripten zu finden an der die eigentliche Datenbankabfrage durchgeführt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Großes Update der Webseite!&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Upgrade auf die Mediawiki LTS Version 1.35.2&lt;br /&gt;
* Umzug von Ubuntu 18.04 LTS auf 20.04 LTS&lt;br /&gt;
* Umzug von MySQL auf MariaDB&lt;br /&gt;
* Umzug von PHP 7.2 auf 7.4.3&lt;br /&gt;
* Umzug auf V-Server M von IONOS&lt;br /&gt;
* Seite ist nun über IPv4 und IPv6 erreichbar!&lt;br /&gt;
Hat im ganzen ganz gut geklappt. Auf der Strecke sind 2 Erweiterungen geblieben: Die Anzeige der zuletzt geänderten Artikel sowie eine selbst programmierte Seite welche mir alle Kommentare auf einer Seite angezeigt hatte.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch die Schaltfläche die auf jeder Seite unten rechts zum Hochscrollen war fehlt noch.&amp;lt;br&amp;gt;&lt;br /&gt;
Ganz hervorragend am &#039;&#039;&#039;IONOS V Server&#039;&#039;&#039; gefällt mir das es eine VM unter VMware ist, die Firewall davor in der man selbst Port für Port freischalten muss - und das ich die mit dem &#039;&#039;&#039;&#039;&#039;Veeam Agent for Linux&#039;&#039;&#039;&#039;&#039; einfach sichern kann. Und die Büchse ist angenehm schnell, mit 300Mbit angebunden und kostet nur 5 Euro im Monat.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nachtrag:&#039;&#039;&#039; Die Kommentarfunktion funktioniert ... aber der Refresh nachdem man senden gedrückt hat sieht komisch aus. {{Key|F5}} behebt das, mal sehen ob ich da was ändern kann. Das ist eine Extension die ich so angepasst habe das man auch ohne Anmeldung mit einem Namen etwas posten kann und das mir eine Email gesendet wird wenn es einen Kommentar gibt. Es gibt eine neuere Version davon die ich dann allerdings auch wieder neu anpassen muss.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe einen neuen Artikel zum Thema GeoIP-Blocking mit Apache2 veröffentlicht: [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und das ganze auch gleich als Gelegenheit genutzt bei meinen diversen Subdomänen das ganze umzusetzen. Meine Seafile- oder mein Zabbix-Server müssen z.B. nur aus Deutschland erreichbar sein.&amp;lt;br&amp;gt;[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;30.12.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Eigentlich wollte ich diesen Webserver mal auf Ubuntu 20.04 LTS aktualiseren ... aber das hat per &amp;lt;code&amp;gt;do-release-upgrade&amp;lt;/code&amp;gt; im Gegensatz zu meinen anderen VMs nicht geklappt. MediaWiki 1.3 mag irgendwie PHP 7.4 auch nicht richtig (auch wenn ich es woanders schon habe laufen gesehen). Also doch wie immer - neuen Server installieren und dann die Domänen Stück-für-Stück umziehen.&amp;lt;br&amp;gt; [[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.06.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:MFA_Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;MFA technical Certification&amp;quot; der Firma WatchGuard abgeschlossen. Es geht um die [https://www.watchguard.com/de/wgrd-products/authpoint-multi-factor-authentication MFA Lösung AuthPoint der Firma WatchGuard] - bei der Vorbereitung war hilfreich das ich MFA schon länger auch privat für den Schutz meiner Zugänge einsetze. Unter anderem [https://duo.com/ duo.com] für RDP da es bis 10 Personen auch kostenlos genutzt werden kann. WatchGuard ist - aus meiner Sicht - mehr pures MFA, DUO hat dafür quasi jeden Anwendungsfall eine eigene Anleitung und geht tiefer auf die Endgeräte ein. Wobei z.B. eine nicht aktuelle Android-Version ständig angemeckert wird.&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;26.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Stromkosten: Auch ich sitze nun mehr im Homeoffice. Und in meinem Kellerbüro habe ich meinen Rechner hinter mir - und einen 40HE Datenschrank im Blick vor mir. Mit den Tagen ging mir zum einen der Lärm der ganzen Lüfter irgendwann auf den Kecks. Und den Stromverbrauch (den ich bis dato aber nicht gemessen habe) wollte ich auch senken. Den Verbrauch der Switche kannte ich durch Einzelmessungen, der lag bei ca. 100 Watt (für 48 Gigabit Ports + 6 PoE Ports). Diesen habe ich durch einen neuen Switch Allnet-SG8428M (13 Watt maximal!) und einen sparsameren PoE Sitch für die Telefone und Kameras stark reduziert. Zeitgleich habe ich mit Gosund SP111 WLAN-Steckdosenschaltern herumgespielt. Mit der Tasmota Firmware und einer Kalibrierung taugen diese scheinbar auch ganz gut als Strommessgeräte.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab nun also meinen Datenschrank zu Hause daran gehängt und musste ernüchternd einen Dauerstromverbrauch von 140 bis 150 Watt feststellen.&amp;lt;br&amp;gt;&lt;br /&gt;
* 44 Watt davon gehen für PoE drauf - 5 Cisco Telefone und 2 IP-Kameras.&amp;lt;br&amp;gt;&lt;br /&gt;
* 16 Watt maximal für die beiden anderen Switche (der ALLNET und ein 16 Port Netgear) &lt;br /&gt;
* 9 Watt mein ESXi Server auf Basis eines APU2C4 von PC Engines (inklusive 2TB USB Festplatte daran)&lt;br /&gt;
* um die 20 Watt schätze ich die beiden FritzBoxen ...&lt;br /&gt;
* bleiben ca. 89 Watt für meinen Heimserver - mit 2x 128GB SSD und 4 x 4TB HDD&lt;br /&gt;
* und die USV wird da mit Ihrem Eigenanteil auch irgendwo dazwischen liegen&lt;br /&gt;
Wenn ich den Verbrauch mal in einen Kostenrechner werfe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200426-192323.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:(erstellt mit [https://www.stromverbrauchinfo.de/stromkostenrechner.php stromverbrauch info])&amp;lt;br&amp;gt;&lt;br /&gt;
weis ich nun auch warum wir immer so eine fette Stromrechnung habe. Als 4 Personenhaushalt verbrauchen wir soviel wie einer mit 8. Und dabei habe ich doch gerade schon soviel eingespart ...&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde das nun - dank mit Zabbix überwachten Strom/Leistungsverbrauch mal besser beobachten und schauen wie ich da in Zukunft noch mehr einsparen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedes Watt sind 2,60 €/Jahr oder 22 Cent/Monat - klingt nicht viel aber wie man sieht läppert es sich.&amp;lt;br&amp;gt;&lt;br /&gt;
Mal sehen wie der Durchschnitt nach einem Monat ist. Nachts schaltet sich z.B. die Beleuchtung der IP-Telefone ab was schon 10 Watt spart.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Mit gewissen Stolz habe ich meine Version eines &amp;quot;Active Directory-Gruppe mit Zabbix Benutzern Abgleichen via LDAP&amp;quot; Skriptes fertiggstellt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://github.com/BernhardLinz/zabbix-ldap-sync-bash&lt;br /&gt;
Wer nach so etwas googelt landet quasi ausschließlich bei dem von Marc Schöchlin geschriebenen Python Script: https://github.com/zabbix-tooling/zabbix-ldap-sync&amp;lt;br&amp;gt;&lt;br /&gt;
An dem haben mich aber schon immer die ganzen Abhängigkeiten gestört wie &#039;&#039;&#039;pyldap&#039;&#039;&#039; oder &#039;&#039;&#039;pyzabbix&#039;&#039;&#039;. Ich hab nun mal leider auch Kunden mit Systemen ohne Internetanbindung oder älteren Linux Versionen - und da ist es schwer diese zu erfüllen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Skript ist &amp;quot;pures&amp;quot; Bash. Es wird nur der Befehl &#039;&#039;&#039;ldapsearch&#039;&#039;&#039; und &#039;&#039;&#039;curl&#039;&#039;&#039; benötigt - und bisher waren die in allen Repositories der Distributionen vorhanden.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze nun [https://www.google.com/search?q=tripwire+ubuntu Tripwire] um meinen Webserver zu überwachen. Gefällt mir sehr gut, man muss nur daran denken nach jeden Update oder Änderung die Datenbank wieder auf Stand zu bringen. Ich bekomme im Moment jeden Tag einen Email-Report dazu - da muss ich noch mal schauen wir ich das in Zabbix unterbringe bzw. mir nur eine mail senden lasse wenn auch etwas ansteht.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Noch ein Nachtrag zum &amp;quot;Angriff&amp;quot;:&amp;lt;br&amp;gt; zwischendurch fehlten auf dem Server 16G an Speicherplatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Gemerkt habe ich das mit Zabbix weil dadurch ein Schwellwert erst unter- und dann wieder überschritten wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 16G waren das &amp;lt;code&amp;gt;error.log&amp;lt;/code&amp;gt; für die Domäne &#039;&#039;&#039;znil.net&#039;&#039;&#039;. Darin fand ich jede Menge Fehlermeldung das versucht wurde &amp;lt;code&amp;gt;\bin\bash&amp;lt;/code&amp;gt; zu starten - was aber nun mal nicht erlaubt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Bin im Moment gerade glücklich darüber das ich jede Domäne / Webseite / Subdomäne unter einem eigenen, eingeschränkten Benutzer laufen lasse.&amp;lt;br&amp;gt;&lt;br /&gt;
Das mache ich nicht von Hand sondern per ISPConfig weil ich faul bin. Funktioniert aber scheinbar ja prima.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Also, wenn ich so ein Online-Tool nutze um meine Webseite zu überprüfen dann melden diese ggf. (nicht immer) eine &amp;quot;SQL-Injection&amp;quot; Lücke in meiner Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar weil wohl dann gängige Test-SQL-Abfragen mit gesendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden erfolgt via JavaScript im Browser des Benutzers, der Empfänger ist das PHP-Skript auf dem Server.&amp;lt;br&amp;gt;&lt;br /&gt;
In der letzten Version dieses Skriptes (angepasst von mir) gibt es keine Filter mehr, er nimmt einfach alles an. Früher habe ich dort auf Viagra &amp;amp; Co gefiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber der Teil darunter der dann den Text in die Datenbank schreibt ist wohl ausreichend gefestigt - er schreibt einfach alles was kommt in den Datensatz der Datenbank. Die SQL-Injections tauchen so einfach als Text im Kommentarfeld auf, werden aber nicht ausgeführt. Also alles gut Denke ich.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Angriff auf diese Webseite:&amp;lt;br&amp;gt;&lt;br /&gt;
In der Nacht von gestern auf heute hat jemand versucht per SQL-Injektion sich Zugriff auf diese Webseite zu verschaffen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Schwachstelle&amp;quot; ist die Kommentarfunktion. Ein Online-Scurity-Scanner hatte mir diese bereits mal als anfällig dafür gemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich die Mediawiki-Extension überarbeitet hatte, habe ich umfangreiche &amp;quot;Suchen und Erstzen&amp;quot;-Regeln erstellt die alles was mit SQL zu tun hat ausfiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb sehen manche Kommentare hier dann komisch aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich prüfe mal das System intensiv ob die Abwehr erfolgreich war ... oder ob ich doch ein Backup wieder einspiele.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net weiterhin &amp;quot;Tracker-frei&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze Matomo (ehemals Piwik) um Statistiken für diese Webseite zu erhalten. Eigentlich mehr aus Neugier um zu sehen wie das funktioniert, es hat mir aber auch schon bei Verbesserungen geholfen da man manchmal recht gut erkennen kann wenn die Leute bei Suchanfragen falsch abbiegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab in einem meiner Browser seit einiger Zeit ein &amp;quot;Anti-Tracking-Tool&amp;quot; installiert weil dadurch sich die Ladezeiten bei einer meiner Lieblingwebseiten dramatisch verbessert haben (https://thingiverse.com). Voller Freude sehe ich das ich wohl alles richtig gemacht habe - denn das Tool zeigt mir bei dieser Seite an das es nicht zu blockieren gibt. Alles bleibt also innerhalb dieser Seite. Siehe auch: [https://znil.net/index.php?title=Znilwiki:Impressum#Datenschutzerkl.C3.A4rung Datenschutzerklärung]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Sieht nicht nach Leben aus wenn sich die Startseite nie ändert - ich muss noch mal wieder nach einer Mediawiki-Extension schauen welche die neuesten Artikel hier präsentiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Hatte ich schon mal, funktionierte nach einem Update nur nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;04.07.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Seite ab sofort nur noch über &#039;&#039;&#039;&#039;&#039;https://&#039;&#039;&#039;&#039;&#039; zu erreichen - die meisten Aufrufe kamen sowieso schon darüber.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;08.06.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mediawiki-Installation ist nun auf 1.13.2 aktulisiert - einige potentielle Sicherheitslücken wurden geschlossen. Hier der Artikel dazu: https://lists.wikimedia.org/pipermail/mediawiki-announce/2019-June/000230.html&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man nicht alles testet ... die Kommentarfunktion war ohne &amp;quot;Funktion&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Glück ist es eine Erweiterung die noch gepflegt wird, ich habe mir die neue Version herunter geladen und wieder an diese Webseite angepasst: https://git.znil.net/mediawiki/Comments&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:WG Network Security Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;Network Security Technical Certification&amp;quot; der Firma WatchGuard abgeschlossen.&lt;br /&gt;
Ich hatte auch schon mal leichtere Prüfungen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Wiki ist wieder einmal umgezogen. Statt auf einem Server in Frankreich läuft es nun auf einem Server in Deutschland - vielen Dank an meinen Arbeitgeber.&amp;lt;br&amp;gt;&lt;br /&gt;
Im gleichen Atemzug habe ich von der Mediawiki-Version 1.27 LTS auf die Version 1.31 LTS gewechselt - der Support läuft im Juni aus und 1.31 bietet nun wieder Updates bis Juni 2021.&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist leider die &#039;&#039;&#039;WikiLog&#039;&#039;&#039;-Erweiterung auf der Strecke geblieben, diese ist nicht mehr kompatibel und wird auch schon länger nicht mehr weiter einwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Also mache ich das jetzt von Hand ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_ocean&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Wie ist &amp;lt;del&amp;gt;meine&amp;lt;/del&amp;gt; deine IP-Adresse?&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot; style=&amp;quot;font-family:&#039;Courier New&#039;, Monospace; background: #FFFFCC;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 70%; background-color: #FFFFCC&amp;quot;|&amp;lt;big&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IP :&#039;&#039;&#039; &amp;lt;ClientIP /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Typ:&#039;&#039;&#039; &amp;lt;IPv4orv6 /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DNS:&#039;&#039;&#039; &amp;lt;ClientName /&amp;gt; &amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|| Ermittelt mit den PHP-Funktionen dafür&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Cookies und Datenschutz ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
Diese Webseite verwendet bei Besuchern Cookies! [http://www.cookie-checker.com/check-cookies.php?url=znil.net www.cookie-checker.com]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;!--        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten 10 Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
{{RecentActivity:type=edits|count=10}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_blue&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Tools - Kleine Programme für Batchdateien und anderes&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* [[ZnilTools:ifmemberDELUXE.exe|ifmemberDELUXE]] - Netzlaufwerke und Netzwerkdrucker in Anmeldeskripten verbinden&amp;lt;!--, kann Drucker-Server für 32/64 Bit wählen--&amp;gt;&lt;br /&gt;
* [[ZnilTools:Telnet_SMTP_Test_Tool|Telnet_SMTP_Test_Tool.exe]] - Grafische Oberfläche für den Test von SMTP-Servern per Telnet&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung mit vielen Beispielen&lt;br /&gt;
* [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;br /&gt;
* [[Calibre eBook MultiUser Tool / Funktion]] - Calibre mit mehreren Benutzern gleichzeitig nutzen&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_green&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Webseiten die ich regelmäßig besuche ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* http://c64-online.com/ -&amp;gt; Alles über den C64 &amp;amp; Geniales zum Raspberry Pi&lt;br /&gt;
* https://forum.iobroker.net/ -&amp;gt; Alles zu ioBroker&lt;br /&gt;
* https://www.autoit.de -&amp;gt; Wo sonst bekäme man so viel deutsche Hilfe zu AutoIt!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--{{RecentActivity:type=new|count=10}}--&amp;gt;&lt;br /&gt;
{{Special:RecentChanges/days=365,limit=10,hidebots,hideminor,hidecategorization}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_grey&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Spezial:Statistik|Informationen]] zum znilwiki, Stand {{CURRENTDAY2}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} um {{LOCALTIME}} Uhr:&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- * znil.net über das Tor Netzwerk: http://znilnet655kecmslpvcrvpwujeameq4ac42ueg7jvqanzdfk4clnleyd.onion&amp;lt;br&amp;gt; --&amp;gt;&lt;br /&gt;
* Dieses Wiki enthält &#039;&#039;&#039;{{NUMBEROFPAGES}}&#039;&#039;&#039; Seiten, zusammengefasst in &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; Themen...&amp;lt;br&amp;gt;&lt;br /&gt;
* Die Beiträge wurden &#039;&#039;&#039;{{NUMBEROFEDITS}}&#039;&#039;&#039; mal bearbeitet (inklusive der Erstellung)&lt;br /&gt;
* Dieses Wiki wurde laut Matomo schon so oft besucht: &amp;lt;html&amp;gt;&amp;lt;img src=&amp;quot;https://znil.net/piwik/index.php?module=ClassicCounter&amp;amp;action=svg&amp;amp;idSite=1&amp;quot; width=&amp;quot;180&amp;quot; height=&amp;quot;43&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!--* Letzte Änderung am &#039;&#039;&#039;{{REVISIONDAY2}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONMONTH}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONYEAR}}&#039;&#039;&#039; durch &#039;&#039;&#039;{{REVISIONUSER}}&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
* MediaWiki-Version: &#039;&#039;&#039;{{CURRENTVERSION}}&#039;&#039;&#039; - siehe auch [[Spezial:Version]]&lt;br /&gt;
&amp;lt;!--* Seitenaufrufe im Monat: &#039;&#039;&#039;&amp;gt; 12.000&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Datei:Piwik-001.png]]&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;[[Testbereich|.]][[Testbereich:Seite2|.]][[Testbereich:Seite3|.]][[Testbereich:Seite4|π]]&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Hauptseite&amp;diff=15765</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Hauptseite&amp;diff=15765"/>
		<updated>2026-02-16T22:31:54Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOCACHE__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_row2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_orange&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Letzte Meldungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;16.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Update: Die standard UFW Firewall kann auch Geoblocking! Der Artikel war schon älter und für Ubuntu 20.04, mit etwas Fehlersuche und Anpassungen funktioniert das aber ganz hervorragend: [[ufw Geoblocking mit Ubuntu 24.04]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
USA sind nun auch Blockiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Mediawiki-Funktion bzw. Spezialseite um alle Änderungen in einem bestimmten Zeitraum abzufragen.&amp;lt;br&amp;gt;&lt;br /&gt;
Das ist eine Datenbankabfrage. Und genau diese kommt nun schon seit mehren Tagen fast pausenlos aus Kalifornien, USA, über verschiedene IP-Adressen.&amp;lt;br&amp;gt;&lt;br /&gt;
Und erzeugt hohe Last auf meinem Webserver.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich sperre die mal für eine paar Tage aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich brauche dringend mal eine Firewall davor die das Geoblocking übernimmt (im Moment mache ich es im Apache).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Extrem hohe Last auf dem Webserver hier ...&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Internetzugang fing an &amp;quot;zu spinnen&amp;quot;, dieser Webserver hier war nahezu auf 100%, der Upload stand bei konstant 10MBit/s ...&amp;lt;br&amp;gt;&lt;br /&gt;
Diesmal lag es lag es an einer Testversion vom März 2025 dieser Webseite. Vor dem Upgrade hatte ich eine Kopie erstellt welche unter der Domäne &amp;quot;testwiki.znil.net&amp;quot; zu erreichen war.&amp;lt;br&amp;gt;&lt;br /&gt;
Die war natürlich nicht gepatched und hatte kein Geoblocking.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe diese nun einfach gelöscht und Ruhe ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.12.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Geo-Blocking von Ländern:&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist der 1. eines Monats und da bekomme ich immer die Auswertung von Matomo - das ist das Tool mit dem ich die Zugriffe auf meine Webseite auswerte. Normalerweise sind das so um die 5 bis 10.000 Besucher im Monat, während Corona waren es auch mal 20.000 (Der Artikel über Guacamole RDP war äußerst beliebt).&amp;lt;br&amp;gt;&lt;br /&gt;
In November waren es dann 167.000 eindeutige Besucher ... ok, hier stimmt etwas nicht. Ein Blick auf den Webserver - jupp der brummt für znil.net ordentlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Blicke ins Log zeigen aber das zum einen - wie üblich - die ein oder andere Suchmaschine wieder mal die ganze Webseite abgrast. Das ist aber sonst auch so.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber es gibt auch jede Menge Versuche, die Webseite zu hacken. Mit vergeblichen Aufrufen für Wordpress-Installationen, aber auch gezielt Mediwiki. Eine IP aus Polen die zufällig gerade stark aktiv war, habe ich dann von Hand gesperrt. Und mir die anderen Einträge mit solchen versuchen angeschaut.&amp;lt;br&amp;gt;&lt;br /&gt;
Tja, es sind ja eigentlich Klischees, aber China und Russland sind jetzt geblockt für diese Webseite. Die beiden Länder waren für 90% der fehlgeschlagenen Einträge verantwortlich,&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;09.06.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Lang vor mir hergeschoben - aber nun ist meine Webseite hier endlich auf der neuen MediaWiki LTS Version 1.43 welche dann bis Dezember 2027 Updates erhalten wird. Die bisherige Version 1.39 wäre im November diesen Jahres ausgelaufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Probleme gab es diesmal überraschend wenig:&amp;lt;br&amp;gt;&lt;br /&gt;
* Die 2 Faktor-Authentifizierung in 1.43 hat einen Upgrade-Fehler, man muss manuell einmal das SQL-Skript für das Anlegen der Tabelleneinträge ausführen und die {{code|update.php}} noch mal starten. Dann klappte die Anmeldung mit dem bisherigen Token&lt;br /&gt;
* Mein Skin {{code|Pivot}} funktionierte nicht mehr, es musste die aktuelle Version sein. Zudem musste ich den Namen im Skin-Verzeichnis von {{code|pivot}} auf {{code|Pivot}} ändern, also mit Großschreibung. Sonst fehlten die Symbole bei den Menüs etc.&lt;br /&gt;
* Die Kommentarfunktion &amp;lt;strike&amp;gt;zickt noch, ich habe die aktuelle Version der Erweiterung einfach als Extension geladen. Die Darstellung funktioniert, es fehlen noch die Felder die es anonymen Benutzern erlaubte einen gewählten Namen anzugeben. Zudem Kann man als nicht angemeldeter Benutzer noch gar keine Kommentare anlegen (gibt eine Fehlermeldung). Ich habe da in der Vergangenheit immer eigene Anpassungen gemacht, die muss ich gleich noch einarbeiten.&amp;lt;/strike&amp;gt; funktioniert jetzt auch wieder&lt;br /&gt;
Am besten gefällt mir aber, das die Erweiterung {{code|ClipUpload}} immer noch funktioniert. Die Erweiterung erlaubt es, in der Code-Ansicht beim Editieren einen Screenshot aus der Zwischenablage einfach per {{key|STRG}} + {{key|V}} einzufügen, ohne Nachfragen, direkter Upload und Einfügen des Dateinamens. Das normale Vorgehen will 1.001 Frage beantwortet haben (Lizenz, Name usw) und dauert mir beim dem Erstellen von Anleitungen viel zu lange.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;24.04.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Webseite ist umgezogen - und läuft nun &amp;quot;im Homeoffice&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie immer unter Ubuntu - die aktuelle 24.04 LTS Version, mit Apache2 Webserver und MariaDB Datenbank. Mal schauen ob 500MBit/s an Upload reichen :-)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;Und die Seite ist - endlich - auch wieder über IPv6 zu erreichen.&amp;lt;/strike&amp;gt; Sollte gehen, geht aber nicht. Ausgehend kein Problem, aber die Portweiterleitung der FRITZ!Box zickt scheinbar rum&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe hier noch einen 2. Linux Rechner mit IPv4, dieser lässt sich trotz identischer Einstellungen von außen pingen. Mal sehen ob ich herausbekomme woran das liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Update:&#039;&#039;&#039;&amp;lt;/u&amp;gt; Schön wenn man ein anderes System zum vergleichen hat. Es fehlte schlicht in der Netzwerkkonfiguration das IPv6 Gateway.&amp;lt;br&amp;gt;&lt;br /&gt;
Warum auch immer der ausgehende IPv6 Traffic trotzdem funktioniert hatte ...&amp;lt;br&amp;gt;&lt;br /&gt;
Also: Die Seite ist - endlich - auch wieder über IPv6 zu erreichen!&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;12.03.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Umzug der Webseite im April!&amp;lt;br&amp;gt;&lt;br /&gt;
Mein bestehender Glasfaseranschluss der Telekom wird Anfang April zu einem Geschäftskundenanschluss geändert (Business Glasfaser Pro 1000), mit fester IP-Adresse (IPv4 und IPv6).&amp;lt;br&amp;gt;&lt;br /&gt;
Der Upload beträgt dann 500MBit - das ist zwar nur halb so schnell wie es angeblich zur Zeit ist (laut IONOS 1GBit/s), aber so viele Aufrufe hat meine Webseite nicht (abgesehen von sporadischen Hacking versuchen).&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde die Webseite dann von zu Hause hosten. In dem Zuge werde ich das Mediawiki dann auch auf die letzte LTS-Version bringen, im Moment läuft es noch auf der LTS-Version &#039;&#039;&#039;1.39.x&#039;&#039;&#039; die noch bis November 2025 unterstützt wird, aktuell wäre &#039;&#039;&#039;1.43.x&#039;&#039;&#039; welches bis November 2027 unterstützt wird. Meine Sorgenkinder bei Upgrades sind immer die &amp;quot;Paste from Clipboard&amp;quot; Funktion um Screenshots schnell in Artikel einzufügen und die Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich dann aber ja voll Kontrolle über den Server habe, wird es dann einfach mit Backups und Snapshots.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Moment bereite ich das Netzwerk und die Firewall dafür vor - ich bin ein großer Freund von Reverse Proxy, Geo-IP-Blocking und Let&#039;s Encrypt Zertifikaten, im Zweifel alles 3 zusammen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde über den Stand dann an dieser Stelle berichten.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;18.12.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard schlägt IPSec!&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe fast den ganzen gestrigen Tag damit verbracht, die VPN-Verbindung zwischen meiner FRITZ!Box und meinem Mietserver von IPSec auf WireGuard umzustellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Den Tunnel aufzubauen hatte schon nach ein paar Minuten geklappt, leider hat die FRITZ!Box aber hartnäckig ein NAT über den Tunnel gemacht. Konnte ich Lösen und habe eine Anleitung dafür geschrieben: [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
Gemacht habe ich das ganze ich das weil ich mir eine besser Performance erhofft hatte. Und erste Tests mit {{code|iperf3}} zeigten einen um 40% höher Datendurchsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Heute Nacht lief nun das erste Backup (eine Veeam Replikation) über WireGuard statt IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
Vorher mit IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112649.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nun mit WireGuard:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112719.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
2h25m schneller! Bei sogar 1GByte mehr Daten. und von den 1h45m sind eine Stunde alleine die &#039;&#039;&#039;Retention Policy&#039;&#039;&#039;, also das löschen und zusammenführen alter Snapshots am Ziel.&amp;lt;br&amp;gt;&lt;br /&gt;
Fazit: hat sich gelohnt!&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;29.09.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich konnte mich endlich auch mal etwas mehr mit Proxmox beschäftigen (und wie gut Veeam es schon unterstützt).&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst auf einen Mini-PC der 200Euro Klasse (Intel N95 Prozessor, 16GB RAM, 512GB SSD, 2 x LAN) mit dem ich etwas herumgespielt habe, inklusive der Migration einer VMware-VM dorthin. Um die Live-Migration zu testen habe ich mir dann noch einen 2. Mini-PC gekauft. Und hatte dann eine steile Lernkurve (Datenträger müssen auf alles System gleich sein - und ZFS formatiert sein), inklusive einer kompletten Migration da ich beide Nodes noch mal neu mit ZFS installieren musste.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ich das später auch wieder hinbekommen, gibt es nun links einen neuen Bereich Proxmox unter welchen ich dann wie immer sammle was ich interessant fand bzw. wie ich mein System eingerichtet habe.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.07.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Kommentarfunktion braucht ein paar Anpassungen an das aktuelle PHP8.3&amp;lt;br&amp;gt;&lt;br /&gt;
Da kommen zwar nur Warnungen, aber die erscheinen halt ständig im Log. Es gibt auf GitHub bereits eine angepasste Version (leider ohne angepasste Versionsnummer), die arbeitet aber mit meiner &amp;quot;alten&amp;quot; Mediawiki-Version 1.39 nicht zusammen. Das ist aber nun mal die aktuelle LTS-Version und die neue ist noch nicht erschienen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt muss ich also entweder mit den Warnungen leben, diese Seite auf dem älteren PHP8.1 laufen lassen, eine Kurzzeit-Mediawiki-Version mit nur einem Jahr Support einsetzen oder die Kommentarfunktion dauerhaft abschalten. Ich habe mich noch nicht entschieden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze eine von mir angepasste Version von https://www.mediawiki.org/wiki/Extension:Comments die ich immer dahingehend ändere das auch anonyme Kommentare möglich sind (mit freier Angabe eines Names oder Email-Adresse). Zudem ist eine - mini - AntiSPAM Funktion eingebaut und ich erhalte immer sofort eine Email über einen neuen Kommentar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das habe ich mir gut Dokumentiert, ist trotzdem ein Sonntagnachmittag Arbeit das jedes mal einzupflegen.&amp;lt;br&amp;gt;Nur um mich dann per Kommentar beschimpfen zu lassen wenn da jemanden etwas nicht passt ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe mal die Kommentarfunktion meiner Seite deaktiviert, da gab es heute wohl einen Angriff wo versuchte wurde diese als Lücke zu missbrauchen. Laut Logs hat das nicht geklappt, aber so habe ich den Angriff ins leere laufen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 09:45Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist 2024 ... und ich bekomme IPv6 an meinem neuen Server nicht zum laufen. Offensichtlich wird es nicht durchgelassen. Jedenfalls kommt kein IPv6 Datenverkehr an meinem Server an.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 00:55Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net läuft nun auf einem neuen virtuellen Server bei IONOS. Nach 2 Tagen war der alte zwar migriert. Aber der neue - die technischen Daten sind identisch - kostet nur 4 statt 5 Euro im Monat. Und ich konnte so parallel gleich auf Ubuntu 24.04 LTS + PHP8.3 umziehen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt geht es ins Bett, morgen muss ich noch genauer prüfen ob noch alles funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:44Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
So, telefonisch konnte ich ein Ticket eröffnen. Nein, das ist nicht normal, die VM hätte schon längst wieder laufen sollen. Es wird jetzt geschaut was bei meiner VM hakt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:02Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240620-130053.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so so, 20 Minuten. Die Meldung habe ich im Portal gefunden, wenn ich versuche auf &#039;&#039;&#039;&#039;&#039;Server &amp;amp; Cloud&#039;&#039;&#039;&#039;&#039; zu zugreifen werde ich immer noch sofort abgemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich suche gerade wo ich dort ein Ticket eröffnen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 09:35Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Na IONOS, das klappt ja scheinbar toll. Statt &amp;quot;kurzer Unterbrechung&amp;quot; sind es nun schon fast 20h Ausfall, laut deren Status Webseite https://www.ionos-status.de/ läuft alles Störungsfrei, das Portal für die Cloud-Server Verwaltung ist immer noch komplett abgeschaltet (zumindest für mich).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.06.2024 20:23Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Heute seit 15:00 Uhr stellt IONOS meinen vServer um auf dem diese Webseite läuft. Das sollte angeblich nicht lange dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt, 5h später, ist mein Server immer noch nicht erreichbar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Webportal von IONOS zur Verwaltung meines vServers ist auch komplett abgeschaltet - man wird sogar sofort ausgeloggt wenn man auf den betreffenden Menüpunkt geht.&amp;lt;br&amp;gt;&lt;br /&gt;
Genügend Gelegenheit einmal mein Backup zu testen.&amp;lt;br&amp;gt;&lt;br /&gt;
So konnte ich meine Webseite mit Stand gestern, 22:00 Uhr wiederherstellen. Die Webseite läuft im Moment auf meinen Heimserver. Der hat zwar genügend Dampf, mein Internetanschluß von Kabel Deutschland hat aber leider nur 50MBit Upload.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber besser als nichts, zur Not kann ich die Seite auch noch auf einen anderen Server mit 250Mbit Upload umziehen, aber das hier war jetzt schneller und einfacher.&amp;lt;br&amp;gt;&lt;br /&gt;
Und es wäre schön wenn der Originalserver doch noch wieder hoch kommt, ich habe heute noch diverses im Wiki geschrieben/korrigiert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich bin endlich dazu gekommen eine aktuelle Anleitung für Ubuntu 24.04 und Zabbix 6 / Zabbix 7 zu schreiben: [[Zabbix Server + Agent unter Ubuntu 24.04 LTS installieren]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es waren nicht so viele Änderungen wie befürchtet. Schlecht ist aber schon mal das ich bisher keine aus Zabbix 6 exportierten Templates in Zabbix 7 importiert bekommen habe, das muss ich mir noch mal genauer anschauen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein jetziger Zabbix 6.0 LTS Server stammt von von meinen allerersten Zabbix-Server 2.2 ab, dieser wurde immer wieder geupgradet. Nun möchte ich mal einen Neuanfang machen, auch um jede menge Altlasten los zu werden, z.B. habe meine Items noch alle eine Server-Node Id, allen Item-Ids ist also eine &amp;lt;code&amp;gt;42042000000&amp;lt;/code&amp;gt; vorangestellt, das werde ich sonst nie los.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.05.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net ist nun nur noch über IPv4 zu erreichen. Grund ist das IONOS die virtuelle Maschine auf welcher diese Webseite läuft, migriert und dabei neue IPv6 Adressen zuweisen wird. Dei IPv4 soll unverändert erhalten bleiben.&amp;lt;br&amp;gt;Scheinbar wird dabei auch der darunterliegende Hypervisor geändert. Bisher ist meine VM eine VMware vSphere-VM, mal sehen was es danach ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Extension &amp;quot;ClipUpload&amp;quot; funktioniert nun doch. Nachdem ich bei einem Kunden die Extension [https://www.mediawiki.org/wiki/Extension:MsUpload MsUpload] gesehen hatte - mit der kann man einfach per Drag&amp;amp;Drop viele Dateien/Bilder in einem Rutsch hochladen - hatte ich diese bei mir installiert. Die Extension funktioniert aber nur in Verbindung mit dem [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]. Der ist &amp;quot;ab Werk&amp;quot; dabei, ich hatte den aber deaktiviert weil ich diesen nicht gebraucht habe. Der WikiEditor erscheint in dem von mir bevorzugten Quelltext-Editor. Und in diesem / mit diesem funktioniert mein heiß geliebtes und Innig geliebtes &amp;quot;ClipUpload&amp;quot;. Mit dieser Erweiterung kann ich Screenshots (aus der Zwischenablage) im Quelltext-Editor einfach per {{Key|STRG}} + {{Key|V}} einfügen - ohne nervige Nachfragen etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.02.2023&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das MediaWiki-System auf dem diese Webseite basiert wurde von der LTS-Version 1.35.9 auf die neue LTS-Version 1.39.1 aktualisiert. Wie immer gab es Probleme mit einigen Erweiterungen. Bei den meisten reichte die für MediaWiki 1.39.x passende Version zu installieren. Die Kommentarfunktion musste ich wieder nach meinen Ansprüchen anpassen - was relativ schnell ging da ich beim letzten mal ordentlich dokumentiert hatte - so musste ich nur in der alten Version nach meinen Kommentaren suchen und die Abschnitte entsprechend in der neuen Version ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider - &#039;&#039;&#039;LEIDER&#039;&#039;&#039; - ist die Extension &amp;quot;ClipUpload&amp;quot; nun auf der Strecke geblieben, beim letzten mal konnte man die noch mit Codeänderungen zum laufen bringen. Die Erweiterung erlaubte es per {{Key|STRTG}} + {{Key|V}} einfach Bilder in das Mediawiki einzufügen. Es wird auf [https://www.mediawiki.org/wiki/Extension:SimpleBatchUpload simple-batch-upload] verwiesen ... mhh, nicht wirklich das selbe.&amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes steht dann das Upgrade auf 22.04 LTS + PHP8 an.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag: Es gibt einen &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Extension:VisualEditor VisualEditor]&#039;&#039;&#039; der ab Werk bei MediaWiki dabei ist (keine Ahnung seit welcher Version), der kann das auch. In Umständlich. Titel, Beschreibung usw. muss alles über Dialoge angegeben werden anstatt das Bild einfach sofort hochzuladen (ich weis schon was ich tue).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.10.2022&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zabbix Summit 2022 in Riga: [https://www.meinekleinefarm.net Marco Hofmann] hat einen Vortrag darüber gehalten wie man unter Windows den Zabbix Agenten auf hunderten von Systemen und verschiedenen Kundenumgebungen synchron hält. Das erwähne ich weil er dazu unter anderem auch Werkzeuge von mir einsetzt - eine Abwandlung meiner [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei|InstallZabbixAgent.bat]] und das Tool für [[Agent Auto Updater|automatische Updates des Agenten]].&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Hofmann-1200x628px.png|400px|link=https://www.meinekleinefarm.net/zabbix-summit-2022-in-riga-keeping-hundreds-of-windows-zabbix-agents-in-sync-across-different-customers/]]&amp;lt;br&amp;gt;&lt;br /&gt;
Seinen Vortrag findet ihr hier auf Youtube: https://youtu.be/IQQwTEtwl7M?t=19987 &amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.10.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Mediwiki dieser Seite ist nun auf Version 1.35.4. Und ich müsste mal daran gehen wieder eine Kommentar-Übersichtsseite zu programmieren ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;06.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das waren jetzt fast 4h Arbeit - aber die Kommentarfunktion funktioniert wieder wie vorher.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Extension basiert wieder auf dem aktuellen Original: https://www.mediawiki.org/wiki/Extension:Comments und wurde wieder nach meinen Bedürfnissen angepasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter anderem war in der aktuellen Version der Datenbank gar kein Feld mehr für den Namen/Email-Adresse vorgesehen, das habe ich wieder nachgerüstet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die meiste Zeit habe ich damit verbracht die Stelle in den ganzen PHP-Skripten zu finden an der die eigentliche Datenbankabfrage durchgeführt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Großes Update der Webseite!&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Upgrade auf die Mediawiki LTS Version 1.35.2&lt;br /&gt;
* Umzug von Ubuntu 18.04 LTS auf 20.04 LTS&lt;br /&gt;
* Umzug von MySQL auf MariaDB&lt;br /&gt;
* Umzug von PHP 7.2 auf 7.4.3&lt;br /&gt;
* Umzug auf V-Server M von IONOS&lt;br /&gt;
* Seite ist nun über IPv4 und IPv6 erreichbar!&lt;br /&gt;
Hat im ganzen ganz gut geklappt. Auf der Strecke sind 2 Erweiterungen geblieben: Die Anzeige der zuletzt geänderten Artikel sowie eine selbst programmierte Seite welche mir alle Kommentare auf einer Seite angezeigt hatte.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch die Schaltfläche die auf jeder Seite unten rechts zum Hochscrollen war fehlt noch.&amp;lt;br&amp;gt;&lt;br /&gt;
Ganz hervorragend am &#039;&#039;&#039;IONOS V Server&#039;&#039;&#039; gefällt mir das es eine VM unter VMware ist, die Firewall davor in der man selbst Port für Port freischalten muss - und das ich die mit dem &#039;&#039;&#039;&#039;&#039;Veeam Agent for Linux&#039;&#039;&#039;&#039;&#039; einfach sichern kann. Und die Büchse ist angenehm schnell, mit 300Mbit angebunden und kostet nur 5 Euro im Monat.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nachtrag:&#039;&#039;&#039; Die Kommentarfunktion funktioniert ... aber der Refresh nachdem man senden gedrückt hat sieht komisch aus. {{Key|F5}} behebt das, mal sehen ob ich da was ändern kann. Das ist eine Extension die ich so angepasst habe das man auch ohne Anmeldung mit einem Namen etwas posten kann und das mir eine Email gesendet wird wenn es einen Kommentar gibt. Es gibt eine neuere Version davon die ich dann allerdings auch wieder neu anpassen muss.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe einen neuen Artikel zum Thema GeoIP-Blocking mit Apache2 veröffentlicht: [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und das ganze auch gleich als Gelegenheit genutzt bei meinen diversen Subdomänen das ganze umzusetzen. Meine Seafile- oder mein Zabbix-Server müssen z.B. nur aus Deutschland erreichbar sein.&amp;lt;br&amp;gt;[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;30.12.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Eigentlich wollte ich diesen Webserver mal auf Ubuntu 20.04 LTS aktualiseren ... aber das hat per &amp;lt;code&amp;gt;do-release-upgrade&amp;lt;/code&amp;gt; im Gegensatz zu meinen anderen VMs nicht geklappt. MediaWiki 1.3 mag irgendwie PHP 7.4 auch nicht richtig (auch wenn ich es woanders schon habe laufen gesehen). Also doch wie immer - neuen Server installieren und dann die Domänen Stück-für-Stück umziehen.&amp;lt;br&amp;gt; [[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.06.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:MFA_Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;MFA technical Certification&amp;quot; der Firma WatchGuard abgeschlossen. Es geht um die [https://www.watchguard.com/de/wgrd-products/authpoint-multi-factor-authentication MFA Lösung AuthPoint der Firma WatchGuard] - bei der Vorbereitung war hilfreich das ich MFA schon länger auch privat für den Schutz meiner Zugänge einsetze. Unter anderem [https://duo.com/ duo.com] für RDP da es bis 10 Personen auch kostenlos genutzt werden kann. WatchGuard ist - aus meiner Sicht - mehr pures MFA, DUO hat dafür quasi jeden Anwendungsfall eine eigene Anleitung und geht tiefer auf die Endgeräte ein. Wobei z.B. eine nicht aktuelle Android-Version ständig angemeckert wird.&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;26.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Stromkosten: Auch ich sitze nun mehr im Homeoffice. Und in meinem Kellerbüro habe ich meinen Rechner hinter mir - und einen 40HE Datenschrank im Blick vor mir. Mit den Tagen ging mir zum einen der Lärm der ganzen Lüfter irgendwann auf den Kecks. Und den Stromverbrauch (den ich bis dato aber nicht gemessen habe) wollte ich auch senken. Den Verbrauch der Switche kannte ich durch Einzelmessungen, der lag bei ca. 100 Watt (für 48 Gigabit Ports + 6 PoE Ports). Diesen habe ich durch einen neuen Switch Allnet-SG8428M (13 Watt maximal!) und einen sparsameren PoE Sitch für die Telefone und Kameras stark reduziert. Zeitgleich habe ich mit Gosund SP111 WLAN-Steckdosenschaltern herumgespielt. Mit der Tasmota Firmware und einer Kalibrierung taugen diese scheinbar auch ganz gut als Strommessgeräte.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab nun also meinen Datenschrank zu Hause daran gehängt und musste ernüchternd einen Dauerstromverbrauch von 140 bis 150 Watt feststellen.&amp;lt;br&amp;gt;&lt;br /&gt;
* 44 Watt davon gehen für PoE drauf - 5 Cisco Telefone und 2 IP-Kameras.&amp;lt;br&amp;gt;&lt;br /&gt;
* 16 Watt maximal für die beiden anderen Switche (der ALLNET und ein 16 Port Netgear) &lt;br /&gt;
* 9 Watt mein ESXi Server auf Basis eines APU2C4 von PC Engines (inklusive 2TB USB Festplatte daran)&lt;br /&gt;
* um die 20 Watt schätze ich die beiden FritzBoxen ...&lt;br /&gt;
* bleiben ca. 89 Watt für meinen Heimserver - mit 2x 128GB SSD und 4 x 4TB HDD&lt;br /&gt;
* und die USV wird da mit Ihrem Eigenanteil auch irgendwo dazwischen liegen&lt;br /&gt;
Wenn ich den Verbrauch mal in einen Kostenrechner werfe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200426-192323.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:(erstellt mit [https://www.stromverbrauchinfo.de/stromkostenrechner.php stromverbrauch info])&amp;lt;br&amp;gt;&lt;br /&gt;
weis ich nun auch warum wir immer so eine fette Stromrechnung habe. Als 4 Personenhaushalt verbrauchen wir soviel wie einer mit 8. Und dabei habe ich doch gerade schon soviel eingespart ...&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde das nun - dank mit Zabbix überwachten Strom/Leistungsverbrauch mal besser beobachten und schauen wie ich da in Zukunft noch mehr einsparen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedes Watt sind 2,60 €/Jahr oder 22 Cent/Monat - klingt nicht viel aber wie man sieht läppert es sich.&amp;lt;br&amp;gt;&lt;br /&gt;
Mal sehen wie der Durchschnitt nach einem Monat ist. Nachts schaltet sich z.B. die Beleuchtung der IP-Telefone ab was schon 10 Watt spart.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Mit gewissen Stolz habe ich meine Version eines &amp;quot;Active Directory-Gruppe mit Zabbix Benutzern Abgleichen via LDAP&amp;quot; Skriptes fertiggstellt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://github.com/BernhardLinz/zabbix-ldap-sync-bash&lt;br /&gt;
Wer nach so etwas googelt landet quasi ausschließlich bei dem von Marc Schöchlin geschriebenen Python Script: https://github.com/zabbix-tooling/zabbix-ldap-sync&amp;lt;br&amp;gt;&lt;br /&gt;
An dem haben mich aber schon immer die ganzen Abhängigkeiten gestört wie &#039;&#039;&#039;pyldap&#039;&#039;&#039; oder &#039;&#039;&#039;pyzabbix&#039;&#039;&#039;. Ich hab nun mal leider auch Kunden mit Systemen ohne Internetanbindung oder älteren Linux Versionen - und da ist es schwer diese zu erfüllen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Skript ist &amp;quot;pures&amp;quot; Bash. Es wird nur der Befehl &#039;&#039;&#039;ldapsearch&#039;&#039;&#039; und &#039;&#039;&#039;curl&#039;&#039;&#039; benötigt - und bisher waren die in allen Repositories der Distributionen vorhanden.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze nun [https://www.google.com/search?q=tripwire+ubuntu Tripwire] um meinen Webserver zu überwachen. Gefällt mir sehr gut, man muss nur daran denken nach jeden Update oder Änderung die Datenbank wieder auf Stand zu bringen. Ich bekomme im Moment jeden Tag einen Email-Report dazu - da muss ich noch mal schauen wir ich das in Zabbix unterbringe bzw. mir nur eine mail senden lasse wenn auch etwas ansteht.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Noch ein Nachtrag zum &amp;quot;Angriff&amp;quot;:&amp;lt;br&amp;gt; zwischendurch fehlten auf dem Server 16G an Speicherplatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Gemerkt habe ich das mit Zabbix weil dadurch ein Schwellwert erst unter- und dann wieder überschritten wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 16G waren das &amp;lt;code&amp;gt;error.log&amp;lt;/code&amp;gt; für die Domäne &#039;&#039;&#039;znil.net&#039;&#039;&#039;. Darin fand ich jede Menge Fehlermeldung das versucht wurde &amp;lt;code&amp;gt;\bin\bash&amp;lt;/code&amp;gt; zu starten - was aber nun mal nicht erlaubt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Bin im Moment gerade glücklich darüber das ich jede Domäne / Webseite / Subdomäne unter einem eigenen, eingeschränkten Benutzer laufen lasse.&amp;lt;br&amp;gt;&lt;br /&gt;
Das mache ich nicht von Hand sondern per ISPConfig weil ich faul bin. Funktioniert aber scheinbar ja prima.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Also, wenn ich so ein Online-Tool nutze um meine Webseite zu überprüfen dann melden diese ggf. (nicht immer) eine &amp;quot;SQL-Injection&amp;quot; Lücke in meiner Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar weil wohl dann gängige Test-SQL-Abfragen mit gesendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden erfolgt via JavaScript im Browser des Benutzers, der Empfänger ist das PHP-Skript auf dem Server.&amp;lt;br&amp;gt;&lt;br /&gt;
In der letzten Version dieses Skriptes (angepasst von mir) gibt es keine Filter mehr, er nimmt einfach alles an. Früher habe ich dort auf Viagra &amp;amp; Co gefiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber der Teil darunter der dann den Text in die Datenbank schreibt ist wohl ausreichend gefestigt - er schreibt einfach alles was kommt in den Datensatz der Datenbank. Die SQL-Injections tauchen so einfach als Text im Kommentarfeld auf, werden aber nicht ausgeführt. Also alles gut Denke ich.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Angriff auf diese Webseite:&amp;lt;br&amp;gt;&lt;br /&gt;
In der Nacht von gestern auf heute hat jemand versucht per SQL-Injektion sich Zugriff auf diese Webseite zu verschaffen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Schwachstelle&amp;quot; ist die Kommentarfunktion. Ein Online-Scurity-Scanner hatte mir diese bereits mal als anfällig dafür gemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich die Mediawiki-Extension überarbeitet hatte, habe ich umfangreiche &amp;quot;Suchen und Erstzen&amp;quot;-Regeln erstellt die alles was mit SQL zu tun hat ausfiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb sehen manche Kommentare hier dann komisch aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich prüfe mal das System intensiv ob die Abwehr erfolgreich war ... oder ob ich doch ein Backup wieder einspiele.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net weiterhin &amp;quot;Tracker-frei&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze Matomo (ehemals Piwik) um Statistiken für diese Webseite zu erhalten. Eigentlich mehr aus Neugier um zu sehen wie das funktioniert, es hat mir aber auch schon bei Verbesserungen geholfen da man manchmal recht gut erkennen kann wenn die Leute bei Suchanfragen falsch abbiegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab in einem meiner Browser seit einiger Zeit ein &amp;quot;Anti-Tracking-Tool&amp;quot; installiert weil dadurch sich die Ladezeiten bei einer meiner Lieblingwebseiten dramatisch verbessert haben (https://thingiverse.com). Voller Freude sehe ich das ich wohl alles richtig gemacht habe - denn das Tool zeigt mir bei dieser Seite an das es nicht zu blockieren gibt. Alles bleibt also innerhalb dieser Seite. Siehe auch: [https://znil.net/index.php?title=Znilwiki:Impressum#Datenschutzerkl.C3.A4rung Datenschutzerklärung]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Sieht nicht nach Leben aus wenn sich die Startseite nie ändert - ich muss noch mal wieder nach einer Mediawiki-Extension schauen welche die neuesten Artikel hier präsentiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Hatte ich schon mal, funktionierte nach einem Update nur nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;04.07.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Seite ab sofort nur noch über &#039;&#039;&#039;&#039;&#039;https://&#039;&#039;&#039;&#039;&#039; zu erreichen - die meisten Aufrufe kamen sowieso schon darüber.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;08.06.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mediawiki-Installation ist nun auf 1.13.2 aktulisiert - einige potentielle Sicherheitslücken wurden geschlossen. Hier der Artikel dazu: https://lists.wikimedia.org/pipermail/mediawiki-announce/2019-June/000230.html&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man nicht alles testet ... die Kommentarfunktion war ohne &amp;quot;Funktion&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Glück ist es eine Erweiterung die noch gepflegt wird, ich habe mir die neue Version herunter geladen und wieder an diese Webseite angepasst: https://git.znil.net/mediawiki/Comments&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:WG Network Security Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;Network Security Technical Certification&amp;quot; der Firma WatchGuard abgeschlossen.&lt;br /&gt;
Ich hatte auch schon mal leichtere Prüfungen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Wiki ist wieder einmal umgezogen. Statt auf einem Server in Frankreich läuft es nun auf einem Server in Deutschland - vielen Dank an meinen Arbeitgeber.&amp;lt;br&amp;gt;&lt;br /&gt;
Im gleichen Atemzug habe ich von der Mediawiki-Version 1.27 LTS auf die Version 1.31 LTS gewechselt - der Support läuft im Juni aus und 1.31 bietet nun wieder Updates bis Juni 2021.&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist leider die &#039;&#039;&#039;WikiLog&#039;&#039;&#039;-Erweiterung auf der Strecke geblieben, diese ist nicht mehr kompatibel und wird auch schon länger nicht mehr weiter einwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Also mache ich das jetzt von Hand ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_ocean&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Wie ist &amp;lt;del&amp;gt;meine&amp;lt;/del&amp;gt; deine IP-Adresse?&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot; style=&amp;quot;font-family:&#039;Courier New&#039;, Monospace; background: #FFFFCC;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 70%; background-color: #FFFFCC&amp;quot;|&amp;lt;big&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IP :&#039;&#039;&#039; &amp;lt;ClientIP /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Typ:&#039;&#039;&#039; &amp;lt;IPv4orv6 /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DNS:&#039;&#039;&#039; &amp;lt;ClientName /&amp;gt; &amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|| Ermittelt mit den PHP-Funktionen dafür&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Cookies und Datenschutz ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
Diese Webseite verwendet bei Besuchern Cookies! [http://www.cookie-checker.com/check-cookies.php?url=znil.net www.cookie-checker.com]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;!--        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten 10 Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
{{RecentActivity:type=edits|count=10}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_blue&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Tools - Kleine Programme für Batchdateien und anderes&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* [[ZnilTools:ifmemberDELUXE.exe|ifmemberDELUXE]] - Netzlaufwerke und Netzwerkdrucker in Anmeldeskripten verbinden&amp;lt;!--, kann Drucker-Server für 32/64 Bit wählen--&amp;gt;&lt;br /&gt;
* [[ZnilTools:Telnet_SMTP_Test_Tool|Telnet_SMTP_Test_Tool.exe]] - Grafische Oberfläche für den Test von SMTP-Servern per Telnet&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung mit vielen Beispielen&lt;br /&gt;
* [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;br /&gt;
* [[Calibre eBook MultiUser Tool / Funktion]] - Calibre mit mehreren Benutzern gleichzeitig nutzen&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_green&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Webseiten die ich regelmäßig besuche ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* http://c64-online.com/ -&amp;gt; Alles über den C64 &amp;amp; Geniales zum Raspberry Pi&lt;br /&gt;
* https://forum.iobroker.net/ -&amp;gt; Alles zu ioBroker&lt;br /&gt;
* https://www.autoit.de -&amp;gt; Wo sonst bekäme man so viel deutsche Hilfe zu AutoIt!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--{{RecentActivity:type=new|count=10}}--&amp;gt;&lt;br /&gt;
{{Special:RecentChanges/days=365,limit=10,hidebots,hideminor,hidecategorization}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_grey&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Spezial:Statistik|Informationen]] zum znilwiki, Stand {{CURRENTDAY2}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} um {{LOCALTIME}} Uhr:&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- * znil.net über das Tor Netzwerk: http://znilnet655kecmslpvcrvpwujeameq4ac42ueg7jvqanzdfk4clnleyd.onion&amp;lt;br&amp;gt; --&amp;gt;&lt;br /&gt;
* Dieses Wiki enthält &#039;&#039;&#039;{{NUMBEROFPAGES}}&#039;&#039;&#039; Seiten, zusammengefasst in &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; Themen...&amp;lt;br&amp;gt;&lt;br /&gt;
* Die Beiträge wurden &#039;&#039;&#039;{{NUMBEROFEDITS}}&#039;&#039;&#039; mal bearbeitet (inklusive der Erstellung)&lt;br /&gt;
* Dieses Wiki wurde laut Matomo schon so oft besucht: &amp;lt;html&amp;gt;&amp;lt;img src=&amp;quot;https://znil.net/piwik/index.php?module=ClassicCounter&amp;amp;action=svg&amp;amp;idSite=1&amp;quot; width=&amp;quot;180&amp;quot; height=&amp;quot;43&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!--* Letzte Änderung am &#039;&#039;&#039;{{REVISIONDAY2}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONMONTH}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONYEAR}}&#039;&#039;&#039; durch &#039;&#039;&#039;{{REVISIONUSER}}&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
* MediaWiki-Version: &#039;&#039;&#039;{{CURRENTVERSION}}&#039;&#039;&#039; - siehe auch [[Spezial:Version]]&lt;br /&gt;
&amp;lt;!--* Seitenaufrufe im Monat: &#039;&#039;&#039;&amp;gt; 12.000&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Datei:Piwik-001.png]]&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;[[Testbereich|.]][[Testbereich:Seite2|.]][[Testbereich:Seite3|.]][[Testbereich:Seite4|π]]&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Ufw_Geoblocking_mit_Ubuntu_24.04&amp;diff=15764</id>
		<title>Ufw Geoblocking mit Ubuntu 24.04</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Ufw_Geoblocking_mit_Ubuntu_24.04&amp;diff=15764"/>
		<updated>2026-02-16T14:34:58Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Beispiele für weitere Regeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Vorwort==&lt;br /&gt;
Unter Apache2 nutze ich ein Geoblocking - ich habe aber nach einer Möglichkeit gesucht, das ganz schon vor dem Apache zu blockieren (und mir die Logeinträge dafür damit zu sparen).&amp;lt;br&amp;gt;&lt;br /&gt;
Dafür habe ich diese Anleitung gefunden:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://www.seenlyst.com/blog/geo-blocking-ufw-iptables/&lt;br /&gt;
Die aber für Ubuntu 24.04 geschrieben wurde und so nicht mehr funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe die Fehler und Änderungen herausgesucht und hier ist meine Version des Artikels:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich wechsle einmal am Anfang zum {{code|root}}, alle nachfolgenden Befehle werden also als dieser ausgeführt!&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen installieren==&lt;br /&gt;
 apt update -y&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 apt install curl perl unzip xtables-addons-common libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Verzeichnis für unsere Daten erstellen==&lt;br /&gt;
 mkdir -p /usr/share/xt_geoip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Downloadskript erstellen==&lt;br /&gt;
 nano /usr/local/bin/update-geoip.sh&lt;br /&gt;
mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Create temporary directory&lt;br /&gt;
mkdir -p /usr/share/xt_geoip/tmp/&lt;br /&gt;
mkdir -p /usr/share/xt_geoip/tmp/ip2loc/&lt;br /&gt;
&lt;br /&gt;
# Download latest from db-ip.com&lt;br /&gt;
cd /usr/share/xt_geoip/tmp/&lt;br /&gt;
/usr/libexec/xtables-addons/xt_geoip_dl&lt;br /&gt;
&lt;br /&gt;
# Download maxmind legacy csv and process&lt;br /&gt;
wget https://mailfud.org/geoip-legacy/GeoIP-legacy.csv.gz -O /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
gunzip /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
cat /usr/share/xt_geoip/tmp/GeoIP-legacy.csv | tr -d &#039;&amp;quot;&#039; | cut -d, -f1,2,5 &amp;gt; /usr/share/xt_geoip/tmp/GeoIP-legacy-processed.csv&lt;br /&gt;
rm /usr/share/xt_geoip/tmp/GeoIP-legacy.csv&lt;br /&gt;
# rm /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
&lt;br /&gt;
# Download latest from https://github.com/sapics/ip-location-db&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geo-whois-asn-country/geo-whois-asn-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geo-whois-asn-country/geo-whois-asn-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/iptoasn-country/iptoasn-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/iptoasn-country/iptoasn-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/dbip-country/dbip-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/dbip-country/dbip-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geolite2-country/geolite2-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geolite2-country/geolite2-country-ipv6.csv&lt;br /&gt;
&lt;br /&gt;
# Combine all csv and remove duplicates&lt;br /&gt;
cd /usr/share/xt_geoip/tmp/&lt;br /&gt;
cat *.csv &amp;gt; geoip.csv&lt;br /&gt;
sort -u geoip.csv -o /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
&lt;br /&gt;
# Remove temp directory and update geoip xtables&lt;br /&gt;
cd /usr/share/xt_geoip/&lt;br /&gt;
rm -r /usr/share/xt_geoip/tmp/&lt;br /&gt;
/usr/libexec/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip/ -i /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
rm /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
&lt;br /&gt;
# reload ufw&lt;br /&gt;
ufw reload&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Skript noch ausführbar machen und testen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/update-geoip.sh&lt;br /&gt;
 /usr/local/bin/update-geoip.sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Blocking in Firewallregeln einbauen==&lt;br /&gt;
 nano /etc/ufw/before.rules&lt;br /&gt;
und unten vor dem {{code|COMMIT}} in der letzten Zeile folgendes einfügen:&amp;lt;br&amp;gt;&lt;br /&gt;
 #GeoBlocking&lt;br /&gt;
 -A ufw-before-input -m geoip --src-cc RU,CN,HK -j DROP&lt;br /&gt;
Das gleiche für IPv6:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ufw/before6.rules&lt;br /&gt;
und unten das hier einfügen (ist nicht das gleiche wie bei IPv4!)&lt;br /&gt;
 #GeoBlocking&lt;br /&gt;
 -A ufw6-before-input -m geoip --src-cc RU,CN,HK -j DROP&lt;br /&gt;
Damit ist Russland (RU), China (CN) und Hongkong (HK) für alles gesperrt!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Regel aktivieren==&lt;br /&gt;
 ufw reload&lt;br /&gt;
Gibt es dabei eine Fehler, so ist die Firewall ausgeschaltet!&lt;br /&gt;
In der Fehlermeldung wird die Datei und die Zeile stehen in der etwas falsch ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Korrigieren und dann die Firewall mit&lt;br /&gt;
 ufw enable&lt;br /&gt;
 ufw reload&lt;br /&gt;
neu starten und die Regeln prüfen!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Beispiele für weitere Regeln==&lt;br /&gt;
{{code|/etc/ufw/before.rules}}&lt;br /&gt;
 -A ufw-before-input -p tcp --dport 3000 -m geoip --src-cc RU,CN -j DROP&lt;br /&gt;
{{code|/etc/ufw/before6.rules}}&lt;br /&gt;
 -A ufw6-before-input -p tcp --dport 3000 -m geoip --src-cc RU,CN -j DROP&lt;br /&gt;
Sperrt TCP Datenverkehr auf Port 3000 für RU und CN&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Cronjob erstellen==&lt;br /&gt;
Einmal im Monat sollte man die Geodaten aktualisieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 Kommt noch - es muss das Skript einfach noch einmal gestartet werden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Ufw_Geoblocking_mit_Ubuntu_24.04&amp;diff=15763</id>
		<title>Ufw Geoblocking mit Ubuntu 24.04</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Ufw_Geoblocking_mit_Ubuntu_24.04&amp;diff=15763"/>
		<updated>2026-02-16T14:31:33Z</updated>

		<summary type="html">&lt;p&gt;BLinz: Die Seite wurde neu angelegt: „==Vorwort== Unter Apache2 nutze ich ein Geoblocking - ich habe aber nach einer Möglichkeit gesucht, das ganz schon vor dem Apache zu blockieren (und mir die Logeinträge dafür damit zu sparen).&amp;lt;br&amp;gt; Dafür habe ich diese Anleitung gefunden:&amp;lt;br&amp;gt;  https://www.seenlyst.com/blog/geo-blocking-ufw-iptables/ Die aber für Ubuntu 24.04 geschrieben wurde und so nicht mehr funktioniert.&amp;lt;br&amp;gt; Ich habe die Fehler und Änderungen herausgesucht und hier ist meine Versi…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Vorwort==&lt;br /&gt;
Unter Apache2 nutze ich ein Geoblocking - ich habe aber nach einer Möglichkeit gesucht, das ganz schon vor dem Apache zu blockieren (und mir die Logeinträge dafür damit zu sparen).&amp;lt;br&amp;gt;&lt;br /&gt;
Dafür habe ich diese Anleitung gefunden:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://www.seenlyst.com/blog/geo-blocking-ufw-iptables/&lt;br /&gt;
Die aber für Ubuntu 24.04 geschrieben wurde und so nicht mehr funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe die Fehler und Änderungen herausgesucht und hier ist meine Version des Artikels:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Ich wechsle einmal am Anfang zum {{code|root}}, alle nachfolgenden Befehle werden also als dieser ausgeführt!&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Voraussetzungen installieren==&lt;br /&gt;
 apt update -y&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 apt install curl perl unzip xtables-addons-common libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Verzeichnis für unsere Daten erstellen==&lt;br /&gt;
 mkdir -p /usr/share/xt_geoip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Downloadskript erstellen==&lt;br /&gt;
 nano /usr/local/bin/update-geoip.sh&lt;br /&gt;
mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Create temporary directory&lt;br /&gt;
mkdir -p /usr/share/xt_geoip/tmp/&lt;br /&gt;
mkdir -p /usr/share/xt_geoip/tmp/ip2loc/&lt;br /&gt;
&lt;br /&gt;
# Download latest from db-ip.com&lt;br /&gt;
cd /usr/share/xt_geoip/tmp/&lt;br /&gt;
/usr/libexec/xtables-addons/xt_geoip_dl&lt;br /&gt;
&lt;br /&gt;
# Download maxmind legacy csv and process&lt;br /&gt;
wget https://mailfud.org/geoip-legacy/GeoIP-legacy.csv.gz -O /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
gunzip /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
cat /usr/share/xt_geoip/tmp/GeoIP-legacy.csv | tr -d &#039;&amp;quot;&#039; | cut -d, -f1,2,5 &amp;gt; /usr/share/xt_geoip/tmp/GeoIP-legacy-processed.csv&lt;br /&gt;
rm /usr/share/xt_geoip/tmp/GeoIP-legacy.csv&lt;br /&gt;
# rm /usr/share/xt_geoip/tmp/GeoIP-legacy.csv.gz&lt;br /&gt;
&lt;br /&gt;
# Download latest from https://github.com/sapics/ip-location-db&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geo-whois-asn-country/geo-whois-asn-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geo-whois-asn-country/geo-whois-asn-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/iptoasn-country/iptoasn-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/iptoasn-country/iptoasn-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/dbip-country/dbip-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/dbip-country/dbip-country-ipv6.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geolite2-country/geolite2-country-ipv4.csv&lt;br /&gt;
wget -P /usr/share/xt_geoip/tmp/ https://cdn.jsdelivr.net/npm/@ip-location-db/geolite2-country/geolite2-country-ipv6.csv&lt;br /&gt;
&lt;br /&gt;
# Combine all csv and remove duplicates&lt;br /&gt;
cd /usr/share/xt_geoip/tmp/&lt;br /&gt;
cat *.csv &amp;gt; geoip.csv&lt;br /&gt;
sort -u geoip.csv -o /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
&lt;br /&gt;
# Remove temp directory and update geoip xtables&lt;br /&gt;
cd /usr/share/xt_geoip/&lt;br /&gt;
rm -r /usr/share/xt_geoip/tmp/&lt;br /&gt;
/usr/libexec/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip/ -i /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
rm /usr/share/xt_geoip/dbip-country-lite.csv&lt;br /&gt;
&lt;br /&gt;
# reload ufw&lt;br /&gt;
ufw reload&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Skript noch ausführbar machen und testen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/update-geoip.sh&lt;br /&gt;
 /usr/local/bin/update-geoip.sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Blocking in Firewallregeln einbauen==&lt;br /&gt;
 nano /etc/ufw/before.rules&lt;br /&gt;
und unten vor dem {{code|COMMIT}} in der letzten Zeile folgendes einfügen:&amp;lt;br&amp;gt;&lt;br /&gt;
 #GeoBlocking&lt;br /&gt;
 -A ufw-before-input -m geoip --src-cc RU,CN,HK -j DROP&lt;br /&gt;
Das gleiche für IPv6:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ufw/before6.rules&lt;br /&gt;
und unten das hier einfügen (ist nicht das gleiche wie bei IPv4!)&lt;br /&gt;
 #GeoBlocking&lt;br /&gt;
 -A ufw6-before-input -m geoip --src-cc RU,CN,HK -j DROP&lt;br /&gt;
Damit ist Russland (RU), China (CN) und Hongkong (HK) für alles gesperrt!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Regel aktivieren==&lt;br /&gt;
 ufw reload&lt;br /&gt;
Gibt es dabei eine Fehler, so ist die Firewall ausgeschaltet!&lt;br /&gt;
In der Fehlermeldung wird die Datei und die Zeile stehen in der etwas falsch ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Korrigieren und dann die Firewall mit&lt;br /&gt;
 ufw enable&lt;br /&gt;
 ufw reload&lt;br /&gt;
neu starten und die Regeln prüfen!&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Beispiele für weitere Regeln==&lt;br /&gt;
{{code|/etc/ufw/before.rules}}&lt;br /&gt;
 -A ufw-before-input -p tcp --dport 3000 -m geoip --src-cc RU,CN -j DROP&lt;br /&gt;
{{code|/etc/ufw/before6.rules}}&lt;br /&gt;
 -A ufw6-before-input -p tcp --dport 3000 -m geoip --src-cc RU,CN -j DROP&lt;br /&gt;
Sperrt TCP Datenverkehr auf Port 3000 für RU und CN&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Linux&amp;diff=15762</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Linux&amp;diff=15762"/>
		<updated>2026-02-16T14:18:34Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:Linux]]&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
* [[ARP Cache unter Linux löschen]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root bei Ubuntu &amp;amp; Co.]]&lt;br /&gt;
* [[root wieder aktivieren / Anmelden als Root per SSH Ubuntu 14.04]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* grep, sed und awk: http://unix.stackexchange.com/questions/42047/cut-grep-and-df-h&lt;br /&gt;
* [[Links unter Linux setzen - Harte und Symbolische]]&lt;br /&gt;
* [http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1022525 VMware Tools unter Linux installieren (Ubuntu)]&lt;br /&gt;
* [[init.d Script in den automatischen Start/Stop mit aufnehmen]]&lt;br /&gt;
* [[Mini Benchmark mit bc - Vergleich Root Server]]&lt;br /&gt;
* [[Linux - Windows Freigabe automatisch beim Booten mounten]] (Ubuntu 12.04 LTS)&lt;br /&gt;
* [[Linux - Ubuntu 14.04. Windows Freigabe mounten - beim Booten automatisch mounten]]&lt;br /&gt;
* [[Linux - Festplatten / Dateisystem überprüfen beim reboot]]&lt;br /&gt;
* [[fsck.vfat not found - keine Überprüfung von FAT Datenträgern]]&lt;br /&gt;
* [[Verzeichnisgröße abfragen in der Bash Shell - Ordnergröße]]&lt;br /&gt;
* [[Linux Dateimanager wie Windows Explorer]]&lt;br /&gt;
* [[ssh scp ohne Passwort Passworteingabe einrichten]]&lt;br /&gt;
* [[Ubuntu Bash sudo ohne Passworteingabe]]&lt;br /&gt;
* [[Ubuntu installierte Pakete]]&lt;br /&gt;
* Hilfe zu regulären Ausdrücken: &lt;br /&gt;
** http://www.regexe.de/hilfe.jsp&lt;br /&gt;
** https://www.strassenprogrammierer.de/regular-expression-regex-praxis_tipp_597.html&lt;br /&gt;
* Ubuntu 18.04 IPv6 deaktivieren: https://linuxconfig.org/how-to-disable-ipv6-address-on-ubuntu-18-04-bionic-beaver-linux&lt;br /&gt;
* Nach Infektion / Rootkits suchen: https://www.tecmint.com/scan-linux-for-malware-and-rootkits/&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Linux main binary-i386 Packages wird übersprungen]]&lt;br /&gt;
* [[Linux Ubuntu MBR Datenträger in GPT Datenträger umwandeln kein LVM]]&lt;br /&gt;
* [[Linux leere Datei erzeugen mit zufälligen oder leeren Inhalt]]&lt;br /&gt;
* [[Linux systemd Dienst warten bis Mount erfolgt ist NFS Gluster SMB]]&lt;br /&gt;
* https://www.silvesterlangen.de/?Linux___%2BGrundlagen_und_Diverses___UID%2FGID_und_Dateien_eines_Users_aendern&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Linux Netzwerkbereich pingen ohne Zusatzprogramme kein fping kein nmap]]&lt;br /&gt;
* [[Linux Listen Ports mit Programm anzeigen]]&lt;br /&gt;
* [[Linux Stresstest Hardware CPU RAM Disk Festplatte]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Der eigene Webserver / Rootserver - How-To&#039;s ==&lt;br /&gt;
* [[Postfix HELO Meldung für SMTP 220 anpassen]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* [[APC Cache mit Plesk und die APC-Admin-Seite]]&lt;br /&gt;
* [[Xcache mit Plesk und die xcache-Admin-Seite]]&lt;br /&gt;
* [[Robocopy unter Linux?]]&lt;br /&gt;
* [[Ubuntu Backupskript Apache Webserver und MySQL Datenbank]]&lt;br /&gt;
* [[IONOS Mietserver Ubuntu 24.04 - Einrichtung ISPConfig]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Apache2 ==&lt;br /&gt;
* [[Apache2 http zu https Umleitung]]&lt;br /&gt;
* [[Apache2 PHP Upload bringt 500 Internal Server Error]]&lt;br /&gt;
* [[Apache2 als http / https Proxy zu anderen Host]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Exchange 2010 2013 2016 2019 inklusive Outlook Anywhere RPC over http]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für VMware vCenter WebClient mit Subdomain auf Port 443]]&lt;br /&gt;
* [[PHP beschleunigen mit php5-xcache]]&lt;br /&gt;
* Apache2 Subdomains anlegen: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts&lt;br /&gt;
* [[Apache OpenSSL Prüfen ob Zertifikat und Key zusammen passen]]&lt;br /&gt;
* [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy und Loadbalancer Beispiel Proxmox]]&lt;br /&gt;
* [[Apache2 als Reverse Proxy für Home Assistant]]&lt;br /&gt;
* [[Ubuntu SAN Zertifikat anfordern mit interner Microsoft CA Zertifizierungsstelle und in Apache verwenden]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Bash ==&lt;br /&gt;
* [[Bash History aus mehreren Sitzungen ohne überschreiben]]&lt;br /&gt;
* [[Bash cronjob alle 30 Sekunden]]&lt;br /&gt;
* [[Bash Color Prompt Links und Beispiele]]&lt;br /&gt;
* [[Bash Skript exit ohne die Shell zu beenden]]&lt;br /&gt;
* [[Bash Treesize Programm ncdu]]&lt;br /&gt;
* [[Bash cronjob Dateien älter als x Tage löschen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== BitTorrentSync ==&lt;br /&gt;
* [[Ubuntu 14.04.x btsync BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Raspbian lowmemorykiller: Killing &#039;btsync&#039;]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== BookStack ==&lt;br /&gt;
* [[BookStack CSS Beispiele Verbesserungen Hacks]]&lt;br /&gt;
* Import/Export: https://github.com/toras9000/bookstack-export-import&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Clipperz ==&lt;br /&gt;
* [[Clipperz - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Cockpit ==&lt;br /&gt;
* [[Linux Cockpit hinter Subdomain statt Port 9090 per Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Docker ==&lt;br /&gt;
* [[Ubuntu 24.02 als Docker-Host]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== DynDNS ==&lt;br /&gt;
* [[DynDNS Update Skript Linux Bash]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== EFA - Email Filter Appliance ==&lt;br /&gt;
* [[eFa Appliance Active Directory in MailScanner und Postfix konfigurieren]]&lt;br /&gt;
* Die Fußnote / Signatur unter den zugestellten Emails entfernen: https://forum.efa-project.org/viewtopic.php?t=2907&lt;br /&gt;
* Dateianhänge mit VBA Makros blocken: https://forum.efa-project.org/viewtopic.php?t=1896&lt;br /&gt;
* [[eFa Appliance Emails mit VBA Makros Skripten blocken]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Etherpad ==&lt;br /&gt;
* [[Etherpad - Installion auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== GateOne ==&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== GitLab ==&lt;br /&gt;
* [[GitLab GitLab Community Edition unter Ubuntu 16.04.x LTS in Subdomain installieren]]&lt;br /&gt;
* GitLab anpassen: http://axilleas.me/en/blog/2014/custom-gitlab-login-page/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Guacamole ==&lt;br /&gt;
* [[Ubuntu 20.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 18.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 16.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - Guacamole HTML5 Remotedesktop Gateway installieren mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Zabbix mit Guacamole in Kombination|Zabbix mit Guacamole in Kombination - Demo-Video]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Gogs ==&lt;br /&gt;
* [[CentOS 7 Gogs Git-Server installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Icinga==&lt;br /&gt;
* [[Linksammlung Icinga2 unter CentOS 7]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== ISPConfig ==&lt;br /&gt;
* [[ISPConfig - Webinterface als Subdomain auf Port 443 einrichten]]&lt;br /&gt;
* [[ISPConfig ab 3.1.x - Webinterface als Subdomain auf Port 443 https einrichten]]&lt;br /&gt;
* [https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/ ISPConfig - PHP 7.0.0 Installieren]&lt;br /&gt;
* [[ISPConfig 3.0.5.4p8 Webseiten https mit letsencrypt absichern und Zertifikate automatisch erneuern]]&lt;br /&gt;
* Basic Auth für Website https://davidstein.cz/2025/01/15/isp-config-website-password-protection/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Kodi ==&lt;br /&gt;
* Kodi nachträglich auf Raspbian: https://www.makeuseof.com/tag/install-kodi-raspbian-media-center/&lt;br /&gt;
* Kodi 18 auf Raspbian Stretch: https://www.raspberrypi.org/forums/viewtopic.php?t=222954&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s Encrypt ==&lt;br /&gt;
* [[Lets Encrypt Zertifikate erneuern mit Apache Reverse Proxy]]&lt;br /&gt;
* [[Lets Encrypt Liste der Server Firewall]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== LVM ==&lt;br /&gt;
* [[LVM root boot Volume umbenennen Ubuntu Debian]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mattermost ==&lt;br /&gt;
* [[Mattermost unter Ubuntu 16.04 mit Apache und ISPConfig in Subdomain installieren]]&lt;br /&gt;
* [[Mattermost Farbschema]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Minecraft ==&lt;br /&gt;
* [[Minecraft Server mit rfwadmin unter Ubuntu 14.04 LTS und ISPConfig]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Monitorix ==&lt;br /&gt;
* [[Monitorix unter Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Multipathing==&lt;br /&gt;
* [[Solaris Multipathing Status abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== mySQL ==&lt;br /&gt;
* [[mySQL - Verbindungsdaten ( Connections ) anzeigen lassen]]&lt;br /&gt;
* [[mySQL - weitere Instanz auf gleichen Server starten / betreiben]]&lt;br /&gt;
* [[MySQL - Datenbank direkt zwischen 2 Servern kopieren]]&lt;br /&gt;
* https://github.com/major/MySQLTuner-perl&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==NetBox==&lt;br /&gt;
* [[NetBox unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== NextCloud ==&lt;br /&gt;
* [[NextCloud unter Ubuntu 24.04 LTS installieren]]&lt;br /&gt;
* [[NextCloud unter Ubuntu 22.04 LTS installieren]]&lt;br /&gt;
* Monitoring URL mit curl abfragen + Token dafür erstellen: https://help.nextcloud.com/t/howto-use-serverinfo-with-curl/173360&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenSim ==&lt;br /&gt;
* [[OpenSim Server auf Ubuntu 14.04.x LTS mit ISPConfig installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenVPN ==&lt;br /&gt;
* OpenVPN Server unter Ubuntu Einfachlösung: https://www.cyberciti.biz/faq/ubuntu-20-04-lts-set-up-openvpn-server-in-5-minutes/#Install_OpenVPN_server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== OpenWISP ==&lt;br /&gt;
* [[OpenWISP Manager auf Ubuntu 14.04.x LTS installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Parallels Plesk Panel ==&lt;br /&gt;
* [[SFTP Zugang unter Parallels Plesk Panel aktivieren]]&lt;br /&gt;
* [[Parallels Plesk 11 - Emails an anderen Mailserver weiterleiten]]&lt;br /&gt;
* [[Parallels Plesk lästige Statusmeldungen abschalten]]&lt;br /&gt;
* [[Parallels Plesk - Zugriff auf alle MySQL Datenbanken - Benutzer root funktioniert nicht]]&lt;br /&gt;
* [[Parallels Plesk - database disk image is malformed]]&lt;br /&gt;
* [[ERROR Zend_Db_Adapter_Exception SQLSTATE HY000 2002 No such file or directory]]&lt;br /&gt;
* Alt aber viel interessantes: http://www.grafxsoftware.com/faq.php/HOW-TO-Setup-a-PLESK-Dedicated-Server/1/4/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== pfSense ==&lt;br /&gt;
* [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&lt;br /&gt;
* [[pfSense - IPv6 mit Tunnel Broker und Reverse DNS rDNS]]&lt;br /&gt;
* [[pfSense - IPSec mit IPv4 Remote IP wird aber IPv6 genommen]]&lt;br /&gt;
* [[pfsense - Tor Proxy mit Anmeldung über Internet squid polipo]]&lt;br /&gt;
* [[pfsense - GeoIP Blocking auf bestimmte Ports oder Dienste IPv4 IPv6]]&lt;br /&gt;
* [[pfSense - GeoIP Blocking und Lets Encrypt Zertifikate]]&lt;br /&gt;
* https://www.biteno.com/tutorial/openvpn-auf-einer-pfsense-firewall-einrichten/&lt;br /&gt;
* pfSense und Duo.com: &lt;br /&gt;
** https://forum.netgate.com/topic/119303/openvpn-with-active-directory-authentication-and-duo-security&lt;br /&gt;
** https://github.com/jasonbeitler/www/wiki/PFSense-and-Duo-2FA&lt;br /&gt;
* [[pfSense - HAProxy + Lets Encrypt ACME + GeoIP-Blocking pfBlockerNG]]&lt;br /&gt;
* [[pfSense - ACME-Zertifikate auf anderen Server kopieren]]&lt;br /&gt;
* https://www.cyberciti.biz/faq/howto-configure-dual-wan-load-balance-failover-pfsense-router/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==phpIPAM==&lt;br /&gt;
* https://github.com/thetechguysguide/thetechguysguide.github.io&lt;br /&gt;
** https://www.youtube.com/watch?v=GfBvFJLClHQ&lt;br /&gt;
* [[phpIPAM MAC-Adressen per arp ermitteln und hinzufügen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==PHPMyAdmin==&lt;br /&gt;
* [[PHPMyAdmin alle Benutzer bis auf einen verbieten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PiHole ==&lt;br /&gt;
* [[PiHole Whitelist Amazon]]&lt;br /&gt;
* Liste der Microsoft 365: https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Postfix ==&lt;br /&gt;
* [[Ubuntu root alle Emails weiterleiten an Postfach auf Exchange Server]]&lt;br /&gt;
* https://patrik.kernstock.net/2013/01/postfix-mailwarteschlange-ansehen-flushen-und-leeren/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PuTTY ==&lt;br /&gt;
* [[PuTTY sinnvoll Voreinstellungen machen / Default Settings ändern]]&lt;br /&gt;
* [[PuTTY Anmeldung per SSH-Key ohne Pageant ganz ohne Passwort]]&lt;br /&gt;
* [[PuTTY nano in SSH Sitzung mit Maus bedienen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
* [[Python Skripte als Dienst unter Windows oder Linux]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== qmail ==&lt;br /&gt;
* qmail Queue löschen: http://dragos.fedorovici.com/plesk-clear-qmail-queue/&lt;br /&gt;
* qmail Queue diverses: http://www.debianhelp.co.uk/qmailqueue.htm&lt;br /&gt;
* qmail Bounce Messages verhindern: http://g33kinfo.com/info/archives/4080/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== RedHat ==&lt;br /&gt;
* [[Anmeldung per SSH-Key nicht möglich wenn der home-Ordner auf einem NFS-Share liegt]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Repository ==&lt;br /&gt;
* [[Ubuntu Offline Mirror Repository erstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Samba==&lt;br /&gt;
* [[Samba Das angegebene Netzwerkkennwort ist falsch NTLMv2]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Seafile ==&lt;br /&gt;
* [[Seafile Server Docker - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 24.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 20.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 18.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 16.04.x LTS]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 14.04.x LTS mit ISPConfig]]&lt;br /&gt;
* [[Seafile Server - Installation auf Ubuntu 12.04.x LTS mit Plesk]]&lt;br /&gt;
* [[Seafile Server - als separater Server hinter Webserver mit Apache2]]&lt;br /&gt;
* [[Seafile - Speicherplatz freigeben von gelöschten Dateien]]&lt;br /&gt;
* [[Seafile Server - Upgrade Version 3 auf 4]]&lt;br /&gt;
* [[Seafile Server - Update/Upgrade des Servers auf neuere Version]]&lt;br /&gt;
* [[Seafile Terminal Client - Installation und Synchronisation unter Ubuntu 14.04.x LTS]]&lt;br /&gt;
* [http://seafile.com/en/help/ignore/ Seafile Server - Dateien oder Ordner beim Upload Client-seitig ignorieren]&lt;br /&gt;
* [[Seafile Server - Active Directory Anbindung]]&lt;br /&gt;
* [[Seafile Server - inaktive LDAP Benutzer finden - inactive LDAPUsers]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SNMP ==&lt;br /&gt;
* [[PoE am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* [[Port am Switch per SNMP an oder abschalten]]&lt;br /&gt;
* https://www.m00nie.com/2010/08/how-to-install-and-use-snmpwalk/&lt;br /&gt;
* [[nmap Beispielsammlung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SOLARIS ==&lt;br /&gt;
* [[Oracle Solaris FC Multipath Fibre Channel Multipathing prüfen und wiederherstellen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== SUSE ==&lt;br /&gt;
* [[SUSE Version abfragen]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Syncthing ==&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== systemctl ==&lt;br /&gt;
* systemctl auf die Schnelle: http://mikuerschner.org/node/26&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Tor ==&lt;br /&gt;
* Anleitung Tor Server: https://2019.www.torproject.org/docs/tor-onion-service.html.en&lt;br /&gt;
* Eigene .onion-Adressen erstellen: https://www.jamieweb.net/blog/onionv3-vanity-address/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
* [[Ubuntu Netzwerkkarteneinstellungen ändern ohne GUI in der Console]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP Version auf 5.3.27 updaten]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - PHP intl PECL-Erweiterung nachinstallieren]]&lt;br /&gt;
* [[Ubuntu 12.04 LTS - BitTorrent Sync Server installieren]]&lt;br /&gt;
* [[Ubuntu 12.05 LTS - Gateone SSH Client installieren auf Server mit Plesk]]&lt;br /&gt;
* [[Ubuntu - Pakete installieren, entfernen, suchen und installierte anzeigen lassen]]&lt;br /&gt;
* [[Ubuntu - alte Version findet keine Paketquellen mehr]]&lt;br /&gt;
* [[VMware Tools Ubuntu installieren in der Bash / Shell]]&lt;br /&gt;
* [[Linux Farbiger Standard Prompt in der Bash auch bei root und PuTTY]]&lt;br /&gt;
* [[Linux Reboot per cron-Job automatisch]]&lt;br /&gt;
* [[Linux Script oder Befehl nach reboot ausführen]]&lt;br /&gt;
* [[Email nach SSH Login auf Linux-Server]]&lt;br /&gt;
* [[Bash bunter Text und Banner mit toilet]]&lt;br /&gt;
* [[Bash Hollywood - Hollywood in der Bash]]&lt;br /&gt;
* [[Logfiles in Logrotate aufnehmen - automatisches packen, rotieren und leeren von Logs]]&lt;br /&gt;
* [[Ubuntu Version in der Bash abfragen]]&lt;br /&gt;
* [[Linux SCP mit IPv6 nutzen]]&lt;br /&gt;
* [[Linux rsync statt scp zum kopieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal]]&lt;br /&gt;
* Virtuelle Maschinen auf Ubuntu Server:&lt;br /&gt;
** http://www.serveradventures.com/the-adventures/virtual-machines-in-ubuntu-server-virtualbox-phpvirtualbox&lt;br /&gt;
** http://www.unixmen.com/install-oracle-virtualbox-manage-using-phpvirtualbox-ubuntu-14-04-headless-server/&lt;br /&gt;
** http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.3-on-a-headless-ubuntu-14.04-lts-server&lt;br /&gt;
* [[Ubuntu Linux - Festplatte mit LVM im laufenden Betrieb ohne Neustart vergrößern]]&lt;br /&gt;
* Ubuntu puTTY Zugriff mit SSH-Keys absichern: https://www.howtoforge.de/anleitung/key-basierte-ssh-logins-mit-putty/&lt;br /&gt;
* [[Ubuntu Bilder betrachten anzeigen mit puTTY in Konsole]]&lt;br /&gt;
* [[Ubuntu Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu discosrv Global Discovery Server Syncthing installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x Inhalt der .bashrc]]&lt;br /&gt;
* [[Ubuntu 14.04.x Server minimale GUI und andere Spielereien]]&lt;br /&gt;
* [[IBM Storage Manager unter Ubuntu Linux installieren]]&lt;br /&gt;
* [[Ubuntu nano ist auf Englisch]]&lt;br /&gt;
* [[TSM Client auf Ubuntu installieren]]&lt;br /&gt;
* [[Ubuntu 14.04.x NFS Freigabe erstellen und verbinden]]&lt;br /&gt;
* [[Linux Bash wget etc http https Proxy angeben]]&lt;br /&gt;
* [[Ubuntu 14.04.x Apache 2.4.7 GeoIP Blocking mit IPv4 und IPv6 einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x 2-Faktor bei SSH mit Google Authenticator einrichten]]&lt;br /&gt;
* [[Ubuntu 16.04.x Automatische Updates aktivieren oder deaktivieren in der Bash]]&lt;br /&gt;
* [[Ubuntu 16.04.x tmux für die Verwendung mit puTTY oder kiTTY]]&lt;br /&gt;
* [[Ubuntu automatischen Neustart von Diensten nach Upgrade deaktivieren]]&lt;br /&gt;
* [[Ubuntu CA Zertifikat importieren]]&lt;br /&gt;
* [[Ubuntu UFW konfigurieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==ufw Firewall==&lt;br /&gt;
* [[ufw Geoblocking mit Ubuntu 24.04]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Vaultwarden==&lt;br /&gt;
* [[Vaultwarden unter Ubuntu 24.04 und Apache Reverse Proxy]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Solaris==&lt;br /&gt;
* [[Solaris 10 - SSH Zugriff für root freischalten]]&lt;br /&gt;
* [[Solaris 10 - Tabulator und Pfeiltasten wie unter Linux]]&lt;br /&gt;
* [[Solaris 10 - NetBackup Client NetBackup Agent unter Solaris installieren]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== STRATO ==&lt;br /&gt;
* [[V-PowerServer startet nach Wiederherstellung eines Backups mit BackupControl nicht - mySQL startet nicht]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Hauptseite&amp;diff=15761</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Hauptseite&amp;diff=15761"/>
		<updated>2026-02-16T11:09:22Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOCACHE__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_row2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_orange&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Letzte Meldungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
USA sind nun auch Blockiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Mediawiki-Funktion bzw. Spezialseite um alle Änderungen in einem bestimmten Zeitraum abzufragen.&amp;lt;br&amp;gt;&lt;br /&gt;
Das ist eine Datenbankabfrage. Und genau diese kommt nun schon seit mehren Tagen fast pausenlos aus Kalifornien, USA, über verschiedene IP-Adressen.&amp;lt;br&amp;gt;&lt;br /&gt;
Und erzeugt hohe Last auf meinem Webserver.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich sperre die mal für eine paar Tage aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich brauche dringend mal eine Firewall davor die das Geoblocking übernimmt (im Moment mache ich es im Apache).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Extrem hohe Last auf dem Webserver hier ...&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Internetzugang fing an &amp;quot;zu spinnen&amp;quot;, dieser Webserver hier war nahezu auf 100%, der Upload stand bei konstant 10MBit/s ...&amp;lt;br&amp;gt;&lt;br /&gt;
Diesmal lag es lag es an einer Testversion vom März 2025 dieser Webseite. Vor dem Upgrade hatte ich eine Kopie erstellt welche unter der Domäne &amp;quot;testwiki.znil.net&amp;quot; zu erreichen war.&amp;lt;br&amp;gt;&lt;br /&gt;
Die war natürlich nicht gepatched und hatte kein Geoblocking.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe diese nun einfach gelöscht und Ruhe ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.12.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Geo-Blocking von Ländern:&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist der 1. eines Monats und da bekomme ich immer die Auswertung von Matomo - das ist das Tool mit dem ich die Zugriffe auf meine Webseite auswerte. Normalerweise sind das so um die 5 bis 10.000 Besucher im Monat, während Corona waren es auch mal 20.000 (Der Artikel über Guacamole RDP war äußerst beliebt).&amp;lt;br&amp;gt;&lt;br /&gt;
In November waren es dann 167.000 eindeutige Besucher ... ok, hier stimmt etwas nicht. Ein Blick auf den Webserver - jupp der brummt für znil.net ordentlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Blicke ins Log zeigen aber das zum einen - wie üblich - die ein oder andere Suchmaschine wieder mal die ganze Webseite abgrast. Das ist aber sonst auch so.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber es gibt auch jede Menge Versuche, die Webseite zu hacken. Mit vergeblichen Aufrufen für Wordpress-Installationen, aber auch gezielt Mediwiki. Eine IP aus Polen die zufällig gerade stark aktiv war, habe ich dann von Hand gesperrt. Und mir die anderen Einträge mit solchen versuchen angeschaut.&amp;lt;br&amp;gt;&lt;br /&gt;
Tja, es sind ja eigentlich Klischees, aber China und Russland sind jetzt geblockt für diese Webseite. Die beiden Länder waren für 90% der fehlgeschlagenen Einträge verantwortlich,&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;09.06.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Lang vor mir hergeschoben - aber nun ist meine Webseite hier endlich auf der neuen MediaWiki LTS Version 1.43 welche dann bis Dezember 2027 Updates erhalten wird. Die bisherige Version 1.39 wäre im November diesen Jahres ausgelaufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Probleme gab es diesmal überraschend wenig:&amp;lt;br&amp;gt;&lt;br /&gt;
* Die 2 Faktor-Authentifizierung in 1.43 hat einen Upgrade-Fehler, man muss manuell einmal das SQL-Skript für das Anlegen der Tabelleneinträge ausführen und die {{code|update.php}} noch mal starten. Dann klappte die Anmeldung mit dem bisherigen Token&lt;br /&gt;
* Mein Skin {{code|Pivot}} funktionierte nicht mehr, es musste die aktuelle Version sein. Zudem musste ich den Namen im Skin-Verzeichnis von {{code|pivot}} auf {{code|Pivot}} ändern, also mit Großschreibung. Sonst fehlten die Symbole bei den Menüs etc.&lt;br /&gt;
* Die Kommentarfunktion &amp;lt;strike&amp;gt;zickt noch, ich habe die aktuelle Version der Erweiterung einfach als Extension geladen. Die Darstellung funktioniert, es fehlen noch die Felder die es anonymen Benutzern erlaubte einen gewählten Namen anzugeben. Zudem Kann man als nicht angemeldeter Benutzer noch gar keine Kommentare anlegen (gibt eine Fehlermeldung). Ich habe da in der Vergangenheit immer eigene Anpassungen gemacht, die muss ich gleich noch einarbeiten.&amp;lt;/strike&amp;gt; funktioniert jetzt auch wieder&lt;br /&gt;
Am besten gefällt mir aber, das die Erweiterung {{code|ClipUpload}} immer noch funktioniert. Die Erweiterung erlaubt es, in der Code-Ansicht beim Editieren einen Screenshot aus der Zwischenablage einfach per {{key|STRG}} + {{key|V}} einzufügen, ohne Nachfragen, direkter Upload und Einfügen des Dateinamens. Das normale Vorgehen will 1.001 Frage beantwortet haben (Lizenz, Name usw) und dauert mir beim dem Erstellen von Anleitungen viel zu lange.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;24.04.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Webseite ist umgezogen - und läuft nun &amp;quot;im Homeoffice&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie immer unter Ubuntu - die aktuelle 24.04 LTS Version, mit Apache2 Webserver und MariaDB Datenbank. Mal schauen ob 500MBit/s an Upload reichen :-)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;Und die Seite ist - endlich - auch wieder über IPv6 zu erreichen.&amp;lt;/strike&amp;gt; Sollte gehen, geht aber nicht. Ausgehend kein Problem, aber die Portweiterleitung der FRITZ!Box zickt scheinbar rum&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe hier noch einen 2. Linux Rechner mit IPv4, dieser lässt sich trotz identischer Einstellungen von außen pingen. Mal sehen ob ich herausbekomme woran das liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Update:&#039;&#039;&#039;&amp;lt;/u&amp;gt; Schön wenn man ein anderes System zum vergleichen hat. Es fehlte schlicht in der Netzwerkkonfiguration das IPv6 Gateway.&amp;lt;br&amp;gt;&lt;br /&gt;
Warum auch immer der ausgehende IPv6 Traffic trotzdem funktioniert hatte ...&amp;lt;br&amp;gt;&lt;br /&gt;
Also: Die Seite ist - endlich - auch wieder über IPv6 zu erreichen!&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;12.03.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Umzug der Webseite im April!&amp;lt;br&amp;gt;&lt;br /&gt;
Mein bestehender Glasfaseranschluss der Telekom wird Anfang April zu einem Geschäftskundenanschluss geändert (Business Glasfaser Pro 1000), mit fester IP-Adresse (IPv4 und IPv6).&amp;lt;br&amp;gt;&lt;br /&gt;
Der Upload beträgt dann 500MBit - das ist zwar nur halb so schnell wie es angeblich zur Zeit ist (laut IONOS 1GBit/s), aber so viele Aufrufe hat meine Webseite nicht (abgesehen von sporadischen Hacking versuchen).&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde die Webseite dann von zu Hause hosten. In dem Zuge werde ich das Mediawiki dann auch auf die letzte LTS-Version bringen, im Moment läuft es noch auf der LTS-Version &#039;&#039;&#039;1.39.x&#039;&#039;&#039; die noch bis November 2025 unterstützt wird, aktuell wäre &#039;&#039;&#039;1.43.x&#039;&#039;&#039; welches bis November 2027 unterstützt wird. Meine Sorgenkinder bei Upgrades sind immer die &amp;quot;Paste from Clipboard&amp;quot; Funktion um Screenshots schnell in Artikel einzufügen und die Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich dann aber ja voll Kontrolle über den Server habe, wird es dann einfach mit Backups und Snapshots.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Moment bereite ich das Netzwerk und die Firewall dafür vor - ich bin ein großer Freund von Reverse Proxy, Geo-IP-Blocking und Let&#039;s Encrypt Zertifikaten, im Zweifel alles 3 zusammen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde über den Stand dann an dieser Stelle berichten.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;18.12.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard schlägt IPSec!&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe fast den ganzen gestrigen Tag damit verbracht, die VPN-Verbindung zwischen meiner FRITZ!Box und meinem Mietserver von IPSec auf WireGuard umzustellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Den Tunnel aufzubauen hatte schon nach ein paar Minuten geklappt, leider hat die FRITZ!Box aber hartnäckig ein NAT über den Tunnel gemacht. Konnte ich Lösen und habe eine Anleitung dafür geschrieben: [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
Gemacht habe ich das ganze ich das weil ich mir eine besser Performance erhofft hatte. Und erste Tests mit {{code|iperf3}} zeigten einen um 40% höher Datendurchsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Heute Nacht lief nun das erste Backup (eine Veeam Replikation) über WireGuard statt IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
Vorher mit IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112649.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nun mit WireGuard:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112719.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
2h25m schneller! Bei sogar 1GByte mehr Daten. und von den 1h45m sind eine Stunde alleine die &#039;&#039;&#039;Retention Policy&#039;&#039;&#039;, also das löschen und zusammenführen alter Snapshots am Ziel.&amp;lt;br&amp;gt;&lt;br /&gt;
Fazit: hat sich gelohnt!&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;29.09.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich konnte mich endlich auch mal etwas mehr mit Proxmox beschäftigen (und wie gut Veeam es schon unterstützt).&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst auf einen Mini-PC der 200Euro Klasse (Intel N95 Prozessor, 16GB RAM, 512GB SSD, 2 x LAN) mit dem ich etwas herumgespielt habe, inklusive der Migration einer VMware-VM dorthin. Um die Live-Migration zu testen habe ich mir dann noch einen 2. Mini-PC gekauft. Und hatte dann eine steile Lernkurve (Datenträger müssen auf alles System gleich sein - und ZFS formatiert sein), inklusive einer kompletten Migration da ich beide Nodes noch mal neu mit ZFS installieren musste.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ich das später auch wieder hinbekommen, gibt es nun links einen neuen Bereich Proxmox unter welchen ich dann wie immer sammle was ich interessant fand bzw. wie ich mein System eingerichtet habe.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.07.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Kommentarfunktion braucht ein paar Anpassungen an das aktuelle PHP8.3&amp;lt;br&amp;gt;&lt;br /&gt;
Da kommen zwar nur Warnungen, aber die erscheinen halt ständig im Log. Es gibt auf GitHub bereits eine angepasste Version (leider ohne angepasste Versionsnummer), die arbeitet aber mit meiner &amp;quot;alten&amp;quot; Mediawiki-Version 1.39 nicht zusammen. Das ist aber nun mal die aktuelle LTS-Version und die neue ist noch nicht erschienen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt muss ich also entweder mit den Warnungen leben, diese Seite auf dem älteren PHP8.1 laufen lassen, eine Kurzzeit-Mediawiki-Version mit nur einem Jahr Support einsetzen oder die Kommentarfunktion dauerhaft abschalten. Ich habe mich noch nicht entschieden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze eine von mir angepasste Version von https://www.mediawiki.org/wiki/Extension:Comments die ich immer dahingehend ändere das auch anonyme Kommentare möglich sind (mit freier Angabe eines Names oder Email-Adresse). Zudem ist eine - mini - AntiSPAM Funktion eingebaut und ich erhalte immer sofort eine Email über einen neuen Kommentar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das habe ich mir gut Dokumentiert, ist trotzdem ein Sonntagnachmittag Arbeit das jedes mal einzupflegen.&amp;lt;br&amp;gt;Nur um mich dann per Kommentar beschimpfen zu lassen wenn da jemanden etwas nicht passt ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe mal die Kommentarfunktion meiner Seite deaktiviert, da gab es heute wohl einen Angriff wo versuchte wurde diese als Lücke zu missbrauchen. Laut Logs hat das nicht geklappt, aber so habe ich den Angriff ins leere laufen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 09:45Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist 2024 ... und ich bekomme IPv6 an meinem neuen Server nicht zum laufen. Offensichtlich wird es nicht durchgelassen. Jedenfalls kommt kein IPv6 Datenverkehr an meinem Server an.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 00:55Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net läuft nun auf einem neuen virtuellen Server bei IONOS. Nach 2 Tagen war der alte zwar migriert. Aber der neue - die technischen Daten sind identisch - kostet nur 4 statt 5 Euro im Monat. Und ich konnte so parallel gleich auf Ubuntu 24.04 LTS + PHP8.3 umziehen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt geht es ins Bett, morgen muss ich noch genauer prüfen ob noch alles funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:44Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
So, telefonisch konnte ich ein Ticket eröffnen. Nein, das ist nicht normal, die VM hätte schon längst wieder laufen sollen. Es wird jetzt geschaut was bei meiner VM hakt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:02Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240620-130053.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so so, 20 Minuten. Die Meldung habe ich im Portal gefunden, wenn ich versuche auf &#039;&#039;&#039;&#039;&#039;Server &amp;amp; Cloud&#039;&#039;&#039;&#039;&#039; zu zugreifen werde ich immer noch sofort abgemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich suche gerade wo ich dort ein Ticket eröffnen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 09:35Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Na IONOS, das klappt ja scheinbar toll. Statt &amp;quot;kurzer Unterbrechung&amp;quot; sind es nun schon fast 20h Ausfall, laut deren Status Webseite https://www.ionos-status.de/ läuft alles Störungsfrei, das Portal für die Cloud-Server Verwaltung ist immer noch komplett abgeschaltet (zumindest für mich).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.06.2024 20:23Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Heute seit 15:00 Uhr stellt IONOS meinen vServer um auf dem diese Webseite läuft. Das sollte angeblich nicht lange dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt, 5h später, ist mein Server immer noch nicht erreichbar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Webportal von IONOS zur Verwaltung meines vServers ist auch komplett abgeschaltet - man wird sogar sofort ausgeloggt wenn man auf den betreffenden Menüpunkt geht.&amp;lt;br&amp;gt;&lt;br /&gt;
Genügend Gelegenheit einmal mein Backup zu testen.&amp;lt;br&amp;gt;&lt;br /&gt;
So konnte ich meine Webseite mit Stand gestern, 22:00 Uhr wiederherstellen. Die Webseite läuft im Moment auf meinen Heimserver. Der hat zwar genügend Dampf, mein Internetanschluß von Kabel Deutschland hat aber leider nur 50MBit Upload.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber besser als nichts, zur Not kann ich die Seite auch noch auf einen anderen Server mit 250Mbit Upload umziehen, aber das hier war jetzt schneller und einfacher.&amp;lt;br&amp;gt;&lt;br /&gt;
Und es wäre schön wenn der Originalserver doch noch wieder hoch kommt, ich habe heute noch diverses im Wiki geschrieben/korrigiert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich bin endlich dazu gekommen eine aktuelle Anleitung für Ubuntu 24.04 und Zabbix 6 / Zabbix 7 zu schreiben: [[Zabbix Server + Agent unter Ubuntu 24.04 LTS installieren]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es waren nicht so viele Änderungen wie befürchtet. Schlecht ist aber schon mal das ich bisher keine aus Zabbix 6 exportierten Templates in Zabbix 7 importiert bekommen habe, das muss ich mir noch mal genauer anschauen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein jetziger Zabbix 6.0 LTS Server stammt von von meinen allerersten Zabbix-Server 2.2 ab, dieser wurde immer wieder geupgradet. Nun möchte ich mal einen Neuanfang machen, auch um jede menge Altlasten los zu werden, z.B. habe meine Items noch alle eine Server-Node Id, allen Item-Ids ist also eine &amp;lt;code&amp;gt;42042000000&amp;lt;/code&amp;gt; vorangestellt, das werde ich sonst nie los.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.05.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net ist nun nur noch über IPv4 zu erreichen. Grund ist das IONOS die virtuelle Maschine auf welcher diese Webseite läuft, migriert und dabei neue IPv6 Adressen zuweisen wird. Dei IPv4 soll unverändert erhalten bleiben.&amp;lt;br&amp;gt;Scheinbar wird dabei auch der darunterliegende Hypervisor geändert. Bisher ist meine VM eine VMware vSphere-VM, mal sehen was es danach ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Extension &amp;quot;ClipUpload&amp;quot; funktioniert nun doch. Nachdem ich bei einem Kunden die Extension [https://www.mediawiki.org/wiki/Extension:MsUpload MsUpload] gesehen hatte - mit der kann man einfach per Drag&amp;amp;Drop viele Dateien/Bilder in einem Rutsch hochladen - hatte ich diese bei mir installiert. Die Extension funktioniert aber nur in Verbindung mit dem [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]. Der ist &amp;quot;ab Werk&amp;quot; dabei, ich hatte den aber deaktiviert weil ich diesen nicht gebraucht habe. Der WikiEditor erscheint in dem von mir bevorzugten Quelltext-Editor. Und in diesem / mit diesem funktioniert mein heiß geliebtes und Innig geliebtes &amp;quot;ClipUpload&amp;quot;. Mit dieser Erweiterung kann ich Screenshots (aus der Zwischenablage) im Quelltext-Editor einfach per {{Key|STRG}} + {{Key|V}} einfügen - ohne nervige Nachfragen etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.02.2023&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das MediaWiki-System auf dem diese Webseite basiert wurde von der LTS-Version 1.35.9 auf die neue LTS-Version 1.39.1 aktualisiert. Wie immer gab es Probleme mit einigen Erweiterungen. Bei den meisten reichte die für MediaWiki 1.39.x passende Version zu installieren. Die Kommentarfunktion musste ich wieder nach meinen Ansprüchen anpassen - was relativ schnell ging da ich beim letzten mal ordentlich dokumentiert hatte - so musste ich nur in der alten Version nach meinen Kommentaren suchen und die Abschnitte entsprechend in der neuen Version ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider - &#039;&#039;&#039;LEIDER&#039;&#039;&#039; - ist die Extension &amp;quot;ClipUpload&amp;quot; nun auf der Strecke geblieben, beim letzten mal konnte man die noch mit Codeänderungen zum laufen bringen. Die Erweiterung erlaubte es per {{Key|STRTG}} + {{Key|V}} einfach Bilder in das Mediawiki einzufügen. Es wird auf [https://www.mediawiki.org/wiki/Extension:SimpleBatchUpload simple-batch-upload] verwiesen ... mhh, nicht wirklich das selbe.&amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes steht dann das Upgrade auf 22.04 LTS + PHP8 an.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag: Es gibt einen &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Extension:VisualEditor VisualEditor]&#039;&#039;&#039; der ab Werk bei MediaWiki dabei ist (keine Ahnung seit welcher Version), der kann das auch. In Umständlich. Titel, Beschreibung usw. muss alles über Dialoge angegeben werden anstatt das Bild einfach sofort hochzuladen (ich weis schon was ich tue).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.10.2022&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zabbix Summit 2022 in Riga: [https://www.meinekleinefarm.net Marco Hofmann] hat einen Vortrag darüber gehalten wie man unter Windows den Zabbix Agenten auf hunderten von Systemen und verschiedenen Kundenumgebungen synchron hält. Das erwähne ich weil er dazu unter anderem auch Werkzeuge von mir einsetzt - eine Abwandlung meiner [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei|InstallZabbixAgent.bat]] und das Tool für [[Agent Auto Updater|automatische Updates des Agenten]].&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Hofmann-1200x628px.png|400px|link=https://www.meinekleinefarm.net/zabbix-summit-2022-in-riga-keeping-hundreds-of-windows-zabbix-agents-in-sync-across-different-customers/]]&amp;lt;br&amp;gt;&lt;br /&gt;
Seinen Vortrag findet ihr hier auf Youtube: https://youtu.be/IQQwTEtwl7M?t=19987 &amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.10.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Mediwiki dieser Seite ist nun auf Version 1.35.4. Und ich müsste mal daran gehen wieder eine Kommentar-Übersichtsseite zu programmieren ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;06.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das waren jetzt fast 4h Arbeit - aber die Kommentarfunktion funktioniert wieder wie vorher.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Extension basiert wieder auf dem aktuellen Original: https://www.mediawiki.org/wiki/Extension:Comments und wurde wieder nach meinen Bedürfnissen angepasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter anderem war in der aktuellen Version der Datenbank gar kein Feld mehr für den Namen/Email-Adresse vorgesehen, das habe ich wieder nachgerüstet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die meiste Zeit habe ich damit verbracht die Stelle in den ganzen PHP-Skripten zu finden an der die eigentliche Datenbankabfrage durchgeführt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Großes Update der Webseite!&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Upgrade auf die Mediawiki LTS Version 1.35.2&lt;br /&gt;
* Umzug von Ubuntu 18.04 LTS auf 20.04 LTS&lt;br /&gt;
* Umzug von MySQL auf MariaDB&lt;br /&gt;
* Umzug von PHP 7.2 auf 7.4.3&lt;br /&gt;
* Umzug auf V-Server M von IONOS&lt;br /&gt;
* Seite ist nun über IPv4 und IPv6 erreichbar!&lt;br /&gt;
Hat im ganzen ganz gut geklappt. Auf der Strecke sind 2 Erweiterungen geblieben: Die Anzeige der zuletzt geänderten Artikel sowie eine selbst programmierte Seite welche mir alle Kommentare auf einer Seite angezeigt hatte.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch die Schaltfläche die auf jeder Seite unten rechts zum Hochscrollen war fehlt noch.&amp;lt;br&amp;gt;&lt;br /&gt;
Ganz hervorragend am &#039;&#039;&#039;IONOS V Server&#039;&#039;&#039; gefällt mir das es eine VM unter VMware ist, die Firewall davor in der man selbst Port für Port freischalten muss - und das ich die mit dem &#039;&#039;&#039;&#039;&#039;Veeam Agent for Linux&#039;&#039;&#039;&#039;&#039; einfach sichern kann. Und die Büchse ist angenehm schnell, mit 300Mbit angebunden und kostet nur 5 Euro im Monat.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nachtrag:&#039;&#039;&#039; Die Kommentarfunktion funktioniert ... aber der Refresh nachdem man senden gedrückt hat sieht komisch aus. {{Key|F5}} behebt das, mal sehen ob ich da was ändern kann. Das ist eine Extension die ich so angepasst habe das man auch ohne Anmeldung mit einem Namen etwas posten kann und das mir eine Email gesendet wird wenn es einen Kommentar gibt. Es gibt eine neuere Version davon die ich dann allerdings auch wieder neu anpassen muss.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe einen neuen Artikel zum Thema GeoIP-Blocking mit Apache2 veröffentlicht: [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und das ganze auch gleich als Gelegenheit genutzt bei meinen diversen Subdomänen das ganze umzusetzen. Meine Seafile- oder mein Zabbix-Server müssen z.B. nur aus Deutschland erreichbar sein.&amp;lt;br&amp;gt;[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;30.12.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Eigentlich wollte ich diesen Webserver mal auf Ubuntu 20.04 LTS aktualiseren ... aber das hat per &amp;lt;code&amp;gt;do-release-upgrade&amp;lt;/code&amp;gt; im Gegensatz zu meinen anderen VMs nicht geklappt. MediaWiki 1.3 mag irgendwie PHP 7.4 auch nicht richtig (auch wenn ich es woanders schon habe laufen gesehen). Also doch wie immer - neuen Server installieren und dann die Domänen Stück-für-Stück umziehen.&amp;lt;br&amp;gt; [[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.06.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:MFA_Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;MFA technical Certification&amp;quot; der Firma WatchGuard abgeschlossen. Es geht um die [https://www.watchguard.com/de/wgrd-products/authpoint-multi-factor-authentication MFA Lösung AuthPoint der Firma WatchGuard] - bei der Vorbereitung war hilfreich das ich MFA schon länger auch privat für den Schutz meiner Zugänge einsetze. Unter anderem [https://duo.com/ duo.com] für RDP da es bis 10 Personen auch kostenlos genutzt werden kann. WatchGuard ist - aus meiner Sicht - mehr pures MFA, DUO hat dafür quasi jeden Anwendungsfall eine eigene Anleitung und geht tiefer auf die Endgeräte ein. Wobei z.B. eine nicht aktuelle Android-Version ständig angemeckert wird.&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;26.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Stromkosten: Auch ich sitze nun mehr im Homeoffice. Und in meinem Kellerbüro habe ich meinen Rechner hinter mir - und einen 40HE Datenschrank im Blick vor mir. Mit den Tagen ging mir zum einen der Lärm der ganzen Lüfter irgendwann auf den Kecks. Und den Stromverbrauch (den ich bis dato aber nicht gemessen habe) wollte ich auch senken. Den Verbrauch der Switche kannte ich durch Einzelmessungen, der lag bei ca. 100 Watt (für 48 Gigabit Ports + 6 PoE Ports). Diesen habe ich durch einen neuen Switch Allnet-SG8428M (13 Watt maximal!) und einen sparsameren PoE Sitch für die Telefone und Kameras stark reduziert. Zeitgleich habe ich mit Gosund SP111 WLAN-Steckdosenschaltern herumgespielt. Mit der Tasmota Firmware und einer Kalibrierung taugen diese scheinbar auch ganz gut als Strommessgeräte.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab nun also meinen Datenschrank zu Hause daran gehängt und musste ernüchternd einen Dauerstromverbrauch von 140 bis 150 Watt feststellen.&amp;lt;br&amp;gt;&lt;br /&gt;
* 44 Watt davon gehen für PoE drauf - 5 Cisco Telefone und 2 IP-Kameras.&amp;lt;br&amp;gt;&lt;br /&gt;
* 16 Watt maximal für die beiden anderen Switche (der ALLNET und ein 16 Port Netgear) &lt;br /&gt;
* 9 Watt mein ESXi Server auf Basis eines APU2C4 von PC Engines (inklusive 2TB USB Festplatte daran)&lt;br /&gt;
* um die 20 Watt schätze ich die beiden FritzBoxen ...&lt;br /&gt;
* bleiben ca. 89 Watt für meinen Heimserver - mit 2x 128GB SSD und 4 x 4TB HDD&lt;br /&gt;
* und die USV wird da mit Ihrem Eigenanteil auch irgendwo dazwischen liegen&lt;br /&gt;
Wenn ich den Verbrauch mal in einen Kostenrechner werfe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200426-192323.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:(erstellt mit [https://www.stromverbrauchinfo.de/stromkostenrechner.php stromverbrauch info])&amp;lt;br&amp;gt;&lt;br /&gt;
weis ich nun auch warum wir immer so eine fette Stromrechnung habe. Als 4 Personenhaushalt verbrauchen wir soviel wie einer mit 8. Und dabei habe ich doch gerade schon soviel eingespart ...&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde das nun - dank mit Zabbix überwachten Strom/Leistungsverbrauch mal besser beobachten und schauen wie ich da in Zukunft noch mehr einsparen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedes Watt sind 2,60 €/Jahr oder 22 Cent/Monat - klingt nicht viel aber wie man sieht läppert es sich.&amp;lt;br&amp;gt;&lt;br /&gt;
Mal sehen wie der Durchschnitt nach einem Monat ist. Nachts schaltet sich z.B. die Beleuchtung der IP-Telefone ab was schon 10 Watt spart.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Mit gewissen Stolz habe ich meine Version eines &amp;quot;Active Directory-Gruppe mit Zabbix Benutzern Abgleichen via LDAP&amp;quot; Skriptes fertiggstellt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://github.com/BernhardLinz/zabbix-ldap-sync-bash&lt;br /&gt;
Wer nach so etwas googelt landet quasi ausschließlich bei dem von Marc Schöchlin geschriebenen Python Script: https://github.com/zabbix-tooling/zabbix-ldap-sync&amp;lt;br&amp;gt;&lt;br /&gt;
An dem haben mich aber schon immer die ganzen Abhängigkeiten gestört wie &#039;&#039;&#039;pyldap&#039;&#039;&#039; oder &#039;&#039;&#039;pyzabbix&#039;&#039;&#039;. Ich hab nun mal leider auch Kunden mit Systemen ohne Internetanbindung oder älteren Linux Versionen - und da ist es schwer diese zu erfüllen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Skript ist &amp;quot;pures&amp;quot; Bash. Es wird nur der Befehl &#039;&#039;&#039;ldapsearch&#039;&#039;&#039; und &#039;&#039;&#039;curl&#039;&#039;&#039; benötigt - und bisher waren die in allen Repositories der Distributionen vorhanden.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze nun [https://www.google.com/search?q=tripwire+ubuntu Tripwire] um meinen Webserver zu überwachen. Gefällt mir sehr gut, man muss nur daran denken nach jeden Update oder Änderung die Datenbank wieder auf Stand zu bringen. Ich bekomme im Moment jeden Tag einen Email-Report dazu - da muss ich noch mal schauen wir ich das in Zabbix unterbringe bzw. mir nur eine mail senden lasse wenn auch etwas ansteht.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Noch ein Nachtrag zum &amp;quot;Angriff&amp;quot;:&amp;lt;br&amp;gt; zwischendurch fehlten auf dem Server 16G an Speicherplatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Gemerkt habe ich das mit Zabbix weil dadurch ein Schwellwert erst unter- und dann wieder überschritten wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 16G waren das &amp;lt;code&amp;gt;error.log&amp;lt;/code&amp;gt; für die Domäne &#039;&#039;&#039;znil.net&#039;&#039;&#039;. Darin fand ich jede Menge Fehlermeldung das versucht wurde &amp;lt;code&amp;gt;\bin\bash&amp;lt;/code&amp;gt; zu starten - was aber nun mal nicht erlaubt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Bin im Moment gerade glücklich darüber das ich jede Domäne / Webseite / Subdomäne unter einem eigenen, eingeschränkten Benutzer laufen lasse.&amp;lt;br&amp;gt;&lt;br /&gt;
Das mache ich nicht von Hand sondern per ISPConfig weil ich faul bin. Funktioniert aber scheinbar ja prima.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Also, wenn ich so ein Online-Tool nutze um meine Webseite zu überprüfen dann melden diese ggf. (nicht immer) eine &amp;quot;SQL-Injection&amp;quot; Lücke in meiner Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar weil wohl dann gängige Test-SQL-Abfragen mit gesendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden erfolgt via JavaScript im Browser des Benutzers, der Empfänger ist das PHP-Skript auf dem Server.&amp;lt;br&amp;gt;&lt;br /&gt;
In der letzten Version dieses Skriptes (angepasst von mir) gibt es keine Filter mehr, er nimmt einfach alles an. Früher habe ich dort auf Viagra &amp;amp; Co gefiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber der Teil darunter der dann den Text in die Datenbank schreibt ist wohl ausreichend gefestigt - er schreibt einfach alles was kommt in den Datensatz der Datenbank. Die SQL-Injections tauchen so einfach als Text im Kommentarfeld auf, werden aber nicht ausgeführt. Also alles gut Denke ich.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Angriff auf diese Webseite:&amp;lt;br&amp;gt;&lt;br /&gt;
In der Nacht von gestern auf heute hat jemand versucht per SQL-Injektion sich Zugriff auf diese Webseite zu verschaffen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Schwachstelle&amp;quot; ist die Kommentarfunktion. Ein Online-Scurity-Scanner hatte mir diese bereits mal als anfällig dafür gemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich die Mediawiki-Extension überarbeitet hatte, habe ich umfangreiche &amp;quot;Suchen und Erstzen&amp;quot;-Regeln erstellt die alles was mit SQL zu tun hat ausfiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb sehen manche Kommentare hier dann komisch aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich prüfe mal das System intensiv ob die Abwehr erfolgreich war ... oder ob ich doch ein Backup wieder einspiele.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net weiterhin &amp;quot;Tracker-frei&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze Matomo (ehemals Piwik) um Statistiken für diese Webseite zu erhalten. Eigentlich mehr aus Neugier um zu sehen wie das funktioniert, es hat mir aber auch schon bei Verbesserungen geholfen da man manchmal recht gut erkennen kann wenn die Leute bei Suchanfragen falsch abbiegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab in einem meiner Browser seit einiger Zeit ein &amp;quot;Anti-Tracking-Tool&amp;quot; installiert weil dadurch sich die Ladezeiten bei einer meiner Lieblingwebseiten dramatisch verbessert haben (https://thingiverse.com). Voller Freude sehe ich das ich wohl alles richtig gemacht habe - denn das Tool zeigt mir bei dieser Seite an das es nicht zu blockieren gibt. Alles bleibt also innerhalb dieser Seite. Siehe auch: [https://znil.net/index.php?title=Znilwiki:Impressum#Datenschutzerkl.C3.A4rung Datenschutzerklärung]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Sieht nicht nach Leben aus wenn sich die Startseite nie ändert - ich muss noch mal wieder nach einer Mediawiki-Extension schauen welche die neuesten Artikel hier präsentiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Hatte ich schon mal, funktionierte nach einem Update nur nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;04.07.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Seite ab sofort nur noch über &#039;&#039;&#039;&#039;&#039;https://&#039;&#039;&#039;&#039;&#039; zu erreichen - die meisten Aufrufe kamen sowieso schon darüber.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;08.06.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mediawiki-Installation ist nun auf 1.13.2 aktulisiert - einige potentielle Sicherheitslücken wurden geschlossen. Hier der Artikel dazu: https://lists.wikimedia.org/pipermail/mediawiki-announce/2019-June/000230.html&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man nicht alles testet ... die Kommentarfunktion war ohne &amp;quot;Funktion&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Glück ist es eine Erweiterung die noch gepflegt wird, ich habe mir die neue Version herunter geladen und wieder an diese Webseite angepasst: https://git.znil.net/mediawiki/Comments&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:WG Network Security Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;Network Security Technical Certification&amp;quot; der Firma WatchGuard abgeschlossen.&lt;br /&gt;
Ich hatte auch schon mal leichtere Prüfungen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Wiki ist wieder einmal umgezogen. Statt auf einem Server in Frankreich läuft es nun auf einem Server in Deutschland - vielen Dank an meinen Arbeitgeber.&amp;lt;br&amp;gt;&lt;br /&gt;
Im gleichen Atemzug habe ich von der Mediawiki-Version 1.27 LTS auf die Version 1.31 LTS gewechselt - der Support läuft im Juni aus und 1.31 bietet nun wieder Updates bis Juni 2021.&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist leider die &#039;&#039;&#039;WikiLog&#039;&#039;&#039;-Erweiterung auf der Strecke geblieben, diese ist nicht mehr kompatibel und wird auch schon länger nicht mehr weiter einwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Also mache ich das jetzt von Hand ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_ocean&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Wie ist &amp;lt;del&amp;gt;meine&amp;lt;/del&amp;gt; deine IP-Adresse?&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot; style=&amp;quot;font-family:&#039;Courier New&#039;, Monospace; background: #FFFFCC;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 70%; background-color: #FFFFCC&amp;quot;|&amp;lt;big&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IP :&#039;&#039;&#039; &amp;lt;ClientIP /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Typ:&#039;&#039;&#039; &amp;lt;IPv4orv6 /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DNS:&#039;&#039;&#039; &amp;lt;ClientName /&amp;gt; &amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|| Ermittelt mit den PHP-Funktionen dafür&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Cookies und Datenschutz ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
Diese Webseite verwendet bei Besuchern Cookies! [http://www.cookie-checker.com/check-cookies.php?url=znil.net www.cookie-checker.com]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;!--        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten 10 Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
{{RecentActivity:type=edits|count=10}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_blue&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Tools - Kleine Programme für Batchdateien und anderes&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* [[ZnilTools:ifmemberDELUXE.exe|ifmemberDELUXE]] - Netzlaufwerke und Netzwerkdrucker in Anmeldeskripten verbinden&amp;lt;!--, kann Drucker-Server für 32/64 Bit wählen--&amp;gt;&lt;br /&gt;
* [[ZnilTools:Telnet_SMTP_Test_Tool|Telnet_SMTP_Test_Tool.exe]] - Grafische Oberfläche für den Test von SMTP-Servern per Telnet&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung mit vielen Beispielen&lt;br /&gt;
* [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;br /&gt;
* [[Calibre eBook MultiUser Tool / Funktion]] - Calibre mit mehreren Benutzern gleichzeitig nutzen&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_green&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Webseiten die ich regelmäßig besuche ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* http://c64-online.com/ -&amp;gt; Alles über den C64 &amp;amp; Geniales zum Raspberry Pi&lt;br /&gt;
* https://forum.iobroker.net/ -&amp;gt; Alles zu ioBroker&lt;br /&gt;
* https://www.autoit.de -&amp;gt; Wo sonst bekäme man so viel deutsche Hilfe zu AutoIt!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--{{RecentActivity:type=new|count=10}}--&amp;gt;&lt;br /&gt;
{{Special:RecentChanges/days=365,limit=10,hidebots,hideminor,hidecategorization}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_grey&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Spezial:Statistik|Informationen]] zum znilwiki, Stand {{CURRENTDAY2}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} um {{LOCALTIME}} Uhr:&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- * znil.net über das Tor Netzwerk: http://znilnet655kecmslpvcrvpwujeameq4ac42ueg7jvqanzdfk4clnleyd.onion&amp;lt;br&amp;gt; --&amp;gt;&lt;br /&gt;
* Dieses Wiki enthält &#039;&#039;&#039;{{NUMBEROFPAGES}}&#039;&#039;&#039; Seiten, zusammengefasst in &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; Themen...&amp;lt;br&amp;gt;&lt;br /&gt;
* Die Beiträge wurden &#039;&#039;&#039;{{NUMBEROFEDITS}}&#039;&#039;&#039; mal bearbeitet (inklusive der Erstellung)&lt;br /&gt;
* Dieses Wiki wurde laut Matomo schon so oft besucht: &amp;lt;html&amp;gt;&amp;lt;img src=&amp;quot;https://znil.net/piwik/index.php?module=ClassicCounter&amp;amp;action=svg&amp;amp;idSite=1&amp;quot; width=&amp;quot;180&amp;quot; height=&amp;quot;43&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!--* Letzte Änderung am &#039;&#039;&#039;{{REVISIONDAY2}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONMONTH}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONYEAR}}&#039;&#039;&#039; durch &#039;&#039;&#039;{{REVISIONUSER}}&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
* MediaWiki-Version: &#039;&#039;&#039;{{CURRENTVERSION}}&#039;&#039;&#039; - siehe auch [[Spezial:Version]]&lt;br /&gt;
&amp;lt;!--* Seitenaufrufe im Monat: &#039;&#039;&#039;&amp;gt; 12.000&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Datei:Piwik-001.png]]&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;[[Testbereich|.]][[Testbereich:Seite2|.]][[Testbereich:Seite3|.]][[Testbereich:Seite4|π]]&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Update_Mediawiki_auf_Webserver_mit_SSH_Zugang&amp;diff=15760</id>
		<title>Update Mediawiki auf Webserver mit SSH Zugang</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Update_Mediawiki_auf_Webserver_mit_SSH_Zugang&amp;diff=15760"/>
		<updated>2026-02-01T21:25:58Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:MediaWiki]]&lt;br /&gt;
Damit ich es nicht jedesmal neu heraussuche:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ab Mediawiki 1.43.x siehe: https://www.mediawiki.org/wiki/Manual:Upgrading/de&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das nachfolgende ist ggf. veraltet.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
* Webserver mit SSH Zugang&lt;br /&gt;
* Mit puTTY verbunden&lt;br /&gt;
* Das Mediawiki befindet sich im Unterordner &amp;lt;code&amp;gt;/znilwiki&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Update==&lt;br /&gt;
Herunterladen der aktuellen Version (Nummer ggf. anpassen):&amp;lt;br&amp;gt;&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;http://releases.wikimedia.org/mediawiki/1.23/mediawiki-1.23.11.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Die Datei landet im dem Verzeichnis in dem wir gerade sind.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Enpacken:&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xvzf mediawiki-1.23.11.tar.gz &lt;br /&gt;
Die Dateien werde in den aktuellen Pfad in den Ordner &amp;lt;code&amp;gt;mediawiki-1.23.11/&amp;lt;/code&amp;gt; entpackt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Neue Dateien über die alten kopieren:&amp;lt;br&amp;gt;&lt;br /&gt;
  cp -r -f mediawiki-1.23.11/* znilwiki/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mediawiki Datenbank upgraden und Caches löschen:&lt;br /&gt;
 sudo -u web1 /usr/bin/bash&lt;br /&gt;
 cd znilwiki/maintenance/&lt;br /&gt;
 composer update --no-dev&lt;br /&gt;
 php maintenance/run.php&lt;br /&gt;
Warten bis der Befehl fertig ist - und das war schon alles.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--[[Benutzer:BLinz|Bernhard Linz]] 21:37, 23. Apr. 2014 (CEST)&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Update_Mediawiki_auf_Webserver_mit_SSH_Zugang&amp;diff=15759</id>
		<title>Update Mediawiki auf Webserver mit SSH Zugang</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Update_Mediawiki_auf_Webserver_mit_SSH_Zugang&amp;diff=15759"/>
		<updated>2026-02-01T21:23:45Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Ausgangslage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Kategorie:MediaWiki]]&lt;br /&gt;
Damit ich es nicht jedesmal neu heraussuche:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ab Mediawiki 1.43.x siehe: https://www.mediawiki.org/wiki/Manual:Upgrading/de&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das nachfolgende ist ggf. veraltet.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
* Webserver mit SSH Zugang&lt;br /&gt;
* Mit puTTY verbunden&lt;br /&gt;
* Das Mediawiki befindet sich im Unterordner &amp;lt;code&amp;gt;/znilwiki&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Update==&lt;br /&gt;
Herunterladen der aktuellen Version (Nummer ggf. anpassen):&amp;lt;br&amp;gt;&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;http://releases.wikimedia.org/mediawiki/1.23/mediawiki-1.23.11.tar.gz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Die Datei landet im dem Verzeichnis in dem wir gerade sind.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Enpacken:&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xvzf mediawiki-1.23.11.tar.gz &lt;br /&gt;
Die Dateien werde in den aktuellen Pfad in den Ordner &amp;lt;code&amp;gt;mediawiki-1.23.11/&amp;lt;/code&amp;gt; entpackt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Neue Dateien über die alten kopieren:&amp;lt;br&amp;gt;&lt;br /&gt;
  cp -r -f mediawiki-1.23.11/* znilwiki/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mediawiki Datenbank upgraden und Caches löschen:&lt;br /&gt;
 cd znilwiki/maintenance/&lt;br /&gt;
 php ./update.php&lt;br /&gt;
Warten bis der Befehl fertig ist - und das war schon alles.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Noch Aufräumen:&amp;lt;br&amp;gt;&lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -r mediawiki-1.23.*&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--[[Benutzer:BLinz|Bernhard Linz]] 21:37, 23. Apr. 2014 (CEST)&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Hauptseite&amp;diff=15758</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Hauptseite&amp;diff=15758"/>
		<updated>2026-02-01T21:13:29Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOCACHE__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_row2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_orange&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Letzte Meldungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;01.02.2026&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Extrem hohe Last auf dem Webserver hier ...&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Internetzugang fing an &amp;quot;zu spinnen&amp;quot;, dieser Webserver hier war nahezu auf 100%, der Upload stand bei konstant 10MBit/s ...&amp;lt;br&amp;gt;&lt;br /&gt;
Diesmal lag es lag es an einer Testversion vom März 2025 dieser Webseite. Vor dem Upgrade hatte ich eine Kopie erstellt welche unter der Domäne &amp;quot;testwiki.znil.net&amp;quot; zu erreichen war.&amp;lt;br&amp;gt;&lt;br /&gt;
Die war natürlich nicht gepatched und hatte kein Geoblocking.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe diese nun einfach gelöscht und Ruhe ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.12.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Geo-Blocking von Ländern:&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist der 1. eines Monats und da bekomme ich immer die Auswertung von Matomo - das ist das Tool mit dem ich die Zugriffe auf meine Webseite auswerte. Normalerweise sind das so um die 5 bis 10.000 Besucher im Monat, während Corona waren es auch mal 20.000 (Der Artikel über Guacamole RDP war äußerst beliebt).&amp;lt;br&amp;gt;&lt;br /&gt;
In November waren es dann 167.000 eindeutige Besucher ... ok, hier stimmt etwas nicht. Ein Blick auf den Webserver - jupp der brummt für znil.net ordentlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Blicke ins Log zeigen aber das zum einen - wie üblich - die ein oder andere Suchmaschine wieder mal die ganze Webseite abgrast. Das ist aber sonst auch so.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber es gibt auch jede Menge Versuche, die Webseite zu hacken. Mit vergeblichen Aufrufen für Wordpress-Installationen, aber auch gezielt Mediwiki. Eine IP aus Polen die zufällig gerade stark aktiv war, habe ich dann von Hand gesperrt. Und mir die anderen Einträge mit solchen versuchen angeschaut.&amp;lt;br&amp;gt;&lt;br /&gt;
Tja, es sind ja eigentlich Klischees, aber China und Russland sind jetzt geblockt für diese Webseite. Die beiden Länder waren für 90% der fehlgeschlagenen Einträge verantwortlich,&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;09.06.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Lang vor mir hergeschoben - aber nun ist meine Webseite hier endlich auf der neuen MediaWiki LTS Version 1.43 welche dann bis Dezember 2027 Updates erhalten wird. Die bisherige Version 1.39 wäre im November diesen Jahres ausgelaufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Probleme gab es diesmal überraschend wenig:&amp;lt;br&amp;gt;&lt;br /&gt;
* Die 2 Faktor-Authentifizierung in 1.43 hat einen Upgrade-Fehler, man muss manuell einmal das SQL-Skript für das Anlegen der Tabelleneinträge ausführen und die {{code|update.php}} noch mal starten. Dann klappte die Anmeldung mit dem bisherigen Token&lt;br /&gt;
* Mein Skin {{code|Pivot}} funktionierte nicht mehr, es musste die aktuelle Version sein. Zudem musste ich den Namen im Skin-Verzeichnis von {{code|pivot}} auf {{code|Pivot}} ändern, also mit Großschreibung. Sonst fehlten die Symbole bei den Menüs etc.&lt;br /&gt;
* Die Kommentarfunktion &amp;lt;strike&amp;gt;zickt noch, ich habe die aktuelle Version der Erweiterung einfach als Extension geladen. Die Darstellung funktioniert, es fehlen noch die Felder die es anonymen Benutzern erlaubte einen gewählten Namen anzugeben. Zudem Kann man als nicht angemeldeter Benutzer noch gar keine Kommentare anlegen (gibt eine Fehlermeldung). Ich habe da in der Vergangenheit immer eigene Anpassungen gemacht, die muss ich gleich noch einarbeiten.&amp;lt;/strike&amp;gt; funktioniert jetzt auch wieder&lt;br /&gt;
Am besten gefällt mir aber, das die Erweiterung {{code|ClipUpload}} immer noch funktioniert. Die Erweiterung erlaubt es, in der Code-Ansicht beim Editieren einen Screenshot aus der Zwischenablage einfach per {{key|STRG}} + {{key|V}} einzufügen, ohne Nachfragen, direkter Upload und Einfügen des Dateinamens. Das normale Vorgehen will 1.001 Frage beantwortet haben (Lizenz, Name usw) und dauert mir beim dem Erstellen von Anleitungen viel zu lange.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;24.04.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Webseite ist umgezogen - und läuft nun &amp;quot;im Homeoffice&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie immer unter Ubuntu - die aktuelle 24.04 LTS Version, mit Apache2 Webserver und MariaDB Datenbank. Mal schauen ob 500MBit/s an Upload reichen :-)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;Und die Seite ist - endlich - auch wieder über IPv6 zu erreichen.&amp;lt;/strike&amp;gt; Sollte gehen, geht aber nicht. Ausgehend kein Problem, aber die Portweiterleitung der FRITZ!Box zickt scheinbar rum&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe hier noch einen 2. Linux Rechner mit IPv4, dieser lässt sich trotz identischer Einstellungen von außen pingen. Mal sehen ob ich herausbekomme woran das liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Update:&#039;&#039;&#039;&amp;lt;/u&amp;gt; Schön wenn man ein anderes System zum vergleichen hat. Es fehlte schlicht in der Netzwerkkonfiguration das IPv6 Gateway.&amp;lt;br&amp;gt;&lt;br /&gt;
Warum auch immer der ausgehende IPv6 Traffic trotzdem funktioniert hatte ...&amp;lt;br&amp;gt;&lt;br /&gt;
Also: Die Seite ist - endlich - auch wieder über IPv6 zu erreichen!&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;12.03.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Umzug der Webseite im April!&amp;lt;br&amp;gt;&lt;br /&gt;
Mein bestehender Glasfaseranschluss der Telekom wird Anfang April zu einem Geschäftskundenanschluss geändert (Business Glasfaser Pro 1000), mit fester IP-Adresse (IPv4 und IPv6).&amp;lt;br&amp;gt;&lt;br /&gt;
Der Upload beträgt dann 500MBit - das ist zwar nur halb so schnell wie es angeblich zur Zeit ist (laut IONOS 1GBit/s), aber so viele Aufrufe hat meine Webseite nicht (abgesehen von sporadischen Hacking versuchen).&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde die Webseite dann von zu Hause hosten. In dem Zuge werde ich das Mediawiki dann auch auf die letzte LTS-Version bringen, im Moment läuft es noch auf der LTS-Version &#039;&#039;&#039;1.39.x&#039;&#039;&#039; die noch bis November 2025 unterstützt wird, aktuell wäre &#039;&#039;&#039;1.43.x&#039;&#039;&#039; welches bis November 2027 unterstützt wird. Meine Sorgenkinder bei Upgrades sind immer die &amp;quot;Paste from Clipboard&amp;quot; Funktion um Screenshots schnell in Artikel einzufügen und die Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich dann aber ja voll Kontrolle über den Server habe, wird es dann einfach mit Backups und Snapshots.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Moment bereite ich das Netzwerk und die Firewall dafür vor - ich bin ein großer Freund von Reverse Proxy, Geo-IP-Blocking und Let&#039;s Encrypt Zertifikaten, im Zweifel alles 3 zusammen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde über den Stand dann an dieser Stelle berichten.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;18.12.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard schlägt IPSec!&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe fast den ganzen gestrigen Tag damit verbracht, die VPN-Verbindung zwischen meiner FRITZ!Box und meinem Mietserver von IPSec auf WireGuard umzustellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Den Tunnel aufzubauen hatte schon nach ein paar Minuten geklappt, leider hat die FRITZ!Box aber hartnäckig ein NAT über den Tunnel gemacht. Konnte ich Lösen und habe eine Anleitung dafür geschrieben: [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
Gemacht habe ich das ganze ich das weil ich mir eine besser Performance erhofft hatte. Und erste Tests mit {{code|iperf3}} zeigten einen um 40% höher Datendurchsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Heute Nacht lief nun das erste Backup (eine Veeam Replikation) über WireGuard statt IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
Vorher mit IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112649.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nun mit WireGuard:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112719.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
2h25m schneller! Bei sogar 1GByte mehr Daten. und von den 1h45m sind eine Stunde alleine die &#039;&#039;&#039;Retention Policy&#039;&#039;&#039;, also das löschen und zusammenführen alter Snapshots am Ziel.&amp;lt;br&amp;gt;&lt;br /&gt;
Fazit: hat sich gelohnt!&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;29.09.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich konnte mich endlich auch mal etwas mehr mit Proxmox beschäftigen (und wie gut Veeam es schon unterstützt).&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst auf einen Mini-PC der 200Euro Klasse (Intel N95 Prozessor, 16GB RAM, 512GB SSD, 2 x LAN) mit dem ich etwas herumgespielt habe, inklusive der Migration einer VMware-VM dorthin. Um die Live-Migration zu testen habe ich mir dann noch einen 2. Mini-PC gekauft. Und hatte dann eine steile Lernkurve (Datenträger müssen auf alles System gleich sein - und ZFS formatiert sein), inklusive einer kompletten Migration da ich beide Nodes noch mal neu mit ZFS installieren musste.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ich das später auch wieder hinbekommen, gibt es nun links einen neuen Bereich Proxmox unter welchen ich dann wie immer sammle was ich interessant fand bzw. wie ich mein System eingerichtet habe.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.07.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Kommentarfunktion braucht ein paar Anpassungen an das aktuelle PHP8.3&amp;lt;br&amp;gt;&lt;br /&gt;
Da kommen zwar nur Warnungen, aber die erscheinen halt ständig im Log. Es gibt auf GitHub bereits eine angepasste Version (leider ohne angepasste Versionsnummer), die arbeitet aber mit meiner &amp;quot;alten&amp;quot; Mediawiki-Version 1.39 nicht zusammen. Das ist aber nun mal die aktuelle LTS-Version und die neue ist noch nicht erschienen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt muss ich also entweder mit den Warnungen leben, diese Seite auf dem älteren PHP8.1 laufen lassen, eine Kurzzeit-Mediawiki-Version mit nur einem Jahr Support einsetzen oder die Kommentarfunktion dauerhaft abschalten. Ich habe mich noch nicht entschieden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze eine von mir angepasste Version von https://www.mediawiki.org/wiki/Extension:Comments die ich immer dahingehend ändere das auch anonyme Kommentare möglich sind (mit freier Angabe eines Names oder Email-Adresse). Zudem ist eine - mini - AntiSPAM Funktion eingebaut und ich erhalte immer sofort eine Email über einen neuen Kommentar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das habe ich mir gut Dokumentiert, ist trotzdem ein Sonntagnachmittag Arbeit das jedes mal einzupflegen.&amp;lt;br&amp;gt;Nur um mich dann per Kommentar beschimpfen zu lassen wenn da jemanden etwas nicht passt ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe mal die Kommentarfunktion meiner Seite deaktiviert, da gab es heute wohl einen Angriff wo versuchte wurde diese als Lücke zu missbrauchen. Laut Logs hat das nicht geklappt, aber so habe ich den Angriff ins leere laufen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 09:45Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist 2024 ... und ich bekomme IPv6 an meinem neuen Server nicht zum laufen. Offensichtlich wird es nicht durchgelassen. Jedenfalls kommt kein IPv6 Datenverkehr an meinem Server an.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 00:55Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net läuft nun auf einem neuen virtuellen Server bei IONOS. Nach 2 Tagen war der alte zwar migriert. Aber der neue - die technischen Daten sind identisch - kostet nur 4 statt 5 Euro im Monat. Und ich konnte so parallel gleich auf Ubuntu 24.04 LTS + PHP8.3 umziehen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt geht es ins Bett, morgen muss ich noch genauer prüfen ob noch alles funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:44Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
So, telefonisch konnte ich ein Ticket eröffnen. Nein, das ist nicht normal, die VM hätte schon längst wieder laufen sollen. Es wird jetzt geschaut was bei meiner VM hakt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:02Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240620-130053.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so so, 20 Minuten. Die Meldung habe ich im Portal gefunden, wenn ich versuche auf &#039;&#039;&#039;&#039;&#039;Server &amp;amp; Cloud&#039;&#039;&#039;&#039;&#039; zu zugreifen werde ich immer noch sofort abgemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich suche gerade wo ich dort ein Ticket eröffnen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 09:35Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Na IONOS, das klappt ja scheinbar toll. Statt &amp;quot;kurzer Unterbrechung&amp;quot; sind es nun schon fast 20h Ausfall, laut deren Status Webseite https://www.ionos-status.de/ läuft alles Störungsfrei, das Portal für die Cloud-Server Verwaltung ist immer noch komplett abgeschaltet (zumindest für mich).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.06.2024 20:23Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Heute seit 15:00 Uhr stellt IONOS meinen vServer um auf dem diese Webseite läuft. Das sollte angeblich nicht lange dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt, 5h später, ist mein Server immer noch nicht erreichbar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Webportal von IONOS zur Verwaltung meines vServers ist auch komplett abgeschaltet - man wird sogar sofort ausgeloggt wenn man auf den betreffenden Menüpunkt geht.&amp;lt;br&amp;gt;&lt;br /&gt;
Genügend Gelegenheit einmal mein Backup zu testen.&amp;lt;br&amp;gt;&lt;br /&gt;
So konnte ich meine Webseite mit Stand gestern, 22:00 Uhr wiederherstellen. Die Webseite läuft im Moment auf meinen Heimserver. Der hat zwar genügend Dampf, mein Internetanschluß von Kabel Deutschland hat aber leider nur 50MBit Upload.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber besser als nichts, zur Not kann ich die Seite auch noch auf einen anderen Server mit 250Mbit Upload umziehen, aber das hier war jetzt schneller und einfacher.&amp;lt;br&amp;gt;&lt;br /&gt;
Und es wäre schön wenn der Originalserver doch noch wieder hoch kommt, ich habe heute noch diverses im Wiki geschrieben/korrigiert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich bin endlich dazu gekommen eine aktuelle Anleitung für Ubuntu 24.04 und Zabbix 6 / Zabbix 7 zu schreiben: [[Zabbix Server + Agent unter Ubuntu 24.04 LTS installieren]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es waren nicht so viele Änderungen wie befürchtet. Schlecht ist aber schon mal das ich bisher keine aus Zabbix 6 exportierten Templates in Zabbix 7 importiert bekommen habe, das muss ich mir noch mal genauer anschauen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein jetziger Zabbix 6.0 LTS Server stammt von von meinen allerersten Zabbix-Server 2.2 ab, dieser wurde immer wieder geupgradet. Nun möchte ich mal einen Neuanfang machen, auch um jede menge Altlasten los zu werden, z.B. habe meine Items noch alle eine Server-Node Id, allen Item-Ids ist also eine &amp;lt;code&amp;gt;42042000000&amp;lt;/code&amp;gt; vorangestellt, das werde ich sonst nie los.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.05.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net ist nun nur noch über IPv4 zu erreichen. Grund ist das IONOS die virtuelle Maschine auf welcher diese Webseite läuft, migriert und dabei neue IPv6 Adressen zuweisen wird. Dei IPv4 soll unverändert erhalten bleiben.&amp;lt;br&amp;gt;Scheinbar wird dabei auch der darunterliegende Hypervisor geändert. Bisher ist meine VM eine VMware vSphere-VM, mal sehen was es danach ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Extension &amp;quot;ClipUpload&amp;quot; funktioniert nun doch. Nachdem ich bei einem Kunden die Extension [https://www.mediawiki.org/wiki/Extension:MsUpload MsUpload] gesehen hatte - mit der kann man einfach per Drag&amp;amp;Drop viele Dateien/Bilder in einem Rutsch hochladen - hatte ich diese bei mir installiert. Die Extension funktioniert aber nur in Verbindung mit dem [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]. Der ist &amp;quot;ab Werk&amp;quot; dabei, ich hatte den aber deaktiviert weil ich diesen nicht gebraucht habe. Der WikiEditor erscheint in dem von mir bevorzugten Quelltext-Editor. Und in diesem / mit diesem funktioniert mein heiß geliebtes und Innig geliebtes &amp;quot;ClipUpload&amp;quot;. Mit dieser Erweiterung kann ich Screenshots (aus der Zwischenablage) im Quelltext-Editor einfach per {{Key|STRG}} + {{Key|V}} einfügen - ohne nervige Nachfragen etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.02.2023&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das MediaWiki-System auf dem diese Webseite basiert wurde von der LTS-Version 1.35.9 auf die neue LTS-Version 1.39.1 aktualisiert. Wie immer gab es Probleme mit einigen Erweiterungen. Bei den meisten reichte die für MediaWiki 1.39.x passende Version zu installieren. Die Kommentarfunktion musste ich wieder nach meinen Ansprüchen anpassen - was relativ schnell ging da ich beim letzten mal ordentlich dokumentiert hatte - so musste ich nur in der alten Version nach meinen Kommentaren suchen und die Abschnitte entsprechend in der neuen Version ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider - &#039;&#039;&#039;LEIDER&#039;&#039;&#039; - ist die Extension &amp;quot;ClipUpload&amp;quot; nun auf der Strecke geblieben, beim letzten mal konnte man die noch mit Codeänderungen zum laufen bringen. Die Erweiterung erlaubte es per {{Key|STRTG}} + {{Key|V}} einfach Bilder in das Mediawiki einzufügen. Es wird auf [https://www.mediawiki.org/wiki/Extension:SimpleBatchUpload simple-batch-upload] verwiesen ... mhh, nicht wirklich das selbe.&amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes steht dann das Upgrade auf 22.04 LTS + PHP8 an.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag: Es gibt einen &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Extension:VisualEditor VisualEditor]&#039;&#039;&#039; der ab Werk bei MediaWiki dabei ist (keine Ahnung seit welcher Version), der kann das auch. In Umständlich. Titel, Beschreibung usw. muss alles über Dialoge angegeben werden anstatt das Bild einfach sofort hochzuladen (ich weis schon was ich tue).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.10.2022&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zabbix Summit 2022 in Riga: [https://www.meinekleinefarm.net Marco Hofmann] hat einen Vortrag darüber gehalten wie man unter Windows den Zabbix Agenten auf hunderten von Systemen und verschiedenen Kundenumgebungen synchron hält. Das erwähne ich weil er dazu unter anderem auch Werkzeuge von mir einsetzt - eine Abwandlung meiner [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei|InstallZabbixAgent.bat]] und das Tool für [[Agent Auto Updater|automatische Updates des Agenten]].&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Hofmann-1200x628px.png|400px|link=https://www.meinekleinefarm.net/zabbix-summit-2022-in-riga-keeping-hundreds-of-windows-zabbix-agents-in-sync-across-different-customers/]]&amp;lt;br&amp;gt;&lt;br /&gt;
Seinen Vortrag findet ihr hier auf Youtube: https://youtu.be/IQQwTEtwl7M?t=19987 &amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.10.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Mediwiki dieser Seite ist nun auf Version 1.35.4. Und ich müsste mal daran gehen wieder eine Kommentar-Übersichtsseite zu programmieren ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;06.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das waren jetzt fast 4h Arbeit - aber die Kommentarfunktion funktioniert wieder wie vorher.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Extension basiert wieder auf dem aktuellen Original: https://www.mediawiki.org/wiki/Extension:Comments und wurde wieder nach meinen Bedürfnissen angepasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter anderem war in der aktuellen Version der Datenbank gar kein Feld mehr für den Namen/Email-Adresse vorgesehen, das habe ich wieder nachgerüstet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die meiste Zeit habe ich damit verbracht die Stelle in den ganzen PHP-Skripten zu finden an der die eigentliche Datenbankabfrage durchgeführt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Großes Update der Webseite!&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Upgrade auf die Mediawiki LTS Version 1.35.2&lt;br /&gt;
* Umzug von Ubuntu 18.04 LTS auf 20.04 LTS&lt;br /&gt;
* Umzug von MySQL auf MariaDB&lt;br /&gt;
* Umzug von PHP 7.2 auf 7.4.3&lt;br /&gt;
* Umzug auf V-Server M von IONOS&lt;br /&gt;
* Seite ist nun über IPv4 und IPv6 erreichbar!&lt;br /&gt;
Hat im ganzen ganz gut geklappt. Auf der Strecke sind 2 Erweiterungen geblieben: Die Anzeige der zuletzt geänderten Artikel sowie eine selbst programmierte Seite welche mir alle Kommentare auf einer Seite angezeigt hatte.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch die Schaltfläche die auf jeder Seite unten rechts zum Hochscrollen war fehlt noch.&amp;lt;br&amp;gt;&lt;br /&gt;
Ganz hervorragend am &#039;&#039;&#039;IONOS V Server&#039;&#039;&#039; gefällt mir das es eine VM unter VMware ist, die Firewall davor in der man selbst Port für Port freischalten muss - und das ich die mit dem &#039;&#039;&#039;&#039;&#039;Veeam Agent for Linux&#039;&#039;&#039;&#039;&#039; einfach sichern kann. Und die Büchse ist angenehm schnell, mit 300Mbit angebunden und kostet nur 5 Euro im Monat.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nachtrag:&#039;&#039;&#039; Die Kommentarfunktion funktioniert ... aber der Refresh nachdem man senden gedrückt hat sieht komisch aus. {{Key|F5}} behebt das, mal sehen ob ich da was ändern kann. Das ist eine Extension die ich so angepasst habe das man auch ohne Anmeldung mit einem Namen etwas posten kann und das mir eine Email gesendet wird wenn es einen Kommentar gibt. Es gibt eine neuere Version davon die ich dann allerdings auch wieder neu anpassen muss.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe einen neuen Artikel zum Thema GeoIP-Blocking mit Apache2 veröffentlicht: [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und das ganze auch gleich als Gelegenheit genutzt bei meinen diversen Subdomänen das ganze umzusetzen. Meine Seafile- oder mein Zabbix-Server müssen z.B. nur aus Deutschland erreichbar sein.&amp;lt;br&amp;gt;[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;30.12.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Eigentlich wollte ich diesen Webserver mal auf Ubuntu 20.04 LTS aktualiseren ... aber das hat per &amp;lt;code&amp;gt;do-release-upgrade&amp;lt;/code&amp;gt; im Gegensatz zu meinen anderen VMs nicht geklappt. MediaWiki 1.3 mag irgendwie PHP 7.4 auch nicht richtig (auch wenn ich es woanders schon habe laufen gesehen). Also doch wie immer - neuen Server installieren und dann die Domänen Stück-für-Stück umziehen.&amp;lt;br&amp;gt; [[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.06.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:MFA_Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;MFA technical Certification&amp;quot; der Firma WatchGuard abgeschlossen. Es geht um die [https://www.watchguard.com/de/wgrd-products/authpoint-multi-factor-authentication MFA Lösung AuthPoint der Firma WatchGuard] - bei der Vorbereitung war hilfreich das ich MFA schon länger auch privat für den Schutz meiner Zugänge einsetze. Unter anderem [https://duo.com/ duo.com] für RDP da es bis 10 Personen auch kostenlos genutzt werden kann. WatchGuard ist - aus meiner Sicht - mehr pures MFA, DUO hat dafür quasi jeden Anwendungsfall eine eigene Anleitung und geht tiefer auf die Endgeräte ein. Wobei z.B. eine nicht aktuelle Android-Version ständig angemeckert wird.&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;26.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Stromkosten: Auch ich sitze nun mehr im Homeoffice. Und in meinem Kellerbüro habe ich meinen Rechner hinter mir - und einen 40HE Datenschrank im Blick vor mir. Mit den Tagen ging mir zum einen der Lärm der ganzen Lüfter irgendwann auf den Kecks. Und den Stromverbrauch (den ich bis dato aber nicht gemessen habe) wollte ich auch senken. Den Verbrauch der Switche kannte ich durch Einzelmessungen, der lag bei ca. 100 Watt (für 48 Gigabit Ports + 6 PoE Ports). Diesen habe ich durch einen neuen Switch Allnet-SG8428M (13 Watt maximal!) und einen sparsameren PoE Sitch für die Telefone und Kameras stark reduziert. Zeitgleich habe ich mit Gosund SP111 WLAN-Steckdosenschaltern herumgespielt. Mit der Tasmota Firmware und einer Kalibrierung taugen diese scheinbar auch ganz gut als Strommessgeräte.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab nun also meinen Datenschrank zu Hause daran gehängt und musste ernüchternd einen Dauerstromverbrauch von 140 bis 150 Watt feststellen.&amp;lt;br&amp;gt;&lt;br /&gt;
* 44 Watt davon gehen für PoE drauf - 5 Cisco Telefone und 2 IP-Kameras.&amp;lt;br&amp;gt;&lt;br /&gt;
* 16 Watt maximal für die beiden anderen Switche (der ALLNET und ein 16 Port Netgear) &lt;br /&gt;
* 9 Watt mein ESXi Server auf Basis eines APU2C4 von PC Engines (inklusive 2TB USB Festplatte daran)&lt;br /&gt;
* um die 20 Watt schätze ich die beiden FritzBoxen ...&lt;br /&gt;
* bleiben ca. 89 Watt für meinen Heimserver - mit 2x 128GB SSD und 4 x 4TB HDD&lt;br /&gt;
* und die USV wird da mit Ihrem Eigenanteil auch irgendwo dazwischen liegen&lt;br /&gt;
Wenn ich den Verbrauch mal in einen Kostenrechner werfe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200426-192323.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:(erstellt mit [https://www.stromverbrauchinfo.de/stromkostenrechner.php stromverbrauch info])&amp;lt;br&amp;gt;&lt;br /&gt;
weis ich nun auch warum wir immer so eine fette Stromrechnung habe. Als 4 Personenhaushalt verbrauchen wir soviel wie einer mit 8. Und dabei habe ich doch gerade schon soviel eingespart ...&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde das nun - dank mit Zabbix überwachten Strom/Leistungsverbrauch mal besser beobachten und schauen wie ich da in Zukunft noch mehr einsparen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedes Watt sind 2,60 €/Jahr oder 22 Cent/Monat - klingt nicht viel aber wie man sieht läppert es sich.&amp;lt;br&amp;gt;&lt;br /&gt;
Mal sehen wie der Durchschnitt nach einem Monat ist. Nachts schaltet sich z.B. die Beleuchtung der IP-Telefone ab was schon 10 Watt spart.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Mit gewissen Stolz habe ich meine Version eines &amp;quot;Active Directory-Gruppe mit Zabbix Benutzern Abgleichen via LDAP&amp;quot; Skriptes fertiggstellt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://github.com/BernhardLinz/zabbix-ldap-sync-bash&lt;br /&gt;
Wer nach so etwas googelt landet quasi ausschließlich bei dem von Marc Schöchlin geschriebenen Python Script: https://github.com/zabbix-tooling/zabbix-ldap-sync&amp;lt;br&amp;gt;&lt;br /&gt;
An dem haben mich aber schon immer die ganzen Abhängigkeiten gestört wie &#039;&#039;&#039;pyldap&#039;&#039;&#039; oder &#039;&#039;&#039;pyzabbix&#039;&#039;&#039;. Ich hab nun mal leider auch Kunden mit Systemen ohne Internetanbindung oder älteren Linux Versionen - und da ist es schwer diese zu erfüllen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Skript ist &amp;quot;pures&amp;quot; Bash. Es wird nur der Befehl &#039;&#039;&#039;ldapsearch&#039;&#039;&#039; und &#039;&#039;&#039;curl&#039;&#039;&#039; benötigt - und bisher waren die in allen Repositories der Distributionen vorhanden.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze nun [https://www.google.com/search?q=tripwire+ubuntu Tripwire] um meinen Webserver zu überwachen. Gefällt mir sehr gut, man muss nur daran denken nach jeden Update oder Änderung die Datenbank wieder auf Stand zu bringen. Ich bekomme im Moment jeden Tag einen Email-Report dazu - da muss ich noch mal schauen wir ich das in Zabbix unterbringe bzw. mir nur eine mail senden lasse wenn auch etwas ansteht.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Noch ein Nachtrag zum &amp;quot;Angriff&amp;quot;:&amp;lt;br&amp;gt; zwischendurch fehlten auf dem Server 16G an Speicherplatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Gemerkt habe ich das mit Zabbix weil dadurch ein Schwellwert erst unter- und dann wieder überschritten wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 16G waren das &amp;lt;code&amp;gt;error.log&amp;lt;/code&amp;gt; für die Domäne &#039;&#039;&#039;znil.net&#039;&#039;&#039;. Darin fand ich jede Menge Fehlermeldung das versucht wurde &amp;lt;code&amp;gt;\bin\bash&amp;lt;/code&amp;gt; zu starten - was aber nun mal nicht erlaubt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Bin im Moment gerade glücklich darüber das ich jede Domäne / Webseite / Subdomäne unter einem eigenen, eingeschränkten Benutzer laufen lasse.&amp;lt;br&amp;gt;&lt;br /&gt;
Das mache ich nicht von Hand sondern per ISPConfig weil ich faul bin. Funktioniert aber scheinbar ja prima.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Also, wenn ich so ein Online-Tool nutze um meine Webseite zu überprüfen dann melden diese ggf. (nicht immer) eine &amp;quot;SQL-Injection&amp;quot; Lücke in meiner Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar weil wohl dann gängige Test-SQL-Abfragen mit gesendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden erfolgt via JavaScript im Browser des Benutzers, der Empfänger ist das PHP-Skript auf dem Server.&amp;lt;br&amp;gt;&lt;br /&gt;
In der letzten Version dieses Skriptes (angepasst von mir) gibt es keine Filter mehr, er nimmt einfach alles an. Früher habe ich dort auf Viagra &amp;amp; Co gefiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber der Teil darunter der dann den Text in die Datenbank schreibt ist wohl ausreichend gefestigt - er schreibt einfach alles was kommt in den Datensatz der Datenbank. Die SQL-Injections tauchen so einfach als Text im Kommentarfeld auf, werden aber nicht ausgeführt. Also alles gut Denke ich.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Angriff auf diese Webseite:&amp;lt;br&amp;gt;&lt;br /&gt;
In der Nacht von gestern auf heute hat jemand versucht per SQL-Injektion sich Zugriff auf diese Webseite zu verschaffen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Schwachstelle&amp;quot; ist die Kommentarfunktion. Ein Online-Scurity-Scanner hatte mir diese bereits mal als anfällig dafür gemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich die Mediawiki-Extension überarbeitet hatte, habe ich umfangreiche &amp;quot;Suchen und Erstzen&amp;quot;-Regeln erstellt die alles was mit SQL zu tun hat ausfiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb sehen manche Kommentare hier dann komisch aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich prüfe mal das System intensiv ob die Abwehr erfolgreich war ... oder ob ich doch ein Backup wieder einspiele.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net weiterhin &amp;quot;Tracker-frei&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze Matomo (ehemals Piwik) um Statistiken für diese Webseite zu erhalten. Eigentlich mehr aus Neugier um zu sehen wie das funktioniert, es hat mir aber auch schon bei Verbesserungen geholfen da man manchmal recht gut erkennen kann wenn die Leute bei Suchanfragen falsch abbiegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab in einem meiner Browser seit einiger Zeit ein &amp;quot;Anti-Tracking-Tool&amp;quot; installiert weil dadurch sich die Ladezeiten bei einer meiner Lieblingwebseiten dramatisch verbessert haben (https://thingiverse.com). Voller Freude sehe ich das ich wohl alles richtig gemacht habe - denn das Tool zeigt mir bei dieser Seite an das es nicht zu blockieren gibt. Alles bleibt also innerhalb dieser Seite. Siehe auch: [https://znil.net/index.php?title=Znilwiki:Impressum#Datenschutzerkl.C3.A4rung Datenschutzerklärung]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Sieht nicht nach Leben aus wenn sich die Startseite nie ändert - ich muss noch mal wieder nach einer Mediawiki-Extension schauen welche die neuesten Artikel hier präsentiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Hatte ich schon mal, funktionierte nach einem Update nur nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;04.07.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Seite ab sofort nur noch über &#039;&#039;&#039;&#039;&#039;https://&#039;&#039;&#039;&#039;&#039; zu erreichen - die meisten Aufrufe kamen sowieso schon darüber.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;08.06.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mediawiki-Installation ist nun auf 1.13.2 aktulisiert - einige potentielle Sicherheitslücken wurden geschlossen. Hier der Artikel dazu: https://lists.wikimedia.org/pipermail/mediawiki-announce/2019-June/000230.html&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man nicht alles testet ... die Kommentarfunktion war ohne &amp;quot;Funktion&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Glück ist es eine Erweiterung die noch gepflegt wird, ich habe mir die neue Version herunter geladen und wieder an diese Webseite angepasst: https://git.znil.net/mediawiki/Comments&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:WG Network Security Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;Network Security Technical Certification&amp;quot; der Firma WatchGuard abgeschlossen.&lt;br /&gt;
Ich hatte auch schon mal leichtere Prüfungen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Wiki ist wieder einmal umgezogen. Statt auf einem Server in Frankreich läuft es nun auf einem Server in Deutschland - vielen Dank an meinen Arbeitgeber.&amp;lt;br&amp;gt;&lt;br /&gt;
Im gleichen Atemzug habe ich von der Mediawiki-Version 1.27 LTS auf die Version 1.31 LTS gewechselt - der Support läuft im Juni aus und 1.31 bietet nun wieder Updates bis Juni 2021.&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist leider die &#039;&#039;&#039;WikiLog&#039;&#039;&#039;-Erweiterung auf der Strecke geblieben, diese ist nicht mehr kompatibel und wird auch schon länger nicht mehr weiter einwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Also mache ich das jetzt von Hand ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_ocean&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Wie ist &amp;lt;del&amp;gt;meine&amp;lt;/del&amp;gt; deine IP-Adresse?&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot; style=&amp;quot;font-family:&#039;Courier New&#039;, Monospace; background: #FFFFCC;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 70%; background-color: #FFFFCC&amp;quot;|&amp;lt;big&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IP :&#039;&#039;&#039; &amp;lt;ClientIP /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Typ:&#039;&#039;&#039; &amp;lt;IPv4orv6 /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DNS:&#039;&#039;&#039; &amp;lt;ClientName /&amp;gt; &amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|| Ermittelt mit den PHP-Funktionen dafür&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Cookies und Datenschutz ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
Diese Webseite verwendet bei Besuchern Cookies! [http://www.cookie-checker.com/check-cookies.php?url=znil.net www.cookie-checker.com]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;!--        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten 10 Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
{{RecentActivity:type=edits|count=10}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_blue&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Tools - Kleine Programme für Batchdateien und anderes&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* [[ZnilTools:ifmemberDELUXE.exe|ifmemberDELUXE]] - Netzlaufwerke und Netzwerkdrucker in Anmeldeskripten verbinden&amp;lt;!--, kann Drucker-Server für 32/64 Bit wählen--&amp;gt;&lt;br /&gt;
* [[ZnilTools:Telnet_SMTP_Test_Tool|Telnet_SMTP_Test_Tool.exe]] - Grafische Oberfläche für den Test von SMTP-Servern per Telnet&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung mit vielen Beispielen&lt;br /&gt;
* [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;br /&gt;
* [[Calibre eBook MultiUser Tool / Funktion]] - Calibre mit mehreren Benutzern gleichzeitig nutzen&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_green&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Webseiten die ich regelmäßig besuche ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* http://c64-online.com/ -&amp;gt; Alles über den C64 &amp;amp; Geniales zum Raspberry Pi&lt;br /&gt;
* https://forum.iobroker.net/ -&amp;gt; Alles zu ioBroker&lt;br /&gt;
* https://www.autoit.de -&amp;gt; Wo sonst bekäme man so viel deutsche Hilfe zu AutoIt!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--{{RecentActivity:type=new|count=10}}--&amp;gt;&lt;br /&gt;
{{Special:RecentChanges/days=365,limit=10,hidebots,hideminor,hidecategorization}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_grey&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Spezial:Statistik|Informationen]] zum znilwiki, Stand {{CURRENTDAY2}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} um {{LOCALTIME}} Uhr:&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- * znil.net über das Tor Netzwerk: http://znilnet655kecmslpvcrvpwujeameq4ac42ueg7jvqanzdfk4clnleyd.onion&amp;lt;br&amp;gt; --&amp;gt;&lt;br /&gt;
* Dieses Wiki enthält &#039;&#039;&#039;{{NUMBEROFPAGES}}&#039;&#039;&#039; Seiten, zusammengefasst in &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; Themen...&amp;lt;br&amp;gt;&lt;br /&gt;
* Die Beiträge wurden &#039;&#039;&#039;{{NUMBEROFEDITS}}&#039;&#039;&#039; mal bearbeitet (inklusive der Erstellung)&lt;br /&gt;
* Dieses Wiki wurde laut Matomo schon so oft besucht: &amp;lt;html&amp;gt;&amp;lt;img src=&amp;quot;https://znil.net/piwik/index.php?module=ClassicCounter&amp;amp;action=svg&amp;amp;idSite=1&amp;quot; width=&amp;quot;180&amp;quot; height=&amp;quot;43&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!--* Letzte Änderung am &#039;&#039;&#039;{{REVISIONDAY2}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONMONTH}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONYEAR}}&#039;&#039;&#039; durch &#039;&#039;&#039;{{REVISIONUSER}}&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
* MediaWiki-Version: &#039;&#039;&#039;{{CURRENTVERSION}}&#039;&#039;&#039; - siehe auch [[Spezial:Version]]&lt;br /&gt;
&amp;lt;!--* Seitenaufrufe im Monat: &#039;&#039;&#039;&amp;gt; 12.000&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Datei:Piwik-001.png]]&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;[[Testbereich|.]][[Testbereich:Seite2|.]][[Testbereich:Seite3|.]][[Testbereich:Seite4|π]]&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Shelly_1_mit_Tasmota_als_Stromstossschalter_Ersatz&amp;diff=15757</id>
		<title>Shelly 1 mit Tasmota als Stromstossschalter Ersatz</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Shelly_1_mit_Tasmota_als_Stromstossschalter_Ersatz&amp;diff=15757"/>
		<updated>2026-01-26T09:34:19Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Automatischen Ausschalten oder Einschalten nach x Sekunden Minuten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ich nutze zu Hause den Shelly 1 mit Tasmota-Firmware. Ich habe vor meine vorhandenen Stromstoßschalter (40 Stück) durch diesen zu Ersetzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Bei der Einrichtung der ersten 12 habe ich diese Seite erstellt um die ganzen Einstellungen und Konsolenbefehle als Copy&amp;amp;Paste zur Verfügung zu haben.&lt;br /&gt;
&lt;br /&gt;
==Feste IP-Adresse setzen + Zeitserver==&lt;br /&gt;
 IP:&lt;br /&gt;
 IPAddress1 192.168.1.101&lt;br /&gt;
 Gateway:&lt;br /&gt;
 IPAddress2 192.168.1.198&lt;br /&gt;
 Subnetmaske:&lt;br /&gt;
 IPAddress3 255.255.255.0&lt;br /&gt;
 DNS 1:&lt;br /&gt;
 IPAddress4 192.168.1.81&lt;br /&gt;
 DNS 2: (ab Tasmota 11)&lt;br /&gt;
 IPAddress5 192.168.1.80&lt;br /&gt;
 NtpServer1 192.168.1.198&lt;br /&gt;
und dann Übernehmen + Neustart mit&lt;br /&gt;
 restart 1&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Hostnamen setzen==&lt;br /&gt;
 DeviceName K01-Flur-EG&lt;br /&gt;
 Hostname K01-Flur-EG&lt;br /&gt;
sollte automatisch neu starten&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Web Passwort setzen==&lt;br /&gt;
 WebPassword test1234&lt;br /&gt;
Benutzername ist &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Taster Betrieb==&lt;br /&gt;
Ab Werk schaltet der Shelly nun ein wenn an SW 230V anliegen. Wir wollen aber mit einem kurzen Stromstoß zwischen den Zuständen umschalten (wie ein Stromstoßschalter):&amp;lt;br&amp;gt;&lt;br /&gt;
 SwitchMode 4&lt;br /&gt;
 SetOption13 1&lt;br /&gt;
&amp;lt;code&amp;gt;SwitchMode 0&amp;lt;/code&amp;gt; wäre der normale Betrieb, &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; ist Tasterbetrieb.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption13 1&amp;lt;/code&amp;gt; ist etwas &amp;quot;Tuning&amp;quot; - normalweise schaltet der Shelly nachdem Ihr den Taster loslasst. Mit dieser Option wird sofort nach Kontakt geschaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MQTT einstellen==&lt;br /&gt;
 Topic K01-LichtFlurEG&lt;br /&gt;
 MqttClient Client-K01-LichtFlurEG&lt;br /&gt;
 MqttHost 192.168.1.8&lt;br /&gt;
 MqttPort 1883&lt;br /&gt;
 MqttUser mqtt&lt;br /&gt;
 MqttPassword test1234&lt;br /&gt;
Die nächsten beiden Befehle sorgen bei neueren Versionen (9.x) dafür das bei den Nachrichten das Retain-Flag gesetzt wird&lt;br /&gt;
 stateretain 1&lt;br /&gt;
 inforetain 1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MQTT HOLD Einstellung setzen==&lt;br /&gt;
Mit dieser Änderungen bekommen wir eine Nachricht an den MQTT gesendet wenn der Button lange gedrückt wurde:&lt;br /&gt;
 SwitchMode 6&lt;br /&gt;
 SwitchTopic 1&lt;br /&gt;
 SetOption32 3&lt;br /&gt;
 SetOption13 0&lt;br /&gt;
&amp;lt;code&amp;gt;SwitchMode 6&amp;lt;/code&amp;gt; ist wieder der Tastermodus (wie 4), aktiviert aber auch den Long Press Mode welcher dann ein &amp;quot;HOLD&amp;quot; sendet (zusätzlich zum gerade aktiven Zustand).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SwitchTopic 1&amp;lt;/code&amp;gt; aktiviert das Senden per MQTT der vorherigen Option&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption32 3&amp;lt;/code&amp;gt; setzt die Zeit für einen langen Tastendruck auf 3 Sekunden. Alles darunter schaltet nur um.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption13 0&amp;lt;/code&amp;gt; sorgt dafür das er wartet wie lange Ihr den Taster drückt. Mit dieser Option reagiert er erst wenn man den Taster betätigt und wieder loslässt. Das Licht geht also erst an wenn man den Taster loslässt. Ist die gedrückte Zeit größer als die in der Option zuvor eingestellte Zeit so sendet er nur HOLD an den MQTT-Broker.&lt;br /&gt;
Quelle: https://tasmota.github.io/docs/Buttons-and-Switches/&lt;br /&gt;
Das Ergebnis erscheint unter diesem MQTT-Pfad:&lt;br /&gt;
 cmnd/MQTT-Topic-Des-Gerätes/POWER1&lt;br /&gt;
Dort gibt es dann die Meldung &amp;quot;HOLD&amp;quot;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bei HOLD anderes Tasmota-Gerät schalten==&lt;br /&gt;
Statt der Auswertung per MQTT kann der Shelly auch direkt auf einen langen Tastendruck reagieren und einen anderen Shelly mit Tasmota-Firmware schalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze das für die Nachtischlampen - bei mir ist neben dem Bett auf jeder Seite ein Taster welcher die jeweilige Nachtischlampe ein- oder ausschaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt man nun lange (in diesem Beispiel &amp;gt; 3 Sekunden) auf den Taster wird nun die Lampe auf der anderen Seite geschaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
 SwitchMode 6&lt;br /&gt;
 SwitchTopic 0&lt;br /&gt;
 SetOption32 3&lt;br /&gt;
 SetOption13 0&lt;br /&gt;
 Rule1 ON Switch1#State=3 DO WebSend [192.168.1.114,admin:test1234] POWER TOGGLE ENDON&lt;br /&gt;
 Rule1 1&lt;br /&gt;
&amp;lt;code&amp;gt;SwitchMode 6&amp;lt;/code&amp;gt; ist wieder der Tastermodus (wie 4), aktiviert aber auch die Auswertung des &amp;quot;Long Press&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SwitchTopic 0&amp;lt;/code&amp;gt; deaktiviert das Senden per MQTT, sonst ist die lokale Auswertung in einer RULE nicht möglich&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption32 3&amp;lt;/code&amp;gt; setzt die Zeit für einen langen Tastendruck auf 3 Sekunden. Alles darunter schaltet nur um. Die Option erwartet den Wert in 0.1 Sekunden-Schritten laut offzieller Anleitung. Ggf. müsst ihr etwas herumprobieren, bei mir scheinen 3 doch 3 Sekunden zu sein&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption13 0&amp;lt;/code&amp;gt; sorgt dafür das er erst wartet wir lange gedrückt wurde und erst dann reagiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Rule1 ON Switch1#State=3 DO WebSend [192.168.1.114,admin:test1234] POWER TOGGLE ENDON&amp;lt;/code&amp;gt; bedeutet folgendes:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ON Switch1#State=3&amp;lt;/code&amp;gt; wenn der HOLD Status ermittelt wurde (siehe https://tasmota.github.io/docs/Rules/#rule-trigger)&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;DO&amp;lt;/code&amp;gt; dann tue folgendes ...&lt;br /&gt;
* &amp;lt;code&amp;gt;WebSend [192.168.1.114,admin:test1234] POWER TOGGLE&amp;lt;/code&amp;gt; sende an das Geräte &#039;&#039;&#039;&#039;&#039;192.168.1.114&#039;&#039;&#039;&#039;&#039; mit dem Benutzer &#039;&#039;&#039;&#039;&#039;admin&#039;&#039;&#039;&#039;&#039; und dem Passwort &#039;&#039;&#039;&#039;&#039;test1234&#039;&#039;&#039;&#039;&#039; den Befehl &#039;&#039;&#039;&#039;&#039;TOGGLE&#039;&#039;&#039;&#039;&#039; = von an auf aus oder umgekehrt wechseln. Ist der andere Tasmota nicht mit einem Passwort geschützt so lasst den Teil nach dem Komma weg, die IP muss aber trotzdem in eckige Klammern&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENDON&amp;lt;/code&amp;gt; = Ende der Anweisung&lt;br /&gt;
&amp;lt;code&amp;gt;Rule1 1&amp;lt;/code&amp;gt; Aktiviert die Regel auch.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Und was ist mit MQTT?&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht nur entweder oder - entweder den Button/Tasterstatus an MQTT setzen oder den lokal in einer Rule direkt auswerten.&amp;lt;br&amp;gt;&lt;br /&gt;
Um das trotzdem per MQTT zu erfassen:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cmnd/NameDesTasmota/RESULT&amp;lt;/code&amp;gt; Meldet der Tasmota immer den letzten Befehlsstatus. Falls die Rule gegriffen hat steht dort&lt;br /&gt;
 {&amp;quot;Websend&amp;quot;:&amp;quot;Done&amp;quot;}&lt;br /&gt;
* hier wollte ich mit einer Rule einfach per Publish was an MQTT senden ... aber dann reagierte der Tasmota lokal nicht ... also müsste ich das alles mit in die Rule bauen ... was nicht geklappt hat.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Automatischen Ausschalten oder Einschalten nach x Sekunden Minuten==&lt;br /&gt;
Ich vergesse gerne mal im Ankleidezimmer das Licht auszuschalten. Das lässt sich leicht über eine Regel steuern:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- rule1 on button1#state do backlog power1 %value%; ruletimer1 600 endon on rules#timer=1 do power1 off endon--&amp;gt;&lt;br /&gt;
 rule1 on power1#state do backlog power1 %value%; ruletimer1 600 endon on rules#timer=1 do power1 off endon&lt;br /&gt;
Den Wert von &amp;lt;code&amp;gt;ruletimer1&amp;lt;/code&amp;gt; müsst Ihr an die gewünschte Zeit in Sekunden anpassen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;power1 off&amp;lt;/code&amp;gt; schaltet nach Ablauf der Zeit ab, für ein Einschalten müsst Ihr den Wert auf &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun noch die Regel aktivieren / einschalten:&amp;lt;br&amp;gt;&lt;br /&gt;
 rule1 1&lt;br /&gt;
mit&lt;br /&gt;
 rule1 0&lt;br /&gt;
würde man diese wieder deaktivieren.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr Ihr &amp;lt;code&amp;gt;rule1&amp;lt;/code&amp;gt; ohne Parameter angebt so wird der Status + die Regel angezeigt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Regel reagiert auf eine Änderung des Power-Status. Das habe ich gemacht weil es so auch im Tastermodus funktioniert - und auch wenn das Gerät z.B. über das Webinterface geschaltet wird.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr das Testen wollt: Einschalten und danach in der Konsole&lt;br /&gt;
 ruletimer1&lt;br /&gt;
eingeben, dann seht Ihr jeweils die Restlaufzeit (erster Wert im dem JSON)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier werden die Rules auch noch mal ganz gut erklärt: https://forum.creationx.de/lexicon/index.php?entry/24-rules/&amp;lt;br&amp;gt;&lt;br /&gt;
Beachtet aber das der Artikel schon etwas älter ist, inzwischen gibt es ggf. weitere Trigger und Möglichkeiten.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Emulation einstellen (Amazon Echo &amp;amp; Co)==&lt;br /&gt;
Der FriendlyName ist der Name unter dem z.B. der Amzon Echo das Gerät findet und auch in der App anzeigen wird.&amp;lt;br&amp;gt;&lt;br /&gt;
 FriendlyName1 Licht Flur Erdgeschoss&lt;br /&gt;
Typ (2 = Licht oder 1 = Steckdose)&lt;br /&gt;
 Emulation 2&lt;br /&gt;
----&lt;br /&gt;
==WLAN - optimalen AccessPoint suchen==&lt;br /&gt;
 SetOption56 1&lt;br /&gt;
 SetOption57 1&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption56&amp;lt;/code&amp;gt; sucht beim booten nach dem signalstärksten AccessPoint und verbindet sich mit diesem&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption57&amp;lt;/code&amp;gt; wiederholt die Suche alle 44 Minuten und wechselt den AP sofern dieser 10dB stärker als der jetzige ist&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Anzeige Einstellungen==&lt;br /&gt;
 SetOption53 1&lt;br /&gt;
 WebColor {&amp;quot;WebColor&amp;quot;:[&amp;quot;#eaeaea&amp;quot;,&amp;quot;#252525&amp;quot;,&amp;quot;#4f4f4f&amp;quot;,&amp;quot;#000000&amp;quot;,&amp;quot;#dddddd&amp;quot;,&amp;quot;#65c115&amp;quot;,&amp;quot;#1f1f1f&amp;quot;,&amp;quot;#ff5661&amp;quot;,&amp;quot;#008000&amp;quot;,&amp;quot;#faffff&amp;quot;,&amp;quot;#1fa3ec&amp;quot;,&amp;quot;#0e70a4&amp;quot;,&amp;quot;#d43535&amp;quot;,&amp;quot;#931f1f&amp;quot;,&amp;quot;#47c266&amp;quot;,&amp;quot;#5aaf6f&amp;quot;,&amp;quot;#faffff&amp;quot;,&amp;quot;#999999&amp;quot;,&amp;quot;#eaeaea&amp;quot;]}&lt;br /&gt;
&amp;lt;code&amp;gt;SetOption53&amp;lt;/code&amp;gt; zeit den Hostnamen und die IP-Adresse auf der Webseite oben an&amp;lt;br&amp;gt;&lt;br /&gt;
Der &amp;lt;code&amp;gt;WebColor&amp;lt;/code&amp;gt; stellt die Standard-Farben ein (dunkles Design, ältere geräte haben ggf. noch helles Design)&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Alles auf einmal - Backlog==&lt;br /&gt;
Mit dem Befehl Backlog kann man mehrere Settings auf einen Schlag setzen, bis zu 30. Nach dem Befehl einen Moment warten, dann sieht man wie dieser Übernommen wird:&amp;lt;br&amp;gt;&lt;br /&gt;
 Backlog IPAddress1 192.168.1.139; IPAddress2 192.168.1.198; IPAddress3 255.255.255.0; IPAddress4 192.168.1.81; NtpServer1 192.168.1.198; DeviceName K39-Esstisch; Hostname K39-Esstisch&lt;br /&gt;
 Backlog Topic K39-Esstisch; MqttClient Client-K39-Esstisch; MqttHost 192.168.1.4; MqttPort 1883; MqttUser mqtt;MqttPassword test1234&lt;br /&gt;
 Backlog SwitchMode 4; Emulation 2; FriendlyName1 Tisch&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==2 Tasmota Geräte synchronisieren==&lt;br /&gt;
Ich muss über einen Taster/Schalter 2 verschiedene Phasen schalten.&lt;br /&gt;
Dazu habe ich den Taster mit dem ersten Shelly (mit Tasmota Firmware) verbunden. Wird dieser geschaltet synchronisiert dieser einen 2. Shelly:&lt;br /&gt;
 rule1 ON Power1#State=0 DO WebSend [192.168.2.34,admin:test1234] POWER1 OFF ENDON ON Power1#State=1 DO WebSend [192.168.2.34,admin:test1234] POWER1 ON ENDON&lt;br /&gt;
 rule1 1&lt;br /&gt;
Die IP&lt;br /&gt;
 192.168.2.34&lt;br /&gt;
ersetzt Ihr mit der IP des 2. Tasmota Gerätes&lt;br /&gt;
 admin,test1234&lt;br /&gt;
sind der Benutzername und Passwort für den Webzugriff&lt;br /&gt;
----&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15756</id>
		<title>Vorlage:Installation-Ubuntu-2404</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15756"/>
		<updated>2026-01-15T12:02:19Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Automatische Updates deaktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Grundinstallation===&lt;br /&gt;
{{Hinweis| Ich habe die offizielle ISO verwendet: https://ubuntu.com/download/server }}&lt;br /&gt;
{{Hinweis| Ich installiere mit Absicht &#039;&#039;&#039;OHNE&#039;&#039;&#039; LVM. Ubuntu erstellt inzwischen keine eigene Partition für SWAP mehr und ohne LVM lässt sich der Festplattenplatz bei einer Installation als VM auf einfachste Weise im laufenden Betrieb erweitern. Natürlich ginge das auch mit LVM (mit mehr Schritten), ich sehe hier den Nutzen und Vorteil aber nicht.}}&lt;br /&gt;
CD einlegen und los,&amp;lt;br&amp;gt;&lt;br /&gt;
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-251210-111023.PNG|50px]] Try or Install Ubuntu Server&amp;lt;br&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140440.PNG|50px]] Deutsch&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-115808.PNG|50px]] German / German&amp;lt;br&amp;gt;&lt;br /&gt;
:Wenn er einen neueren Installer findet und fragt ob er auf diesen aktualisieren soll - Ja!&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Install_Ubuntu2204_Pic2.png|50px]] Ubuntu Server&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120131.PNG|50px]] Jetzt könnt Ihr schon die gewünschte feste IP-Adresse einstellen. Wählt dazu mit den Pfeiltasten den &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; Eintrag aus und drückt {{Key|Enter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152546.PNG|50px]] ens192 =&amp;gt; Bearbeite IPv4&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152642.PNG|50px]] Manuell&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152742.PNG|50px]] Bei Subnetz kommt nicht die Subnetzmaske sondern das Netzwerk mit Suffix. Bei einer 24 Maske (= 255.255.255.0) ist das die IP 0 mit Suffix /24&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-153302.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120259.PNG|50px]] Bei Bedarf, sonst leer lassen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120335.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120400.PNG|50px]] Nutzt die ganze Festplatte ohne LVM (also Haken entfernen). Die Festplatte lässt sich später trotzdem leicht vergrößern&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120443.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120505.PNG|50px]] Fortfahren&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120827.PNG|50px]] Den Servernamen festlegen. Ich lege hier den Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; an. Wählt euren Benutzer und Passwort nach Wunsch (Aufschreiben!)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140937.PNG|50px]] Falls Ihr Ubuntu Pro habt, könnet Ihr es hier aktiveren, ansonsten einfach {{Key|[Fortfahren]}}&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141106.PNG|50px]] OpenSSH-Server auswählen =&amp;gt; Erledigt (für Zugriff z.B. mit Putty)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141137.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
Ab jetzt heißt es abwarten. Wenn er kann lädt er gleich ein paar Sicherheitsupdates nach:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-121943.PNG|50px]] Jetzt neustarten&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122036.PNG|50px]] ISO aus der VM entfernen und {{Key|Enter}} drücken&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122152.PNG|50px]] Nach dem Reboot wartet ab bis diverse Meldungen abgelaufen sind&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PuTTY===&lt;br /&gt;
Ab dieser Stelle könnt Ihr PuTTY oder den SSH Client eurer Wahl nutzen - was ich dringend empfehle. Denn dann könnt Ihr hier vorgeschlagenen Befehle einfach per Copy&amp;amp;Paste übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die IP-Adresse habt Ihr zu diesem Zeitpunkt ja bereits festgelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-155245.PNG|150px]] [[Datei:ClipCapIt-200521-155339.PNG|150px]] [[Datei:ClipCapIt-200521-160706.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Anmeldung nutze ich immer gerne ein&lt;br /&gt;
 sudo -i&lt;br /&gt;
Damit wechselt man dauerhaft zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und muss nicht vor jedem Befehl ein &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; stellen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===root wieder freischalten===&lt;br /&gt;
{{Hinweis| Ob nun wie ich immer als root arbeiten wollt oder aber als einfacher Benutzer und dann immer &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; verwendet müsst Ihr selbst wissen}}&lt;br /&gt;
* Mit Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; anmelden&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
* Kennwort des Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
 passwd root&lt;br /&gt;
* neues Kennwort für &amp;quot;root&amp;quot; 2x eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161108.PNG|150px]]&lt;br /&gt;
* Lokal Anmelden kann man sich nun mit &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
* Damit diese auch funktioniert müsst ihr die &amp;lt;code&amp;gt;sshd_config&amp;lt;/code&amp;gt; bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
sucht nach der Zeile ({{Key|STRG}} + {{Key|W}} ist Suchen) nach&lt;br /&gt;
 #PermitRootLogin without-password&lt;br /&gt;
und stellt den Cursor in die Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt nun einmal {{Key|F9}} und 2x {{Key|F10}} - damit erstellt Ihr eine Kopie der Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert die Kopie wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161435.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Speichert die Datei ({{Key|STRG}} + {{Key|x}}, dann {{Key|y}} und {{Key|Enter}}) und startet den ssh Dienst neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart ssh.service&lt;br /&gt;
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über &#039;&#039;&#039;puTTY&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt 2x&amp;lt;br&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
eintippen wodurch sich das PuTTY Fenster schließt - der (eingeschränkte) Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; hat sich somit abgemeldet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ja, ich persönlich arbeite gerne als root und habe diesen für die Anmeldung freigeschaltet. Was ich nicht mache ist das Login per SSH mit Passwort zu erlauben. Ich hinterlege also immer einen SSH-Key für die Anmeldung und nutze diesen statt des Kennwortes. Die Lösung hier ist einfach gehalten, der Profi mögen anpassen wie er es braucht. Ein Anmeldung als eingeschränkter Benutzer geht natürlich auch, das erste was ich dann immer mache ist ein &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt; um dauerhaft zum root zu wechseln}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Anmelden als root===&lt;br /&gt;
Startet PuTTY wieder und meldet euch diesmal gleich als Benutzer &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; an.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===nano &amp;amp; Co auf Deutsch===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;nano&#039;&#039;&#039;&#039;&#039; war eben z.B. noch auf Englisch, mit&lt;br /&gt;
 apt install -y language-pack-de&lt;br /&gt;
ist es (und vieles andere) auf deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===root farbiger Prompt===&lt;br /&gt;
Als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; anmelden:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
Zeile 39 ({{Key|Alt}} + {{Key|C}} aktiviert Zeilennummernanzeige):&amp;lt;br&amp;gt;&lt;br /&gt;
 #force_color_prompt=yes&lt;br /&gt;
ändern zu (# entfernen):&amp;lt;br&amp;gt;&lt;br /&gt;
 force_color_prompt=yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162422.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wer den sofort haben will (ohne neu Anmelden):&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
----&lt;br /&gt;
===Bash History aus mehreren Sitzungen gleichzeitig===&lt;br /&gt;
Wenn man mehr als eine SSH Sitzung zum Zabbix-Server hat, gewinnt in der Bash-Histoy die Sitzung von der man sich zuletzt abmeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgende Änderung sorgt dafür das sich alle Sitzungen eine Bash-History teilen, was ich in Session 1 also aufrufe lässt sich sofort danach in Session 2 per Pfeil nach oben oder {{key|STRG}} + {{key|R}} Suche finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu bearbeiten man noch einmal die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
und hängt ganz unten folgendes an:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# don&#039;t put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;
# ... or force ignoredups and ignorespace&lt;br /&gt;
HISTCONTROL=ignoredups:ignorespace:erasedups&lt;br /&gt;
&lt;br /&gt;
# append to the history file, don&#039;t overwrite it&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&lt;br /&gt;
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)&lt;br /&gt;
HISTSIZE=50000&lt;br /&gt;
HISTFILESIZE=50000&lt;br /&gt;
&lt;br /&gt;
# After each command, append to the history file&lt;br /&gt;
#  and reread it&lt;br /&gt;
export PROMPT_COMMAND=&amp;quot;${PROMPT_COMMAND:+$PROMPT_COMMAND$&#039;n&#039;}history -a; history -c; history -r&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit es sofort aktiv wird wieder&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
Ja, {{code|HISTSIZE}} und {{code|HISTFILESIZE}} stehen nun 2x in der Datei, der letzte Eintrag gewinnt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Feste IP-Adresse vergeben===&lt;br /&gt;
Der Server hat dank des neuen Setupdialoges nun bereits eine feste IP-Adresse.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr an dieser etwas ändern müssen so müssen wir erst das Cloud-Init deaktivieren: &lt;br /&gt;
 nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg&lt;br /&gt;
Inhalt:&lt;br /&gt;
 network: {config: disabled}&lt;br /&gt;
Dann könnte Ihr in der folgenden Datei etwas ändern, die Warnungen das es einen reboot nicht übersteht könnt Ihr ignorieren, dafür haben wir die andere Datei angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162802.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Weiter unten deinstalliere ich Cloud-Init komplett (wenn die VM nicht bei einem Hoster läuft), da könnte man sich diesen Schritt hier sparen}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Updates einspielen===&lt;br /&gt;
* wieder anmelden als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; bzw. zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; wechseln&lt;br /&gt;
* Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)&lt;br /&gt;
 apt update&lt;br /&gt;
* Updates einspielen:&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
* Nach Update überflüssige Pakete entfernen:&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich mache das normalerweise immer als Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===VM Integrationsdienste installieren===&lt;br /&gt;
Wenn euer Zabbix-Server eine VM, eine &#039;&#039;&#039;V&#039;&#039;&#039;irtuelle &#039;&#039;&#039;M&#039;&#039;&#039;aschine, ist, solltest Ihr je nach verwendeten Hypervisor die passenden Integrationsdienste installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====VMware====&lt;br /&gt;
Unter VMware braucht ihr nichts tun, die&lt;br /&gt;
 apt install open-vm-tools&lt;br /&gt;
sind per Default installiert und aktiv. Ist es keine VMware VM, so könnt Ihr die Tools per&lt;br /&gt;
 apt remove open-vm-tools&lt;br /&gt;
entfernen&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====Hyper-V====&lt;br /&gt;
In den Einstellungen der VM solltet Ihr hier den Haken setzen:&lt;br /&gt;
:[[Datei:ClipCapIt-250527-112648.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der VM die folgende Datei bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/initramfs-tools/modules&lt;br /&gt;
und ganz unten die folgenden 4 Zeilen anhängen:&amp;lt;br&amp;gt;&lt;br /&gt;
 hv_vmbus&lt;br /&gt;
 hv_storvsc&lt;br /&gt;
 hv_blkvsc&lt;br /&gt;
 hv_netvsc&lt;br /&gt;
Und dann die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
und neu starten:&lt;br /&gt;
 reboot&lt;br /&gt;
Quelle: https://community.veeam.com/blogs-and-podcasts-57/how-to-install-hyper-v-integration-services-in-the-ubuntu-linux-vm-6353&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Proxmox PVE====&lt;br /&gt;
In den Einstellungen der VM den Agenten aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250527-113037.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann in der VM die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install qemu-guest-agent&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Multipathing deinstallieren (wenn der Server eine VM ist)===&lt;br /&gt;
Ab Werk wird nun das&lt;br /&gt;
 /var/log/syslog&lt;br /&gt;
mit Multipath-Meldungen vollgemüllt:&amp;lt;br&amp;gt;&lt;br /&gt;
 2024-05-27T12:32:47.571374+00:00 ubuntu2404 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.&lt;br /&gt;
 2024-05-27T12:32:47.592304+00:00 ubuntu2404 kernel: systemd[1]: Listening on multipathd.socket - multipathd control socket.&lt;br /&gt;
 2024-05-27T12:32:47.592385+00:00 ubuntu2404 kernel: systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...&lt;br /&gt;
 2024-05-27T12:32:48.141146+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:48.141212+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:48.141278+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:32:57.634912+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:32:57.667862+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:57.667930+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:57.667959+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:07.637080+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:07.676773+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:33:07.676839+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:07.676865+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:17.641466+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:17.709843+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709915+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709942+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:17.709969+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:28.134951+00:00 ubuntu2404 multipathd[467]: sda: not initialized after 3 udev retriggers&lt;br /&gt;
 2024-05-27T12:33:29.139933+00:00 ubuntu2404 multipathd[467]: sda: add missing path&lt;br /&gt;
 2024-05-27T12:33:29.140037+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140063+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140086+00:00 ubuntu2404 multipathd[467]: sda: no WWID in state &amp;quot;undef&lt;br /&gt;
 2024-05-27T12:33:29.140109+00:00 ubuntu2404 multipathd[467]: &amp;quot;, giving up&lt;br /&gt;
 2024-05-27T12:33:29.140181+00:00 ubuntu2404 multipathd[467]: sda: check_path() failed, removing&lt;br /&gt;
Unter Ubuntu 24.04/22.04 scheint es nicht mehr ganz so schlimm wie unter 20.04 - aber in einer VM macht Multipath keinen Sinn, also deaktivieren und deinstallieren um das Syslog von den Meldungen befreien:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl stop multipathd.service &amp;amp;&amp;amp; systemctl disable multipathd.service&lt;br /&gt;
 apt install kpartx libsgutils2-1.46-2 sg3-utils sg3-utils-udev&lt;br /&gt;
 apt remove -y multipath-tools &amp;amp;&amp;amp; apt purge -y multipath-tools&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakete werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Cloud-Init deinstallieren (Wenn es keine VM bei einem Cloudanbieter ist)===&lt;br /&gt;
Wenn Ihr die VM reboootet und die Console betrachtet tauchen kurz nach dem Reboot (Fehler-)Meldungen zum Cloud-init auf:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-163633.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Cloud-Init ist - wenn ich mich recht erinnere - dafür da falls eure VM z.B. bei Amazon AWS, Azure oder andere Anbieter läuft um z.B. die Netzwerkinformationen vom Hoster/Provider zu erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Brauchen wir nicht, also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &#039;datasource_list: [ None ]&#039; | tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg&lt;br /&gt;
 apt purge -y cloud-init&lt;br /&gt;
 rm -rf /etc/cloud/ &amp;amp;&amp;amp; sudo rm -rf /var/lib/cloud/&lt;br /&gt;
 apt install eatmydata libeatmydata1 python-babel-localedata python3-babel python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-tz -y&lt;br /&gt;
 reboot&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakte werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===OpenIPMI und IPMItool deinstallieren===&lt;br /&gt;
Bei meinen VMs schlägt der Start dieses Dienstes eh immer fehl (weil es keine passende Hardware gibt), also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove openipmi ipmitool -y &amp;amp;&amp;amp; apt purge openipmi ipmitool &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Unter Hyper-V wird das Paket scheinbar nicht automatisch installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Zeitzone setzen===&lt;br /&gt;
In meiner VM ist die Uhrzeit zu diesem Zeitpunkt falsch (gebt mal probeweise &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; ein) - weil der ESXi-Host auf UTC Zeit läuft und die Ubuntu in der VM die richtige Zeitzone nicht eingestellt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir korrigieren das mit&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl set-timezone Europe/Berlin&lt;br /&gt;
ein&lt;br /&gt;
 date&lt;br /&gt;
sollte dann die richtige Uhrzeit ausspucken.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Zeitserver setzen===&lt;br /&gt;
{{Hinweis| Wenn Ihr diesen Schritt überspringt, wird {{Key|ntp.ubuntu.com}} als Zeitserver verwendet}}&lt;br /&gt;
Für die Zeitsynchronisierung ist der Dienst &amp;lt;code&amp;gt;systemd-timesyncd.service&amp;lt;/code&amp;gt; zuständig, dieser wird über die Datei&lt;br /&gt;
 nano /etc/systemd/timesyncd.conf&lt;br /&gt;
konfiguriert:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source &amp;quot;lang=bash&amp;quot;&amp;gt;&lt;br /&gt;
#  This file is part of systemd.&lt;br /&gt;
#&lt;br /&gt;
#  systemd is free software; you can redistribute it and/or modify it under the&lt;br /&gt;
#  terms of the GNU Lesser General Public License as published by the Free&lt;br /&gt;
#  Software Foundation; either version 2.1 of the License, or (at your option)&lt;br /&gt;
#  any later version.&lt;br /&gt;
#&lt;br /&gt;
# Entries in this file show the compile time defaults. Local configuration&lt;br /&gt;
# should be created by either modifying this file (or a copy of it placed in&lt;br /&gt;
# /etc/ if the original file is shipped in /usr/), or by creating &amp;quot;drop-ins&amp;quot; in&lt;br /&gt;
# the /etc/systemd/timesyncd.conf.d/ directory. The latter is generally&lt;br /&gt;
# recommended. Defaults can be restored by simply deleting the main&lt;br /&gt;
# configuration file and all drop-ins located in /etc/.&lt;br /&gt;
#&lt;br /&gt;
# Use &#039;systemd-analyze cat-config systemd/timesyncd.conf&#039; to display the full config.&lt;br /&gt;
#&lt;br /&gt;
# See timesyncd.conf(5) for details.&lt;br /&gt;
&lt;br /&gt;
[Time]&lt;br /&gt;
NTP=192.168.1.81&lt;br /&gt;
FallbackNTP=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
RootDistanceMaxSec=30&lt;br /&gt;
#PollIntervalMinSec=32&lt;br /&gt;
#PollIntervalMaxSec=2048&lt;br /&gt;
#ConnectionRetrySec=30&lt;br /&gt;
#SaveIntervalSec=60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sowohl die Liste der &#039;&#039;&#039;NTP=&#039;&#039;&#039; als auch der &#039;&#039;&#039;FallbackNTP=&#039;&#039;&#039; erwartet eine per Leerzeichen getrennte Liste der möglichen Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Laut Anleitung hört der Dienst aber beim ersten Treffer auf zu suchen. In der Praxis setzt also einen NTP-Server und ggf. die Fallback. Setzt Ihr einen Wert nicht, lasst diesen also auskommentiert, so gilt der Default-Wert, beim Fallback gilt dann &amp;lt;code&amp;gt;FallbackNTP=ntp.ubuntu.com&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Änderung müsst Ihr den Dienst einmal neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart systemd-timesyncd.service&lt;br /&gt;
und mit folgenden Befehl könnt Ihr den Status abfragen:&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl show-timesync&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 LinkNTPServers=fd00::1eed:6fff:fe71:f1c0&lt;br /&gt;
 SystemNTPServers=192.168.1.81&lt;br /&gt;
 FallbackNTPServers=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
 ServerName=192.168.1.81&lt;br /&gt;
 ServerAddress=192.168.1.81&lt;br /&gt;
 RootDistanceMaxUSec=30s&lt;br /&gt;
 PollIntervalMinUSec=32s&lt;br /&gt;
 PollIntervalMaxUSec=34min 8s&lt;br /&gt;
 PollIntervalUSec=2min 8s&lt;br /&gt;
 NTPMessage={ Leap=0, Version=3, Mode=4, Stratum=3, Precision=-23, RootDelay=20.324ms, RootDispersion=28.579ms, Reference=C0A801C6, OriginateTimestamp=Tue 2024-06-04 08:22:24 CEST, &lt;br /&gt;
 ReceiveTimestamp=Tue 2024-06-04 08:22:24 CEST, TransmitTimestamp=Tue 2024-06-04 08:22:24 CEST, DestinationTimestamp=Tue 2024-06-04 08:22:24 CEST, Ignored=no, PacketCount=2, Jitter=239us }&lt;br /&gt;
 Frequency=1158037&lt;br /&gt;
Wenn die untere Zeile mit &amp;lt;code&amp;gt;NTPMessage=&amp;lt;/code&amp;gt; nicht erscheint, habt Ihr ein Problem!&amp;lt;br&amp;gt;&lt;br /&gt;
Mit&amp;lt;br&amp;gt;&lt;br /&gt;
 journalctl -fu systemd-timesyncd.service&lt;br /&gt;
könnte Ihr nach dem Grund suchen. Steht da etwas wie &#039;&#039;&#039;&#039;&#039;Server has to large root distance. Disconnecting&#039;&#039;&#039;&#039;&#039; und es gegen einen Domänencontroller geht so stellt sicher das&lt;br /&gt;
* Es der PDC ist&lt;br /&gt;
* Dieser sich auch selbst mit einer externen Quelle synchronisiert&lt;br /&gt;
* Stellt ggf. den Wert von &amp;lt;code&amp;gt;RootDistanceMaxUSec=30s&amp;lt;/code&amp;gt; noch höher.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatische Updates deaktivieren===&lt;br /&gt;
Ich persönlich möchte nicht das der Zabbix-Server automatisch Updates einspielt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates aktualisieren - soweit ich das beobachten konnte - nur den Kernel. Aber auch das möchte ich nicht. Ich möchte das geplant durchführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates verhindern wir mit&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove -y unattended-upgrades&lt;br /&gt;
Wer möchte kann auch die Suche nach Updates deaktivieren. Ansonsten schaut das Ubuntu täglich an einem zufälligen Zeitpunkt nach, ob es Updates gibt. Bei der Anmeldung per SSH erhält man dann eine entsprechende Meldung. Deaktivieren kann man die automatsche Suche danach per&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apt/apt.conf.d/20auto-upgrades&lt;br /&gt;
und in der Datei beide Optionen auf {{code|0}} setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
 APT::Periodic::Update-Package-Lists &amp;quot;0&amp;quot;;&lt;br /&gt;
 APT::Periodic::Unattended-Upgrade &amp;quot;0&amp;quot;;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatischen Neustart von Diensten bei Updates deaktivieren===&lt;br /&gt;
Wie schon zuvor beschrieben aktualisiere ich Ubuntu (und andere Software aus Repositorien wie Zabbix) gerne per folgenden Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
In neueren Versionen werden dabei Dienste ggf. automatische neu gestartet, es gibt dann eine Meldung wie diese:&lt;br /&gt;
 systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service&lt;br /&gt;
 &lt;br /&gt;
 Dienste deren Neustart verschoben wurde:&lt;br /&gt;
  systemctl restart ModemManager.service&lt;br /&gt;
  /etc/needrestart/restart.d/dbus.service&lt;br /&gt;
  systemctl restart getty@tty1.service&lt;br /&gt;
  systemctl restart systemd-logind.service&lt;br /&gt;
Im Normalfall ist es kein Problem. Allerdings scheinen die Abhängigkeiten der Dienste nicht beachtet zu werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Beispiel der Zabbix-Server Dienst ist abhängig von der Datenbank, das steht auch so in der &amp;lt;code&amp;gt;/usr/lib/systemd/system/zabbix-server.service&amp;lt;/code&amp;gt;:&lt;br /&gt;
 After=mysql.service&lt;br /&gt;
 After=mysqld.service&lt;br /&gt;
 After=mariadb.service&lt;br /&gt;
Der automatische Neustart startet aber z.B. MariaDB gnadenlos durch ohne vorher den Zabbix zu beenden. Dabei hängt sich das ganze gerne mal weg. Per {{Key|STRG} + {Key|C} kann man das abbrechen und rebooten, schön ist das aber nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Als Lösung schalte ich inzwischen den automatischen Neustart der Dienste ab, es wird dann nur eine Liste der Dienste ausgegeben die neu gestartet werden müssten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/needrestart/needrestart.conf&lt;br /&gt;
und dort ziemlich am Anfang:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.&lt;br /&gt;
#&lt;br /&gt;
# ATTENTION: If needrestart is configured to run in interactive mode but is run&lt;br /&gt;
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.&lt;br /&gt;
#&lt;br /&gt;
# UBUNTU: the default restart mode when running as part of the APT hook is &#039;a&#039;,&lt;br /&gt;
# unless a specific UI is configured (see below).&lt;br /&gt;
#$nrconf{restart} = &#039;i&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;, wie es auch in der obersten Zeile beschrieben wird:&lt;br /&gt;
 $nrconf{restart} = &#039;l&#039;;&lt;br /&gt;
So werden notwendige Neustarts nur aufgelistet.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15755</id>
		<title>Vorlage:Installation-Ubuntu-2404</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15755"/>
		<updated>2026-01-15T12:00:54Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Hyper-V */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Grundinstallation===&lt;br /&gt;
{{Hinweis| Ich habe die offizielle ISO verwendet: https://ubuntu.com/download/server }}&lt;br /&gt;
{{Hinweis| Ich installiere mit Absicht &#039;&#039;&#039;OHNE&#039;&#039;&#039; LVM. Ubuntu erstellt inzwischen keine eigene Partition für SWAP mehr und ohne LVM lässt sich der Festplattenplatz bei einer Installation als VM auf einfachste Weise im laufenden Betrieb erweitern. Natürlich ginge das auch mit LVM (mit mehr Schritten), ich sehe hier den Nutzen und Vorteil aber nicht.}}&lt;br /&gt;
CD einlegen und los,&amp;lt;br&amp;gt;&lt;br /&gt;
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-251210-111023.PNG|50px]] Try or Install Ubuntu Server&amp;lt;br&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140440.PNG|50px]] Deutsch&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-115808.PNG|50px]] German / German&amp;lt;br&amp;gt;&lt;br /&gt;
:Wenn er einen neueren Installer findet und fragt ob er auf diesen aktualisieren soll - Ja!&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Install_Ubuntu2204_Pic2.png|50px]] Ubuntu Server&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120131.PNG|50px]] Jetzt könnt Ihr schon die gewünschte feste IP-Adresse einstellen. Wählt dazu mit den Pfeiltasten den &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; Eintrag aus und drückt {{Key|Enter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152546.PNG|50px]] ens192 =&amp;gt; Bearbeite IPv4&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152642.PNG|50px]] Manuell&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152742.PNG|50px]] Bei Subnetz kommt nicht die Subnetzmaske sondern das Netzwerk mit Suffix. Bei einer 24 Maske (= 255.255.255.0) ist das die IP 0 mit Suffix /24&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-153302.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120259.PNG|50px]] Bei Bedarf, sonst leer lassen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120335.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120400.PNG|50px]] Nutzt die ganze Festplatte ohne LVM (also Haken entfernen). Die Festplatte lässt sich später trotzdem leicht vergrößern&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120443.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120505.PNG|50px]] Fortfahren&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120827.PNG|50px]] Den Servernamen festlegen. Ich lege hier den Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; an. Wählt euren Benutzer und Passwort nach Wunsch (Aufschreiben!)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140937.PNG|50px]] Falls Ihr Ubuntu Pro habt, könnet Ihr es hier aktiveren, ansonsten einfach {{Key|[Fortfahren]}}&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141106.PNG|50px]] OpenSSH-Server auswählen =&amp;gt; Erledigt (für Zugriff z.B. mit Putty)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141137.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
Ab jetzt heißt es abwarten. Wenn er kann lädt er gleich ein paar Sicherheitsupdates nach:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-121943.PNG|50px]] Jetzt neustarten&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122036.PNG|50px]] ISO aus der VM entfernen und {{Key|Enter}} drücken&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122152.PNG|50px]] Nach dem Reboot wartet ab bis diverse Meldungen abgelaufen sind&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PuTTY===&lt;br /&gt;
Ab dieser Stelle könnt Ihr PuTTY oder den SSH Client eurer Wahl nutzen - was ich dringend empfehle. Denn dann könnt Ihr hier vorgeschlagenen Befehle einfach per Copy&amp;amp;Paste übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die IP-Adresse habt Ihr zu diesem Zeitpunkt ja bereits festgelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-155245.PNG|150px]] [[Datei:ClipCapIt-200521-155339.PNG|150px]] [[Datei:ClipCapIt-200521-160706.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Anmeldung nutze ich immer gerne ein&lt;br /&gt;
 sudo -i&lt;br /&gt;
Damit wechselt man dauerhaft zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und muss nicht vor jedem Befehl ein &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; stellen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===root wieder freischalten===&lt;br /&gt;
{{Hinweis| Ob nun wie ich immer als root arbeiten wollt oder aber als einfacher Benutzer und dann immer &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; verwendet müsst Ihr selbst wissen}}&lt;br /&gt;
* Mit Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; anmelden&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
* Kennwort des Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
 passwd root&lt;br /&gt;
* neues Kennwort für &amp;quot;root&amp;quot; 2x eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161108.PNG|150px]]&lt;br /&gt;
* Lokal Anmelden kann man sich nun mit &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
* Damit diese auch funktioniert müsst ihr die &amp;lt;code&amp;gt;sshd_config&amp;lt;/code&amp;gt; bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
sucht nach der Zeile ({{Key|STRG}} + {{Key|W}} ist Suchen) nach&lt;br /&gt;
 #PermitRootLogin without-password&lt;br /&gt;
und stellt den Cursor in die Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt nun einmal {{Key|F9}} und 2x {{Key|F10}} - damit erstellt Ihr eine Kopie der Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert die Kopie wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161435.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Speichert die Datei ({{Key|STRG}} + {{Key|x}}, dann {{Key|y}} und {{Key|Enter}}) und startet den ssh Dienst neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart ssh.service&lt;br /&gt;
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über &#039;&#039;&#039;puTTY&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt 2x&amp;lt;br&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
eintippen wodurch sich das PuTTY Fenster schließt - der (eingeschränkte) Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; hat sich somit abgemeldet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ja, ich persönlich arbeite gerne als root und habe diesen für die Anmeldung freigeschaltet. Was ich nicht mache ist das Login per SSH mit Passwort zu erlauben. Ich hinterlege also immer einen SSH-Key für die Anmeldung und nutze diesen statt des Kennwortes. Die Lösung hier ist einfach gehalten, der Profi mögen anpassen wie er es braucht. Ein Anmeldung als eingeschränkter Benutzer geht natürlich auch, das erste was ich dann immer mache ist ein &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt; um dauerhaft zum root zu wechseln}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Anmelden als root===&lt;br /&gt;
Startet PuTTY wieder und meldet euch diesmal gleich als Benutzer &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; an.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===nano &amp;amp; Co auf Deutsch===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;nano&#039;&#039;&#039;&#039;&#039; war eben z.B. noch auf Englisch, mit&lt;br /&gt;
 apt install -y language-pack-de&lt;br /&gt;
ist es (und vieles andere) auf deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===root farbiger Prompt===&lt;br /&gt;
Als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; anmelden:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
Zeile 39 ({{Key|Alt}} + {{Key|C}} aktiviert Zeilennummernanzeige):&amp;lt;br&amp;gt;&lt;br /&gt;
 #force_color_prompt=yes&lt;br /&gt;
ändern zu (# entfernen):&amp;lt;br&amp;gt;&lt;br /&gt;
 force_color_prompt=yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162422.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wer den sofort haben will (ohne neu Anmelden):&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
----&lt;br /&gt;
===Bash History aus mehreren Sitzungen gleichzeitig===&lt;br /&gt;
Wenn man mehr als eine SSH Sitzung zum Zabbix-Server hat, gewinnt in der Bash-Histoy die Sitzung von der man sich zuletzt abmeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgende Änderung sorgt dafür das sich alle Sitzungen eine Bash-History teilen, was ich in Session 1 also aufrufe lässt sich sofort danach in Session 2 per Pfeil nach oben oder {{key|STRG}} + {{key|R}} Suche finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu bearbeiten man noch einmal die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
und hängt ganz unten folgendes an:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# don&#039;t put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;
# ... or force ignoredups and ignorespace&lt;br /&gt;
HISTCONTROL=ignoredups:ignorespace:erasedups&lt;br /&gt;
&lt;br /&gt;
# append to the history file, don&#039;t overwrite it&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&lt;br /&gt;
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)&lt;br /&gt;
HISTSIZE=50000&lt;br /&gt;
HISTFILESIZE=50000&lt;br /&gt;
&lt;br /&gt;
# After each command, append to the history file&lt;br /&gt;
#  and reread it&lt;br /&gt;
export PROMPT_COMMAND=&amp;quot;${PROMPT_COMMAND:+$PROMPT_COMMAND$&#039;n&#039;}history -a; history -c; history -r&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit es sofort aktiv wird wieder&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
Ja, {{code|HISTSIZE}} und {{code|HISTFILESIZE}} stehen nun 2x in der Datei, der letzte Eintrag gewinnt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Feste IP-Adresse vergeben===&lt;br /&gt;
Der Server hat dank des neuen Setupdialoges nun bereits eine feste IP-Adresse.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr an dieser etwas ändern müssen so müssen wir erst das Cloud-Init deaktivieren: &lt;br /&gt;
 nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg&lt;br /&gt;
Inhalt:&lt;br /&gt;
 network: {config: disabled}&lt;br /&gt;
Dann könnte Ihr in der folgenden Datei etwas ändern, die Warnungen das es einen reboot nicht übersteht könnt Ihr ignorieren, dafür haben wir die andere Datei angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162802.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Weiter unten deinstalliere ich Cloud-Init komplett (wenn die VM nicht bei einem Hoster läuft), da könnte man sich diesen Schritt hier sparen}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Updates einspielen===&lt;br /&gt;
* wieder anmelden als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; bzw. zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; wechseln&lt;br /&gt;
* Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)&lt;br /&gt;
 apt update&lt;br /&gt;
* Updates einspielen:&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
* Nach Update überflüssige Pakete entfernen:&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich mache das normalerweise immer als Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===VM Integrationsdienste installieren===&lt;br /&gt;
Wenn euer Zabbix-Server eine VM, eine &#039;&#039;&#039;V&#039;&#039;&#039;irtuelle &#039;&#039;&#039;M&#039;&#039;&#039;aschine, ist, solltest Ihr je nach verwendeten Hypervisor die passenden Integrationsdienste installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====VMware====&lt;br /&gt;
Unter VMware braucht ihr nichts tun, die&lt;br /&gt;
 apt install open-vm-tools&lt;br /&gt;
sind per Default installiert und aktiv. Ist es keine VMware VM, so könnt Ihr die Tools per&lt;br /&gt;
 apt remove open-vm-tools&lt;br /&gt;
entfernen&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====Hyper-V====&lt;br /&gt;
In den Einstellungen der VM solltet Ihr hier den Haken setzen:&lt;br /&gt;
:[[Datei:ClipCapIt-250527-112648.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der VM die folgende Datei bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/initramfs-tools/modules&lt;br /&gt;
und ganz unten die folgenden 4 Zeilen anhängen:&amp;lt;br&amp;gt;&lt;br /&gt;
 hv_vmbus&lt;br /&gt;
 hv_storvsc&lt;br /&gt;
 hv_blkvsc&lt;br /&gt;
 hv_netvsc&lt;br /&gt;
Und dann die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
und neu starten:&lt;br /&gt;
 reboot&lt;br /&gt;
Quelle: https://community.veeam.com/blogs-and-podcasts-57/how-to-install-hyper-v-integration-services-in-the-ubuntu-linux-vm-6353&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Proxmox PVE====&lt;br /&gt;
In den Einstellungen der VM den Agenten aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250527-113037.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann in der VM die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install qemu-guest-agent&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Multipathing deinstallieren (wenn der Server eine VM ist)===&lt;br /&gt;
Ab Werk wird nun das&lt;br /&gt;
 /var/log/syslog&lt;br /&gt;
mit Multipath-Meldungen vollgemüllt:&amp;lt;br&amp;gt;&lt;br /&gt;
 2024-05-27T12:32:47.571374+00:00 ubuntu2404 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.&lt;br /&gt;
 2024-05-27T12:32:47.592304+00:00 ubuntu2404 kernel: systemd[1]: Listening on multipathd.socket - multipathd control socket.&lt;br /&gt;
 2024-05-27T12:32:47.592385+00:00 ubuntu2404 kernel: systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...&lt;br /&gt;
 2024-05-27T12:32:48.141146+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:48.141212+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:48.141278+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:32:57.634912+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:32:57.667862+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:57.667930+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:57.667959+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:07.637080+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:07.676773+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:33:07.676839+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:07.676865+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:17.641466+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:17.709843+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709915+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709942+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:17.709969+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:28.134951+00:00 ubuntu2404 multipathd[467]: sda: not initialized after 3 udev retriggers&lt;br /&gt;
 2024-05-27T12:33:29.139933+00:00 ubuntu2404 multipathd[467]: sda: add missing path&lt;br /&gt;
 2024-05-27T12:33:29.140037+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140063+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140086+00:00 ubuntu2404 multipathd[467]: sda: no WWID in state &amp;quot;undef&lt;br /&gt;
 2024-05-27T12:33:29.140109+00:00 ubuntu2404 multipathd[467]: &amp;quot;, giving up&lt;br /&gt;
 2024-05-27T12:33:29.140181+00:00 ubuntu2404 multipathd[467]: sda: check_path() failed, removing&lt;br /&gt;
Unter Ubuntu 24.04/22.04 scheint es nicht mehr ganz so schlimm wie unter 20.04 - aber in einer VM macht Multipath keinen Sinn, also deaktivieren und deinstallieren um das Syslog von den Meldungen befreien:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl stop multipathd.service &amp;amp;&amp;amp; systemctl disable multipathd.service&lt;br /&gt;
 apt install kpartx libsgutils2-1.46-2 sg3-utils sg3-utils-udev&lt;br /&gt;
 apt remove -y multipath-tools &amp;amp;&amp;amp; apt purge -y multipath-tools&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakete werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Cloud-Init deinstallieren (Wenn es keine VM bei einem Cloudanbieter ist)===&lt;br /&gt;
Wenn Ihr die VM reboootet und die Console betrachtet tauchen kurz nach dem Reboot (Fehler-)Meldungen zum Cloud-init auf:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-163633.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Cloud-Init ist - wenn ich mich recht erinnere - dafür da falls eure VM z.B. bei Amazon AWS, Azure oder andere Anbieter läuft um z.B. die Netzwerkinformationen vom Hoster/Provider zu erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Brauchen wir nicht, also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &#039;datasource_list: [ None ]&#039; | tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg&lt;br /&gt;
 apt purge -y cloud-init&lt;br /&gt;
 rm -rf /etc/cloud/ &amp;amp;&amp;amp; sudo rm -rf /var/lib/cloud/&lt;br /&gt;
 apt install eatmydata libeatmydata1 python-babel-localedata python3-babel python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-tz -y&lt;br /&gt;
 reboot&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakte werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===OpenIPMI und IPMItool deinstallieren===&lt;br /&gt;
Bei meinen VMs schlägt der Start dieses Dienstes eh immer fehl (weil es keine passende Hardware gibt), also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove openipmi ipmitool -y &amp;amp;&amp;amp; apt purge openipmi ipmitool &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Unter Hyper-V wird das Paket scheinbar nicht automatisch installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Zeitzone setzen===&lt;br /&gt;
In meiner VM ist die Uhrzeit zu diesem Zeitpunkt falsch (gebt mal probeweise &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; ein) - weil der ESXi-Host auf UTC Zeit läuft und die Ubuntu in der VM die richtige Zeitzone nicht eingestellt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir korrigieren das mit&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl set-timezone Europe/Berlin&lt;br /&gt;
ein&lt;br /&gt;
 date&lt;br /&gt;
sollte dann die richtige Uhrzeit ausspucken.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Zeitserver setzen===&lt;br /&gt;
{{Hinweis| Wenn Ihr diesen Schritt überspringt, wird {{Key|ntp.ubuntu.com}} als Zeitserver verwendet}}&lt;br /&gt;
Für die Zeitsynchronisierung ist der Dienst &amp;lt;code&amp;gt;systemd-timesyncd.service&amp;lt;/code&amp;gt; zuständig, dieser wird über die Datei&lt;br /&gt;
 nano /etc/systemd/timesyncd.conf&lt;br /&gt;
konfiguriert:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source &amp;quot;lang=bash&amp;quot;&amp;gt;&lt;br /&gt;
#  This file is part of systemd.&lt;br /&gt;
#&lt;br /&gt;
#  systemd is free software; you can redistribute it and/or modify it under the&lt;br /&gt;
#  terms of the GNU Lesser General Public License as published by the Free&lt;br /&gt;
#  Software Foundation; either version 2.1 of the License, or (at your option)&lt;br /&gt;
#  any later version.&lt;br /&gt;
#&lt;br /&gt;
# Entries in this file show the compile time defaults. Local configuration&lt;br /&gt;
# should be created by either modifying this file (or a copy of it placed in&lt;br /&gt;
# /etc/ if the original file is shipped in /usr/), or by creating &amp;quot;drop-ins&amp;quot; in&lt;br /&gt;
# the /etc/systemd/timesyncd.conf.d/ directory. The latter is generally&lt;br /&gt;
# recommended. Defaults can be restored by simply deleting the main&lt;br /&gt;
# configuration file and all drop-ins located in /etc/.&lt;br /&gt;
#&lt;br /&gt;
# Use &#039;systemd-analyze cat-config systemd/timesyncd.conf&#039; to display the full config.&lt;br /&gt;
#&lt;br /&gt;
# See timesyncd.conf(5) for details.&lt;br /&gt;
&lt;br /&gt;
[Time]&lt;br /&gt;
NTP=192.168.1.81&lt;br /&gt;
FallbackNTP=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
RootDistanceMaxSec=30&lt;br /&gt;
#PollIntervalMinSec=32&lt;br /&gt;
#PollIntervalMaxSec=2048&lt;br /&gt;
#ConnectionRetrySec=30&lt;br /&gt;
#SaveIntervalSec=60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sowohl die Liste der &#039;&#039;&#039;NTP=&#039;&#039;&#039; als auch der &#039;&#039;&#039;FallbackNTP=&#039;&#039;&#039; erwartet eine per Leerzeichen getrennte Liste der möglichen Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Laut Anleitung hört der Dienst aber beim ersten Treffer auf zu suchen. In der Praxis setzt also einen NTP-Server und ggf. die Fallback. Setzt Ihr einen Wert nicht, lasst diesen also auskommentiert, so gilt der Default-Wert, beim Fallback gilt dann &amp;lt;code&amp;gt;FallbackNTP=ntp.ubuntu.com&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Änderung müsst Ihr den Dienst einmal neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart systemd-timesyncd.service&lt;br /&gt;
und mit folgenden Befehl könnt Ihr den Status abfragen:&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl show-timesync&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 LinkNTPServers=fd00::1eed:6fff:fe71:f1c0&lt;br /&gt;
 SystemNTPServers=192.168.1.81&lt;br /&gt;
 FallbackNTPServers=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
 ServerName=192.168.1.81&lt;br /&gt;
 ServerAddress=192.168.1.81&lt;br /&gt;
 RootDistanceMaxUSec=30s&lt;br /&gt;
 PollIntervalMinUSec=32s&lt;br /&gt;
 PollIntervalMaxUSec=34min 8s&lt;br /&gt;
 PollIntervalUSec=2min 8s&lt;br /&gt;
 NTPMessage={ Leap=0, Version=3, Mode=4, Stratum=3, Precision=-23, RootDelay=20.324ms, RootDispersion=28.579ms, Reference=C0A801C6, OriginateTimestamp=Tue 2024-06-04 08:22:24 CEST, &lt;br /&gt;
 ReceiveTimestamp=Tue 2024-06-04 08:22:24 CEST, TransmitTimestamp=Tue 2024-06-04 08:22:24 CEST, DestinationTimestamp=Tue 2024-06-04 08:22:24 CEST, Ignored=no, PacketCount=2, Jitter=239us }&lt;br /&gt;
 Frequency=1158037&lt;br /&gt;
Wenn die untere Zeile mit &amp;lt;code&amp;gt;NTPMessage=&amp;lt;/code&amp;gt; nicht erscheint, habt Ihr ein Problem!&amp;lt;br&amp;gt;&lt;br /&gt;
Mit&amp;lt;br&amp;gt;&lt;br /&gt;
 journalctl -fu systemd-timesyncd.service&lt;br /&gt;
könnte Ihr nach dem Grund suchen. Steht da etwas wie &#039;&#039;&#039;&#039;&#039;Server has to large root distance. Disconnecting&#039;&#039;&#039;&#039;&#039; und es gegen einen Domänencontroller geht so stellt sicher das&lt;br /&gt;
* Es der PDC ist&lt;br /&gt;
* Dieser sich auch selbst mit einer externen Quelle synchronisiert&lt;br /&gt;
* Stellt ggf. den Wert von &amp;lt;code&amp;gt;RootDistanceMaxUSec=30s&amp;lt;/code&amp;gt; noch höher.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatische Updates deaktivieren===&lt;br /&gt;
Ich persönlich möchte nicht das der Zabbix-Server automatisch Updates einspielt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates aktualisieren - soweit ich das beobachten konnte - nur den Kernel. Aber auch das möchte ich nicht. Ich möchte das geplant durchführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates verhindern wir mit&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove -y unattended-upgrades&lt;br /&gt;
Wer möchte kann auch die Suche nach Updates deaktivieren. Ansonsten schaut das Ubuntu täglich an einem zufälligen Zeitpunkt noch, ob es Updates gibt. Bei der Anmeldung per SSH erhält man dann eine entsprechende Meldung. Deaktivieren kann man die automatsche Suche danach per&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apt/apt.conf.d/20auto-upgrades&lt;br /&gt;
und in der Datei beide Optionen auf {{code|0}} setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
 APT::Periodic::Update-Package-Lists &amp;quot;0&amp;quot;;&lt;br /&gt;
 APT::Periodic::Unattended-Upgrade &amp;quot;0&amp;quot;;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatischen Neustart von Diensten bei Updates deaktivieren===&lt;br /&gt;
Wie schon zuvor beschrieben aktualisiere ich Ubuntu (und andere Software aus Repositorien wie Zabbix) gerne per folgenden Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
In neueren Versionen werden dabei Dienste ggf. automatische neu gestartet, es gibt dann eine Meldung wie diese:&lt;br /&gt;
 systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service&lt;br /&gt;
 &lt;br /&gt;
 Dienste deren Neustart verschoben wurde:&lt;br /&gt;
  systemctl restart ModemManager.service&lt;br /&gt;
  /etc/needrestart/restart.d/dbus.service&lt;br /&gt;
  systemctl restart getty@tty1.service&lt;br /&gt;
  systemctl restart systemd-logind.service&lt;br /&gt;
Im Normalfall ist es kein Problem. Allerdings scheinen die Abhängigkeiten der Dienste nicht beachtet zu werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Beispiel der Zabbix-Server Dienst ist abhängig von der Datenbank, das steht auch so in der &amp;lt;code&amp;gt;/usr/lib/systemd/system/zabbix-server.service&amp;lt;/code&amp;gt;:&lt;br /&gt;
 After=mysql.service&lt;br /&gt;
 After=mysqld.service&lt;br /&gt;
 After=mariadb.service&lt;br /&gt;
Der automatische Neustart startet aber z.B. MariaDB gnadenlos durch ohne vorher den Zabbix zu beenden. Dabei hängt sich das ganze gerne mal weg. Per {{Key|STRG} + {Key|C} kann man das abbrechen und rebooten, schön ist das aber nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Als Lösung schalte ich inzwischen den automatischen Neustart der Dienste ab, es wird dann nur eine Liste der Dienste ausgegeben die neu gestartet werden müssten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/needrestart/needrestart.conf&lt;br /&gt;
und dort ziemlich am Anfang:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.&lt;br /&gt;
#&lt;br /&gt;
# ATTENTION: If needrestart is configured to run in interactive mode but is run&lt;br /&gt;
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.&lt;br /&gt;
#&lt;br /&gt;
# UBUNTU: the default restart mode when running as part of the APT hook is &#039;a&#039;,&lt;br /&gt;
# unless a specific UI is configured (see below).&lt;br /&gt;
#$nrconf{restart} = &#039;i&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;, wie es auch in der obersten Zeile beschrieben wird:&lt;br /&gt;
 $nrconf{restart} = &#039;l&#039;;&lt;br /&gt;
So werden notwendige Neustarts nur aufgelistet.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15754</id>
		<title>Vorlage:Installation-Ubuntu-2404</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Vorlage:Installation-Ubuntu-2404&amp;diff=15754"/>
		<updated>2026-01-15T11:58:46Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Automatische Updates deaktivieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Grundinstallation===&lt;br /&gt;
{{Hinweis| Ich habe die offizielle ISO verwendet: https://ubuntu.com/download/server }}&lt;br /&gt;
{{Hinweis| Ich installiere mit Absicht &#039;&#039;&#039;OHNE&#039;&#039;&#039; LVM. Ubuntu erstellt inzwischen keine eigene Partition für SWAP mehr und ohne LVM lässt sich der Festplattenplatz bei einer Installation als VM auf einfachste Weise im laufenden Betrieb erweitern. Natürlich ginge das auch mit LVM (mit mehr Schritten), ich sehe hier den Nutzen und Vorteil aber nicht.}}&lt;br /&gt;
CD einlegen und los,&amp;lt;br&amp;gt;&lt;br /&gt;
die Fragen beantwortet Ihr wie folgt (sind ggf. die Überschriften der Dialoge):&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-251210-111023.PNG|50px]] Try or Install Ubuntu Server&amp;lt;br&amp;gt;]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140440.PNG|50px]] Deutsch&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-115808.PNG|50px]] German / German&amp;lt;br&amp;gt;&lt;br /&gt;
:Wenn er einen neueren Installer findet und fragt ob er auf diesen aktualisieren soll - Ja!&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:Install_Ubuntu2204_Pic2.png|50px]] Ubuntu Server&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120131.PNG|50px]] Jetzt könnt Ihr schon die gewünschte feste IP-Adresse einstellen. Wählt dazu mit den Pfeiltasten den &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; Eintrag aus und drückt {{Key|Enter}}:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152546.PNG|50px]] ens192 =&amp;gt; Bearbeite IPv4&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152642.PNG|50px]] Manuell&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-152742.PNG|50px]] Bei Subnetz kommt nicht die Subnetzmaske sondern das Netzwerk mit Suffix. Bei einer 24 Maske (= 255.255.255.0) ist das die IP 0 mit Suffix /24&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-153302.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120259.PNG|50px]] Bei Bedarf, sonst leer lassen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120335.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120400.PNG|50px]] Nutzt die ganze Festplatte ohne LVM (also Haken entfernen). Die Festplatte lässt sich später trotzdem leicht vergrößern&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120443.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120505.PNG|50px]] Fortfahren&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-120827.PNG|50px]] Den Servernamen festlegen. Ich lege hier den Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; an. Wählt euren Benutzer und Passwort nach Wunsch (Aufschreiben!)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-140937.PNG|50px]] Falls Ihr Ubuntu Pro habt, könnet Ihr es hier aktiveren, ansonsten einfach {{Key|[Fortfahren]}}&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141106.PNG|50px]] OpenSSH-Server auswählen =&amp;gt; Erledigt (für Zugriff z.B. mit Putty)&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240527-141137.PNG|50px]] Erledigt&amp;lt;br&amp;gt;&lt;br /&gt;
Ab jetzt heißt es abwarten. Wenn er kann lädt er gleich ein paar Sicherheitsupdates nach:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-121943.PNG|50px]] Jetzt neustarten&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122036.PNG|50px]] ISO aus der VM entfernen und {{Key|Enter}} drücken&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-220427-122152.PNG|50px]] Nach dem Reboot wartet ab bis diverse Meldungen abgelaufen sind&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PuTTY===&lt;br /&gt;
Ab dieser Stelle könnt Ihr PuTTY oder den SSH Client eurer Wahl nutzen - was ich dringend empfehle. Denn dann könnt Ihr hier vorgeschlagenen Befehle einfach per Copy&amp;amp;Paste übernehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die IP-Adresse habt Ihr zu diesem Zeitpunkt ja bereits festgelegt:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-155245.PNG|150px]] [[Datei:ClipCapIt-200521-155339.PNG|150px]] [[Datei:ClipCapIt-200521-160706.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Anmeldung nutze ich immer gerne ein&lt;br /&gt;
 sudo -i&lt;br /&gt;
Damit wechselt man dauerhaft zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; Benutzer und muss nicht vor jedem Befehl ein &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; stellen.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===root wieder freischalten===&lt;br /&gt;
{{Hinweis| Ob nun wie ich immer als root arbeiten wollt oder aber als einfacher Benutzer und dann immer &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; verwendet müsst Ihr selbst wissen}}&lt;br /&gt;
* Mit Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; anmelden&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo -i&lt;br /&gt;
* Kennwort des Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
 passwd root&lt;br /&gt;
* neues Kennwort für &amp;quot;root&amp;quot; 2x eintippen&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161108.PNG|150px]]&lt;br /&gt;
* Lokal Anmelden kann man sich nun mit &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; - aber eine Anmeldung über SSH funktioniert dann immer noch nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
* Damit diese auch funktioniert müsst ihr die &amp;lt;code&amp;gt;sshd_config&amp;lt;/code&amp;gt; bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
sucht nach der Zeile ({{Key|STRG}} + {{Key|W}} ist Suchen) nach&lt;br /&gt;
 #PermitRootLogin without-password&lt;br /&gt;
und stellt den Cursor in die Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Drückt nun einmal {{Key|F9}} und 2x {{Key|F10}} - damit erstellt Ihr eine Kopie der Zeile.&amp;lt;br&amp;gt;&lt;br /&gt;
Ändert die Kopie wie folgt ab:&amp;lt;br&amp;gt;&lt;br /&gt;
 PermitRootLogin yes&lt;br /&gt;
:[[Datei:ClipCapIt-200521-161435.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Speichert die Datei ({{Key|STRG}} + {{Key|x}}, dann {{Key|y}} und {{Key|Enter}}) und startet den ssh Dienst neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart ssh.service&lt;br /&gt;
Ab dann klappt es auch mit dem SSH-Login für den Benutzer root, z.B. über &#039;&#039;&#039;puTTY&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt 2x&amp;lt;br&amp;gt;&lt;br /&gt;
 exit&lt;br /&gt;
eintippen wodurch sich das PuTTY Fenster schließt - der (eingeschränkte) Benutzer &#039;&#039;&#039;&#039;&#039;installadmin&#039;&#039;&#039;&#039;&#039; hat sich somit abgemeldet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ja, ich persönlich arbeite gerne als root und habe diesen für die Anmeldung freigeschaltet. Was ich nicht mache ist das Login per SSH mit Passwort zu erlauben. Ich hinterlege also immer einen SSH-Key für die Anmeldung und nutze diesen statt des Kennwortes. Die Lösung hier ist einfach gehalten, der Profi mögen anpassen wie er es braucht. Ein Anmeldung als eingeschränkter Benutzer geht natürlich auch, das erste was ich dann immer mache ist ein &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt; um dauerhaft zum root zu wechseln}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Anmelden als root===&lt;br /&gt;
Startet PuTTY wieder und meldet euch diesmal gleich als Benutzer &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; an.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===nano &amp;amp; Co auf Deutsch===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;nano&#039;&#039;&#039;&#039;&#039; war eben z.B. noch auf Englisch, mit&lt;br /&gt;
 apt install -y language-pack-de&lt;br /&gt;
ist es (und vieles andere) auf deutsch.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===root farbiger Prompt===&lt;br /&gt;
Als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; anmelden:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
Zeile 39 ({{Key|Alt}} + {{Key|C}} aktiviert Zeilennummernanzeige):&amp;lt;br&amp;gt;&lt;br /&gt;
 #force_color_prompt=yes&lt;br /&gt;
ändern zu (# entfernen):&amp;lt;br&amp;gt;&lt;br /&gt;
 force_color_prompt=yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
nun wieder Abmelden - ab der nächsten Anmeldung ist der neue Prompt aktiv.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162422.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Wer den sofort haben will (ohne neu Anmelden):&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
----&lt;br /&gt;
===Bash History aus mehreren Sitzungen gleichzeitig===&lt;br /&gt;
Wenn man mehr als eine SSH Sitzung zum Zabbix-Server hat, gewinnt in der Bash-Histoy die Sitzung von der man sich zuletzt abmeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachfolgende Änderung sorgt dafür das sich alle Sitzungen eine Bash-History teilen, was ich in Session 1 also aufrufe lässt sich sofort danach in Session 2 per Pfeil nach oben oder {{key|STRG}} + {{key|R}} Suche finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu bearbeiten man noch einmal die&amp;lt;br&amp;gt;&lt;br /&gt;
 nano ~/.bashrc&lt;br /&gt;
und hängt ganz unten folgendes an:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# don&#039;t put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;
# ... or force ignoredups and ignorespace&lt;br /&gt;
HISTCONTROL=ignoredups:ignorespace:erasedups&lt;br /&gt;
&lt;br /&gt;
# append to the history file, don&#039;t overwrite it&lt;br /&gt;
shopt -s histappend&lt;br /&gt;
&lt;br /&gt;
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)&lt;br /&gt;
HISTSIZE=50000&lt;br /&gt;
HISTFILESIZE=50000&lt;br /&gt;
&lt;br /&gt;
# After each command, append to the history file&lt;br /&gt;
#  and reread it&lt;br /&gt;
export PROMPT_COMMAND=&amp;quot;${PROMPT_COMMAND:+$PROMPT_COMMAND$&#039;n&#039;}history -a; history -c; history -r&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Damit es sofort aktiv wird wieder&amp;lt;br&amp;gt;&lt;br /&gt;
 source ~/.bashrc&lt;br /&gt;
Ja, {{code|HISTSIZE}} und {{code|HISTFILESIZE}} stehen nun 2x in der Datei, der letzte Eintrag gewinnt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Feste IP-Adresse vergeben===&lt;br /&gt;
Der Server hat dank des neuen Setupdialoges nun bereits eine feste IP-Adresse.&amp;lt;br&amp;gt;&lt;br /&gt;
Solltet Ihr an dieser etwas ändern müssen so müssen wir erst das Cloud-Init deaktivieren: &lt;br /&gt;
 nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg&lt;br /&gt;
Inhalt:&lt;br /&gt;
 network: {config: disabled}&lt;br /&gt;
Dann könnte Ihr in der folgenden Datei etwas ändern, die Warnungen das es einen reboot nicht übersteht könnt Ihr ignorieren, dafür haben wir die andere Datei angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
:[[Datei:ClipCapIt-200521-162802.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis| Weiter unten deinstalliere ich Cloud-Init komplett (wenn die VM nicht bei einem Hoster läuft), da könnte man sich diesen Schritt hier sparen}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Updates einspielen===&lt;br /&gt;
* wieder anmelden als &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; bzw. zum &#039;&#039;&#039;&#039;&#039;root&#039;&#039;&#039;&#039;&#039; wechseln&lt;br /&gt;
* Updates suchen für Betriebssystem: (aktualisiert den Katalog aus den Update-Quellen)&lt;br /&gt;
 apt update&lt;br /&gt;
* Updates einspielen:&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
* Nach Update überflüssige Pakete entfernen:&lt;br /&gt;
 apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ich mache das normalerweise immer als Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===VM Integrationsdienste installieren===&lt;br /&gt;
Wenn euer Zabbix-Server eine VM, eine &#039;&#039;&#039;V&#039;&#039;&#039;irtuelle &#039;&#039;&#039;M&#039;&#039;&#039;aschine, ist, solltest Ihr je nach verwendeten Hypervisor die passenden Integrationsdienste installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====VMware====&lt;br /&gt;
Unter VMware braucht ihr nichts tun, die&lt;br /&gt;
 apt install open-vm-tools&lt;br /&gt;
sind per Default installiert und aktiv. Ist es keine VMware VM, so könnt Ihr die Tools per&lt;br /&gt;
 apt remove open-vm-tools&lt;br /&gt;
entfernen&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
====Hyper-V====&lt;br /&gt;
In den Einstellungen der VM solltet Ihr hier den Haken setzen:&lt;br /&gt;
:[[Datei:ClipCapIt-250527-112648.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
In der VM die folgende Datei bearbeiten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/initramfs-tools/modules&lt;br /&gt;
und ganz unten die folgenden 4 Zeilen anhängen:&amp;lt;br&amp;gt;&lt;br /&gt;
 hv_vmbus&lt;br /&gt;
 hv_storvsc&lt;br /&gt;
 hv_blkvsc&lt;br /&gt;
 hv_netvsc&lt;br /&gt;
Und dann die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual&lt;br /&gt;
 update-initramfs -u&lt;br /&gt;
 reboot&lt;br /&gt;
Quelle: https://community.veeam.com/blogs-and-podcasts-57/how-to-install-hyper-v-integration-services-in-the-ubuntu-linux-vm-6353&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Proxmox PVE====&lt;br /&gt;
In den Einstellungen der VM den Agenten aktivieren:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250527-113037.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und dann in der VM die Tools installieren:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt -y install qemu-guest-agent&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Multipathing deinstallieren (wenn der Server eine VM ist)===&lt;br /&gt;
Ab Werk wird nun das&lt;br /&gt;
 /var/log/syslog&lt;br /&gt;
mit Multipath-Meldungen vollgemüllt:&amp;lt;br&amp;gt;&lt;br /&gt;
 2024-05-27T12:32:47.571374+00:00 ubuntu2404 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.&lt;br /&gt;
 2024-05-27T12:32:47.592304+00:00 ubuntu2404 kernel: systemd[1]: Listening on multipathd.socket - multipathd control socket.&lt;br /&gt;
 2024-05-27T12:32:47.592385+00:00 ubuntu2404 kernel: systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...&lt;br /&gt;
 2024-05-27T12:32:48.141146+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:48.141212+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:48.141278+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:32:57.634912+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:32:57.667862+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:32:57.667930+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:32:57.667959+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:07.637080+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:07.676773+00:00 ubuntu2404 multipathd[467]: sda: failed to get udev uid: No data available&lt;br /&gt;
 2024-05-27T12:33:07.676839+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:07.676865+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:17.641466+00:00 ubuntu2404 multipathd[467]: sda: triggering change event to reinitialize&lt;br /&gt;
 2024-05-27T12:33:17.709843+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709915+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:17.709942+00:00 ubuntu2404 multipathd[467]: sda: failed to get path uid&lt;br /&gt;
 2024-05-27T12:33:17.709969+00:00 ubuntu2404 multipathd[467]: uevent trigger error&lt;br /&gt;
 2024-05-27T12:33:28.134951+00:00 ubuntu2404 multipathd[467]: sda: not initialized after 3 udev retriggers&lt;br /&gt;
 2024-05-27T12:33:29.139933+00:00 ubuntu2404 multipathd[467]: sda: add missing path&lt;br /&gt;
 2024-05-27T12:33:29.140037+00:00 ubuntu2404 multipathd[467]: sda: failed to get sysfs uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140063+00:00 ubuntu2404 multipathd[467]: sda: failed to get sgio uid: No such file or directory&lt;br /&gt;
 2024-05-27T12:33:29.140086+00:00 ubuntu2404 multipathd[467]: sda: no WWID in state &amp;quot;undef&lt;br /&gt;
 2024-05-27T12:33:29.140109+00:00 ubuntu2404 multipathd[467]: &amp;quot;, giving up&lt;br /&gt;
 2024-05-27T12:33:29.140181+00:00 ubuntu2404 multipathd[467]: sda: check_path() failed, removing&lt;br /&gt;
Unter Ubuntu 24.04/22.04 scheint es nicht mehr ganz so schlimm wie unter 20.04 - aber in einer VM macht Multipath keinen Sinn, also deaktivieren und deinstallieren um das Syslog von den Meldungen befreien:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl stop multipathd.service &amp;amp;&amp;amp; systemctl disable multipathd.service&lt;br /&gt;
 apt install kpartx libsgutils2-1.46-2 sg3-utils sg3-utils-udev&lt;br /&gt;
 apt remove -y multipath-tools &amp;amp;&amp;amp; apt purge -y multipath-tools&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakete werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Cloud-Init deinstallieren (Wenn es keine VM bei einem Cloudanbieter ist)===&lt;br /&gt;
Wenn Ihr die VM reboootet und die Console betrachtet tauchen kurz nach dem Reboot (Fehler-)Meldungen zum Cloud-init auf:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200521-163633.PNG|150px]]&amp;lt;br&amp;gt;&lt;br /&gt;
Das Cloud-Init ist - wenn ich mich recht erinnere - dafür da falls eure VM z.B. bei Amazon AWS, Azure oder andere Anbieter läuft um z.B. die Netzwerkinformationen vom Hoster/Provider zu erhalten.&amp;lt;br&amp;gt;&lt;br /&gt;
Brauchen wir nicht, also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &#039;datasource_list: [ None ]&#039; | tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg&lt;br /&gt;
 apt purge -y cloud-init&lt;br /&gt;
 rm -rf /etc/cloud/ &amp;amp;&amp;amp; sudo rm -rf /var/lib/cloud/&lt;br /&gt;
 apt install eatmydata libeatmydata1 python-babel-localedata python3-babel python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-tz -y&lt;br /&gt;
 reboot&lt;br /&gt;
Die &amp;lt;code&amp;gt;apt install&amp;lt;/code&amp;gt; Zeile ist da drin weil diese Pakete ggf. von anderen Anleitung vorausgesetzt werden. Die Pakte werden dadurch auf &#039;&#039;&#039;&#039;&#039;manuell installiert&#039;&#039;&#039;&#039;&#039; gesetzt und dann nicht bei einem &amp;lt;code&amp;gt;apt autoremove&amp;lt;/code&amp;gt; deinstalliert&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===OpenIPMI und IPMItool deinstallieren===&lt;br /&gt;
Bei meinen VMs schlägt der Start dieses Dienstes eh immer fehl (weil es keine passende Hardware gibt), also weg damit:&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove openipmi ipmitool -y &amp;amp;&amp;amp; apt purge openipmi ipmitool &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
Unter Hyper-V wird das Paket scheinbar nicht automatisch installiert.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Zeitzone setzen===&lt;br /&gt;
In meiner VM ist die Uhrzeit zu diesem Zeitpunkt falsch (gebt mal probeweise &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; ein) - weil der ESXi-Host auf UTC Zeit läuft und die Ubuntu in der VM die richtige Zeitzone nicht eingestellt hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir korrigieren das mit&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl set-timezone Europe/Berlin&lt;br /&gt;
ein&lt;br /&gt;
 date&lt;br /&gt;
sollte dann die richtige Uhrzeit ausspucken.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Zeitserver setzen===&lt;br /&gt;
{{Hinweis| Wenn Ihr diesen Schritt überspringt, wird {{Key|ntp.ubuntu.com}} als Zeitserver verwendet}}&lt;br /&gt;
Für die Zeitsynchronisierung ist der Dienst &amp;lt;code&amp;gt;systemd-timesyncd.service&amp;lt;/code&amp;gt; zuständig, dieser wird über die Datei&lt;br /&gt;
 nano /etc/systemd/timesyncd.conf&lt;br /&gt;
konfiguriert:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source &amp;quot;lang=bash&amp;quot;&amp;gt;&lt;br /&gt;
#  This file is part of systemd.&lt;br /&gt;
#&lt;br /&gt;
#  systemd is free software; you can redistribute it and/or modify it under the&lt;br /&gt;
#  terms of the GNU Lesser General Public License as published by the Free&lt;br /&gt;
#  Software Foundation; either version 2.1 of the License, or (at your option)&lt;br /&gt;
#  any later version.&lt;br /&gt;
#&lt;br /&gt;
# Entries in this file show the compile time defaults. Local configuration&lt;br /&gt;
# should be created by either modifying this file (or a copy of it placed in&lt;br /&gt;
# /etc/ if the original file is shipped in /usr/), or by creating &amp;quot;drop-ins&amp;quot; in&lt;br /&gt;
# the /etc/systemd/timesyncd.conf.d/ directory. The latter is generally&lt;br /&gt;
# recommended. Defaults can be restored by simply deleting the main&lt;br /&gt;
# configuration file and all drop-ins located in /etc/.&lt;br /&gt;
#&lt;br /&gt;
# Use &#039;systemd-analyze cat-config systemd/timesyncd.conf&#039; to display the full config.&lt;br /&gt;
#&lt;br /&gt;
# See timesyncd.conf(5) for details.&lt;br /&gt;
&lt;br /&gt;
[Time]&lt;br /&gt;
NTP=192.168.1.81&lt;br /&gt;
FallbackNTP=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
RootDistanceMaxSec=30&lt;br /&gt;
#PollIntervalMinSec=32&lt;br /&gt;
#PollIntervalMaxSec=2048&lt;br /&gt;
#ConnectionRetrySec=30&lt;br /&gt;
#SaveIntervalSec=60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sowohl die Liste der &#039;&#039;&#039;NTP=&#039;&#039;&#039; als auch der &#039;&#039;&#039;FallbackNTP=&#039;&#039;&#039; erwartet eine per Leerzeichen getrennte Liste der möglichen Server.&amp;lt;br&amp;gt;&lt;br /&gt;
Laut Anleitung hört der Dienst aber beim ersten Treffer auf zu suchen. In der Praxis setzt also einen NTP-Server und ggf. die Fallback. Setzt Ihr einen Wert nicht, lasst diesen also auskommentiert, so gilt der Default-Wert, beim Fallback gilt dann &amp;lt;code&amp;gt;FallbackNTP=ntp.ubuntu.com&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Nach der Änderung müsst Ihr den Dienst einmal neu starten:&amp;lt;br&amp;gt;&lt;br /&gt;
 systemctl restart systemd-timesyncd.service&lt;br /&gt;
und mit folgenden Befehl könnt Ihr den Status abfragen:&amp;lt;br&amp;gt;&lt;br /&gt;
 timedatectl show-timesync&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 LinkNTPServers=fd00::1eed:6fff:fe71:f1c0&lt;br /&gt;
 SystemNTPServers=192.168.1.81&lt;br /&gt;
 FallbackNTPServers=192.168.1.198 de.pool.ntp.org&lt;br /&gt;
 ServerName=192.168.1.81&lt;br /&gt;
 ServerAddress=192.168.1.81&lt;br /&gt;
 RootDistanceMaxUSec=30s&lt;br /&gt;
 PollIntervalMinUSec=32s&lt;br /&gt;
 PollIntervalMaxUSec=34min 8s&lt;br /&gt;
 PollIntervalUSec=2min 8s&lt;br /&gt;
 NTPMessage={ Leap=0, Version=3, Mode=4, Stratum=3, Precision=-23, RootDelay=20.324ms, RootDispersion=28.579ms, Reference=C0A801C6, OriginateTimestamp=Tue 2024-06-04 08:22:24 CEST, &lt;br /&gt;
 ReceiveTimestamp=Tue 2024-06-04 08:22:24 CEST, TransmitTimestamp=Tue 2024-06-04 08:22:24 CEST, DestinationTimestamp=Tue 2024-06-04 08:22:24 CEST, Ignored=no, PacketCount=2, Jitter=239us }&lt;br /&gt;
 Frequency=1158037&lt;br /&gt;
Wenn die untere Zeile mit &amp;lt;code&amp;gt;NTPMessage=&amp;lt;/code&amp;gt; nicht erscheint, habt Ihr ein Problem!&amp;lt;br&amp;gt;&lt;br /&gt;
Mit&amp;lt;br&amp;gt;&lt;br /&gt;
 journalctl -fu systemd-timesyncd.service&lt;br /&gt;
könnte Ihr nach dem Grund suchen. Steht da etwas wie &#039;&#039;&#039;&#039;&#039;Server has to large root distance. Disconnecting&#039;&#039;&#039;&#039;&#039; und es gegen einen Domänencontroller geht so stellt sicher das&lt;br /&gt;
* Es der PDC ist&lt;br /&gt;
* Dieser sich auch selbst mit einer externen Quelle synchronisiert&lt;br /&gt;
* Stellt ggf. den Wert von &amp;lt;code&amp;gt;RootDistanceMaxUSec=30s&amp;lt;/code&amp;gt; noch höher.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatische Updates deaktivieren===&lt;br /&gt;
Ich persönlich möchte nicht das der Zabbix-Server automatisch Updates einspielt.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates aktualisieren - soweit ich das beobachten konnte - nur den Kernel. Aber auch das möchte ich nicht. Ich möchte das geplant durchführen.&amp;lt;br&amp;gt;&lt;br /&gt;
Die automatischen Updates verhindern wir mit&amp;lt;br&amp;gt;&lt;br /&gt;
 apt remove -y unattended-upgrades&lt;br /&gt;
Wer möchte kann auch die Suche nach Updates deaktivieren. Ansonsten schaut das Ubuntu täglich an einem zufälligen Zeitpunkt noch, ob es Updates gibt. Bei der Anmeldung per SSH erhält man dann eine entsprechende Meldung. Deaktivieren kann man die automatsche Suche danach per&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/apt/apt.conf.d/20auto-upgrades&lt;br /&gt;
und in der Datei beide Optionen auf {{code|0}} setzen:&amp;lt;br&amp;gt;&lt;br /&gt;
 APT::Periodic::Update-Package-Lists &amp;quot;0&amp;quot;;&lt;br /&gt;
 APT::Periodic::Unattended-Upgrade &amp;quot;0&amp;quot;;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Automatischen Neustart von Diensten bei Updates deaktivieren===&lt;br /&gt;
Wie schon zuvor beschrieben aktualisiere ich Ubuntu (und andere Software aus Repositorien wie Zabbix) gerne per folgenden Einzeiler:&lt;br /&gt;
 apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt autoremove -y&lt;br /&gt;
In neueren Versionen werden dabei Dienste ggf. automatische neu gestartet, es gibt dann eine Meldung wie diese:&lt;br /&gt;
 systemctl restart apache2.service cron.service fwupd.service mariadb.service open-vm-tools.service packagekit.service polkit.service rsyslog.service snmptrapd.service snmptt.service udisks2.service upower.service vgauth.service zabbix-agent2.service zabbix-web-service.service&lt;br /&gt;
 &lt;br /&gt;
 Dienste deren Neustart verschoben wurde:&lt;br /&gt;
  systemctl restart ModemManager.service&lt;br /&gt;
  /etc/needrestart/restart.d/dbus.service&lt;br /&gt;
  systemctl restart getty@tty1.service&lt;br /&gt;
  systemctl restart systemd-logind.service&lt;br /&gt;
Im Normalfall ist es kein Problem. Allerdings scheinen die Abhängigkeiten der Dienste nicht beachtet zu werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Beispiel der Zabbix-Server Dienst ist abhängig von der Datenbank, das steht auch so in der &amp;lt;code&amp;gt;/usr/lib/systemd/system/zabbix-server.service&amp;lt;/code&amp;gt;:&lt;br /&gt;
 After=mysql.service&lt;br /&gt;
 After=mysqld.service&lt;br /&gt;
 After=mariadb.service&lt;br /&gt;
Der automatische Neustart startet aber z.B. MariaDB gnadenlos durch ohne vorher den Zabbix zu beenden. Dabei hängt sich das ganze gerne mal weg. Per {{Key|STRG} + {Key|C} kann man das abbrechen und rebooten, schön ist das aber nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Als Lösung schalte ich inzwischen den automatischen Neustart der Dienste ab, es wird dann nur eine Liste der Dienste ausgegeben die neu gestartet werden müssten:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/needrestart/needrestart.conf&lt;br /&gt;
und dort ziemlich am Anfang:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.&lt;br /&gt;
#&lt;br /&gt;
# ATTENTION: If needrestart is configured to run in interactive mode but is run&lt;br /&gt;
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.&lt;br /&gt;
#&lt;br /&gt;
# UBUNTU: the default restart mode when running as part of the APT hook is &#039;a&#039;,&lt;br /&gt;
# unless a specific UI is configured (see below).&lt;br /&gt;
#$nrconf{restart} = &#039;i&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Bei der letzten Zeile entfernen wir das Kommentarzeichen davor und machen aus dem &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;, wie es auch in der obersten Zeile beschrieben wird:&lt;br /&gt;
 $nrconf{restart} = &#039;l&#039;;&lt;br /&gt;
So werden notwendige Neustarts nur aufgelistet.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Hauptseite&amp;diff=15753</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Hauptseite&amp;diff=15753"/>
		<updated>2026-01-15T11:49:37Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOCACHE__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_row2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_orange&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Letzte Meldungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;01.12.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Geo-Blocking von Ländern:&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist der 1. eines Monats und da bekomme ich immer die Auswertung von Matomo - das ist das Tool mit dem ich die Zugriffe auf meine Webseite auswerte. Normalerweise sind das so um die 5 bis 10.000 Besucher im Monat, während Corona waren es auch mal 20.000 (Der Artikel über Guacamole RDP war äußerst beliebt).&amp;lt;br&amp;gt;&lt;br /&gt;
In November waren es dann 167.000 eindeutige Besucher ... ok, hier stimmt etwas nicht. Ein Blick auf den Webserver - jupp der brummt für znil.net ordentlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Blicke ins Log zeigen aber das zum einen - wie üblich - die ein oder andere Suchmaschine wieder mal die ganze Webseite abgrast. Das ist aber sonst auch so.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber es gibt auch jede Menge Versuche, die Webseite zu hacken. Mit vergeblichen Aufrufen für Wordpress-Installationen, aber auch gezielt Mediwiki. Eine IP aus Polen die zufällig gerade stark aktiv war, habe ich dann von Hand gesperrt. Und mir die anderen Einträge mit solchen versuchen angeschaut.&amp;lt;br&amp;gt;&lt;br /&gt;
Tja, es sind ja eigentlich Klischees, aber China und Russland sind jetzt geblockt für diese Webseite. Die beiden Länder waren für 90% der fehlgeschlagenen Einträge verantwortlich,&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;09.06.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Lang vor mir hergeschoben - aber nun ist meine Webseite hier endlich auf der neuen MediaWiki LTS Version 1.43 welche dann bis Dezember 2027 Updates erhalten wird. Die bisherige Version 1.39 wäre im November diesen Jahres ausgelaufen.&amp;lt;br&amp;gt;&lt;br /&gt;
Probleme gab es diesmal überraschend wenig:&amp;lt;br&amp;gt;&lt;br /&gt;
* Die 2 Faktor-Authentifizierung in 1.43 hat einen Upgrade-Fehler, man muss manuell einmal das SQL-Skript für das Anlegen der Tabelleneinträge ausführen und die {{code|update.php}} noch mal starten. Dann klappte die Anmeldung mit dem bisherigen Token&lt;br /&gt;
* Mein Skin {{code|Pivot}} funktionierte nicht mehr, es musste die aktuelle Version sein. Zudem musste ich den Namen im Skin-Verzeichnis von {{code|pivot}} auf {{code|Pivot}} ändern, also mit Großschreibung. Sonst fehlten die Symbole bei den Menüs etc.&lt;br /&gt;
* Die Kommentarfunktion &amp;lt;strike&amp;gt;zickt noch, ich habe die aktuelle Version der Erweiterung einfach als Extension geladen. Die Darstellung funktioniert, es fehlen noch die Felder die es anonymen Benutzern erlaubte einen gewählten Namen anzugeben. Zudem Kann man als nicht angemeldeter Benutzer noch gar keine Kommentare anlegen (gibt eine Fehlermeldung). Ich habe da in der Vergangenheit immer eigene Anpassungen gemacht, die muss ich gleich noch einarbeiten.&amp;lt;/strike&amp;gt; funktioniert jetzt auch wieder&lt;br /&gt;
Am besten gefällt mir aber, das die Erweiterung {{code|ClipUpload}} immer noch funktioniert. Die Erweiterung erlaubt es, in der Code-Ansicht beim Editieren einen Screenshot aus der Zwischenablage einfach per {{key|STRG}} + {{key|V}} einzufügen, ohne Nachfragen, direkter Upload und Einfügen des Dateinamens. Das normale Vorgehen will 1.001 Frage beantwortet haben (Lizenz, Name usw) und dauert mir beim dem Erstellen von Anleitungen viel zu lange.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;24.04.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Webseite ist umgezogen - und läuft nun &amp;quot;im Homeoffice&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Wie immer unter Ubuntu - die aktuelle 24.04 LTS Version, mit Apache2 Webserver und MariaDB Datenbank. Mal schauen ob 500MBit/s an Upload reichen :-)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;Und die Seite ist - endlich - auch wieder über IPv6 zu erreichen.&amp;lt;/strike&amp;gt; Sollte gehen, geht aber nicht. Ausgehend kein Problem, aber die Portweiterleitung der FRITZ!Box zickt scheinbar rum&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe hier noch einen 2. Linux Rechner mit IPv4, dieser lässt sich trotz identischer Einstellungen von außen pingen. Mal sehen ob ich herausbekomme woran das liegt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Update:&#039;&#039;&#039;&amp;lt;/u&amp;gt; Schön wenn man ein anderes System zum vergleichen hat. Es fehlte schlicht in der Netzwerkkonfiguration das IPv6 Gateway.&amp;lt;br&amp;gt;&lt;br /&gt;
Warum auch immer der ausgehende IPv6 Traffic trotzdem funktioniert hatte ...&amp;lt;br&amp;gt;&lt;br /&gt;
Also: Die Seite ist - endlich - auch wieder über IPv6 zu erreichen!&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;12.03.2025&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Umzug der Webseite im April!&amp;lt;br&amp;gt;&lt;br /&gt;
Mein bestehender Glasfaseranschluss der Telekom wird Anfang April zu einem Geschäftskundenanschluss geändert (Business Glasfaser Pro 1000), mit fester IP-Adresse (IPv4 und IPv6).&amp;lt;br&amp;gt;&lt;br /&gt;
Der Upload beträgt dann 500MBit - das ist zwar nur halb so schnell wie es angeblich zur Zeit ist (laut IONOS 1GBit/s), aber so viele Aufrufe hat meine Webseite nicht (abgesehen von sporadischen Hacking versuchen).&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde die Webseite dann von zu Hause hosten. In dem Zuge werde ich das Mediawiki dann auch auf die letzte LTS-Version bringen, im Moment läuft es noch auf der LTS-Version &#039;&#039;&#039;1.39.x&#039;&#039;&#039; die noch bis November 2025 unterstützt wird, aktuell wäre &#039;&#039;&#039;1.43.x&#039;&#039;&#039; welches bis November 2027 unterstützt wird. Meine Sorgenkinder bei Upgrades sind immer die &amp;quot;Paste from Clipboard&amp;quot; Funktion um Screenshots schnell in Artikel einzufügen und die Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich dann aber ja voll Kontrolle über den Server habe, wird es dann einfach mit Backups und Snapshots.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Moment bereite ich das Netzwerk und die Firewall dafür vor - ich bin ein großer Freund von Reverse Proxy, Geo-IP-Blocking und Let&#039;s Encrypt Zertifikaten, im Zweifel alles 3 zusammen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde über den Stand dann an dieser Stelle berichten.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;18.12.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard schlägt IPSec!&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe fast den ganzen gestrigen Tag damit verbracht, die VPN-Verbindung zwischen meiner FRITZ!Box und meinem Mietserver von IPSec auf WireGuard umzustellen.&amp;lt;br&amp;gt;&lt;br /&gt;
Den Tunnel aufzubauen hatte schon nach ein paar Minuten geklappt, leider hat die FRITZ!Box aber hartnäckig ein NAT über den Tunnel gemacht. Konnte ich Lösen und habe eine Anleitung dafür geschrieben: [[FritzBox - Site to Site VPN zu pfSense mit WireGuard ohne Tunnel NAT]]&amp;lt;br&amp;gt;&lt;br /&gt;
Gemacht habe ich das ganze ich das weil ich mir eine besser Performance erhofft hatte. Und erste Tests mit {{code|iperf3}} zeigten einen um 40% höher Datendurchsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Heute Nacht lief nun das erste Backup (eine Veeam Replikation) über WireGuard statt IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
Vorher mit IPSec:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112649.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Nun mit WireGuard:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-241218-112719.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
2h25m schneller! Bei sogar 1GByte mehr Daten. und von den 1h45m sind eine Stunde alleine die &#039;&#039;&#039;Retention Policy&#039;&#039;&#039;, also das löschen und zusammenführen alter Snapshots am Ziel.&amp;lt;br&amp;gt;&lt;br /&gt;
Fazit: hat sich gelohnt!&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;29.09.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich konnte mich endlich auch mal etwas mehr mit Proxmox beschäftigen (und wie gut Veeam es schon unterstützt).&amp;lt;br&amp;gt;&lt;br /&gt;
Zunächst auf einen Mini-PC der 200Euro Klasse (Intel N95 Prozessor, 16GB RAM, 512GB SSD, 2 x LAN) mit dem ich etwas herumgespielt habe, inklusive der Migration einer VMware-VM dorthin. Um die Live-Migration zu testen habe ich mir dann noch einen 2. Mini-PC gekauft. Und hatte dann eine steile Lernkurve (Datenträger müssen auf alles System gleich sein - und ZFS formatiert sein), inklusive einer kompletten Migration da ich beide Nodes noch mal neu mit ZFS installieren musste.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ich das später auch wieder hinbekommen, gibt es nun links einen neuen Bereich Proxmox unter welchen ich dann wie immer sammle was ich interessant fand bzw. wie ich mein System eingerichtet habe.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.07.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Kommentarfunktion braucht ein paar Anpassungen an das aktuelle PHP8.3&amp;lt;br&amp;gt;&lt;br /&gt;
Da kommen zwar nur Warnungen, aber die erscheinen halt ständig im Log. Es gibt auf GitHub bereits eine angepasste Version (leider ohne angepasste Versionsnummer), die arbeitet aber mit meiner &amp;quot;alten&amp;quot; Mediawiki-Version 1.39 nicht zusammen. Das ist aber nun mal die aktuelle LTS-Version und die neue ist noch nicht erschienen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt muss ich also entweder mit den Warnungen leben, diese Seite auf dem älteren PHP8.1 laufen lassen, eine Kurzzeit-Mediawiki-Version mit nur einem Jahr Support einsetzen oder die Kommentarfunktion dauerhaft abschalten. Ich habe mich noch nicht entschieden.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze eine von mir angepasste Version von https://www.mediawiki.org/wiki/Extension:Comments die ich immer dahingehend ändere das auch anonyme Kommentare möglich sind (mit freier Angabe eines Names oder Email-Adresse). Zudem ist eine - mini - AntiSPAM Funktion eingebaut und ich erhalte immer sofort eine Email über einen neuen Kommentar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das habe ich mir gut Dokumentiert, ist trotzdem ein Sonntagnachmittag Arbeit das jedes mal einzupflegen.&amp;lt;br&amp;gt;Nur um mich dann per Kommentar beschimpfen zu lassen wenn da jemanden etwas nicht passt ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe mal die Kommentarfunktion meiner Seite deaktiviert, da gab es heute wohl einen Angriff wo versuchte wurde diese als Lücke zu missbrauchen. Laut Logs hat das nicht geklappt, aber so habe ich den Angriff ins leere laufen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 09:45Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist 2024 ... und ich bekomme IPv6 an meinem neuen Server nicht zum laufen. Offensichtlich wird es nicht durchgelassen. Jedenfalls kommt kein IPv6 Datenverkehr an meinem Server an.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;23.06.2024 00:55Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net läuft nun auf einem neuen virtuellen Server bei IONOS. Nach 2 Tagen war der alte zwar migriert. Aber der neue - die technischen Daten sind identisch - kostet nur 4 statt 5 Euro im Monat. Und ich konnte so parallel gleich auf Ubuntu 24.04 LTS + PHP8.3 umziehen.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt geht es ins Bett, morgen muss ich noch genauer prüfen ob noch alles funktioniert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:44Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
So, telefonisch konnte ich ein Ticket eröffnen. Nein, das ist nicht normal, die VM hätte schon längst wieder laufen sollen. Es wird jetzt geschaut was bei meiner VM hakt.&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 13:02Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-240620-130053.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so so, 20 Minuten. Die Meldung habe ich im Portal gefunden, wenn ich versuche auf &#039;&#039;&#039;&#039;&#039;Server &amp;amp; Cloud&#039;&#039;&#039;&#039;&#039; zu zugreifen werde ich immer noch sofort abgemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich suche gerade wo ich dort ein Ticket eröffnen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
&#039;&#039;&#039;20.06.2024 09:35Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Na IONOS, das klappt ja scheinbar toll. Statt &amp;quot;kurzer Unterbrechung&amp;quot; sind es nun schon fast 20h Ausfall, laut deren Status Webseite https://www.ionos-status.de/ läuft alles Störungsfrei, das Portal für die Cloud-Server Verwaltung ist immer noch komplett abgeschaltet (zumindest für mich).&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.06.2024 20:23Uhr&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Heute seit 15:00 Uhr stellt IONOS meinen vServer um auf dem diese Webseite läuft. Das sollte angeblich nicht lange dauern.&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt, 5h später, ist mein Server immer noch nicht erreichbar.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Webportal von IONOS zur Verwaltung meines vServers ist auch komplett abgeschaltet - man wird sogar sofort ausgeloggt wenn man auf den betreffenden Menüpunkt geht.&amp;lt;br&amp;gt;&lt;br /&gt;
Genügend Gelegenheit einmal mein Backup zu testen.&amp;lt;br&amp;gt;&lt;br /&gt;
So konnte ich meine Webseite mit Stand gestern, 22:00 Uhr wiederherstellen. Die Webseite läuft im Moment auf meinen Heimserver. Der hat zwar genügend Dampf, mein Internetanschluß von Kabel Deutschland hat aber leider nur 50MBit Upload.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber besser als nichts, zur Not kann ich die Seite auch noch auf einen anderen Server mit 250Mbit Upload umziehen, aber das hier war jetzt schneller und einfacher.&amp;lt;br&amp;gt;&lt;br /&gt;
Und es wäre schön wenn der Originalserver doch noch wieder hoch kommt, ich habe heute noch diverses im Wiki geschrieben/korrigiert.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.06.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich bin endlich dazu gekommen eine aktuelle Anleitung für Ubuntu 24.04 und Zabbix 6 / Zabbix 7 zu schreiben: [[Zabbix Server + Agent unter Ubuntu 24.04 LTS installieren]]&amp;lt;br&amp;gt;&lt;br /&gt;
Es waren nicht so viele Änderungen wie befürchtet. Schlecht ist aber schon mal das ich bisher keine aus Zabbix 6 exportierten Templates in Zabbix 7 importiert bekommen habe, das muss ich mir noch mal genauer anschauen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein jetziger Zabbix 6.0 LTS Server stammt von von meinen allerersten Zabbix-Server 2.2 ab, dieser wurde immer wieder geupgradet. Nun möchte ich mal einen Neuanfang machen, auch um jede menge Altlasten los zu werden, z.B. habe meine Items noch alle eine Server-Node Id, allen Item-Ids ist also eine &amp;lt;code&amp;gt;42042000000&amp;lt;/code&amp;gt; vorangestellt, das werde ich sonst nie los.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;27.05.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net ist nun nur noch über IPv4 zu erreichen. Grund ist das IONOS die virtuelle Maschine auf welcher diese Webseite läuft, migriert und dabei neue IPv6 Adressen zuweisen wird. Dei IPv4 soll unverändert erhalten bleiben.&amp;lt;br&amp;gt;Scheinbar wird dabei auch der darunterliegende Hypervisor geändert. Bisher ist meine VM eine VMware vSphere-VM, mal sehen was es danach ist.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2024&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Und die Extension &amp;quot;ClipUpload&amp;quot; funktioniert nun doch. Nachdem ich bei einem Kunden die Extension [https://www.mediawiki.org/wiki/Extension:MsUpload MsUpload] gesehen hatte - mit der kann man einfach per Drag&amp;amp;Drop viele Dateien/Bilder in einem Rutsch hochladen - hatte ich diese bei mir installiert. Die Extension funktioniert aber nur in Verbindung mit dem [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor]. Der ist &amp;quot;ab Werk&amp;quot; dabei, ich hatte den aber deaktiviert weil ich diesen nicht gebraucht habe. Der WikiEditor erscheint in dem von mir bevorzugten Quelltext-Editor. Und in diesem / mit diesem funktioniert mein heiß geliebtes und Innig geliebtes &amp;quot;ClipUpload&amp;quot;. Mit dieser Erweiterung kann ich Screenshots (aus der Zwischenablage) im Quelltext-Editor einfach per {{Key|STRG}} + {{Key|V}} einfügen - ohne nervige Nachfragen etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.02.2023&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das MediaWiki-System auf dem diese Webseite basiert wurde von der LTS-Version 1.35.9 auf die neue LTS-Version 1.39.1 aktualisiert. Wie immer gab es Probleme mit einigen Erweiterungen. Bei den meisten reichte die für MediaWiki 1.39.x passende Version zu installieren. Die Kommentarfunktion musste ich wieder nach meinen Ansprüchen anpassen - was relativ schnell ging da ich beim letzten mal ordentlich dokumentiert hatte - so musste ich nur in der alten Version nach meinen Kommentaren suchen und die Abschnitte entsprechend in der neuen Version ändern.&amp;lt;br&amp;gt;&lt;br /&gt;
Leider - &#039;&#039;&#039;LEIDER&#039;&#039;&#039; - ist die Extension &amp;quot;ClipUpload&amp;quot; nun auf der Strecke geblieben, beim letzten mal konnte man die noch mit Codeänderungen zum laufen bringen. Die Erweiterung erlaubte es per {{Key|STRTG}} + {{Key|V}} einfach Bilder in das Mediawiki einzufügen. Es wird auf [https://www.mediawiki.org/wiki/Extension:SimpleBatchUpload simple-batch-upload] verwiesen ... mhh, nicht wirklich das selbe.&amp;lt;br&amp;gt;&lt;br /&gt;
Als nächstes steht dann das Upgrade auf 22.04 LTS + PHP8 an.&amp;lt;br&amp;gt;&lt;br /&gt;
Nachtrag: Es gibt einen &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Extension:VisualEditor VisualEditor]&#039;&#039;&#039; der ab Werk bei MediaWiki dabei ist (keine Ahnung seit welcher Version), der kann das auch. In Umständlich. Titel, Beschreibung usw. muss alles über Dialoge angegeben werden anstatt das Bild einfach sofort hochzuladen (ich weis schon was ich tue).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;10.10.2022&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Zabbix Summit 2022 in Riga: [https://www.meinekleinefarm.net Marco Hofmann] hat einen Vortrag darüber gehalten wie man unter Windows den Zabbix Agenten auf hunderten von Systemen und verschiedenen Kundenumgebungen synchron hält. Das erwähne ich weil er dazu unter anderem auch Werkzeuge von mir einsetzt - eine Abwandlung meiner [[Zabbix Agent für Windows per Skript automatisch installieren Musterdatei|InstallZabbixAgent.bat]] und das Tool für [[Agent Auto Updater|automatische Updates des Agenten]].&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Hofmann-1200x628px.png|400px|link=https://www.meinekleinefarm.net/zabbix-summit-2022-in-riga-keeping-hundreds-of-windows-zabbix-agents-in-sync-across-different-customers/]]&amp;lt;br&amp;gt;&lt;br /&gt;
Seinen Vortrag findet ihr hier auf Youtube: https://youtu.be/IQQwTEtwl7M?t=19987 &amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.10.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Mediwiki dieser Seite ist nun auf Version 1.35.4. Und ich müsste mal daran gehen wieder eine Kommentar-Übersichtsseite zu programmieren ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;06.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das waren jetzt fast 4h Arbeit - aber die Kommentarfunktion funktioniert wieder wie vorher.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Extension basiert wieder auf dem aktuellen Original: https://www.mediawiki.org/wiki/Extension:Comments und wurde wieder nach meinen Bedürfnissen angepasst.&amp;lt;br&amp;gt;&lt;br /&gt;
Unter anderem war in der aktuellen Version der Datenbank gar kein Feld mehr für den Namen/Email-Adresse vorgesehen, das habe ich wieder nachgerüstet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die meiste Zeit habe ich damit verbracht die Stelle in den ganzen PHP-Skripten zu finden an der die eigentliche Datenbankabfrage durchgeführt wird.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;05.05.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Großes Update der Webseite!&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Upgrade auf die Mediawiki LTS Version 1.35.2&lt;br /&gt;
* Umzug von Ubuntu 18.04 LTS auf 20.04 LTS&lt;br /&gt;
* Umzug von MySQL auf MariaDB&lt;br /&gt;
* Umzug von PHP 7.2 auf 7.4.3&lt;br /&gt;
* Umzug auf V-Server M von IONOS&lt;br /&gt;
* Seite ist nun über IPv4 und IPv6 erreichbar!&lt;br /&gt;
Hat im ganzen ganz gut geklappt. Auf der Strecke sind 2 Erweiterungen geblieben: Die Anzeige der zuletzt geänderten Artikel sowie eine selbst programmierte Seite welche mir alle Kommentare auf einer Seite angezeigt hatte.&amp;lt;br&amp;gt;&lt;br /&gt;
Auch die Schaltfläche die auf jeder Seite unten rechts zum Hochscrollen war fehlt noch.&amp;lt;br&amp;gt;&lt;br /&gt;
Ganz hervorragend am &#039;&#039;&#039;IONOS V Server&#039;&#039;&#039; gefällt mir das es eine VM unter VMware ist, die Firewall davor in der man selbst Port für Port freischalten muss - und das ich die mit dem &#039;&#039;&#039;&#039;&#039;Veeam Agent for Linux&#039;&#039;&#039;&#039;&#039; einfach sichern kann. Und die Büchse ist angenehm schnell, mit 300Mbit angebunden und kostet nur 5 Euro im Monat.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nachtrag:&#039;&#039;&#039; Die Kommentarfunktion funktioniert ... aber der Refresh nachdem man senden gedrückt hat sieht komisch aus. {{Key|F5}} behebt das, mal sehen ob ich da was ändern kann. Das ist eine Extension die ich so angepasst habe das man auch ohne Anmeldung mit einem Namen etwas posten kann und das mir eine Email gesendet wird wenn es einen Kommentar gibt. Es gibt eine neuere Version davon die ich dann allerdings auch wieder neu anpassen muss.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;31.01.2021&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich habe einen neuen Artikel zum Thema GeoIP-Blocking mit Apache2 veröffentlicht: [[Apache2 Ubuntu 24.04 22.04 20.04 GeoIP Blocking einrichten]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und das ganze auch gleich als Gelegenheit genutzt bei meinen diversen Subdomänen das ganze umzusetzen. Meine Seafile- oder mein Zabbix-Server müssen z.B. nur aus Deutschland erreichbar sein.&amp;lt;br&amp;gt;[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;30.12.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Eigentlich wollte ich diesen Webserver mal auf Ubuntu 20.04 LTS aktualiseren ... aber das hat per &amp;lt;code&amp;gt;do-release-upgrade&amp;lt;/code&amp;gt; im Gegensatz zu meinen anderen VMs nicht geklappt. MediaWiki 1.3 mag irgendwie PHP 7.4 auch nicht richtig (auch wenn ich es woanders schon habe laufen gesehen). Also doch wie immer - neuen Server installieren und dann die Domänen Stück-für-Stück umziehen.&amp;lt;br&amp;gt; [[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.06.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:MFA_Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;MFA technical Certification&amp;quot; der Firma WatchGuard abgeschlossen. Es geht um die [https://www.watchguard.com/de/wgrd-products/authpoint-multi-factor-authentication MFA Lösung AuthPoint der Firma WatchGuard] - bei der Vorbereitung war hilfreich das ich MFA schon länger auch privat für den Schutz meiner Zugänge einsetze. Unter anderem [https://duo.com/ duo.com] für RDP da es bis 10 Personen auch kostenlos genutzt werden kann. WatchGuard ist - aus meiner Sicht - mehr pures MFA, DUO hat dafür quasi jeden Anwendungsfall eine eigene Anleitung und geht tiefer auf die Endgeräte ein. Wobei z.B. eine nicht aktuelle Android-Version ständig angemeckert wird.&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;26.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Stromkosten: Auch ich sitze nun mehr im Homeoffice. Und in meinem Kellerbüro habe ich meinen Rechner hinter mir - und einen 40HE Datenschrank im Blick vor mir. Mit den Tagen ging mir zum einen der Lärm der ganzen Lüfter irgendwann auf den Kecks. Und den Stromverbrauch (den ich bis dato aber nicht gemessen habe) wollte ich auch senken. Den Verbrauch der Switche kannte ich durch Einzelmessungen, der lag bei ca. 100 Watt (für 48 Gigabit Ports + 6 PoE Ports). Diesen habe ich durch einen neuen Switch Allnet-SG8428M (13 Watt maximal!) und einen sparsameren PoE Sitch für die Telefone und Kameras stark reduziert. Zeitgleich habe ich mit Gosund SP111 WLAN-Steckdosenschaltern herumgespielt. Mit der Tasmota Firmware und einer Kalibrierung taugen diese scheinbar auch ganz gut als Strommessgeräte.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab nun also meinen Datenschrank zu Hause daran gehängt und musste ernüchternd einen Dauerstromverbrauch von 140 bis 150 Watt feststellen.&amp;lt;br&amp;gt;&lt;br /&gt;
* 44 Watt davon gehen für PoE drauf - 5 Cisco Telefone und 2 IP-Kameras.&amp;lt;br&amp;gt;&lt;br /&gt;
* 16 Watt maximal für die beiden anderen Switche (der ALLNET und ein 16 Port Netgear) &lt;br /&gt;
* 9 Watt mein ESXi Server auf Basis eines APU2C4 von PC Engines (inklusive 2TB USB Festplatte daran)&lt;br /&gt;
* um die 20 Watt schätze ich die beiden FritzBoxen ...&lt;br /&gt;
* bleiben ca. 89 Watt für meinen Heimserver - mit 2x 128GB SSD und 4 x 4TB HDD&lt;br /&gt;
* und die USV wird da mit Ihrem Eigenanteil auch irgendwo dazwischen liegen&lt;br /&gt;
Wenn ich den Verbrauch mal in einen Kostenrechner werfe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-200426-192323.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:(erstellt mit [https://www.stromverbrauchinfo.de/stromkostenrechner.php stromverbrauch info])&amp;lt;br&amp;gt;&lt;br /&gt;
weis ich nun auch warum wir immer so eine fette Stromrechnung habe. Als 4 Personenhaushalt verbrauchen wir soviel wie einer mit 8. Und dabei habe ich doch gerade schon soviel eingespart ...&amp;lt;br&amp;gt;&lt;br /&gt;
Ich werde das nun - dank mit Zabbix überwachten Strom/Leistungsverbrauch mal besser beobachten und schauen wie ich da in Zukunft noch mehr einsparen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Jedes Watt sind 2,60 €/Jahr oder 22 Cent/Monat - klingt nicht viel aber wie man sieht läppert es sich.&amp;lt;br&amp;gt;&lt;br /&gt;
Mal sehen wie der Durchschnitt nach einem Monat ist. Nachts schaltet sich z.B. die Beleuchtung der IP-Telefone ab was schon 10 Watt spart.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Mit gewissen Stolz habe ich meine Version eines &amp;quot;Active Directory-Gruppe mit Zabbix Benutzern Abgleichen via LDAP&amp;quot; Skriptes fertiggstellt:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://github.com/BernhardLinz/zabbix-ldap-sync-bash&lt;br /&gt;
Wer nach so etwas googelt landet quasi ausschließlich bei dem von Marc Schöchlin geschriebenen Python Script: https://github.com/zabbix-tooling/zabbix-ldap-sync&amp;lt;br&amp;gt;&lt;br /&gt;
An dem haben mich aber schon immer die ganzen Abhängigkeiten gestört wie &#039;&#039;&#039;pyldap&#039;&#039;&#039; oder &#039;&#039;&#039;pyzabbix&#039;&#039;&#039;. Ich hab nun mal leider auch Kunden mit Systemen ohne Internetanbindung oder älteren Linux Versionen - und da ist es schwer diese zu erfüllen.&amp;lt;br&amp;gt;&lt;br /&gt;
Mein Skript ist &amp;quot;pures&amp;quot; Bash. Es wird nur der Befehl &#039;&#039;&#039;ldapsearch&#039;&#039;&#039; und &#039;&#039;&#039;curl&#039;&#039;&#039; benötigt - und bisher waren die in allen Repositories der Distributionen vorhanden.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;03.04.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze nun [https://www.google.com/search?q=tripwire+ubuntu Tripwire] um meinen Webserver zu überwachen. Gefällt mir sehr gut, man muss nur daran denken nach jeden Update oder Änderung die Datenbank wieder auf Stand zu bringen. Ich bekomme im Moment jeden Tag einen Email-Report dazu - da muss ich noch mal schauen wir ich das in Zabbix unterbringe bzw. mir nur eine mail senden lasse wenn auch etwas ansteht.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Noch ein Nachtrag zum &amp;quot;Angriff&amp;quot;:&amp;lt;br&amp;gt; zwischendurch fehlten auf dem Server 16G an Speicherplatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Gemerkt habe ich das mit Zabbix weil dadurch ein Schwellwert erst unter- und dann wieder überschritten wurde.&amp;lt;br&amp;gt;&lt;br /&gt;
Die 16G waren das &amp;lt;code&amp;gt;error.log&amp;lt;/code&amp;gt; für die Domäne &#039;&#039;&#039;znil.net&#039;&#039;&#039;. Darin fand ich jede Menge Fehlermeldung das versucht wurde &amp;lt;code&amp;gt;\bin\bash&amp;lt;/code&amp;gt; zu starten - was aber nun mal nicht erlaubt ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Bin im Moment gerade glücklich darüber das ich jede Domäne / Webseite / Subdomäne unter einem eigenen, eingeschränkten Benutzer laufen lasse.&amp;lt;br&amp;gt;&lt;br /&gt;
Das mache ich nicht von Hand sondern per ISPConfig weil ich faul bin. Funktioniert aber scheinbar ja prima.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Also, wenn ich so ein Online-Tool nutze um meine Webseite zu überprüfen dann melden diese ggf. (nicht immer) eine &amp;quot;SQL-Injection&amp;quot; Lücke in meiner Kommentarfunktion.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar weil wohl dann gängige Test-SQL-Abfragen mit gesendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Senden erfolgt via JavaScript im Browser des Benutzers, der Empfänger ist das PHP-Skript auf dem Server.&amp;lt;br&amp;gt;&lt;br /&gt;
In der letzten Version dieses Skriptes (angepasst von mir) gibt es keine Filter mehr, er nimmt einfach alles an. Früher habe ich dort auf Viagra &amp;amp; Co gefiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Aber der Teil darunter der dann den Text in die Datenbank schreibt ist wohl ausreichend gefestigt - er schreibt einfach alles was kommt in den Datensatz der Datenbank. Die SQL-Injections tauchen so einfach als Text im Kommentarfeld auf, werden aber nicht ausgeführt. Also alles gut Denke ich.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;01.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Angriff auf diese Webseite:&amp;lt;br&amp;gt;&lt;br /&gt;
In der Nacht von gestern auf heute hat jemand versucht per SQL-Injektion sich Zugriff auf diese Webseite zu verschaffen.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Schwachstelle&amp;quot; ist die Kommentarfunktion. Ein Online-Scurity-Scanner hatte mir diese bereits mal als anfällig dafür gemeldet.&amp;lt;br&amp;gt;&lt;br /&gt;
Da ich die Mediawiki-Extension überarbeitet hatte, habe ich umfangreiche &amp;quot;Suchen und Erstzen&amp;quot;-Regeln erstellt die alles was mit SQL zu tun hat ausfiltert.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb sehen manche Kommentare hier dann komisch aus.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich prüfe mal das System intensiv ob die Abwehr erfolgreich war ... oder ob ich doch ein Backup wieder einspiele.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
znil.net weiterhin &amp;quot;Tracker-frei&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich nutze Matomo (ehemals Piwik) um Statistiken für diese Webseite zu erhalten. Eigentlich mehr aus Neugier um zu sehen wie das funktioniert, es hat mir aber auch schon bei Verbesserungen geholfen da man manchmal recht gut erkennen kann wenn die Leute bei Suchanfragen falsch abbiegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich hab in einem meiner Browser seit einiger Zeit ein &amp;quot;Anti-Tracking-Tool&amp;quot; installiert weil dadurch sich die Ladezeiten bei einer meiner Lieblingwebseiten dramatisch verbessert haben (https://thingiverse.com). Voller Freude sehe ich das ich wohl alles richtig gemacht habe - denn das Tool zeigt mir bei dieser Seite an das es nicht zu blockieren gibt. Alles bleibt also innerhalb dieser Seite. Siehe auch: [https://znil.net/index.php?title=Znilwiki:Impressum#Datenschutzerkl.C3.A4rung Datenschutzerklärung]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;19.02.2020&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Sieht nicht nach Leben aus wenn sich die Startseite nie ändert - ich muss noch mal wieder nach einer Mediawiki-Extension schauen welche die neuesten Artikel hier präsentiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Hatte ich schon mal, funktionierte nach einem Update nur nicht mehr.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;04.07.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Seite ab sofort nur noch über &#039;&#039;&#039;&#039;&#039;https://&#039;&#039;&#039;&#039;&#039; zu erreichen - die meisten Aufrufe kamen sowieso schon darüber.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;08.06.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mediawiki-Installation ist nun auf 1.13.2 aktulisiert - einige potentielle Sicherheitslücken wurden geschlossen. Hier der Artikel dazu: https://lists.wikimedia.org/pipermail/mediawiki-announce/2019-June/000230.html&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;25.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man nicht alles testet ... die Kommentarfunktion war ohne &amp;quot;Funktion&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Zum Glück ist es eine Erweiterung die noch gepflegt wird, ich habe mir die neue Version herunter geladen und wieder an diese Webseite angepasst: https://git.znil.net/mediawiki/Comments&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;16.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:WG Network Security Badge.png|left]] Geschafft! Ich habe erfolgreich die Prüfung &amp;quot;Network Security Technical Certification&amp;quot; der Firma WatchGuard abgeschlossen.&lt;br /&gt;
Ich hatte auch schon mal leichtere Prüfungen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;14.05.2019&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Das Wiki ist wieder einmal umgezogen. Statt auf einem Server in Frankreich läuft es nun auf einem Server in Deutschland - vielen Dank an meinen Arbeitgeber.&amp;lt;br&amp;gt;&lt;br /&gt;
Im gleichen Atemzug habe ich von der Mediawiki-Version 1.27 LTS auf die Version 1.31 LTS gewechselt - der Support läuft im Juni aus und 1.31 bietet nun wieder Updates bis Juni 2021.&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist leider die &#039;&#039;&#039;WikiLog&#039;&#039;&#039;-Erweiterung auf der Strecke geblieben, diese ist nicht mehr kompatibel und wird auch schon länger nicht mehr weiter einwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Also mache ich das jetzt von Hand ...&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:BLinz|Bernhard Linz]]&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_ocean&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Wie ist &amp;lt;del&amp;gt;meine&amp;lt;/del&amp;gt; deine IP-Adresse?&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot; style=&amp;quot;font-family:&#039;Courier New&#039;, Monospace; background: #FFFFCC;&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 70%; background-color: #FFFFCC&amp;quot;|&amp;lt;big&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IP :&#039;&#039;&#039; &amp;lt;ClientIP /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Typ:&#039;&#039;&#039; &amp;lt;IPv4orv6 /&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;DNS:&#039;&#039;&#039; &amp;lt;ClientName /&amp;gt; &amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|| Ermittelt mit den PHP-Funktionen dafür&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Cookies und Datenschutz ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
Diese Webseite verwendet bei Besuchern Cookies! [http://www.cookie-checker.com/check-cookies.php?url=znil.net www.cookie-checker.com]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;!--        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten 10 Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
{{RecentActivity:type=edits|count=10}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_blue&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Tools - Kleine Programme für Batchdateien und anderes&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* [[ZnilTools:ifmemberDELUXE.exe|ifmemberDELUXE]] - Netzlaufwerke und Netzwerkdrucker in Anmeldeskripten verbinden&amp;lt;!--, kann Drucker-Server für 32/64 Bit wählen--&amp;gt;&lt;br /&gt;
* [[ZnilTools:Telnet_SMTP_Test_Tool|Telnet_SMTP_Test_Tool.exe]] - Grafische Oberfläche für den Test von SMTP-Servern per Telnet&lt;br /&gt;
* [[Zabbix:Template Windows Dateien und Ordner]] - Überwachung mit vielen Beispielen&lt;br /&gt;
* [[Host per Popup-Skript aus der Zabbix-Server Weboberfläche in Wartung setzen]]&lt;br /&gt;
* [[Calibre eBook MultiUser Tool / Funktion]] - Calibre mit mehreren Benutzern gleichzeitig nutzen&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxtitle_green&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Webseiten die ich regelmäßig besuche ...&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
* http://c64-online.com/ -&amp;gt; Alles über den C64 &amp;amp; Geniales zum Raspberry Pi&lt;br /&gt;
* https://forum.iobroker.net/ -&amp;gt; Alles zu ioBroker&lt;br /&gt;
* https://www.autoit.de -&amp;gt; Wo sonst bekäme man so viel deutsche Hilfe zu AutoIt!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--    &amp;lt;div class=&amp;quot;mainpage_hubbox&amp;quot;&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_black&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Die letzten Änderungen&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--{{RecentActivity:type=new|count=10}}--&amp;gt;&lt;br /&gt;
{{Special:RecentChanges/days=365,limit=10,hidebots,hideminor,hidecategorization}}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxtitle_grey&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;[[Spezial:Statistik|Informationen]] zum znilwiki, Stand {{CURRENTDAY2}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} um {{LOCALTIME}} Uhr:&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- * znil.net über das Tor Netzwerk: http://znilnet655kecmslpvcrvpwujeameq4ac42ueg7jvqanzdfk4clnleyd.onion&amp;lt;br&amp;gt; --&amp;gt;&lt;br /&gt;
* Dieses Wiki enthält &#039;&#039;&#039;{{NUMBEROFPAGES}}&#039;&#039;&#039; Seiten, zusammengefasst in &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; Themen...&amp;lt;br&amp;gt;&lt;br /&gt;
* Die Beiträge wurden &#039;&#039;&#039;{{NUMBEROFEDITS}}&#039;&#039;&#039; mal bearbeitet (inklusive der Erstellung)&lt;br /&gt;
* Dieses Wiki wurde laut Matomo schon so oft besucht: &amp;lt;html&amp;gt;&amp;lt;img src=&amp;quot;https://znil.net/piwik/index.php?module=ClassicCounter&amp;amp;action=svg&amp;amp;idSite=1&amp;quot; width=&amp;quot;180&amp;quot; height=&amp;quot;43&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!--* Letzte Änderung am &#039;&#039;&#039;{{REVISIONDAY2}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONMONTH}}&#039;&#039;&#039;.&#039;&#039;&#039;{{REVISIONYEAR}}&#039;&#039;&#039; durch &#039;&#039;&#039;{{REVISIONUSER}}&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
* MediaWiki-Version: &#039;&#039;&#039;{{CURRENTVERSION}}&#039;&#039;&#039; - siehe auch [[Spezial:Version]]&lt;br /&gt;
&amp;lt;!--* Seitenaufrufe im Monat: &#039;&#039;&#039;&amp;gt; 12.000&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Datei:Piwik-001.png]]&amp;lt;br&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right;&amp;quot;&amp;gt;[[Testbereich|.]][[Testbereich:Seite2|.]][[Testbereich:Seite3|.]][[Testbereich:Seite4|π]]&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&amp;diff=15752</id>
		<title>Proxmox Mail Gateway PMG Emails auf Wörter in Nachricht filtern Mailbody</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&amp;diff=15752"/>
		<updated>2026-01-09T12:57:04Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Hinweis zur Filterung mit diesen Skripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 02.06.2025 Skript Version 1.0 =&amp;gt; erste Version&lt;br /&gt;
* 03.06.2025 Skript Version 1.1 =&amp;gt; mehr Details in den Logmeldungen / Syslog, Farbige Meldungen in der Konsole&lt;br /&gt;
* 26.06.2025 Version 2.0 =&amp;gt; Management der Filterwörter über die Weboberfläche des PMG&lt;br /&gt;
* 05.01.2026 Version 2.1 =&amp;gt; Problem Zeilenumbruch behoben&lt;br /&gt;
* 09.01.2026 Version 2.2 =&amp;gt; Suche auch in Base64 codierten Nachrichten&lt;br /&gt;
{{Hinweis|Den Anfang des Artikel mit der Version 1.2 des Skriptes habe ich hier so gelassen. Am Ende das Artikels habe die die neue Variante 2.x angehängt bei der man die Filterwörter über die Weboberfläche managen kann&amp;lt;br&amp;gt;&lt;br /&gt;
Es schadet nicht, erst die Version 1.1 zu implementieren, um festzustellen ob auch alles wie gewünscht funktioniert, und dann auf Version 2.x umzustellen}}&lt;br /&gt;
----&lt;br /&gt;
{{Hinweis| &#039;&#039;&#039;Base64 Codierung:&#039;&#039;&#039; Als Trick zur Verschleierung wird auch eine Base64 Codierung des Nachrichtentextes verwendet. Ab Version 2.2 klappt es aus bei solchen Nachrichten. In das 1er Skript habe ich das nicht nachträglich eingebaut}}&lt;br /&gt;
----&lt;br /&gt;
{{Hinweis| &#039;&#039;&#039;Zeilenumbrüche machten Probleme:&#039;&#039;&#039; Das Skript bekommt eine Version der Mail übergeben, in der noch Zeilenumbrüche enthalten sind.  Ab Version 2.1 (es wurde nur eine Zeile geändert) werden diese vor der Prüfung entfernt. Für die 1er Version habe ich das auch eingebaut}}&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
In letzter Zeit werden meine Familie und ich von Spam-Mails über Erektionsproblemen überflutet. Ein Großteil filtert das PMG schon aus so das dieses schon mal in Quarantäne landen. Aber es sind so viele das immer noch ein großer Teil durchrutscht.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mails sehen alle so aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-092913.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Text variiert, der Aufbau ist immer gleich. Die Mails werden dabei immer von vertrauenswürdigen Quellen gesendet, vermutlich also gehackte Emailkonten.&amp;lt;br&amp;gt;&lt;br /&gt;
Allen gemein ist das immer auf eine URL verwiesen wird die auf&lt;br /&gt;
 apotheke.html&lt;br /&gt;
endet. Die HTML-Datei liegt dabei oft auch auf den Webspace von vertrauenswürdigen Webseiten (die vermutlich auch gehackt wurden).&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-093311.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Also eigentlich etwas wonach man prima filtern könnte.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es stellte sich aber heraus das es dann doch nicht ganz so einfach mit PMG ist, denn es gibt keinen direkten Weg über die Weboberfläche.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Grundlage der Lösung findet sich in der Hilfe:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_custom_check&lt;br /&gt;
Man kann ein eigenes Skript einbinden an welche dann alle eingehenden Emails übergeben werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=Hinweis zur Filterung mit diesen Skripts=&lt;br /&gt;
Bitte beachtet das aktuell per &amp;quot;Text in Text&amp;quot; Suche gefiltert wird. Es funktionieren also keine reguläre Ausdrücke, ein Punkt {{code|.}} ist ein Punkt und kein beliebiges Zeichen, ein Stern {{code|*}} wird als eben dieses Zeichen gesucht und hat keine Funktion als Platzhalter.&amp;lt;br&amp;gt;&lt;br /&gt;
Vor der Suche werden alle Zeilenumbrüche die auf &amp;lt;code&amp;gt;&amp;quot;= &amp;quot;&amp;lt;/code&amp;gt; enden entfernt - damit die Wörter/URLs auch gefunden werden wenn diese umgebrochen sind.&amp;lt;br&amp;gt;&lt;br /&gt;
Zusätzliche wird 2fach nach Base64-Codierten Text in der Nachricht gesucht.&amp;lt;br&amp;gt;&lt;br /&gt;
Solche Bereiche beginnen immer mit:&amp;lt;br&amp;gt;&lt;br /&gt;
 --===============4392396301760993226==&lt;br /&gt;
 Content-Type: text/plain; charset=&amp;quot;utf-8&amp;quot;&lt;br /&gt;
 MIME-Version: 1.0&lt;br /&gt;
 Content-Transfer-Encoding: base64&lt;br /&gt;
 &lt;br /&gt;
 V2FydW0gZ3JlaWZlbiBpbW1lciBtZWhyIGp1bmdlIE3DpG5uZXIgenUgUG90ZW56bWl0dGVsbj8K&lt;br /&gt;
 Ckd1dGVuIEFiZW5kLAoKSMOkdHRlbiBTaWUgZ2VkYWNodCwgZGFzcyBzY2hvbiBNw6RubmVyIGFi&lt;br /&gt;
 IDIxIGjDpHVmaWdlciB6dSBQb3Rlbnp0YWJsZXR0ZW4gZ3JlaWZlbj8gIAotIFVudGVyc3VjaHVu&lt;br /&gt;
 ...&lt;br /&gt;
 dW5kbGljaGVuIEdyw7zDn2VuICAKQWxleGFuZGVyIEtyw7xnZXI=&lt;br /&gt;
Es wird nach {{code|Content-Transfer-Encoding: base64}} und alles bis zum nächsten &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; umgewandelt.&amp;lt;br&amp;gt;&lt;br /&gt;
In der Regel gibt es 2 Abschnitte damit, einmal mit dem &amp;quot;Nur-Text&amp;quot; Format und einmal mit dem &amp;quot;HTML&amp;quot; Format. Beide werden ebenfalls im Skript ab der Version 2.3 durchsucht.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Version 1.1==&lt;br /&gt;
Bei dieser Version werden die Wörter oder Sätze am Anfang des Skripts in den Variablen {{code|filterArraySPAM}} und {{code|filterArrayWHITE}} definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Wollte Ihr Wörter hinzufügen oder löschen, so müsst Ihr das Skript bearbeiten.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Custom Check Skript erstellen===&lt;br /&gt;
Die Grundlage der Lösung findet sich in der Hilfe:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_custom_check&lt;br /&gt;
Ich wollte es erst per SpamAssassin machen (mache ich vielleicht noch), die Lösung mit dem Skript gefiel mir jedoch im Moment besser.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir erstellen das folgende Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/local/bin/pmg-custom-check&lt;br /&gt;
mit folgendem Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Siehe https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&lt;br /&gt;
#&lt;br /&gt;
# V1.1 vom 03.06.2025 von Bernhard Linz =&amp;gt; Bernhard@znil.de&lt;br /&gt;
# V1.2 vom 05.01.2026 &lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Filter, weitere einfach mit Leerzeichen und in &amp;quot;...&amp;quot; hinzufügen, Es wird auf &amp;quot;String in String&amp;quot; getestet&lt;br /&gt;
# Nach SPAM&lt;br /&gt;
filterArraySPAM=(&amp;quot;apotheke.html&amp;quot; &amp;quot;test1234567890&amp;quot;)&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
spamScoreSPAM=4&lt;br /&gt;
&lt;br /&gt;
# Nach Whitelisting&lt;br /&gt;
filterArrayWHITE=(&amp;quot;Test Abrakadabra&amp;quot;)&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt&lt;br /&gt;
spamScoreWHITE=-10&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# schreibt nach STDERR durch 1&amp;gt;&amp;amp;2, das landet dann nur im Logfile /var/log/mail.log&lt;br /&gt;
# und wird nicht als Rückgabe des Skriptes interpretiert&lt;br /&gt;
# echo &amp;quot;/usr/bin/pmg-custom-check called with $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check called with $*\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
&lt;br /&gt;
# Fehler wenn nicht 2 Argumente&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ne 2 ]; then&lt;br /&gt;
  echo &amp;quot;usage: $0 APIVERSION QUEUEFILENAME&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Argument $1 ist die API-Version&lt;br /&gt;
apiver=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Argument $2 ist die Datei mit der Email&lt;br /&gt;
queue_file=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# shift würde das Argument $2 zu $1 verschieben&lt;br /&gt;
#shift&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$apiver&amp;quot; != &amp;quot;v1&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;/usr/bin/pmg-custom-check wrong APIVERSION: $apiver&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#queue_file=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Das Skirpt muss auf STDOUT 2 Ausgaben machen:&lt;br /&gt;
# Die API-Version, hier also v1&lt;br /&gt;
echo &amp;quot;v1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Und eine(!) der folgenden 3 Ausgaben:&lt;br /&gt;
# 1: Es ist alles ok:&lt;br /&gt;
#echo &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 2: Die Mail enthält einen Virus&lt;br /&gt;
#echo &amp;quot;VIRUS: &amp;lt;virusdescription&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 3: Die Mail enthält SPAM, wir können den SPAM-Score beinflussen und z.B. um 2 erhöhen (der Startwert ist dann 2)&lt;br /&gt;
#echo SCORE: 2&lt;br /&gt;
&lt;br /&gt;
# 4: Die Mail soll auf keinen Fall als SPAM erkannt werden, wir setzen den SCORE auf einen negativen Wert:&amp;lt;br&amp;gt;&lt;br /&gt;
#echo SCORE: -10&lt;br /&gt;
&lt;br /&gt;
# Dateinhalte (=Mail) einlesen&lt;br /&gt;
# queue_filecontent=$(cat $queue_file)&lt;br /&gt;
# Entfernt alle = am Zeilenende inklusive des Zeilenendes&lt;br /&gt;
queue_filecontent=$(sed &#039;:a;N;$!ba;s/=\n//g&#039; &amp;quot;$queue_file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Variable die ggf. am Ende dafür sorgt das &amp;quot;OK&amp;quot; ausgegeben wird&lt;br /&gt;
bNoSPAM=true&lt;br /&gt;
&lt;br /&gt;
# Test auf WHITE(-listing)&lt;br /&gt;
for strWHITE in ${filterArrayWHITE[@]}; do&lt;br /&gt;
    # echo $strSPAM&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strWHITE ]]; then&lt;br /&gt;
        bNoSPAM=false&lt;br /&gt;
        #echo &amp;quot;/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITE}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITE}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreWHITE}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Test auf SPAM:&lt;br /&gt;
for strSPAM in ${filterArraySPAM[@]}; do&lt;br /&gt;
    # echo $strSPAM&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strSPAM ]]; then&lt;br /&gt;
        bNoSPAM=false&lt;br /&gt;
        #echo &amp;quot;/usr/bin/pmg-custom-check SCORE: ${spamScoreSPAM}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreSPAM}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreSPAM}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if $bNoSPAM; then&lt;br /&gt;
    #echo &amp;quot;/usr/bin/pmg-custom-check OK&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check OK\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo &amp;quot;OK&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und das Skript ausführbar machen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/pmg-custom-check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Skript könnte Ihr zwei Dinge einstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
 # Nach SPAM&lt;br /&gt;
 filterArraySPAM=(&amp;quot;apotheke.html&amp;quot; &amp;quot;test1234567890&amp;quot;)&lt;br /&gt;
 # Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
 spamScoreSPAM=4&lt;br /&gt;
Da hinterlegt Ihr die Liste der Wörter, Sätze, Zeichenfolgen die als SPAM gekennzeichnet werden soll und entscheidet welche Punktzahl die Mail als Spam bekommt.&amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall hier die {{code|4}}. Die Mail wird trotzdem weiter verarbeitet, also alles was im Bereich &#039;&#039;&#039;Mail Filter&#039;&#039;&#039; aktiviert ist, greift zusätzlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Ggf. kommen also weitere SPAM-Punkte hinzu und die Mail wird ganz ablehnt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Nach Whitelisting&lt;br /&gt;
 filterArrayWHITE=(&amp;quot;Test Abrakadabra&amp;quot;)&lt;br /&gt;
 # Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt&lt;br /&gt;
 spamScoreWHITE=-10&lt;br /&gt;
Das gleiche Prinzip, nur das die Mail dann mit {{code|-10}} in die weitere Verarbeitung geht. Selbst wenn dann noch Spam Punkte gesammelt werden, wird die Mail also höchstwahrscheinlich zugestellt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Skript testen Teil 1===&lt;br /&gt;
Dazu bräuchten wir Dateien mit Mails.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr eine in der SPAM-Ansicht RAW habt, könnt mit einem eindeutigen Text danach suchen, in diesem Fall ist das die SPAM-Mail mit {{code|apotheke.html}}:&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -lr &amp;quot;minute.eicindustria.com.br&amp;quot; /var/spool&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 /var/spool/pmg/spam/5A/10013F683BC2482795A&lt;br /&gt;
Damit können wir unser Skript nun testen&lt;br /&gt;
 /usr/local/bin/pmg-custom-check v1 /var/spool/pmg/spam/5A/10013F683BC2482795A&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/bin/pmg-custom-check called with v1 /var/spool/pmg/spam/26/1002A068303219D3E26&lt;br /&gt;
 v1&lt;br /&gt;
 /usr/bin/pmg-custom-check SCORE: 4&lt;br /&gt;
Die erste und dritte Zeile landet später nur in {{code|/var/log/mail.log}} und im {{code|syslog}}, die anderen beiden sind die notwendige Rückgabe für das PMG.&amp;lt;br&amp;gt;&lt;br /&gt;
Gegenprobe mit einer anderen Email, mit&amp;lt;br&amp;gt;&lt;br /&gt;
 find /var/spool/pmg/spam/ -type f -printf &amp;quot;%T@ %p\n&amp;quot; | sort -nr | cut -d\  -f2-&lt;br /&gt;
könnt Ihr euch alle vorhandenen SPAM-Emails anzeigen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check v1 /var/spool/pmg/spam/26/1002A068303219D3E26&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250603-120936.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Skript scharf schalten===&lt;br /&gt;
Wir aktivieren das Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/pmg/pmg.conf&lt;br /&gt;
und im ersten Abschnitt &lt;br /&gt;
 section: admin&lt;br /&gt;
hängen wir die folgenden beiden Zeilen an:&amp;lt;br&amp;gt;&lt;br /&gt;
         custom_check_path /usr/local/bin/pmg-custom-check&lt;br /&gt;
         custom_check 1&lt;br /&gt;
Leider weis ich nicht welchen der Dienste man nun neu starten müsste bzw. wie man das erneute Einlesen der Konfiguration anstößt.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb starte ich den PMG neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 reboot&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Testmail===&lt;br /&gt;
Im Skript oben habe ich als Filter auch {{code|test1234567890}} eingebaut,&amp;lt;br&amp;gt;&lt;br /&gt;
also schicke ich mir mal eine Testmail von außerhalb mit der Zeichenfolge:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-131721.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und tatata! Der Spam Score ist 4! Ab 5 hätte er die Mail gleich verworfen!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert also!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Im Syslog===&lt;br /&gt;
Im Mailgateway Syslog sehen wir die Aufrufe des Skriptes:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250603-120738.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die komischen Sonderzeichen kommen daher das ich den Text in der Konsole unbedingt in rot haben wollte.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
==Version 2.x==&lt;br /&gt;
In dieser Variante des Skriptes kann man die Filter für SPAM und Whitelisting über die Proxmox-Weboberfläche pflegen. Zudem kann man auch ganze Sätze, inklusive Leerzeichen, als Filter nutzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Einschränkung gibt es: Das Pipe {{code|&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}} kann nicht verwendet werden, das brauchte ich im Skript um die Werte zu trennen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich würde euch empfehlen, erst die Skript Version 1.1 zu implementieren um das ganze zu testen und erst dann auf die Version 2.x umzubauen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Filter in Proxmox Mail Gateway PMG erstellen===&lt;br /&gt;
Damit das Skript funktioniert, müssen wir in der Weboberfläche des PMG 2 x {{code|Who Objects}} und einen {{code|Mail Filter}} anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104236.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die erste {{code|Who Objects}} nennen wir&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check-BLACKLIST&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104425.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
und fügen in dieser Liste eine {{code|Regular Expression}} für jeden Begriff, Satz oder sonstiges was in der Email vorkommen muss um diese zu filtern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104647.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104728.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so das wir am Ende eine Liste habe. Es sollte mindestens einen Eintrag geben! Ggf. setzt einen sinnlosen Text hinein der nicht vorkommen wird.&amp;lt;br&amp;gt;&lt;br /&gt;
Meine fertige Liste sieht dann so aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104855.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun das zweite {{code|Who Objects}} mit der Whitelist nach dem gleichen Prinzip, der Name muss wie folgt lauten:&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check-WHITELIST&lt;br /&gt;
Fertig sieht das dann so aus (mindestens 1 Eintrag!)&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105310.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt erstellen wir einen {{code|Mail Filter}} in welchen wir die beiden {{code|Who Objects}} verwenden.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105752.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Name muss unbedingt&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check&lt;br /&gt;
sein&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105553.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die {{code|Priority}} setzen wir auf {{code|&amp;lt;nowki&amp;gt;1&amp;lt;/nowiki&amp;gt;}} so das diese ganz unten landet, {{code|Direction}} ist {{code|In}} und nein, die Rule darf nicht aktiv sein!&amp;lt;br&amp;gt;&lt;br /&gt;
Ihr markiert die Regel (ganz unten!) und fügt dann rechts im Dialog über {{code|From}} die beiden zuvor erstellten {{code|Who Objects}} hinzu.&amp;lt;br&amp;gt;&lt;br /&gt;
Das muss dann am Ende so aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-110026.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Fertig! Ja, der {{code|Mail Filter}} macht keinen sinn, es geht nur darum das man die Daten per Skript auslesen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wollte Ihr später Begriffe hinzufügen oder entfernen, so packt diese einfach in die passende Liste unterhalb von {{code|Who Objects}}.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Custom Check Skript erstellen Version 2.x===&lt;br /&gt;
Wir erstellen oder bearbeiten das folgende Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/local/bin/pmg-custom-check&lt;br /&gt;
und setzen diesen Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# 2025-2026 Bernhard Linz / Bernhard@znil.de&lt;br /&gt;
# Webseite: https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&lt;br /&gt;
#&lt;br /&gt;
# Changelog:&lt;br /&gt;
# ----------&lt;br /&gt;
# 03.06.2025 V1.1 erste öffentliche Version / first public version&lt;br /&gt;
# 29.06.2025 V2 Filterwörter können über Weboberfläche hinzugefügt werden / add filter words at web management&lt;br /&gt;
# 05.01.2026 V2.1 Problem mit Zeilenumbruch behoben&lt;br /&gt;
# 09.01.2026 V2.2 Base64 decodierung auch durchsuchen&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Setup:&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
spamScoreBLACKLIST=10&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt (negative Werte Whitelisten)&lt;br /&gt;
spamScoreWHITELIST=-10&lt;br /&gt;
&lt;br /&gt;
# In der PMG Weboberfläche unter &amp;quot;Mail Filter&amp;quot; =&amp;gt; &amp;quot;Who Objects&amp;quot; zwei Objekte anlegen mit den Namen&lt;br /&gt;
# pmg-custom-check-BLACKLIST&lt;br /&gt;
# pmg-custom-check-WHITELIST&lt;br /&gt;
# und die jeweiligen Begriffe/Sätze etc als &amp;quot;Regular Expression&amp;quot; hinterlegen (es aber trotzdem nur ein Text in Text vergleich gemacht)&lt;br /&gt;
# Danach unter &amp;quot;Mail Filter&amp;quot; eine neue &amp;quot;Rule&amp;quot; anlegen:&lt;br /&gt;
# Name     : pmg-custom-check&lt;br /&gt;
# Priority : 1&lt;br /&gt;
# Direction: In&lt;br /&gt;
# Active   : deaktiviert!&lt;br /&gt;
# In der Rule rechts über From die beiden Listen &amp;quot;pmg-custom-check-BLACKLIST&amp;quot; und &amp;quot;pmg-custom-check-WHITELIST&amp;quot; hinzufügen&lt;br /&gt;
# sonst nichts! keine Action, Regel nicht aktivieren! Eintrag dient nur dem Auslesen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Black- und Whitelist aus den RULES einlesen:&lt;br /&gt;
# Alle Regeln einlesen per pmgdb Befehl (Ergibt einen großen String, kein Array)&lt;br /&gt;
rulesdump=$(/usr/bin/pmgdb dump)&lt;br /&gt;
# In Array Zeile für Zeilenweise speichern&lt;br /&gt;
array_rulesdump=()&lt;br /&gt;
while IFS= read -r line; do array_rulesdump+=(&amp;quot;$line&amp;quot;); done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$rulesdump&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Leere Arrays für die beiden Listen anlegen&lt;br /&gt;
filterArrayBLACKLIST=()&lt;br /&gt;
filterArrayWHITELIST=()&lt;br /&gt;
&lt;br /&gt;
# Prüfung ob Black- und Whitelist gefunden wurden&lt;br /&gt;
boolFoundBlacklist=&amp;quot;false&amp;quot;&lt;br /&gt;
boolFoundWhitelist=&amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Auswerten des array_rulesdump:&lt;br /&gt;
for (( i=0; i &amp;lt; ${#array_rulesdump[*]}; i++ )); do&lt;br /&gt;
    # Suche nach Rule (aka Mail Filter) mit pmg-custom-check im Namen&lt;br /&gt;
    if [ &amp;quot;${array_rulesdump[$i]:0:4}&amp;quot; = &amp;quot;RULE&amp;quot; ]; then&lt;br /&gt;
        # Zeile fängt mit RULE an&lt;br /&gt;
        if [[ &amp;quot;${array_rulesdump[$i]}&amp;quot; =~ &amp;quot;pmg-custom-check&amp;quot; ]]; then&lt;br /&gt;
            # und enthält die Zeichenfolge pmg-custom-check&lt;br /&gt;
            #echo &amp;quot;${array_rulesdump[$i]}&amp;quot;&lt;br /&gt;
            # den Abschnitt &amp;quot;FROM ... pmg-custom-check-BLACKLIST&amp;quot; oder &amp;quot;FROM ... pmg-custom-check-WHITELIST&amp;quot; finden, wir fangen ab aktueller Position an&lt;br /&gt;
            for (( j=$i; j &amp;lt; ${#array_rulesdump[*]}; j++ )); do&lt;br /&gt;
                if [ &amp;quot;${array_rulesdump[$j]:0:6}&amp;quot; = &amp;quot;  FROM&amp;quot; ]; then&lt;br /&gt;
                    # Zeile fängt mit __FROM an&lt;br /&gt;
                    # Test auf BLACKLIST:&lt;br /&gt;
                    if [[ &amp;quot;${array_rulesdump[$j]}&amp;quot; =~ &amp;quot;BLACKLIST&amp;quot; ]]; then&lt;br /&gt;
                        # und enthält die Zeichenfolge BLACKLIST!&lt;br /&gt;
                        # aktuelle Zeile überspringen:&lt;br /&gt;
                        j=$((j + 1))&lt;br /&gt;
                        # Es müssten Zeilen folgen die mit OBJECT beginnen&lt;br /&gt;
                        for (( m=$j; m &amp;lt; ${#array_rulesdump[*]}; m++ )); do&lt;br /&gt;
                            if [ &amp;quot;${array_rulesdump[$m]:0:10}&amp;quot; = &amp;quot;    OBJECT&amp;quot; ]; then&lt;br /&gt;
                                #echo &amp;quot;${array_rulesdump[$m]}&amp;quot;&lt;br /&gt;
                                # &amp;quot;: &amp;quot; wird durch &amp;quot;|&amp;quot; ersetzt und daran geteilt damit Doppelpunkte im Suchstring erhalten bleiben.&lt;br /&gt;
                                templine=$`echo &amp;quot;${array_rulesdump[$m]}&amp;quot; | sed &#039;s/: /|/&#039;`&lt;br /&gt;
                                IFS=&#039;|&#039; read -ra filter &amp;lt;&amp;lt;&amp;lt; &amp;quot;${templine}&amp;quot;&lt;br /&gt;
                                #echo &amp;quot;${filter[1]}&amp;quot;&lt;br /&gt;
                                # IFS auf | damit auch Text mit Leerzeichen ins Array kommt, werden sonst einzelne Elemente&lt;br /&gt;
                                IFS=&#039;|&#039; filterArrayBLACKLIST+=(&amp;quot;${filter[1]}&amp;quot;)&lt;br /&gt;
                            else&lt;br /&gt;
                                # schleife verlassen, hier kommt ein neuer Abschnitt das nächste RULE, FROM usw.&lt;br /&gt;
                                break&lt;br /&gt;
                            fi&lt;br /&gt;
                        done&lt;br /&gt;
                        boolFoundBlacklist=&amp;quot;true&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
                    # Test auf WHITELIST:&lt;br /&gt;
                    if [[ &amp;quot;${array_rulesdump[$j]}&amp;quot; =~ &amp;quot;WHITELIST&amp;quot; ]]; then&lt;br /&gt;
                        # und enthält die Zeichenfolge WHITELIST!&lt;br /&gt;
                        # Es müssten Zeilen folgen die mit OBJECT beginnen&lt;br /&gt;
                        #echo &amp;quot;${array_rulesdump[$j]}&amp;quot;&lt;br /&gt;
                        j=$((j + 1))&lt;br /&gt;
                        for (( m=$j; m &amp;lt; ${#array_rulesdump[*]}; m++ )); do&lt;br /&gt;
                            if [ &amp;quot;${array_rulesdump[$m]:0:10}&amp;quot; = &amp;quot;    OBJECT&amp;quot; ]; then&lt;br /&gt;
                                #echo &amp;quot;${array_rulesdump[$m]}&amp;quot;&lt;br /&gt;
                                # &amp;quot;: &amp;quot; wird durch &amp;quot;|&amp;quot; ersetzt und daran geteilt damit Doppelpunkte im Suchstring erhalten bleiben.&lt;br /&gt;
                                templine=$`echo &amp;quot;${array_rulesdump[$m]}&amp;quot; | sed &#039;s/: /|/&#039;`&lt;br /&gt;
                                IFS=&#039;|&#039; read -ra filter &amp;lt;&amp;lt;&amp;lt; &amp;quot;${templine}&amp;quot;&lt;br /&gt;
                                #echo &amp;quot;${filter[1]}&amp;quot;&lt;br /&gt;
                                # IFS auf | damit auch Text mit Leerzeichen ins Array kommt, werden sonst einzelne Elemente&lt;br /&gt;
                                IFS=&#039;|&#039; filterArrayWHITELIST+=(&amp;quot;${filter[1]}&amp;quot;)&lt;br /&gt;
                            else&lt;br /&gt;
                                # schleife verlassen, hier kommt das nächste Object oder Rule&lt;br /&gt;
                                break&lt;br /&gt;
                            fi&lt;br /&gt;
                        done&lt;br /&gt;
                        boolFoundWhitelist=&amp;quot;true&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
                fi&lt;br /&gt;
                if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;true&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$filterArrayWHITELIST&amp;quot; = &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
                    # Alles gefunden, Schleife abbrechen!&lt;br /&gt;
                    break&lt;br /&gt;
                fi&lt;br /&gt;
            done&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
# Prüfung ob wir Filterlisten haben, wenn nicht abbrechen&lt;br /&gt;
if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;no Blacklist found&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$boolFoundWhitelist&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;no Whitelist found&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;false&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$filterArrayWHITELIST&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# schreibt nach STDERR durch 1&amp;gt;&amp;amp;2, das landet dann nur im Logfile /var/log/mail.log&lt;br /&gt;
# und wird nicht als Rückgabe des Skriptes interpretiert&lt;br /&gt;
echo &amp;quot;$0 called with $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
#echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check called with $*\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
&lt;br /&gt;
# Fehler wenn nicht 2 Argumente&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ne 2 ]; then&lt;br /&gt;
  echo &amp;quot;usage: $0 APIVERSION QUEUEFILENAME&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;---------------------------------------------------------------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;BLACKLIST:&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;----------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  for strBLACK in ${filterArrayBLACKLIST[@]}; do&lt;br /&gt;
      echo $strBLACK 1&amp;gt;&amp;amp;2&lt;br /&gt;
  done&lt;br /&gt;
  echo &amp;quot; &amp;quot;&lt;br /&gt;
  echo &amp;quot;WHITELIST:&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;----------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  for strWHITE in ${filterArrayWHITELIST[@]}; do&lt;br /&gt;
      echo $strWHITE 1&amp;gt;&amp;amp;2&lt;br /&gt;
  done&lt;br /&gt;
  echo &amp;quot;---------------------------------------------------------------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Argument $1 ist die API-Version&lt;br /&gt;
apiver=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Argument $2 ist die Datei mit der Email&lt;br /&gt;
queue_file=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Für Fehlersuche Kopie erstellen&lt;br /&gt;
#cp $queue_file /test/&lt;br /&gt;
&lt;br /&gt;
# shift würde das Argument $2 zu $1 verschieben&lt;br /&gt;
#shift&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$apiver&amp;quot; != &amp;quot;v1&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;$0 wrong APIVERSION: $apiver&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Das Skirpt muss auf STDOUT zwei Ausgaben machen:&lt;br /&gt;
# Die API-Version, hier also v1&lt;br /&gt;
echo &amp;quot;v1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Und eine(!) der folgenden 3 Ausgaben:&lt;br /&gt;
# 1: Es ist alles ok:&lt;br /&gt;
#echo &amp;quot;OK&amp;quot;&lt;br /&gt;
# 2: Die Mail enthält einen Virus&lt;br /&gt;
#echo &amp;quot;VIRUS: &amp;lt;virusdescription&amp;gt;&amp;quot;&lt;br /&gt;
# 3: Die Mail enthält SPAM, wir können den SPAM-Score beinflussen und z.B. um 2 erhöhen (der Startwert ist dann 2)&lt;br /&gt;
#echo SCORE: 2&lt;br /&gt;
# 4: Die Mail soll auf keinen Fall als SPAM erkannt werden, wir setzen den SCORE auf einen negativen Wert:&amp;lt;br&amp;gt;&lt;br /&gt;
#echo SCORE: -10&lt;br /&gt;
&lt;br /&gt;
# Dateinhalte (=Mail) einlesen&lt;br /&gt;
# queue_filecontent=$(cat $queue_file)&lt;br /&gt;
# Entfernt alle = am Zeilenende inklusive des Zeilenendes&lt;br /&gt;
queue_filecontent=$(sed &#039;:a;N;$!ba;s/=\n//g&#039; &amp;quot;$queue_file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
queue_base64_1_filecontent=$(sed -n &#039;/Content-Transfer-Encoding: base64/I,+1000{/Content-Transfer-Encoding: base64/d; /^--/q; p}&#039; &amp;quot;$queue_file&amp;quot; | sed &#039;1d&#039; | base64 -d)&lt;br /&gt;
#echo ---&lt;br /&gt;
#echo base64 1:&lt;br /&gt;
#echo $queue_base64_1_filecontent&lt;br /&gt;
#echo ---&lt;br /&gt;
queue_base64_2_filecontent=$(awk &#039;/Content-Transfer-Encoding: base64/{flag=1; next} /^--/{flag=0} flag&#039; &amp;quot;$queue_file&amp;quot; | sed -n &#039;1,/^$/d; p&#039; | head -n -0 | base64 -d)&lt;br /&gt;
#echo base64 2:&lt;br /&gt;
#echo $queue_base64_2_filecontent&lt;br /&gt;
#echo ---&lt;br /&gt;
#exit&lt;br /&gt;
&lt;br /&gt;
# Variable die ggf. am Ende dafür sorgt das &amp;quot;OK&amp;quot; ausgegeben wird falls es keinen SCORE: oder VIRUS: gibt&lt;br /&gt;
bNoBlackOrWhite=true&lt;br /&gt;
&lt;br /&gt;
# Test auf WHITE(-listing)&lt;br /&gt;
for strWHITE in ${filterArrayWHITELIST[@]}; do&lt;br /&gt;
    # echo $strBLACK&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strWHITE ]] || [[ &amp;quot;queue_base64_1_filecontent&amp;quot; =~ $strWHITE ]] || [[ &amp;quot;queue_base64_2_filecontent&amp;quot; =~ $strWHITE ]]; then&lt;br /&gt;
        bNoBlackOrWhite=false&lt;br /&gt;
        echo &amp;quot;$0 SCORE: ${spamScoreWHITELIST}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITELIST}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreWHITELIST}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Test auf BLACK(-listing):&lt;br /&gt;
for strBLACK in ${filterArrayBLACKLIST[@]}; do&lt;br /&gt;
    # echo $strBLACK&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strBLACK ]] || [[ &amp;quot;$queue_base64_1_filecontent&amp;quot; =~ $strBLACK ]] || [[ &amp;quot;$queue_base64_2_filecontent&amp;quot; =~ $strBLACK ]]; then&lt;br /&gt;
        bNoBlackOrWhite=false&lt;br /&gt;
        echo &amp;quot;$0 SCORE: ${spamScoreBLACKLIST}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreBLACKLIST}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreBLACKLIST}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if $bNoBlackOrWhite; then&lt;br /&gt;
    echo &amp;quot;$0 OK&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check OK\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo &amp;quot;OK&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nun das Skript ausführbar machen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/pmg-custom-check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Skript V2 testen===&lt;br /&gt;
Ihr testet das Skript indem Ihr es einfach aufruft, ohne Parameter:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check&lt;br /&gt;
Die Ausgabe sollte die beiden Listen anzeigen:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check called with&lt;br /&gt;
 usage: /usr/local/bin/pmg-custom-check APIVERSION QUEUEFILENAME&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 BLACKLIST:&lt;br /&gt;
 ----------&lt;br /&gt;
 ://apotheke.&lt;br /&gt;
 Test mit Leerzeichen&lt;br /&gt;
 apotheke.html&lt;br /&gt;
 pillen-bestellung-rezeptfrei&lt;br /&gt;
 superapotheke&lt;br /&gt;
 &lt;br /&gt;
 WHITELIST:&lt;br /&gt;
 ----------&lt;br /&gt;
 Test Abrakadabra&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Ggf. Scharf schalten===&lt;br /&gt;
Falls noch nicht im PMG aktiviert, macht es wie bei V1 beschrieben: [[#Skript scharf schalten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
==ToDo==&lt;br /&gt;
Folgendes möchte ich bei Gelegenheit noch in das Skript einbauen:&amp;lt;br&amp;gt;&lt;br /&gt;
* Echte RegEx-Abfrage statt nur String in String&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
* https://forum.proxmox.com/threads/mailbody-scan.136637/&lt;br /&gt;
* https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_custom_spamassassin_configuration&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&amp;diff=15751</id>
		<title>Proxmox Mail Gateway PMG Emails auf Wörter in Nachricht filtern Mailbody</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&amp;diff=15751"/>
		<updated>2026-01-09T12:56:42Z</updated>

		<summary type="html">&lt;p&gt;BLinz: /* Hinweis zur Filterung mit diesen Skripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 02.06.2025 Skript Version 1.0 =&amp;gt; erste Version&lt;br /&gt;
* 03.06.2025 Skript Version 1.1 =&amp;gt; mehr Details in den Logmeldungen / Syslog, Farbige Meldungen in der Konsole&lt;br /&gt;
* 26.06.2025 Version 2.0 =&amp;gt; Management der Filterwörter über die Weboberfläche des PMG&lt;br /&gt;
* 05.01.2026 Version 2.1 =&amp;gt; Problem Zeilenumbruch behoben&lt;br /&gt;
* 09.01.2026 Version 2.2 =&amp;gt; Suche auch in Base64 codierten Nachrichten&lt;br /&gt;
{{Hinweis|Den Anfang des Artikel mit der Version 1.2 des Skriptes habe ich hier so gelassen. Am Ende das Artikels habe die die neue Variante 2.x angehängt bei der man die Filterwörter über die Weboberfläche managen kann&amp;lt;br&amp;gt;&lt;br /&gt;
Es schadet nicht, erst die Version 1.1 zu implementieren, um festzustellen ob auch alles wie gewünscht funktioniert, und dann auf Version 2.x umzustellen}}&lt;br /&gt;
----&lt;br /&gt;
{{Hinweis| &#039;&#039;&#039;Base64 Codierung:&#039;&#039;&#039; Als Trick zur Verschleierung wird auch eine Base64 Codierung des Nachrichtentextes verwendet. Ab Version 2.2 klappt es aus bei solchen Nachrichten. In das 1er Skript habe ich das nicht nachträglich eingebaut}}&lt;br /&gt;
----&lt;br /&gt;
{{Hinweis| &#039;&#039;&#039;Zeilenumbrüche machten Probleme:&#039;&#039;&#039; Das Skript bekommt eine Version der Mail übergeben, in der noch Zeilenumbrüche enthalten sind.  Ab Version 2.1 (es wurde nur eine Zeile geändert) werden diese vor der Prüfung entfernt. Für die 1er Version habe ich das auch eingebaut}}&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
In letzter Zeit werden meine Familie und ich von Spam-Mails über Erektionsproblemen überflutet. Ein Großteil filtert das PMG schon aus so das dieses schon mal in Quarantäne landen. Aber es sind so viele das immer noch ein großer Teil durchrutscht.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mails sehen alle so aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-092913.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Text variiert, der Aufbau ist immer gleich. Die Mails werden dabei immer von vertrauenswürdigen Quellen gesendet, vermutlich also gehackte Emailkonten.&amp;lt;br&amp;gt;&lt;br /&gt;
Allen gemein ist das immer auf eine URL verwiesen wird die auf&lt;br /&gt;
 apotheke.html&lt;br /&gt;
endet. Die HTML-Datei liegt dabei oft auch auf den Webspace von vertrauenswürdigen Webseiten (die vermutlich auch gehackt wurden).&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-093311.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Also eigentlich etwas wonach man prima filtern könnte.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es stellte sich aber heraus das es dann doch nicht ganz so einfach mit PMG ist, denn es gibt keinen direkten Weg über die Weboberfläche.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Grundlage der Lösung findet sich in der Hilfe:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_custom_check&lt;br /&gt;
Man kann ein eigenes Skript einbinden an welche dann alle eingehenden Emails übergeben werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=Hinweis zur Filterung mit diesen Skripts=&lt;br /&gt;
Bitte beachtet das aktuell per &amp;quot;Text in Text&amp;quot; Suche gefiltert wird. Es funktionieren also keine reguläre Ausdrücke, ein Punkt {{code|.}} ist ein Punkt und kein beliebiges Zeichen, ein Stern {{code|*}} wird als eben dieses Zeichen gesucht und hat keine Funktion als Platzhalter.&amp;lt;br&amp;gt;&lt;br /&gt;
Vor der Suche werden alle Zeilenumbrüche die auf &amp;lt;code&amp;gt;&amp;quot;= &amp;quot;&amp;lt;/code&amp;gt; enden entfernt - damit die Wörter/URLs auch gefunden werden wenn diese umgebrochen sind.&amp;lt;br&amp;gt;&lt;br /&gt;
Zusätzliche wird 2fach nach Base64-Codierten Text in der Nachricht gesucht.&amp;lt;br&amp;gt;&lt;br /&gt;
Solche Bereiche beginnen immer mit:&amp;lt;br&amp;gt;&lt;br /&gt;
 --===============4392396301760993226==&lt;br /&gt;
 Content-Type: text/plain; charset=&amp;quot;utf-8&amp;quot;&lt;br /&gt;
 MIME-Version: 1.0&lt;br /&gt;
 Content-Transfer-Encoding: base64&lt;br /&gt;
 &lt;br /&gt;
 V2FydW0gZ3JlaWZlbiBpbW1lciBtZWhyIGp1bmdlIE3DpG5uZXIgenUgUG90ZW56bWl0dGVsbj8K&lt;br /&gt;
 Ckd1dGVuIEFiZW5kLAoKSMOkdHRlbiBTaWUgZ2VkYWNodCwgZGFzcyBzY2hvbiBNw6RubmVyIGFi&lt;br /&gt;
 IDIxIGjDpHVmaWdlciB6dSBQb3Rlbnp0YWJsZXR0ZW4gZ3JlaWZlbj8gIAotIFVudGVyc3VjaHVu&lt;br /&gt;
 ...&lt;br /&gt;
 dW5kbGljaGVuIEdyw7zDn2VuICAKQWxleGFuZGVyIEtyw7xnZXI=&lt;br /&gt;
Es wird nach {{code|Content-Transfer-Encoding: base64}} und alles bis zum nächsten {{code|=}} umgewandelt.&amp;lt;br&amp;gt;&lt;br /&gt;
In der Regel gibt es 2 Abschnitte damit, einmal mit dem &amp;quot;Nur-Text&amp;quot; Format und einmal mit dem &amp;quot;HTML&amp;quot; Format. Beide werden ebenfalls im Skript ab der Version 2.3 durchsucht.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Version 1.1==&lt;br /&gt;
Bei dieser Version werden die Wörter oder Sätze am Anfang des Skripts in den Variablen {{code|filterArraySPAM}} und {{code|filterArrayWHITE}} definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Wollte Ihr Wörter hinzufügen oder löschen, so müsst Ihr das Skript bearbeiten.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Custom Check Skript erstellen===&lt;br /&gt;
Die Grundlage der Lösung findet sich in der Hilfe:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_custom_check&lt;br /&gt;
Ich wollte es erst per SpamAssassin machen (mache ich vielleicht noch), die Lösung mit dem Skript gefiel mir jedoch im Moment besser.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir erstellen das folgende Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/local/bin/pmg-custom-check&lt;br /&gt;
mit folgendem Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Siehe https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&lt;br /&gt;
#&lt;br /&gt;
# V1.1 vom 03.06.2025 von Bernhard Linz =&amp;gt; Bernhard@znil.de&lt;br /&gt;
# V1.2 vom 05.01.2026 &lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Filter, weitere einfach mit Leerzeichen und in &amp;quot;...&amp;quot; hinzufügen, Es wird auf &amp;quot;String in String&amp;quot; getestet&lt;br /&gt;
# Nach SPAM&lt;br /&gt;
filterArraySPAM=(&amp;quot;apotheke.html&amp;quot; &amp;quot;test1234567890&amp;quot;)&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
spamScoreSPAM=4&lt;br /&gt;
&lt;br /&gt;
# Nach Whitelisting&lt;br /&gt;
filterArrayWHITE=(&amp;quot;Test Abrakadabra&amp;quot;)&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt&lt;br /&gt;
spamScoreWHITE=-10&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# schreibt nach STDERR durch 1&amp;gt;&amp;amp;2, das landet dann nur im Logfile /var/log/mail.log&lt;br /&gt;
# und wird nicht als Rückgabe des Skriptes interpretiert&lt;br /&gt;
# echo &amp;quot;/usr/bin/pmg-custom-check called with $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check called with $*\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
&lt;br /&gt;
# Fehler wenn nicht 2 Argumente&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ne 2 ]; then&lt;br /&gt;
  echo &amp;quot;usage: $0 APIVERSION QUEUEFILENAME&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Argument $1 ist die API-Version&lt;br /&gt;
apiver=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Argument $2 ist die Datei mit der Email&lt;br /&gt;
queue_file=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# shift würde das Argument $2 zu $1 verschieben&lt;br /&gt;
#shift&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$apiver&amp;quot; != &amp;quot;v1&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;/usr/bin/pmg-custom-check wrong APIVERSION: $apiver&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#queue_file=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Das Skirpt muss auf STDOUT 2 Ausgaben machen:&lt;br /&gt;
# Die API-Version, hier also v1&lt;br /&gt;
echo &amp;quot;v1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Und eine(!) der folgenden 3 Ausgaben:&lt;br /&gt;
# 1: Es ist alles ok:&lt;br /&gt;
#echo &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 2: Die Mail enthält einen Virus&lt;br /&gt;
#echo &amp;quot;VIRUS: &amp;lt;virusdescription&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 3: Die Mail enthält SPAM, wir können den SPAM-Score beinflussen und z.B. um 2 erhöhen (der Startwert ist dann 2)&lt;br /&gt;
#echo SCORE: 2&lt;br /&gt;
&lt;br /&gt;
# 4: Die Mail soll auf keinen Fall als SPAM erkannt werden, wir setzen den SCORE auf einen negativen Wert:&amp;lt;br&amp;gt;&lt;br /&gt;
#echo SCORE: -10&lt;br /&gt;
&lt;br /&gt;
# Dateinhalte (=Mail) einlesen&lt;br /&gt;
# queue_filecontent=$(cat $queue_file)&lt;br /&gt;
# Entfernt alle = am Zeilenende inklusive des Zeilenendes&lt;br /&gt;
queue_filecontent=$(sed &#039;:a;N;$!ba;s/=\n//g&#039; &amp;quot;$queue_file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Variable die ggf. am Ende dafür sorgt das &amp;quot;OK&amp;quot; ausgegeben wird&lt;br /&gt;
bNoSPAM=true&lt;br /&gt;
&lt;br /&gt;
# Test auf WHITE(-listing)&lt;br /&gt;
for strWHITE in ${filterArrayWHITE[@]}; do&lt;br /&gt;
    # echo $strSPAM&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strWHITE ]]; then&lt;br /&gt;
        bNoSPAM=false&lt;br /&gt;
        #echo &amp;quot;/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITE}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITE}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreWHITE}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Test auf SPAM:&lt;br /&gt;
for strSPAM in ${filterArraySPAM[@]}; do&lt;br /&gt;
    # echo $strSPAM&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strSPAM ]]; then&lt;br /&gt;
        bNoSPAM=false&lt;br /&gt;
        #echo &amp;quot;/usr/bin/pmg-custom-check SCORE: ${spamScoreSPAM}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreSPAM}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreSPAM}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if $bNoSPAM; then&lt;br /&gt;
    #echo &amp;quot;/usr/bin/pmg-custom-check OK&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check OK\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo &amp;quot;OK&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und das Skript ausführbar machen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/pmg-custom-check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Skript könnte Ihr zwei Dinge einstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
 # Nach SPAM&lt;br /&gt;
 filterArraySPAM=(&amp;quot;apotheke.html&amp;quot; &amp;quot;test1234567890&amp;quot;)&lt;br /&gt;
 # Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
 spamScoreSPAM=4&lt;br /&gt;
Da hinterlegt Ihr die Liste der Wörter, Sätze, Zeichenfolgen die als SPAM gekennzeichnet werden soll und entscheidet welche Punktzahl die Mail als Spam bekommt.&amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall hier die {{code|4}}. Die Mail wird trotzdem weiter verarbeitet, also alles was im Bereich &#039;&#039;&#039;Mail Filter&#039;&#039;&#039; aktiviert ist, greift zusätzlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Ggf. kommen also weitere SPAM-Punkte hinzu und die Mail wird ganz ablehnt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Nach Whitelisting&lt;br /&gt;
 filterArrayWHITE=(&amp;quot;Test Abrakadabra&amp;quot;)&lt;br /&gt;
 # Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt&lt;br /&gt;
 spamScoreWHITE=-10&lt;br /&gt;
Das gleiche Prinzip, nur das die Mail dann mit {{code|-10}} in die weitere Verarbeitung geht. Selbst wenn dann noch Spam Punkte gesammelt werden, wird die Mail also höchstwahrscheinlich zugestellt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Skript testen Teil 1===&lt;br /&gt;
Dazu bräuchten wir Dateien mit Mails.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr eine in der SPAM-Ansicht RAW habt, könnt mit einem eindeutigen Text danach suchen, in diesem Fall ist das die SPAM-Mail mit {{code|apotheke.html}}:&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -lr &amp;quot;minute.eicindustria.com.br&amp;quot; /var/spool&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 /var/spool/pmg/spam/5A/10013F683BC2482795A&lt;br /&gt;
Damit können wir unser Skript nun testen&lt;br /&gt;
 /usr/local/bin/pmg-custom-check v1 /var/spool/pmg/spam/5A/10013F683BC2482795A&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/bin/pmg-custom-check called with v1 /var/spool/pmg/spam/26/1002A068303219D3E26&lt;br /&gt;
 v1&lt;br /&gt;
 /usr/bin/pmg-custom-check SCORE: 4&lt;br /&gt;
Die erste und dritte Zeile landet später nur in {{code|/var/log/mail.log}} und im {{code|syslog}}, die anderen beiden sind die notwendige Rückgabe für das PMG.&amp;lt;br&amp;gt;&lt;br /&gt;
Gegenprobe mit einer anderen Email, mit&amp;lt;br&amp;gt;&lt;br /&gt;
 find /var/spool/pmg/spam/ -type f -printf &amp;quot;%T@ %p\n&amp;quot; | sort -nr | cut -d\  -f2-&lt;br /&gt;
könnt Ihr euch alle vorhandenen SPAM-Emails anzeigen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check v1 /var/spool/pmg/spam/26/1002A068303219D3E26&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250603-120936.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Skript scharf schalten===&lt;br /&gt;
Wir aktivieren das Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/pmg/pmg.conf&lt;br /&gt;
und im ersten Abschnitt &lt;br /&gt;
 section: admin&lt;br /&gt;
hängen wir die folgenden beiden Zeilen an:&amp;lt;br&amp;gt;&lt;br /&gt;
         custom_check_path /usr/local/bin/pmg-custom-check&lt;br /&gt;
         custom_check 1&lt;br /&gt;
Leider weis ich nicht welchen der Dienste man nun neu starten müsste bzw. wie man das erneute Einlesen der Konfiguration anstößt.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb starte ich den PMG neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 reboot&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Testmail===&lt;br /&gt;
Im Skript oben habe ich als Filter auch {{code|test1234567890}} eingebaut,&amp;lt;br&amp;gt;&lt;br /&gt;
also schicke ich mir mal eine Testmail von außerhalb mit der Zeichenfolge:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-131721.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und tatata! Der Spam Score ist 4! Ab 5 hätte er die Mail gleich verworfen!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert also!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Im Syslog===&lt;br /&gt;
Im Mailgateway Syslog sehen wir die Aufrufe des Skriptes:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250603-120738.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die komischen Sonderzeichen kommen daher das ich den Text in der Konsole unbedingt in rot haben wollte.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
==Version 2.x==&lt;br /&gt;
In dieser Variante des Skriptes kann man die Filter für SPAM und Whitelisting über die Proxmox-Weboberfläche pflegen. Zudem kann man auch ganze Sätze, inklusive Leerzeichen, als Filter nutzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Einschränkung gibt es: Das Pipe {{code|&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}} kann nicht verwendet werden, das brauchte ich im Skript um die Werte zu trennen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich würde euch empfehlen, erst die Skript Version 1.1 zu implementieren um das ganze zu testen und erst dann auf die Version 2.x umzubauen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Filter in Proxmox Mail Gateway PMG erstellen===&lt;br /&gt;
Damit das Skript funktioniert, müssen wir in der Weboberfläche des PMG 2 x {{code|Who Objects}} und einen {{code|Mail Filter}} anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104236.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die erste {{code|Who Objects}} nennen wir&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check-BLACKLIST&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104425.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
und fügen in dieser Liste eine {{code|Regular Expression}} für jeden Begriff, Satz oder sonstiges was in der Email vorkommen muss um diese zu filtern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104647.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104728.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so das wir am Ende eine Liste habe. Es sollte mindestens einen Eintrag geben! Ggf. setzt einen sinnlosen Text hinein der nicht vorkommen wird.&amp;lt;br&amp;gt;&lt;br /&gt;
Meine fertige Liste sieht dann so aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104855.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun das zweite {{code|Who Objects}} mit der Whitelist nach dem gleichen Prinzip, der Name muss wie folgt lauten:&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check-WHITELIST&lt;br /&gt;
Fertig sieht das dann so aus (mindestens 1 Eintrag!)&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105310.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt erstellen wir einen {{code|Mail Filter}} in welchen wir die beiden {{code|Who Objects}} verwenden.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105752.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Name muss unbedingt&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check&lt;br /&gt;
sein&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105553.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die {{code|Priority}} setzen wir auf {{code|&amp;lt;nowki&amp;gt;1&amp;lt;/nowiki&amp;gt;}} so das diese ganz unten landet, {{code|Direction}} ist {{code|In}} und nein, die Rule darf nicht aktiv sein!&amp;lt;br&amp;gt;&lt;br /&gt;
Ihr markiert die Regel (ganz unten!) und fügt dann rechts im Dialog über {{code|From}} die beiden zuvor erstellten {{code|Who Objects}} hinzu.&amp;lt;br&amp;gt;&lt;br /&gt;
Das muss dann am Ende so aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-110026.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Fertig! Ja, der {{code|Mail Filter}} macht keinen sinn, es geht nur darum das man die Daten per Skript auslesen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wollte Ihr später Begriffe hinzufügen oder entfernen, so packt diese einfach in die passende Liste unterhalb von {{code|Who Objects}}.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Custom Check Skript erstellen Version 2.x===&lt;br /&gt;
Wir erstellen oder bearbeiten das folgende Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/local/bin/pmg-custom-check&lt;br /&gt;
und setzen diesen Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# 2025-2026 Bernhard Linz / Bernhard@znil.de&lt;br /&gt;
# Webseite: https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&lt;br /&gt;
#&lt;br /&gt;
# Changelog:&lt;br /&gt;
# ----------&lt;br /&gt;
# 03.06.2025 V1.1 erste öffentliche Version / first public version&lt;br /&gt;
# 29.06.2025 V2 Filterwörter können über Weboberfläche hinzugefügt werden / add filter words at web management&lt;br /&gt;
# 05.01.2026 V2.1 Problem mit Zeilenumbruch behoben&lt;br /&gt;
# 09.01.2026 V2.2 Base64 decodierung auch durchsuchen&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Setup:&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
spamScoreBLACKLIST=10&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt (negative Werte Whitelisten)&lt;br /&gt;
spamScoreWHITELIST=-10&lt;br /&gt;
&lt;br /&gt;
# In der PMG Weboberfläche unter &amp;quot;Mail Filter&amp;quot; =&amp;gt; &amp;quot;Who Objects&amp;quot; zwei Objekte anlegen mit den Namen&lt;br /&gt;
# pmg-custom-check-BLACKLIST&lt;br /&gt;
# pmg-custom-check-WHITELIST&lt;br /&gt;
# und die jeweiligen Begriffe/Sätze etc als &amp;quot;Regular Expression&amp;quot; hinterlegen (es aber trotzdem nur ein Text in Text vergleich gemacht)&lt;br /&gt;
# Danach unter &amp;quot;Mail Filter&amp;quot; eine neue &amp;quot;Rule&amp;quot; anlegen:&lt;br /&gt;
# Name     : pmg-custom-check&lt;br /&gt;
# Priority : 1&lt;br /&gt;
# Direction: In&lt;br /&gt;
# Active   : deaktiviert!&lt;br /&gt;
# In der Rule rechts über From die beiden Listen &amp;quot;pmg-custom-check-BLACKLIST&amp;quot; und &amp;quot;pmg-custom-check-WHITELIST&amp;quot; hinzufügen&lt;br /&gt;
# sonst nichts! keine Action, Regel nicht aktivieren! Eintrag dient nur dem Auslesen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Black- und Whitelist aus den RULES einlesen:&lt;br /&gt;
# Alle Regeln einlesen per pmgdb Befehl (Ergibt einen großen String, kein Array)&lt;br /&gt;
rulesdump=$(/usr/bin/pmgdb dump)&lt;br /&gt;
# In Array Zeile für Zeilenweise speichern&lt;br /&gt;
array_rulesdump=()&lt;br /&gt;
while IFS= read -r line; do array_rulesdump+=(&amp;quot;$line&amp;quot;); done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$rulesdump&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Leere Arrays für die beiden Listen anlegen&lt;br /&gt;
filterArrayBLACKLIST=()&lt;br /&gt;
filterArrayWHITELIST=()&lt;br /&gt;
&lt;br /&gt;
# Prüfung ob Black- und Whitelist gefunden wurden&lt;br /&gt;
boolFoundBlacklist=&amp;quot;false&amp;quot;&lt;br /&gt;
boolFoundWhitelist=&amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Auswerten des array_rulesdump:&lt;br /&gt;
for (( i=0; i &amp;lt; ${#array_rulesdump[*]}; i++ )); do&lt;br /&gt;
    # Suche nach Rule (aka Mail Filter) mit pmg-custom-check im Namen&lt;br /&gt;
    if [ &amp;quot;${array_rulesdump[$i]:0:4}&amp;quot; = &amp;quot;RULE&amp;quot; ]; then&lt;br /&gt;
        # Zeile fängt mit RULE an&lt;br /&gt;
        if [[ &amp;quot;${array_rulesdump[$i]}&amp;quot; =~ &amp;quot;pmg-custom-check&amp;quot; ]]; then&lt;br /&gt;
            # und enthält die Zeichenfolge pmg-custom-check&lt;br /&gt;
            #echo &amp;quot;${array_rulesdump[$i]}&amp;quot;&lt;br /&gt;
            # den Abschnitt &amp;quot;FROM ... pmg-custom-check-BLACKLIST&amp;quot; oder &amp;quot;FROM ... pmg-custom-check-WHITELIST&amp;quot; finden, wir fangen ab aktueller Position an&lt;br /&gt;
            for (( j=$i; j &amp;lt; ${#array_rulesdump[*]}; j++ )); do&lt;br /&gt;
                if [ &amp;quot;${array_rulesdump[$j]:0:6}&amp;quot; = &amp;quot;  FROM&amp;quot; ]; then&lt;br /&gt;
                    # Zeile fängt mit __FROM an&lt;br /&gt;
                    # Test auf BLACKLIST:&lt;br /&gt;
                    if [[ &amp;quot;${array_rulesdump[$j]}&amp;quot; =~ &amp;quot;BLACKLIST&amp;quot; ]]; then&lt;br /&gt;
                        # und enthält die Zeichenfolge BLACKLIST!&lt;br /&gt;
                        # aktuelle Zeile überspringen:&lt;br /&gt;
                        j=$((j + 1))&lt;br /&gt;
                        # Es müssten Zeilen folgen die mit OBJECT beginnen&lt;br /&gt;
                        for (( m=$j; m &amp;lt; ${#array_rulesdump[*]}; m++ )); do&lt;br /&gt;
                            if [ &amp;quot;${array_rulesdump[$m]:0:10}&amp;quot; = &amp;quot;    OBJECT&amp;quot; ]; then&lt;br /&gt;
                                #echo &amp;quot;${array_rulesdump[$m]}&amp;quot;&lt;br /&gt;
                                # &amp;quot;: &amp;quot; wird durch &amp;quot;|&amp;quot; ersetzt und daran geteilt damit Doppelpunkte im Suchstring erhalten bleiben.&lt;br /&gt;
                                templine=$`echo &amp;quot;${array_rulesdump[$m]}&amp;quot; | sed &#039;s/: /|/&#039;`&lt;br /&gt;
                                IFS=&#039;|&#039; read -ra filter &amp;lt;&amp;lt;&amp;lt; &amp;quot;${templine}&amp;quot;&lt;br /&gt;
                                #echo &amp;quot;${filter[1]}&amp;quot;&lt;br /&gt;
                                # IFS auf | damit auch Text mit Leerzeichen ins Array kommt, werden sonst einzelne Elemente&lt;br /&gt;
                                IFS=&#039;|&#039; filterArrayBLACKLIST+=(&amp;quot;${filter[1]}&amp;quot;)&lt;br /&gt;
                            else&lt;br /&gt;
                                # schleife verlassen, hier kommt ein neuer Abschnitt das nächste RULE, FROM usw.&lt;br /&gt;
                                break&lt;br /&gt;
                            fi&lt;br /&gt;
                        done&lt;br /&gt;
                        boolFoundBlacklist=&amp;quot;true&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
                    # Test auf WHITELIST:&lt;br /&gt;
                    if [[ &amp;quot;${array_rulesdump[$j]}&amp;quot; =~ &amp;quot;WHITELIST&amp;quot; ]]; then&lt;br /&gt;
                        # und enthält die Zeichenfolge WHITELIST!&lt;br /&gt;
                        # Es müssten Zeilen folgen die mit OBJECT beginnen&lt;br /&gt;
                        #echo &amp;quot;${array_rulesdump[$j]}&amp;quot;&lt;br /&gt;
                        j=$((j + 1))&lt;br /&gt;
                        for (( m=$j; m &amp;lt; ${#array_rulesdump[*]}; m++ )); do&lt;br /&gt;
                            if [ &amp;quot;${array_rulesdump[$m]:0:10}&amp;quot; = &amp;quot;    OBJECT&amp;quot; ]; then&lt;br /&gt;
                                #echo &amp;quot;${array_rulesdump[$m]}&amp;quot;&lt;br /&gt;
                                # &amp;quot;: &amp;quot; wird durch &amp;quot;|&amp;quot; ersetzt und daran geteilt damit Doppelpunkte im Suchstring erhalten bleiben.&lt;br /&gt;
                                templine=$`echo &amp;quot;${array_rulesdump[$m]}&amp;quot; | sed &#039;s/: /|/&#039;`&lt;br /&gt;
                                IFS=&#039;|&#039; read -ra filter &amp;lt;&amp;lt;&amp;lt; &amp;quot;${templine}&amp;quot;&lt;br /&gt;
                                #echo &amp;quot;${filter[1]}&amp;quot;&lt;br /&gt;
                                # IFS auf | damit auch Text mit Leerzeichen ins Array kommt, werden sonst einzelne Elemente&lt;br /&gt;
                                IFS=&#039;|&#039; filterArrayWHITELIST+=(&amp;quot;${filter[1]}&amp;quot;)&lt;br /&gt;
                            else&lt;br /&gt;
                                # schleife verlassen, hier kommt das nächste Object oder Rule&lt;br /&gt;
                                break&lt;br /&gt;
                            fi&lt;br /&gt;
                        done&lt;br /&gt;
                        boolFoundWhitelist=&amp;quot;true&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
                fi&lt;br /&gt;
                if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;true&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$filterArrayWHITELIST&amp;quot; = &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
                    # Alles gefunden, Schleife abbrechen!&lt;br /&gt;
                    break&lt;br /&gt;
                fi&lt;br /&gt;
            done&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
# Prüfung ob wir Filterlisten haben, wenn nicht abbrechen&lt;br /&gt;
if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;no Blacklist found&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$boolFoundWhitelist&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;no Whitelist found&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;false&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$filterArrayWHITELIST&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# schreibt nach STDERR durch 1&amp;gt;&amp;amp;2, das landet dann nur im Logfile /var/log/mail.log&lt;br /&gt;
# und wird nicht als Rückgabe des Skriptes interpretiert&lt;br /&gt;
echo &amp;quot;$0 called with $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
#echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check called with $*\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
&lt;br /&gt;
# Fehler wenn nicht 2 Argumente&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ne 2 ]; then&lt;br /&gt;
  echo &amp;quot;usage: $0 APIVERSION QUEUEFILENAME&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;---------------------------------------------------------------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;BLACKLIST:&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;----------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  for strBLACK in ${filterArrayBLACKLIST[@]}; do&lt;br /&gt;
      echo $strBLACK 1&amp;gt;&amp;amp;2&lt;br /&gt;
  done&lt;br /&gt;
  echo &amp;quot; &amp;quot;&lt;br /&gt;
  echo &amp;quot;WHITELIST:&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;----------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  for strWHITE in ${filterArrayWHITELIST[@]}; do&lt;br /&gt;
      echo $strWHITE 1&amp;gt;&amp;amp;2&lt;br /&gt;
  done&lt;br /&gt;
  echo &amp;quot;---------------------------------------------------------------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Argument $1 ist die API-Version&lt;br /&gt;
apiver=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Argument $2 ist die Datei mit der Email&lt;br /&gt;
queue_file=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Für Fehlersuche Kopie erstellen&lt;br /&gt;
#cp $queue_file /test/&lt;br /&gt;
&lt;br /&gt;
# shift würde das Argument $2 zu $1 verschieben&lt;br /&gt;
#shift&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$apiver&amp;quot; != &amp;quot;v1&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;$0 wrong APIVERSION: $apiver&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Das Skirpt muss auf STDOUT zwei Ausgaben machen:&lt;br /&gt;
# Die API-Version, hier also v1&lt;br /&gt;
echo &amp;quot;v1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Und eine(!) der folgenden 3 Ausgaben:&lt;br /&gt;
# 1: Es ist alles ok:&lt;br /&gt;
#echo &amp;quot;OK&amp;quot;&lt;br /&gt;
# 2: Die Mail enthält einen Virus&lt;br /&gt;
#echo &amp;quot;VIRUS: &amp;lt;virusdescription&amp;gt;&amp;quot;&lt;br /&gt;
# 3: Die Mail enthält SPAM, wir können den SPAM-Score beinflussen und z.B. um 2 erhöhen (der Startwert ist dann 2)&lt;br /&gt;
#echo SCORE: 2&lt;br /&gt;
# 4: Die Mail soll auf keinen Fall als SPAM erkannt werden, wir setzen den SCORE auf einen negativen Wert:&amp;lt;br&amp;gt;&lt;br /&gt;
#echo SCORE: -10&lt;br /&gt;
&lt;br /&gt;
# Dateinhalte (=Mail) einlesen&lt;br /&gt;
# queue_filecontent=$(cat $queue_file)&lt;br /&gt;
# Entfernt alle = am Zeilenende inklusive des Zeilenendes&lt;br /&gt;
queue_filecontent=$(sed &#039;:a;N;$!ba;s/=\n//g&#039; &amp;quot;$queue_file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
queue_base64_1_filecontent=$(sed -n &#039;/Content-Transfer-Encoding: base64/I,+1000{/Content-Transfer-Encoding: base64/d; /^--/q; p}&#039; &amp;quot;$queue_file&amp;quot; | sed &#039;1d&#039; | base64 -d)&lt;br /&gt;
#echo ---&lt;br /&gt;
#echo base64 1:&lt;br /&gt;
#echo $queue_base64_1_filecontent&lt;br /&gt;
#echo ---&lt;br /&gt;
queue_base64_2_filecontent=$(awk &#039;/Content-Transfer-Encoding: base64/{flag=1; next} /^--/{flag=0} flag&#039; &amp;quot;$queue_file&amp;quot; | sed -n &#039;1,/^$/d; p&#039; | head -n -0 | base64 -d)&lt;br /&gt;
#echo base64 2:&lt;br /&gt;
#echo $queue_base64_2_filecontent&lt;br /&gt;
#echo ---&lt;br /&gt;
#exit&lt;br /&gt;
&lt;br /&gt;
# Variable die ggf. am Ende dafür sorgt das &amp;quot;OK&amp;quot; ausgegeben wird falls es keinen SCORE: oder VIRUS: gibt&lt;br /&gt;
bNoBlackOrWhite=true&lt;br /&gt;
&lt;br /&gt;
# Test auf WHITE(-listing)&lt;br /&gt;
for strWHITE in ${filterArrayWHITELIST[@]}; do&lt;br /&gt;
    # echo $strBLACK&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strWHITE ]] || [[ &amp;quot;queue_base64_1_filecontent&amp;quot; =~ $strWHITE ]] || [[ &amp;quot;queue_base64_2_filecontent&amp;quot; =~ $strWHITE ]]; then&lt;br /&gt;
        bNoBlackOrWhite=false&lt;br /&gt;
        echo &amp;quot;$0 SCORE: ${spamScoreWHITELIST}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITELIST}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreWHITELIST}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Test auf BLACK(-listing):&lt;br /&gt;
for strBLACK in ${filterArrayBLACKLIST[@]}; do&lt;br /&gt;
    # echo $strBLACK&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strBLACK ]] || [[ &amp;quot;$queue_base64_1_filecontent&amp;quot; =~ $strBLACK ]] || [[ &amp;quot;$queue_base64_2_filecontent&amp;quot; =~ $strBLACK ]]; then&lt;br /&gt;
        bNoBlackOrWhite=false&lt;br /&gt;
        echo &amp;quot;$0 SCORE: ${spamScoreBLACKLIST}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreBLACKLIST}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreBLACKLIST}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if $bNoBlackOrWhite; then&lt;br /&gt;
    echo &amp;quot;$0 OK&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check OK\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo &amp;quot;OK&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nun das Skript ausführbar machen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/pmg-custom-check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Skript V2 testen===&lt;br /&gt;
Ihr testet das Skript indem Ihr es einfach aufruft, ohne Parameter:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check&lt;br /&gt;
Die Ausgabe sollte die beiden Listen anzeigen:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check called with&lt;br /&gt;
 usage: /usr/local/bin/pmg-custom-check APIVERSION QUEUEFILENAME&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 BLACKLIST:&lt;br /&gt;
 ----------&lt;br /&gt;
 ://apotheke.&lt;br /&gt;
 Test mit Leerzeichen&lt;br /&gt;
 apotheke.html&lt;br /&gt;
 pillen-bestellung-rezeptfrei&lt;br /&gt;
 superapotheke&lt;br /&gt;
 &lt;br /&gt;
 WHITELIST:&lt;br /&gt;
 ----------&lt;br /&gt;
 Test Abrakadabra&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Ggf. Scharf schalten===&lt;br /&gt;
Falls noch nicht im PMG aktiviert, macht es wie bei V1 beschrieben: [[#Skript scharf schalten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
==ToDo==&lt;br /&gt;
Folgendes möchte ich bei Gelegenheit noch in das Skript einbauen:&amp;lt;br&amp;gt;&lt;br /&gt;
* Echte RegEx-Abfrage statt nur String in String&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
* https://forum.proxmox.com/threads/mailbody-scan.136637/&lt;br /&gt;
* https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_custom_spamassassin_configuration&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
	<entry>
		<id>https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&amp;diff=15750</id>
		<title>Proxmox Mail Gateway PMG Emails auf Wörter in Nachricht filtern Mailbody</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&amp;diff=15750"/>
		<updated>2026-01-09T12:51:21Z</updated>

		<summary type="html">&lt;p&gt;BLinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* 02.06.2025 Skript Version 1.0 =&amp;gt; erste Version&lt;br /&gt;
* 03.06.2025 Skript Version 1.1 =&amp;gt; mehr Details in den Logmeldungen / Syslog, Farbige Meldungen in der Konsole&lt;br /&gt;
* 26.06.2025 Version 2.0 =&amp;gt; Management der Filterwörter über die Weboberfläche des PMG&lt;br /&gt;
* 05.01.2026 Version 2.1 =&amp;gt; Problem Zeilenumbruch behoben&lt;br /&gt;
* 09.01.2026 Version 2.2 =&amp;gt; Suche auch in Base64 codierten Nachrichten&lt;br /&gt;
{{Hinweis|Den Anfang des Artikel mit der Version 1.2 des Skriptes habe ich hier so gelassen. Am Ende das Artikels habe die die neue Variante 2.x angehängt bei der man die Filterwörter über die Weboberfläche managen kann&amp;lt;br&amp;gt;&lt;br /&gt;
Es schadet nicht, erst die Version 1.1 zu implementieren, um festzustellen ob auch alles wie gewünscht funktioniert, und dann auf Version 2.x umzustellen}}&lt;br /&gt;
----&lt;br /&gt;
{{Hinweis| &#039;&#039;&#039;Base64 Codierung:&#039;&#039;&#039; Als Trick zur Verschleierung wird auch eine Base64 Codierung des Nachrichtentextes verwendet. Ab Version 2.2 klappt es aus bei solchen Nachrichten. In das 1er Skript habe ich das nicht nachträglich eingebaut}}&lt;br /&gt;
----&lt;br /&gt;
{{Hinweis| &#039;&#039;&#039;Zeilenumbrüche machten Probleme:&#039;&#039;&#039; Das Skript bekommt eine Version der Mail übergeben, in der noch Zeilenumbrüche enthalten sind.  Ab Version 2.1 (es wurde nur eine Zeile geändert) werden diese vor der Prüfung entfernt. Für die 1er Version habe ich das auch eingebaut}}&lt;br /&gt;
----&lt;br /&gt;
==Vorwort==&lt;br /&gt;
In letzter Zeit werden meine Familie und ich von Spam-Mails über Erektionsproblemen überflutet. Ein Großteil filtert das PMG schon aus so das dieses schon mal in Quarantäne landen. Aber es sind so viele das immer noch ein großer Teil durchrutscht.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Mails sehen alle so aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-092913.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Text variiert, der Aufbau ist immer gleich. Die Mails werden dabei immer von vertrauenswürdigen Quellen gesendet, vermutlich also gehackte Emailkonten.&amp;lt;br&amp;gt;&lt;br /&gt;
Allen gemein ist das immer auf eine URL verwiesen wird die auf&lt;br /&gt;
 apotheke.html&lt;br /&gt;
endet. Die HTML-Datei liegt dabei oft auch auf den Webspace von vertrauenswürdigen Webseiten (die vermutlich auch gehackt wurden).&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-093311.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Also eigentlich etwas wonach man prima filtern könnte.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es stellte sich aber heraus das es dann doch nicht ganz so einfach mit PMG ist, denn es gibt keinen direkten Weg über die Weboberfläche.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Grundlage der Lösung findet sich in der Hilfe:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_custom_check&lt;br /&gt;
Man kann ein eigenes Skript einbinden an welche dann alle eingehenden Emails übergeben werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
=Hinweis zur Filterung mit diesen Skripts=&lt;br /&gt;
Bitte beachtet das aktuell per &amp;quot;Text in Text&amp;quot; Suche gefiltert wird. Es funktionieren also keine reguläre Ausdrücke, ein Punkt {{code|.}} ist ein Punkt und kein beliebiges Zeichen, ein Stern {{code|*}} wird als eben dieses Zeichen gesucht und hat keine Funktion als Platzhalter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
==Version 1.1==&lt;br /&gt;
Bei dieser Version werden die Wörter oder Sätze am Anfang des Skripts in den Variablen {{code|filterArraySPAM}} und {{code|filterArrayWHITE}} definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Wollte Ihr Wörter hinzufügen oder löschen, so müsst Ihr das Skript bearbeiten.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Custom Check Skript erstellen===&lt;br /&gt;
Die Grundlage der Lösung findet sich in der Hilfe:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmgconfig_custom_check&lt;br /&gt;
Ich wollte es erst per SpamAssassin machen (mache ich vielleicht noch), die Lösung mit dem Skript gefiel mir jedoch im Moment besser.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir erstellen das folgende Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/local/bin/pmg-custom-check&lt;br /&gt;
mit folgendem Inhalt:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Siehe https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&lt;br /&gt;
#&lt;br /&gt;
# V1.1 vom 03.06.2025 von Bernhard Linz =&amp;gt; Bernhard@znil.de&lt;br /&gt;
# V1.2 vom 05.01.2026 &lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Filter, weitere einfach mit Leerzeichen und in &amp;quot;...&amp;quot; hinzufügen, Es wird auf &amp;quot;String in String&amp;quot; getestet&lt;br /&gt;
# Nach SPAM&lt;br /&gt;
filterArraySPAM=(&amp;quot;apotheke.html&amp;quot; &amp;quot;test1234567890&amp;quot;)&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
spamScoreSPAM=4&lt;br /&gt;
&lt;br /&gt;
# Nach Whitelisting&lt;br /&gt;
filterArrayWHITE=(&amp;quot;Test Abrakadabra&amp;quot;)&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt&lt;br /&gt;
spamScoreWHITE=-10&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# schreibt nach STDERR durch 1&amp;gt;&amp;amp;2, das landet dann nur im Logfile /var/log/mail.log&lt;br /&gt;
# und wird nicht als Rückgabe des Skriptes interpretiert&lt;br /&gt;
# echo &amp;quot;/usr/bin/pmg-custom-check called with $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check called with $*\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
&lt;br /&gt;
# Fehler wenn nicht 2 Argumente&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ne 2 ]; then&lt;br /&gt;
  echo &amp;quot;usage: $0 APIVERSION QUEUEFILENAME&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Argument $1 ist die API-Version&lt;br /&gt;
apiver=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Argument $2 ist die Datei mit der Email&lt;br /&gt;
queue_file=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# shift würde das Argument $2 zu $1 verschieben&lt;br /&gt;
#shift&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$apiver&amp;quot; != &amp;quot;v1&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;/usr/bin/pmg-custom-check wrong APIVERSION: $apiver&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#queue_file=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Das Skirpt muss auf STDOUT 2 Ausgaben machen:&lt;br /&gt;
# Die API-Version, hier also v1&lt;br /&gt;
echo &amp;quot;v1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Und eine(!) der folgenden 3 Ausgaben:&lt;br /&gt;
# 1: Es ist alles ok:&lt;br /&gt;
#echo &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 2: Die Mail enthält einen Virus&lt;br /&gt;
#echo &amp;quot;VIRUS: &amp;lt;virusdescription&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 3: Die Mail enthält SPAM, wir können den SPAM-Score beinflussen und z.B. um 2 erhöhen (der Startwert ist dann 2)&lt;br /&gt;
#echo SCORE: 2&lt;br /&gt;
&lt;br /&gt;
# 4: Die Mail soll auf keinen Fall als SPAM erkannt werden, wir setzen den SCORE auf einen negativen Wert:&amp;lt;br&amp;gt;&lt;br /&gt;
#echo SCORE: -10&lt;br /&gt;
&lt;br /&gt;
# Dateinhalte (=Mail) einlesen&lt;br /&gt;
# queue_filecontent=$(cat $queue_file)&lt;br /&gt;
# Entfernt alle = am Zeilenende inklusive des Zeilenendes&lt;br /&gt;
queue_filecontent=$(sed &#039;:a;N;$!ba;s/=\n//g&#039; &amp;quot;$queue_file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Variable die ggf. am Ende dafür sorgt das &amp;quot;OK&amp;quot; ausgegeben wird&lt;br /&gt;
bNoSPAM=true&lt;br /&gt;
&lt;br /&gt;
# Test auf WHITE(-listing)&lt;br /&gt;
for strWHITE in ${filterArrayWHITE[@]}; do&lt;br /&gt;
    # echo $strSPAM&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strWHITE ]]; then&lt;br /&gt;
        bNoSPAM=false&lt;br /&gt;
        #echo &amp;quot;/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITE}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITE}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreWHITE}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Test auf SPAM:&lt;br /&gt;
for strSPAM in ${filterArraySPAM[@]}; do&lt;br /&gt;
    # echo $strSPAM&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strSPAM ]]; then&lt;br /&gt;
        bNoSPAM=false&lt;br /&gt;
        #echo &amp;quot;/usr/bin/pmg-custom-check SCORE: ${spamScoreSPAM}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreSPAM}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreSPAM}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if $bNoSPAM; then&lt;br /&gt;
    #echo &amp;quot;/usr/bin/pmg-custom-check OK&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check OK\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo &amp;quot;OK&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Und das Skript ausführbar machen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/pmg-custom-check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Im Skript könnte Ihr zwei Dinge einstellen:&amp;lt;br&amp;gt;&lt;br /&gt;
 # Nach SPAM&lt;br /&gt;
 filterArraySPAM=(&amp;quot;apotheke.html&amp;quot; &amp;quot;test1234567890&amp;quot;)&lt;br /&gt;
 # Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
 spamScoreSPAM=4&lt;br /&gt;
Da hinterlegt Ihr die Liste der Wörter, Sätze, Zeichenfolgen die als SPAM gekennzeichnet werden soll und entscheidet welche Punktzahl die Mail als Spam bekommt.&amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall hier die {{code|4}}. Die Mail wird trotzdem weiter verarbeitet, also alles was im Bereich &#039;&#039;&#039;Mail Filter&#039;&#039;&#039; aktiviert ist, greift zusätzlich.&amp;lt;br&amp;gt;&lt;br /&gt;
Ggf. kommen also weitere SPAM-Punkte hinzu und die Mail wird ganz ablehnt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Nach Whitelisting&lt;br /&gt;
 filterArrayWHITE=(&amp;quot;Test Abrakadabra&amp;quot;)&lt;br /&gt;
 # Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt&lt;br /&gt;
 spamScoreWHITE=-10&lt;br /&gt;
Das gleiche Prinzip, nur das die Mail dann mit {{code|-10}} in die weitere Verarbeitung geht. Selbst wenn dann noch Spam Punkte gesammelt werden, wird die Mail also höchstwahrscheinlich zugestellt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Skript testen Teil 1===&lt;br /&gt;
Dazu bräuchten wir Dateien mit Mails.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn Ihr eine in der SPAM-Ansicht RAW habt, könnt mit einem eindeutigen Text danach suchen, in diesem Fall ist das die SPAM-Mail mit {{code|apotheke.html}}:&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -lr &amp;quot;minute.eicindustria.com.br&amp;quot; /var/spool&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 /var/spool/pmg/spam/5A/10013F683BC2482795A&lt;br /&gt;
Damit können wir unser Skript nun testen&lt;br /&gt;
 /usr/local/bin/pmg-custom-check v1 /var/spool/pmg/spam/5A/10013F683BC2482795A&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/bin/pmg-custom-check called with v1 /var/spool/pmg/spam/26/1002A068303219D3E26&lt;br /&gt;
 v1&lt;br /&gt;
 /usr/bin/pmg-custom-check SCORE: 4&lt;br /&gt;
Die erste und dritte Zeile landet später nur in {{code|/var/log/mail.log}} und im {{code|syslog}}, die anderen beiden sind die notwendige Rückgabe für das PMG.&amp;lt;br&amp;gt;&lt;br /&gt;
Gegenprobe mit einer anderen Email, mit&amp;lt;br&amp;gt;&lt;br /&gt;
 find /var/spool/pmg/spam/ -type f -printf &amp;quot;%T@ %p\n&amp;quot; | sort -nr | cut -d\  -f2-&lt;br /&gt;
könnt Ihr euch alle vorhandenen SPAM-Emails anzeigen lassen.&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check v1 /var/spool/pmg/spam/26/1002A068303219D3E26&lt;br /&gt;
Beispielausgabe:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250603-120936.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Skript scharf schalten===&lt;br /&gt;
Wir aktivieren das Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /etc/pmg/pmg.conf&lt;br /&gt;
und im ersten Abschnitt &lt;br /&gt;
 section: admin&lt;br /&gt;
hängen wir die folgenden beiden Zeilen an:&amp;lt;br&amp;gt;&lt;br /&gt;
         custom_check_path /usr/local/bin/pmg-custom-check&lt;br /&gt;
         custom_check 1&lt;br /&gt;
Leider weis ich nicht welchen der Dienste man nun neu starten müsste bzw. wie man das erneute Einlesen der Konfiguration anstößt.&amp;lt;br&amp;gt;&lt;br /&gt;
Deshalb starte ich den PMG neu:&amp;lt;br&amp;gt;&lt;br /&gt;
 reboot&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Testmail===&lt;br /&gt;
Im Skript oben habe ich als Filter auch {{code|test1234567890}} eingebaut,&amp;lt;br&amp;gt;&lt;br /&gt;
also schicke ich mir mal eine Testmail von außerhalb mit der Zeichenfolge:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250602-131721.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und tatata! Der Spam Score ist 4! Ab 5 hätte er die Mail gleich verworfen!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert also!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Im Syslog===&lt;br /&gt;
Im Mailgateway Syslog sehen wir die Aufrufe des Skriptes:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250603-120738.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die komischen Sonderzeichen kommen daher das ich den Text in der Konsole unbedingt in rot haben wollte.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
==Version 2.x==&lt;br /&gt;
In dieser Variante des Skriptes kann man die Filter für SPAM und Whitelisting über die Proxmox-Weboberfläche pflegen. Zudem kann man auch ganze Sätze, inklusive Leerzeichen, als Filter nutzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Einschränkung gibt es: Das Pipe {{code|&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}} kann nicht verwendet werden, das brauchte ich im Skript um die Werte zu trennen.&amp;lt;br&amp;gt;&lt;br /&gt;
Ich würde euch empfehlen, erst die Skript Version 1.1 zu implementieren um das ganze zu testen und erst dann auf die Version 2.x umzubauen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
===Filter in Proxmox Mail Gateway PMG erstellen===&lt;br /&gt;
Damit das Skript funktioniert, müssen wir in der Weboberfläche des PMG 2 x {{code|Who Objects}} und einen {{code|Mail Filter}} anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104236.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die erste {{code|Who Objects}} nennen wir&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check-BLACKLIST&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104425.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
und fügen in dieser Liste eine {{code|Regular Expression}} für jeden Begriff, Satz oder sonstiges was in der Email vorkommen muss um diese zu filtern:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104647.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104728.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
so das wir am Ende eine Liste habe. Es sollte mindestens einen Eintrag geben! Ggf. setzt einen sinnlosen Text hinein der nicht vorkommen wird.&amp;lt;br&amp;gt;&lt;br /&gt;
Meine fertige Liste sieht dann so aus:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-104855.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nun das zweite {{code|Who Objects}} mit der Whitelist nach dem gleichen Prinzip, der Name muss wie folgt lauten:&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check-WHITELIST&lt;br /&gt;
Fertig sieht das dann so aus (mindestens 1 Eintrag!)&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105310.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jetzt erstellen wir einen {{code|Mail Filter}} in welchen wir die beiden {{code|Who Objects}} verwenden.&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105752.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Der Name muss unbedingt&amp;lt;br&amp;gt;&lt;br /&gt;
 pmg-custom-check&lt;br /&gt;
sein&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-105553.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Die {{code|Priority}} setzen wir auf {{code|&amp;lt;nowki&amp;gt;1&amp;lt;/nowiki&amp;gt;}} so das diese ganz unten landet, {{code|Direction}} ist {{code|In}} und nein, die Rule darf nicht aktiv sein!&amp;lt;br&amp;gt;&lt;br /&gt;
Ihr markiert die Regel (ganz unten!) und fügt dann rechts im Dialog über {{code|From}} die beiden zuvor erstellten {{code|Who Objects}} hinzu.&amp;lt;br&amp;gt;&lt;br /&gt;
Das muss dann am Ende so aussehen:&amp;lt;br&amp;gt;&lt;br /&gt;
:[[Datei:ClipCapIt-250629-110026.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
Fertig! Ja, der {{code|Mail Filter}} macht keinen sinn, es geht nur darum das man die Daten per Skript auslesen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wollte Ihr später Begriffe hinzufügen oder entfernen, so packt diese einfach in die passende Liste unterhalb von {{code|Who Objects}}.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Custom Check Skript erstellen Version 2.x===&lt;br /&gt;
Wir erstellen oder bearbeiten das folgende Skript:&amp;lt;br&amp;gt;&lt;br /&gt;
 nano /usr/local/bin/pmg-custom-check&lt;br /&gt;
und setzen diesen Inhalt:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# 2025-2026 Bernhard Linz / Bernhard@znil.de&lt;br /&gt;
# Webseite: https://znil.net/index.php?title=Proxmox_Mail_Gateway_PMG_Emails_auf_W%C3%B6rter_in_Nachricht_filtern_Mailbody&lt;br /&gt;
#&lt;br /&gt;
# Changelog:&lt;br /&gt;
# ----------&lt;br /&gt;
# 03.06.2025 V1.1 erste öffentliche Version / first public version&lt;br /&gt;
# 29.06.2025 V2 Filterwörter können über Weboberfläche hinzugefügt werden / add filter words at web management&lt;br /&gt;
# 05.01.2026 V2.1 Problem mit Zeilenumbruch behoben&lt;br /&gt;
# 09.01.2026 V2.2 Base64 decodierung auch durchsuchen&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Setup:&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen SPAM Treffer gibt&lt;br /&gt;
spamScoreBLACKLIST=10&lt;br /&gt;
# Spam Score der gesetzt werden soll wenn es einen WHITE Treffer gibt (negative Werte Whitelisten)&lt;br /&gt;
spamScoreWHITELIST=-10&lt;br /&gt;
&lt;br /&gt;
# In der PMG Weboberfläche unter &amp;quot;Mail Filter&amp;quot; =&amp;gt; &amp;quot;Who Objects&amp;quot; zwei Objekte anlegen mit den Namen&lt;br /&gt;
# pmg-custom-check-BLACKLIST&lt;br /&gt;
# pmg-custom-check-WHITELIST&lt;br /&gt;
# und die jeweiligen Begriffe/Sätze etc als &amp;quot;Regular Expression&amp;quot; hinterlegen (es aber trotzdem nur ein Text in Text vergleich gemacht)&lt;br /&gt;
# Danach unter &amp;quot;Mail Filter&amp;quot; eine neue &amp;quot;Rule&amp;quot; anlegen:&lt;br /&gt;
# Name     : pmg-custom-check&lt;br /&gt;
# Priority : 1&lt;br /&gt;
# Direction: In&lt;br /&gt;
# Active   : deaktiviert!&lt;br /&gt;
# In der Rule rechts über From die beiden Listen &amp;quot;pmg-custom-check-BLACKLIST&amp;quot; und &amp;quot;pmg-custom-check-WHITELIST&amp;quot; hinzufügen&lt;br /&gt;
# sonst nichts! keine Action, Regel nicht aktivieren! Eintrag dient nur dem Auslesen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Black- und Whitelist aus den RULES einlesen:&lt;br /&gt;
# Alle Regeln einlesen per pmgdb Befehl (Ergibt einen großen String, kein Array)&lt;br /&gt;
rulesdump=$(/usr/bin/pmgdb dump)&lt;br /&gt;
# In Array Zeile für Zeilenweise speichern&lt;br /&gt;
array_rulesdump=()&lt;br /&gt;
while IFS= read -r line; do array_rulesdump+=(&amp;quot;$line&amp;quot;); done &amp;lt;&amp;lt;&amp;lt; &amp;quot;$rulesdump&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Leere Arrays für die beiden Listen anlegen&lt;br /&gt;
filterArrayBLACKLIST=()&lt;br /&gt;
filterArrayWHITELIST=()&lt;br /&gt;
&lt;br /&gt;
# Prüfung ob Black- und Whitelist gefunden wurden&lt;br /&gt;
boolFoundBlacklist=&amp;quot;false&amp;quot;&lt;br /&gt;
boolFoundWhitelist=&amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Auswerten des array_rulesdump:&lt;br /&gt;
for (( i=0; i &amp;lt; ${#array_rulesdump[*]}; i++ )); do&lt;br /&gt;
    # Suche nach Rule (aka Mail Filter) mit pmg-custom-check im Namen&lt;br /&gt;
    if [ &amp;quot;${array_rulesdump[$i]:0:4}&amp;quot; = &amp;quot;RULE&amp;quot; ]; then&lt;br /&gt;
        # Zeile fängt mit RULE an&lt;br /&gt;
        if [[ &amp;quot;${array_rulesdump[$i]}&amp;quot; =~ &amp;quot;pmg-custom-check&amp;quot; ]]; then&lt;br /&gt;
            # und enthält die Zeichenfolge pmg-custom-check&lt;br /&gt;
            #echo &amp;quot;${array_rulesdump[$i]}&amp;quot;&lt;br /&gt;
            # den Abschnitt &amp;quot;FROM ... pmg-custom-check-BLACKLIST&amp;quot; oder &amp;quot;FROM ... pmg-custom-check-WHITELIST&amp;quot; finden, wir fangen ab aktueller Position an&lt;br /&gt;
            for (( j=$i; j &amp;lt; ${#array_rulesdump[*]}; j++ )); do&lt;br /&gt;
                if [ &amp;quot;${array_rulesdump[$j]:0:6}&amp;quot; = &amp;quot;  FROM&amp;quot; ]; then&lt;br /&gt;
                    # Zeile fängt mit __FROM an&lt;br /&gt;
                    # Test auf BLACKLIST:&lt;br /&gt;
                    if [[ &amp;quot;${array_rulesdump[$j]}&amp;quot; =~ &amp;quot;BLACKLIST&amp;quot; ]]; then&lt;br /&gt;
                        # und enthält die Zeichenfolge BLACKLIST!&lt;br /&gt;
                        # aktuelle Zeile überspringen:&lt;br /&gt;
                        j=$((j + 1))&lt;br /&gt;
                        # Es müssten Zeilen folgen die mit OBJECT beginnen&lt;br /&gt;
                        for (( m=$j; m &amp;lt; ${#array_rulesdump[*]}; m++ )); do&lt;br /&gt;
                            if [ &amp;quot;${array_rulesdump[$m]:0:10}&amp;quot; = &amp;quot;    OBJECT&amp;quot; ]; then&lt;br /&gt;
                                #echo &amp;quot;${array_rulesdump[$m]}&amp;quot;&lt;br /&gt;
                                # &amp;quot;: &amp;quot; wird durch &amp;quot;|&amp;quot; ersetzt und daran geteilt damit Doppelpunkte im Suchstring erhalten bleiben.&lt;br /&gt;
                                templine=$`echo &amp;quot;${array_rulesdump[$m]}&amp;quot; | sed &#039;s/: /|/&#039;`&lt;br /&gt;
                                IFS=&#039;|&#039; read -ra filter &amp;lt;&amp;lt;&amp;lt; &amp;quot;${templine}&amp;quot;&lt;br /&gt;
                                #echo &amp;quot;${filter[1]}&amp;quot;&lt;br /&gt;
                                # IFS auf | damit auch Text mit Leerzeichen ins Array kommt, werden sonst einzelne Elemente&lt;br /&gt;
                                IFS=&#039;|&#039; filterArrayBLACKLIST+=(&amp;quot;${filter[1]}&amp;quot;)&lt;br /&gt;
                            else&lt;br /&gt;
                                # schleife verlassen, hier kommt ein neuer Abschnitt das nächste RULE, FROM usw.&lt;br /&gt;
                                break&lt;br /&gt;
                            fi&lt;br /&gt;
                        done&lt;br /&gt;
                        boolFoundBlacklist=&amp;quot;true&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
                    # Test auf WHITELIST:&lt;br /&gt;
                    if [[ &amp;quot;${array_rulesdump[$j]}&amp;quot; =~ &amp;quot;WHITELIST&amp;quot; ]]; then&lt;br /&gt;
                        # und enthält die Zeichenfolge WHITELIST!&lt;br /&gt;
                        # Es müssten Zeilen folgen die mit OBJECT beginnen&lt;br /&gt;
                        #echo &amp;quot;${array_rulesdump[$j]}&amp;quot;&lt;br /&gt;
                        j=$((j + 1))&lt;br /&gt;
                        for (( m=$j; m &amp;lt; ${#array_rulesdump[*]}; m++ )); do&lt;br /&gt;
                            if [ &amp;quot;${array_rulesdump[$m]:0:10}&amp;quot; = &amp;quot;    OBJECT&amp;quot; ]; then&lt;br /&gt;
                                #echo &amp;quot;${array_rulesdump[$m]}&amp;quot;&lt;br /&gt;
                                # &amp;quot;: &amp;quot; wird durch &amp;quot;|&amp;quot; ersetzt und daran geteilt damit Doppelpunkte im Suchstring erhalten bleiben.&lt;br /&gt;
                                templine=$`echo &amp;quot;${array_rulesdump[$m]}&amp;quot; | sed &#039;s/: /|/&#039;`&lt;br /&gt;
                                IFS=&#039;|&#039; read -ra filter &amp;lt;&amp;lt;&amp;lt; &amp;quot;${templine}&amp;quot;&lt;br /&gt;
                                #echo &amp;quot;${filter[1]}&amp;quot;&lt;br /&gt;
                                # IFS auf | damit auch Text mit Leerzeichen ins Array kommt, werden sonst einzelne Elemente&lt;br /&gt;
                                IFS=&#039;|&#039; filterArrayWHITELIST+=(&amp;quot;${filter[1]}&amp;quot;)&lt;br /&gt;
                            else&lt;br /&gt;
                                # schleife verlassen, hier kommt das nächste Object oder Rule&lt;br /&gt;
                                break&lt;br /&gt;
                            fi&lt;br /&gt;
                        done&lt;br /&gt;
                        boolFoundWhitelist=&amp;quot;true&amp;quot;&lt;br /&gt;
                    fi&lt;br /&gt;
                fi&lt;br /&gt;
                if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;true&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$filterArrayWHITELIST&amp;quot; = &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
                    # Alles gefunden, Schleife abbrechen!&lt;br /&gt;
                    break&lt;br /&gt;
                fi&lt;br /&gt;
            done&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
# Prüfung ob wir Filterlisten haben, wenn nicht abbrechen&lt;br /&gt;
if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;no Blacklist found&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$boolFoundWhitelist&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;no Whitelist found&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;$boolFoundBlacklist&amp;quot; = &amp;quot;false&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$filterArrayWHITELIST&amp;quot; = &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# schreibt nach STDERR durch 1&amp;gt;&amp;amp;2, das landet dann nur im Logfile /var/log/mail.log&lt;br /&gt;
# und wird nicht als Rückgabe des Skriptes interpretiert&lt;br /&gt;
echo &amp;quot;$0 called with $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
#echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check called with $*\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
&lt;br /&gt;
# Fehler wenn nicht 2 Argumente&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ne 2 ]; then&lt;br /&gt;
  echo &amp;quot;usage: $0 APIVERSION QUEUEFILENAME&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;---------------------------------------------------------------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;BLACKLIST:&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;----------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  for strBLACK in ${filterArrayBLACKLIST[@]}; do&lt;br /&gt;
      echo $strBLACK 1&amp;gt;&amp;amp;2&lt;br /&gt;
  done&lt;br /&gt;
  echo &amp;quot; &amp;quot;&lt;br /&gt;
  echo &amp;quot;WHITELIST:&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  echo &amp;quot;----------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  for strWHITE in ${filterArrayWHITELIST[@]}; do&lt;br /&gt;
      echo $strWHITE 1&amp;gt;&amp;amp;2&lt;br /&gt;
  done&lt;br /&gt;
  echo &amp;quot;---------------------------------------------------------------&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Argument $1 ist die API-Version&lt;br /&gt;
apiver=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Argument $2 ist die Datei mit der Email&lt;br /&gt;
queue_file=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Für Fehlersuche Kopie erstellen&lt;br /&gt;
#cp $queue_file /test/&lt;br /&gt;
&lt;br /&gt;
# shift würde das Argument $2 zu $1 verschieben&lt;br /&gt;
#shift&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$apiver&amp;quot; != &amp;quot;v1&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;$0 wrong APIVERSION: $apiver&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Das Skirpt muss auf STDOUT zwei Ausgaben machen:&lt;br /&gt;
# Die API-Version, hier also v1&lt;br /&gt;
echo &amp;quot;v1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Und eine(!) der folgenden 3 Ausgaben:&lt;br /&gt;
# 1: Es ist alles ok:&lt;br /&gt;
#echo &amp;quot;OK&amp;quot;&lt;br /&gt;
# 2: Die Mail enthält einen Virus&lt;br /&gt;
#echo &amp;quot;VIRUS: &amp;lt;virusdescription&amp;gt;&amp;quot;&lt;br /&gt;
# 3: Die Mail enthält SPAM, wir können den SPAM-Score beinflussen und z.B. um 2 erhöhen (der Startwert ist dann 2)&lt;br /&gt;
#echo SCORE: 2&lt;br /&gt;
# 4: Die Mail soll auf keinen Fall als SPAM erkannt werden, wir setzen den SCORE auf einen negativen Wert:&amp;lt;br&amp;gt;&lt;br /&gt;
#echo SCORE: -10&lt;br /&gt;
&lt;br /&gt;
# Dateinhalte (=Mail) einlesen&lt;br /&gt;
# queue_filecontent=$(cat $queue_file)&lt;br /&gt;
# Entfernt alle = am Zeilenende inklusive des Zeilenendes&lt;br /&gt;
queue_filecontent=$(sed &#039;:a;N;$!ba;s/=\n//g&#039; &amp;quot;$queue_file&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
queue_base64_1_filecontent=$(sed -n &#039;/Content-Transfer-Encoding: base64/I,+1000{/Content-Transfer-Encoding: base64/d; /^--/q; p}&#039; &amp;quot;$queue_file&amp;quot; | sed &#039;1d&#039; | base64 -d)&lt;br /&gt;
#echo ---&lt;br /&gt;
#echo base64 1:&lt;br /&gt;
#echo $queue_base64_1_filecontent&lt;br /&gt;
#echo ---&lt;br /&gt;
queue_base64_2_filecontent=$(awk &#039;/Content-Transfer-Encoding: base64/{flag=1; next} /^--/{flag=0} flag&#039; &amp;quot;$queue_file&amp;quot; | sed -n &#039;1,/^$/d; p&#039; | head -n -0 | base64 -d)&lt;br /&gt;
#echo base64 2:&lt;br /&gt;
#echo $queue_base64_2_filecontent&lt;br /&gt;
#echo ---&lt;br /&gt;
#exit&lt;br /&gt;
&lt;br /&gt;
# Variable die ggf. am Ende dafür sorgt das &amp;quot;OK&amp;quot; ausgegeben wird falls es keinen SCORE: oder VIRUS: gibt&lt;br /&gt;
bNoBlackOrWhite=true&lt;br /&gt;
&lt;br /&gt;
# Test auf WHITE(-listing)&lt;br /&gt;
for strWHITE in ${filterArrayWHITELIST[@]}; do&lt;br /&gt;
    # echo $strBLACK&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strWHITE ]] || [[ &amp;quot;queue_base64_1_filecontent&amp;quot; =~ $strWHITE ]] || [[ &amp;quot;queue_base64_2_filecontent&amp;quot; =~ $strWHITE ]]; then&lt;br /&gt;
        bNoBlackOrWhite=false&lt;br /&gt;
        echo &amp;quot;$0 SCORE: ${spamScoreWHITELIST}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreWHITELIST}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreWHITELIST}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Test auf BLACK(-listing):&lt;br /&gt;
for strBLACK in ${filterArrayBLACKLIST[@]}; do&lt;br /&gt;
    # echo $strBLACK&lt;br /&gt;
    if [[ &amp;quot;$queue_filecontent&amp;quot; =~ $strBLACK ]] || [[ &amp;quot;$queue_base64_1_filecontent&amp;quot; =~ $strBLACK ]] || [[ &amp;quot;$queue_base64_2_filecontent&amp;quot; =~ $strBLACK ]]; then&lt;br /&gt;
        bNoBlackOrWhite=false&lt;br /&gt;
        echo &amp;quot;$0 SCORE: ${spamScoreBLACKLIST}&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check SCORE: ${spamScoreBLACKLIST}\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;quot;SCORE: ${spamScoreBLACKLIST}&amp;quot;&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if $bNoBlackOrWhite; then&lt;br /&gt;
    echo &amp;quot;$0 OK&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    #echo -e &amp;quot;\e[31m/usr/bin/pmg-custom-check OK\e[0m&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
    echo &amp;quot;OK&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nun das Skript ausführbar machen:&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/pmg-custom-check&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Skript V2 testen===&lt;br /&gt;
Ihr testet das Skript indem Ihr es einfach aufruft, ohne Parameter:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check&lt;br /&gt;
Die Ausgabe sollte die beiden Listen anzeigen:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/local/bin/pmg-custom-check called with&lt;br /&gt;
 usage: /usr/local/bin/pmg-custom-check APIVERSION QUEUEFILENAME&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
 BLACKLIST:&lt;br /&gt;
 ----------&lt;br /&gt;
 ://apotheke.&lt;br /&gt;
 Test mit Leerzeichen&lt;br /&gt;
 apotheke.html&lt;br /&gt;
 pillen-bestellung-rezeptfrei&lt;br /&gt;
 superapotheke&lt;br /&gt;
 &lt;br /&gt;
 WHITELIST:&lt;br /&gt;
 ----------&lt;br /&gt;
 Test Abrakadabra&lt;br /&gt;
 ---------------------------------------------------------------&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Ggf. Scharf schalten===&lt;br /&gt;
Falls noch nicht im PMG aktiviert, macht es wie bei V1 beschrieben: [[#Skript scharf schalten]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
==ToDo==&lt;br /&gt;
Folgendes möchte ich bei Gelegenheit noch in das Skript einbauen:&amp;lt;br&amp;gt;&lt;br /&gt;
* Echte RegEx-Abfrage statt nur String in String&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Quellen==&lt;br /&gt;
* https://forum.proxmox.com/threads/mailbody-scan.136637/&lt;br /&gt;
* https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#_custom_spamassassin_configuration&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Kommentare==&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>