<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Peh00</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Peh00"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Peh00"/>
	<updated>2026-10-24T18:21:41Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7663</id>
		<title>LeafWiki installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7663"/>
		<updated>2026-10-16T13:14:31Z</updated>

		<summary type="html">&lt;p&gt;Peh00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
LeafWiki ist eine moderne Wiki-Software, die in der Programmiersprache &amp;quot;Go&amp;quot; entwickelt wird. LeafWiki ist ein junges Projekt. Die Version v0.1.0 ist im Mai 2025 erschienen. Aktuell ist heute, am 15. Oktober 2026, die Version v0.14.1. Etwa monatlich erscheinen neue Versionen.&lt;br /&gt;
&lt;br /&gt;
LeafWiki verwendet Markdown als Wiki-Markup. Die Markdown-Dateien werden auf der Festplatte gespeichert. Eine Datenbank wird nicht benötigt. Einige Metadaten werden jedoch mit Hilfe von SQLite gespeichert.&lt;br /&gt;
&lt;br /&gt;
== Technische Details ==&lt;br /&gt;
&lt;br /&gt;
Die LeafWiki-Software steht als Binärprogramm ohne weitere Abhängigkeiten zur Verfügung. Das macht die Installation sehr einfach.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind sinnvoll:&lt;br /&gt;
&lt;br /&gt;
# Einen Domain-Admin-Account in HSAdmin einrichten. Ich verwende &#039;xyz00-leafwiki&#039; als Beispiel.&lt;br /&gt;
# Eine (Sub-)Domain bei diesem Account aufschalten. Beispiel: &#039;wiki.hs-example.de&#039;&lt;br /&gt;
# Das Binärprogramm von Github-Releases herunterladen und in &#039;leafwiki&#039; umgenennen.&lt;br /&gt;
# Eine Environment-Datei mit den Einstellungen für Leafwiki anlegen.&lt;br /&gt;
# In der &#039;.htaccess&#039;-Datei der Domain einen Proxy konfigurieren.&lt;br /&gt;
# Einen Service für Systemd im Userspace einrichten.&lt;br /&gt;
&lt;br /&gt;
== HSAdmin ==&lt;br /&gt;
&lt;br /&gt;
Über die HSAdmin-Oberfläche wird ein User mit Shell &#039;/bin/bash&#039; angelegt. Im zweiten Schritt wird die gewünschte Domain bei diesem User aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
Die aktuellen Version finden sich beim Github-Projekt:  &lt;br /&gt;
https://github.com/perber/leafwiki/releases&lt;br /&gt;
&lt;br /&gt;
Wir benötigen das Binary für Linux mit AMD64-Prozessor, aktuell also &#039;leafwiki-v0.14.1-linux-amd64&#039;.&lt;br /&gt;
&lt;br /&gt;
Ich nenne das Binary in &#039;leafwiki&#039; um und lege es im Verzeichnis  &#039;~/bin&#039; ab. Das Execute-Recht muss gesetzt werden, z.B.: &lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/leafwiki&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Für die Einstellungen des Leafwiki-Dienstes lege ich eine Datei &#039;~/etc/leafwiki.env&#039; an. Ein Beispielinhalt:&lt;br /&gt;
&lt;br /&gt;
 LEAFWIKI_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_PORT=34567&lt;br /&gt;
 LEAFWIKI_DATA_DIR=&amp;quot;/home/storage/xyz00/users/leafwiki/data&amp;quot;&lt;br /&gt;
 LEAFWIKI_ADMIN_PASSWORD=&amp;quot;change_me_soon&amp;quot;&lt;br /&gt;
 LEAFWIKI_JWT_SECRET=&amp;quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 LEAFWIKI_ENABLE_REVISION=true&lt;br /&gt;
 LEAFWIKI_LOG_LEVEL=warn&lt;br /&gt;
 LEAFWIKI_DEFAULT_LANGUAGE=de&lt;br /&gt;
 LEAFWIKI_SMTP_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_SMTP_PORT=4025&lt;br /&gt;
 LEAFWIKI_SMTP_FROM=webmaster@hs-example.de&lt;br /&gt;
 LEAFWIKI_SMTP_SECURITY=none&lt;br /&gt;
 LEAFWIKI_PUBLIC_URL=https://wiki.hs-example.de&lt;br /&gt;
&lt;br /&gt;
Ein zufälliges JWT_SECRET lässt sich zum Beipiel wie folgt erzeugen:&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C tr -dc &#039;A-Za-z0-9&#039; &amp;lt; /dev/urandom | head -c 64; echo&lt;br /&gt;
&lt;br /&gt;
Für die Konfiguration des Apache-Webserver als Proxy wird die Datei &#039;~/doms/wiki.hs-example.com/htdocs-ssl/.htaccess&#039; wie folgt geändert:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
 RewriteRule ^(.*) http://127.0.0.1:34567/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
Einzige Anpassung ist hier der Port &#039;34567&#039;. Der konfigurierte Wert muss auf dem Server frei sein und in beiden Konfigurationsdateien übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
== Systemd Service Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Als letzte Aktion richten wir den leafwiki-Prozess als Service ein. Dazu legen wir die Unit-Definition in der Datei &#039;~/.config/systemd/user/leafwiki.service&#039; an:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-abort&lt;br /&gt;
 WorkingDirectory=%h&lt;br /&gt;
 EnvironmentFile=%h/etc/leafwiki.env&lt;br /&gt;
 ExecStart=%h/bin/leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
Den Dienst starten und aktivieren mit:&lt;br /&gt;
&lt;br /&gt;
 systemctl --user daemon-reload&lt;br /&gt;
 systemctl --user start leafwiki.service&lt;br /&gt;
 systemctl --user enable leafwiki.service&lt;br /&gt;
&lt;br /&gt;
Viel Spaß mit Leafwiki!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://leafwiki.com/ Webseite des LeafWiki Projekt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Wiki]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7662</id>
		<title>LeafWiki installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7662"/>
		<updated>2026-10-16T13:13:49Z</updated>

		<summary type="html">&lt;p&gt;Peh00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
LeafWiki ist eine moderne Wiki-Software, die in der Programmiersprache &amp;quot;Go&amp;quot; entwickelt wird. LeafWiki ist ein junges Projekt. Die Version v0.1.0 ist im Mai 2025 erschienen. Aktuell ist heute, am 15. Oktober 2026, die Version v0.14.1. Etwa monatlich erscheinen neue Versionen.&lt;br /&gt;
&lt;br /&gt;
LeafWiki verwendet Markdown als Wiki-Markup. Die Markdown-Dateien werden auf der Festplatte gespeichert. Eine Datenbank wird nicht benötigt. Eine Metadaten werden jedoch mit Hilfe von SQLite gespeichert.&lt;br /&gt;
&lt;br /&gt;
== Technische Details ==&lt;br /&gt;
&lt;br /&gt;
Die LeafWiki-Software steht als Binärprogramm ohne weitere Abhängigkeiten zur Verfügung. Das macht die Installation sehr einfach.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind sinnvoll:&lt;br /&gt;
&lt;br /&gt;
# Einen Domain-Admin-Account in HSAdmin einrichten. Ich verwende &#039;xyz00-leafwiki&#039; als Beispiel.&lt;br /&gt;
# Eine (Sub-)Domain bei diesem Account aufschalten. Beispiel: &#039;wiki.hs-example.de&#039;&lt;br /&gt;
# Das Binärprogramm von Github-Releases herunterladen und in &#039;leafwiki&#039; umgenennen.&lt;br /&gt;
# Eine Environment-Datei mit den Einstellungen für Leafwiki anlegen.&lt;br /&gt;
# In der &#039;.htaccess&#039;-Datei der Domain einen Proxy konfigurieren.&lt;br /&gt;
# Einen Service für Systemd im Userspace einrichten.&lt;br /&gt;
&lt;br /&gt;
== HSAdmin ==&lt;br /&gt;
&lt;br /&gt;
Über die HSAdmin-Oberfläche wird ein User mit Shell &#039;/bin/bash&#039; angelegt. Im zweiten Schritt wird die gewünschte Domain bei diesem User aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
Die aktuellen Version finden sich beim Github-Projekt:  &lt;br /&gt;
https://github.com/perber/leafwiki/releases&lt;br /&gt;
&lt;br /&gt;
Wir benötigen das Binary für Linux mit AMD64-Prozessor, aktuell also &#039;leafwiki-v0.14.1-linux-amd64&#039;.&lt;br /&gt;
&lt;br /&gt;
Ich nenne das Binary in &#039;leafwiki&#039; um und lege es im Verzeichnis  &#039;~/bin&#039; ab. Das Execute-Recht muss gesetzt werden, z.B.: &lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/leafwiki&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Für die Einstellungen des Leafwiki-Dienstes lege ich eine Datei &#039;~/etc/leafwiki.env&#039; an. Ein Beispielinhalt:&lt;br /&gt;
&lt;br /&gt;
 LEAFWIKI_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_PORT=34567&lt;br /&gt;
 LEAFWIKI_DATA_DIR=&amp;quot;/home/storage/xyz00/users/leafwiki/data&amp;quot;&lt;br /&gt;
 LEAFWIKI_ADMIN_PASSWORD=&amp;quot;change_me_soon&amp;quot;&lt;br /&gt;
 LEAFWIKI_JWT_SECRET=&amp;quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 LEAFWIKI_ENABLE_REVISION=true&lt;br /&gt;
 LEAFWIKI_LOG_LEVEL=warn&lt;br /&gt;
 LEAFWIKI_DEFAULT_LANGUAGE=de&lt;br /&gt;
 LEAFWIKI_SMTP_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_SMTP_PORT=4025&lt;br /&gt;
 LEAFWIKI_SMTP_FROM=webmaster@hs-example.de&lt;br /&gt;
 LEAFWIKI_SMTP_SECURITY=none&lt;br /&gt;
 LEAFWIKI_PUBLIC_URL=https://wiki.hs-example.de&lt;br /&gt;
&lt;br /&gt;
Ein zufälliges JWT_SECRET lässt sich zum Beipiel wie folgt erzeugen:&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C tr -dc &#039;A-Za-z0-9&#039; &amp;lt; /dev/urandom | head -c 64; echo&lt;br /&gt;
&lt;br /&gt;
Für die Konfiguration des Apache-Webserver als Proxy wird die Datei &#039;~/doms/wiki.hs-example.com/htdocs-ssl/.htaccess&#039; wie folgt geändert:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
 RewriteRule ^(.*) http://127.0.0.1:34567/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
Einzige Anpassung ist hier der Port &#039;34567&#039;. Der konfigurierte Wert muss auf dem Server frei sein und in beiden Konfigurationsdateien übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
== Systemd Service Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Als letzte Aktion richten wir den leafwiki-Prozess als Service ein. Dazu legen wir die Unit-Definition in der Datei &#039;~/.config/systemd/user/leafwiki.service&#039; an:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-abort&lt;br /&gt;
 WorkingDirectory=%h&lt;br /&gt;
 EnvironmentFile=%h/etc/leafwiki.env&lt;br /&gt;
 ExecStart=%h/bin/leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
Den Dienst starten und aktivieren mit:&lt;br /&gt;
&lt;br /&gt;
 systemctl --user daemon-reload&lt;br /&gt;
 systemctl --user start leafwiki.service&lt;br /&gt;
 systemctl --user enable leafwiki.service&lt;br /&gt;
&lt;br /&gt;
Viel Spaß mit Leafwiki!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://leafwiki.com/ Webseite des LeafWiki Projekt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Wiki]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7661</id>
		<title>LeafWiki installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7661"/>
		<updated>2026-10-15T18:19:41Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Systemd Service Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
LeafWiki ist eine moderne Wiki-Software, die in der Programmiersprache &amp;quot;Go&amp;quot; entwickelt wird. LeafWiki ist ein junges Projekt. Die Version v0.1.0 im im Mai 2025 erschienen. Aktuell ist heute, am 15. Oktober 2026, die Version v0.14.1. Etwa monatlich erscheinen neue Versionen.&lt;br /&gt;
&lt;br /&gt;
LeafWiki verwendet Markdown als Wiki-Markup. Die Markdown-Dateien werden auf der Festplatte gespeichert. Eine Datenbank wird nicht benötigt. Eine Metadaten werden jedoch mit Hilfe von SQLite gespeichert.&lt;br /&gt;
&lt;br /&gt;
== Technische Details ==&lt;br /&gt;
&lt;br /&gt;
Die LeafWiki-Software steht als Binärprogramm ohne weitere Abhängigkeiten zur Verfügung. Das macht die Installation sehr einfach.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind sinnvoll:&lt;br /&gt;
&lt;br /&gt;
# Einen Domain-Admin-Account in HSAdmin einrichten. Ich verwende &#039;xyz00-leafwiki&#039; als Beispiel.&lt;br /&gt;
# Eine (Sub-)Domain bei diesem Account aufschalten. Beispiel: &#039;wiki.hs-example.de&#039;&lt;br /&gt;
# Das Binärprogramm von Github-Releases herunterladen und in &#039;leafwiki&#039; umgenennen.&lt;br /&gt;
# Eine Environment-Datei mit den Einstellungen für Leafwiki anlegen.&lt;br /&gt;
# In der &#039;.htaccess&#039;-Datei der Domain einen Proxy konfigurieren.&lt;br /&gt;
# Einen Service für Systemd im Userspace einrichten.&lt;br /&gt;
&lt;br /&gt;
== HSAdmin ==&lt;br /&gt;
&lt;br /&gt;
Über die HSAdmin-Oberfläche wird ein User mit Shell &#039;/bin/bash&#039; angelegt. Im zweiten Schritt wird die gewünschte Domain bei diesem User aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
Die aktuellen Version finden sich beim Github-Projekt:  &lt;br /&gt;
https://github.com/perber/leafwiki/releases&lt;br /&gt;
&lt;br /&gt;
Wir benötigen das Binary für Linux mit AMD64-Prozessor, aktuell also &#039;leafwiki-v0.14.1-linux-amd64&#039;.&lt;br /&gt;
&lt;br /&gt;
Ich nenne das Binary in &#039;leafwiki&#039; um und lege es im Verzeichnis  &#039;~/bin&#039; ab. Das Execute-Recht muss gesetzt werden, z.B.: &lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/leafwiki&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Für die Einstellungen des Leafwiki-Dienstes lege ich eine Datei &#039;~/etc/leafwiki.env&#039; an. Ein Beispielinhalt:&lt;br /&gt;
&lt;br /&gt;
 LEAFWIKI_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_PORT=34567&lt;br /&gt;
 LEAFWIKI_DATA_DIR=&amp;quot;/home/storage/xyz00/users/leafwiki/data&amp;quot;&lt;br /&gt;
 LEAFWIKI_ADMIN_PASSWORD=&amp;quot;change_me_soon&amp;quot;&lt;br /&gt;
 LEAFWIKI_JWT_SECRET=&amp;quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 LEAFWIKI_ENABLE_REVISION=true&lt;br /&gt;
 LEAFWIKI_LOG_LEVEL=warn&lt;br /&gt;
 LEAFWIKI_DEFAULT_LANGUAGE=de&lt;br /&gt;
 LEAFWIKI_SMTP_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_SMTP_PORT=4025&lt;br /&gt;
 LEAFWIKI_SMTP_FROM=webmaster@hs-example.de&lt;br /&gt;
 LEAFWIKI_SMTP_SECURITY=none&lt;br /&gt;
 LEAFWIKI_PUBLIC_URL=https://wiki.hs-example.de&lt;br /&gt;
&lt;br /&gt;
Ein zufälliges JWT_SECRET lässt sich zum Beipiel wie folgt erzeugen:&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C tr -dc &#039;A-Za-z0-9&#039; &amp;lt; /dev/urandom | head -c 64; echo&lt;br /&gt;
&lt;br /&gt;
Für die Konfiguration des Apache-Webserver als Proxy wird die Datei &#039;~/doms/wiki.hs-example.com/htdocs-ssl/.htaccess&#039; wie folgt geändert:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
 RewriteRule ^(.*) http://127.0.0.1:34567/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
Einzige Anpassung ist hier der Port &#039;34567&#039;. Der konfigurierte Wert muss auf dem Server frei sein und in beiden Konfigurationsdateien übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
== Systemd Service Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Als letzte Aktion richten wir den leafwiki-Prozess als Service ein. Dazu legen wir die Unit-Definition in der Datei &#039;~/.config/systemd/user/leafwiki.service&#039; an:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-abort&lt;br /&gt;
 WorkingDirectory=%h&lt;br /&gt;
 EnvironmentFile=%h/etc/leafwiki.env&lt;br /&gt;
 ExecStart=%h/bin/leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
Den Dienst starten und aktivieren mit:&lt;br /&gt;
&lt;br /&gt;
 systemctl --user daemon-reload&lt;br /&gt;
 systemctl --user start leafwiki.service&lt;br /&gt;
 systemctl --user enable leafwiki.service&lt;br /&gt;
&lt;br /&gt;
Viel Spaß mit Leafwiki!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://leafwiki.com/ Webseite des LeafWiki Projekt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Wiki]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7660</id>
		<title>LeafWiki installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7660"/>
		<updated>2026-10-15T18:17:47Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Technische Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
LeafWiki ist eine moderne Wiki-Software, die in der Programmiersprache &amp;quot;Go&amp;quot; entwickelt wird. LeafWiki ist ein junges Projekt. Die Version v0.1.0 im im Mai 2025 erschienen. Aktuell ist heute, am 15. Oktober 2026, die Version v0.14.1. Etwa monatlich erscheinen neue Versionen.&lt;br /&gt;
&lt;br /&gt;
LeafWiki verwendet Markdown als Wiki-Markup. Die Markdown-Dateien werden auf der Festplatte gespeichert. Eine Datenbank wird nicht benötigt. Eine Metadaten werden jedoch mit Hilfe von SQLite gespeichert.&lt;br /&gt;
&lt;br /&gt;
== Technische Details ==&lt;br /&gt;
&lt;br /&gt;
Die LeafWiki-Software steht als Binärprogramm ohne weitere Abhängigkeiten zur Verfügung. Das macht die Installation sehr einfach.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind sinnvoll:&lt;br /&gt;
&lt;br /&gt;
# Einen Domain-Admin-Account in HSAdmin einrichten. Ich verwende &#039;xyz00-leafwiki&#039; als Beispiel.&lt;br /&gt;
# Eine (Sub-)Domain bei diesem Account aufschalten. Beispiel: &#039;wiki.hs-example.de&#039;&lt;br /&gt;
# Das Binärprogramm von Github-Releases herunterladen und in &#039;leafwiki&#039; umgenennen.&lt;br /&gt;
# Eine Environment-Datei mit den Einstellungen für Leafwiki anlegen.&lt;br /&gt;
# In der &#039;.htaccess&#039;-Datei der Domain einen Proxy konfigurieren.&lt;br /&gt;
# Einen Service für Systemd im Userspace einrichten.&lt;br /&gt;
&lt;br /&gt;
== HSAdmin ==&lt;br /&gt;
&lt;br /&gt;
Über die HSAdmin-Oberfläche wird ein User mit Shell &#039;/bin/bash&#039; angelegt. Im zweiten Schritt wird die gewünschte Domain bei diesem User aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
Die aktuellen Version finden sich beim Github-Projekt:  &lt;br /&gt;
https://github.com/perber/leafwiki/releases&lt;br /&gt;
&lt;br /&gt;
Wir benötigen das Binary für Linux mit AMD64-Prozessor, aktuell also &#039;leafwiki-v0.14.1-linux-amd64&#039;.&lt;br /&gt;
&lt;br /&gt;
Ich nenne das Binary in &#039;leafwiki&#039; um und lege es im Verzeichnis  &#039;~/bin&#039; ab. Das Execute-Recht muss gesetzt werden, z.B.: &lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/leafwiki&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Für die Einstellungen des Leafwiki-Dienstes lege ich eine Datei &#039;~/etc/leafwiki.env&#039; an. Ein Beispielinhalt:&lt;br /&gt;
&lt;br /&gt;
 LEAFWIKI_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_PORT=34567&lt;br /&gt;
 LEAFWIKI_DATA_DIR=&amp;quot;/home/storage/xyz00/users/leafwiki/data&amp;quot;&lt;br /&gt;
 LEAFWIKI_ADMIN_PASSWORD=&amp;quot;change_me_soon&amp;quot;&lt;br /&gt;
 LEAFWIKI_JWT_SECRET=&amp;quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 LEAFWIKI_ENABLE_REVISION=true&lt;br /&gt;
 LEAFWIKI_LOG_LEVEL=warn&lt;br /&gt;
 LEAFWIKI_DEFAULT_LANGUAGE=de&lt;br /&gt;
 LEAFWIKI_SMTP_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_SMTP_PORT=4025&lt;br /&gt;
 LEAFWIKI_SMTP_FROM=webmaster@hs-example.de&lt;br /&gt;
 LEAFWIKI_SMTP_SECURITY=none&lt;br /&gt;
 LEAFWIKI_PUBLIC_URL=https://wiki.hs-example.de&lt;br /&gt;
&lt;br /&gt;
Ein zufälliges JWT_SECRET lässt sich zum Beipiel wie folgt erzeugen:&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C tr -dc &#039;A-Za-z0-9&#039; &amp;lt; /dev/urandom | head -c 64; echo&lt;br /&gt;
&lt;br /&gt;
Für die Konfiguration des Apache-Webserver als Proxy wird die Datei &#039;~/doms/wiki.hs-example.com/htdocs-ssl/.htaccess&#039; wie folgt geändert:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
 RewriteRule ^(.*) http://127.0.0.1:34567/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
Einzige Anpassung ist hier der Port &#039;34567&#039;. Der konfigurierte Wert muss auf dem Server frei sein und in beiden Konfigurationsdateien übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
== Systemd Service Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Als letzte Aktion richten wir den leafwiki-Prozess als Service ein. Dazu legen wir die Unit-Definition in der Datei &#039;~/.config/systemd/user/leafwiki.service&#039; an:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-abort&lt;br /&gt;
 WorkingDirectory=%h&lt;br /&gt;
 EnvironmentFile=%h/etc/leafwiki.env&lt;br /&gt;
 ExecStart=%h/bin/leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://leafwiki.com/ Webseite des LeafWiki Projekt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Wiki]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7659</id>
		<title>LeafWiki installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7659"/>
		<updated>2026-10-15T18:16:14Z</updated>

		<summary type="html">&lt;p&gt;Peh00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
LeafWiki ist eine moderne Wiki-Software, die in der Programmiersprache &amp;quot;Go&amp;quot; entwickelt wird. LeafWiki ist ein junges Projekt. Die Version v0.1.0 im im Mai 2025 erschienen. Aktuell ist heute, am 15. Oktober 2026, die Version v0.14.1. Etwa monatlich erscheinen neue Versionen.&lt;br /&gt;
&lt;br /&gt;
LeafWiki verwendet Markdown als Wiki-Markup. Die Markdown-Dateien werden auf der Festplatte gespeichert. Eine Datenbank wird nicht benötigt. Eine Metadaten werden jedoch mit Hilfe von SQLite gespeichert.&lt;br /&gt;
&lt;br /&gt;
== Technische Details ==&lt;br /&gt;
&lt;br /&gt;
Die LeafWiki-Software steht als Binärprogramm ohen weitere Abhängigkeiten zur Verfügung. Das macht die Installation sehr einfach.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind sinnvoll:&lt;br /&gt;
&lt;br /&gt;
# Einen Domain-Admin-Account in HSAdmin einrichten. Ich verwende &#039;xyz00-leafwiki&#039; als Beispiel.&lt;br /&gt;
# Eine (Sub-)Domain bei diesem Account aufschalten. Beispiel: &#039;wiki.hs-example.de&#039;&lt;br /&gt;
# Das Binärprogramm von Github-Releases herunterladen und in &#039;leafwiki&#039; umgenennen.&lt;br /&gt;
# Eine Environment-Datei mit den Einstellungen für Leafwiki anlegen.&lt;br /&gt;
# In der &#039;.htaccess&#039;-Datei der Domain einen Proxy konfigurieren.&lt;br /&gt;
# Einen Service für Systemd im Userspace einrichten.&lt;br /&gt;
&lt;br /&gt;
== HSAdmin ==&lt;br /&gt;
&lt;br /&gt;
Über die HSAdmin-Oberfläche wird ein User mit Shell &#039;/bin/bash&#039; angelegt. Im zweiten Schritt wird die gewünschte Domain bei diesem User aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
Die aktuellen Version finden sich beim Github-Projekt:  &lt;br /&gt;
https://github.com/perber/leafwiki/releases&lt;br /&gt;
&lt;br /&gt;
Wir benötigen das Binary für Linux mit AMD64-Prozessor, aktuell also &#039;leafwiki-v0.14.1-linux-amd64&#039;.&lt;br /&gt;
&lt;br /&gt;
Ich nenne das Binary in &#039;leafwiki&#039; um und lege es im Verzeichnis  &#039;~/bin&#039; ab. Das Execute-Recht muss gesetzt werden, z.B.: &lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/leafwiki&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Für die Einstellungen des Leafwiki-Dienstes lege ich eine Datei &#039;~/etc/leafwiki.env&#039; an. Ein Beispielinhalt:&lt;br /&gt;
&lt;br /&gt;
 LEAFWIKI_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_PORT=34567&lt;br /&gt;
 LEAFWIKI_DATA_DIR=&amp;quot;/home/storage/xyz00/users/leafwiki/data&amp;quot;&lt;br /&gt;
 LEAFWIKI_ADMIN_PASSWORD=&amp;quot;change_me_soon&amp;quot;&lt;br /&gt;
 LEAFWIKI_JWT_SECRET=&amp;quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 LEAFWIKI_ENABLE_REVISION=true&lt;br /&gt;
 LEAFWIKI_LOG_LEVEL=warn&lt;br /&gt;
 LEAFWIKI_DEFAULT_LANGUAGE=de&lt;br /&gt;
 LEAFWIKI_SMTP_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_SMTP_PORT=4025&lt;br /&gt;
 LEAFWIKI_SMTP_FROM=webmaster@hs-example.de&lt;br /&gt;
 LEAFWIKI_SMTP_SECURITY=none&lt;br /&gt;
 LEAFWIKI_PUBLIC_URL=https://wiki.hs-example.de&lt;br /&gt;
&lt;br /&gt;
Ein zufälliges JWT_SECRET lässt sich zum Beipiel wie folgt erzeugen:&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C tr -dc &#039;A-Za-z0-9&#039; &amp;lt; /dev/urandom | head -c 64; echo&lt;br /&gt;
&lt;br /&gt;
Für die Konfiguration des Apache-Webserver als Proxy wird die Datei &#039;~/doms/wiki.hs-example.com/htdocs-ssl/.htaccess&#039; wie folgt geändert:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
 RewriteRule ^(.*) http://127.0.0.1:34567/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
Einzige Anpassung ist hier der Port &#039;34567&#039;. Der konfigurierte Wert muss auf dem Server frei sein und in beiden Konfigurationsdateien übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
== Systemd Service Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Als letzte Aktion richten wir den leafwiki-Prozess als Service ein. Dazu legen wir die Unit-Definition in der Datei &#039;~/.config/systemd/user/leafwiki.service&#039; an:&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-abort&lt;br /&gt;
 WorkingDirectory=%h&lt;br /&gt;
 EnvironmentFile=%h/etc/leafwiki.env&lt;br /&gt;
 ExecStart=%h/bin/leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://leafwiki.com/ Webseite des LeafWiki Projekt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Wiki]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7658</id>
		<title>LeafWiki installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=LeafWiki_installieren&amp;diff=7658"/>
		<updated>2026-10-15T18:15:17Z</updated>

		<summary type="html">&lt;p&gt;Peh00: erste version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
LeafWiki ist eine moderne Wiki-Software, die in der Programmiersprache &amp;quot;Go&amp;quot; entwickelt wird. LeafWiki ist ein jungen Projekt. Die Version v0.1.0 im im Mai 2025 erschienen. Aktuell ist heute, am 15. Oktober 2026, die Version v0.14.1. Etwa monatlich erscheinen neue Versionen.&lt;br /&gt;
&lt;br /&gt;
LeafWiki verwendet Markdown als Wiki-Markup. Die Markdown-Dateien werden auf der Festplatte gespeichert. Eine Datenbank wird nicht benötigt. Eine Metadaten werden jedoch mit Hilfe von SQLite gespeichert.&lt;br /&gt;
&lt;br /&gt;
== Technische Details ==&lt;br /&gt;
&lt;br /&gt;
Die LeafWiki-Software steht als Binärprogramm ohen weitere Abhängigkeiten zur Verfügung. Das macht die Installation sehr einfach.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind sinnvoll:&lt;br /&gt;
&lt;br /&gt;
# Einen Domain-Admin-Account in HSAdmin einrichten. Ich verwende &#039;xyz00-leafwiki&#039; als Beispiel.&lt;br /&gt;
# Eine (Sub-)Domain bei diesem Account aufschalten. Beispiel: &#039;wiki.hs-example.de&#039;&lt;br /&gt;
# Das Binärprogramm von Github-Releases herunterladen und in &#039;leafwiki&#039; umgenennen.&lt;br /&gt;
# Eine Environment-Datei mit den Einstellungen für Leafwiki anlegen.&lt;br /&gt;
# In der &#039;.htaccess&#039;-Datei der Domain einen Proxy konfigurieren.&lt;br /&gt;
# Einen Service für Systemd im Userspace einrichten.&lt;br /&gt;
&lt;br /&gt;
== HSAdmin ==&lt;br /&gt;
&lt;br /&gt;
Über die HSAdmin-Oberfläche wird ein User mit Shell &#039;/bin/bash&#039; angelegt. Im zweiten Schritt wird die gewünschte Domain bei diesem User aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
Die aktuellen Version finden sich beim Github-Projekt:  &lt;br /&gt;
https://github.com/perber/leafwiki/releases&lt;br /&gt;
&lt;br /&gt;
Wir benötigen das Binary für Linux mit AMD64-Prozessor, aktuell also &#039;leafwiki-v0.14.1-linux-amd64&#039;.&lt;br /&gt;
&lt;br /&gt;
Ich nenne das Binary in &#039;leafwiki&#039; um und lege es im Verzeichnis  &#039;~/bin&#039; ab. Das Execute-Recht muss gesetzt werden, z.B.: &lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/leafwiki&lt;br /&gt;
&lt;br /&gt;
== Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Für die Einstellungen des Leafwiki-Dienstes lege ich eine Datei &#039;~/etc/leafwiki.env&#039; an. Ein Beispielinhalt:&lt;br /&gt;
&lt;br /&gt;
 LEAFWIKI_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_PORT=34567&lt;br /&gt;
 LEAFWIKI_DATA_DIR=&amp;quot;/home/storage/xyz00/users/leafwiki/data&amp;quot;&lt;br /&gt;
 LEAFWIKI_ADMIN_PASSWORD=&amp;quot;change_me_soon&amp;quot;&lt;br /&gt;
 LEAFWIKI_JWT_SECRET=&amp;quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 LEAFWIKI_ENABLE_REVISION=true&lt;br /&gt;
 LEAFWIKI_LOG_LEVEL=warn&lt;br /&gt;
 LEAFWIKI_DEFAULT_LANGUAGE=de&lt;br /&gt;
 LEAFWIKI_SMTP_HOST=127.0.0.1&lt;br /&gt;
 LEAFWIKI_SMTP_PORT=4025&lt;br /&gt;
 LEAFWIKI_SMTP_FROM=webmaster@hs-example.de&lt;br /&gt;
 LEAFWIKI_SMTP_SECURITY=none&lt;br /&gt;
 LEAFWIKI_PUBLIC_URL=https://wiki.hs-example.de&lt;br /&gt;
&lt;br /&gt;
Ein zufälliges JWT_SECRET lässt sich zum Beipiel wie folgt erzeugen:&lt;br /&gt;
&lt;br /&gt;
 LC_ALL=C tr -dc &#039;A-Za-z0-9&#039; &amp;lt; /dev/urandom | head -c 64; echo&lt;br /&gt;
&lt;br /&gt;
Für die Konfiguration des Apache-Webserver als Proxy wird die Datei &#039;~/doms/wiki.hs-example.com/htdocs-ssl/.htaccess&#039; wie folgt geändert:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
 RewriteRule ^(.*) http://127.0.0.1:34567/$1 [proxy,last]&lt;br /&gt;
&lt;br /&gt;
Einzige Anpassung ist hier der Port &#039;34567&#039;. Der konfigurierte Wert muss auf dem Server frei sein und in beiden Konfigurationsdateien übereinstimmen.&lt;br /&gt;
&lt;br /&gt;
== Systemd Service Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Als letzte Aktion richten wir den leafwiki-Prozess als Service ein. Dazu legen wir die Unit-Definition in der Datei &#039;~/.config/systemd/user/leafwiki.service&#039; an:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 Restart=on-abort&lt;br /&gt;
 WorkingDirectory=%h&lt;br /&gt;
 EnvironmentFile=%h/etc/leafwiki.env&lt;br /&gt;
 ExecStart=%h/bin/leafwiki&lt;br /&gt;
   &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://leafwiki.com/ Webseite des LeafWiki Projekt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Wiki]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7563</id>
		<title>WebDAV mit Tomcat</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7563"/>
		<updated>2026-05-15T17:18:38Z</updated>

		<summary type="html">&lt;p&gt;Peh00: RAM Kontingent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Tomcat =&lt;br /&gt;
&lt;br /&gt;
Tomcat steht als Software auf jedem Shared Server mit Webspaces der Mitglieder als Software zur Verfügung. Eine einfache WebDAV-Implementierung ist enthalten.&lt;br /&gt;
&lt;br /&gt;
Der Betrieb von Tomcat im Webspace erfordert ein ausreichendes RAM-Kontingent, das zum Webspace zugebucht werden muss. Man muss vermutlich 256 MB für einen WebDAV-Dienst mit Tomcat als Server einplanen.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung von Apache Tomcat im Webspace ist auf der Seite [[Tomcat Installieren|&#039;Tomcat installieren&#039;]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Sei &#039;hs-example.de&#039; die Domain, unter der der Tomcat erreichbar ist, wie auf der Installationsseite. Unter der URL https://hs-example.de/dav/ soll der WebDAV-Dienst erreichbar sein. Dann legen wir eine Datei &#039;dav.xml&#039; ins Verzeichnis &#039;~/tomcat/conf/Catalina/localhost&#039; (&#039;Catalina&#039; ist der Name der &#039;Engine&#039;, &#039;localhost&#039; der Name des &#039;Host&#039; aus der &#039;server.xml&#039; des Tomcat). Inhalt der Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Context docBase=&amp;quot;/home/storage/xyz00/users/webdav/data&amp;quot; reloadable=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier liegen die Dateien in der &#039;/home/storage&#039;-Partition auf der HDD, &#039;xyz00&#039; steht für den Namen des Webspace, &#039;webdav&#039; ist der hintere Teil des Users, mit dessen Rechten der Tomcat läuft (Beispiel-User ist also &#039;xyz00-webdav&#039;). Das Verzeichnis muss angelegt werden, zum Beispiel mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dieses &#039;docBase&#039;-Verzeichnis legen wir ein Verzeichnis &#039;WEB-INF&#039; mit einer Datei &#039;web.xml&#039;, um die Webapplikation im Tomcat zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data/WEB-INF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt der &#039;web.xml&#039; in diesem Verzeichnis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;web-app &lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;br /&gt;
	xmlns:web=&amp;quot;http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot; &lt;br /&gt;
	id=&amp;quot;WebApp_ID&amp;quot; version=&amp;quot;3.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;servlet&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-class&amp;gt;org.apache.catalina.servlets.WebdavServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;debug&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;0&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;listings&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;true&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;readonly&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;false&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;
  &amp;lt;security-role&amp;gt;&lt;br /&gt;
    &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
  &amp;lt;/security-role&amp;gt;&lt;br /&gt;
  &amp;lt;security-constraint&amp;gt;&lt;br /&gt;
    &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;
        &amp;lt;web-resource-name&amp;gt;WebDAV Access&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;
        &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
        &amp;lt;http-method&amp;gt;*&amp;lt;/http-method&amp;gt;&lt;br /&gt;
    &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;
    &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;
        &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
    &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;/security-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;login-config&amp;gt;&lt;br /&gt;
    &amp;lt;auth-method&amp;gt;BASIC&amp;lt;/auth-method&amp;gt;&lt;br /&gt;
    &amp;lt;realm-name&amp;gt;WebDAV Access&amp;lt;/realm-name&amp;gt;&lt;br /&gt;
  &amp;lt;/login-config&amp;gt;&lt;br /&gt;
&amp;lt;/web-app&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &#039;web.xml&#039; werden auch die Zugriffsrechte auf die WebDAV-Freigabe definiert. Hier bekommt die Rolle &#039;webdavaccess&#039; Vollzugriff. In der Default-Konfiguration des Tomcat werden Accounts und Rollen in der Datei &#039;~/tomcat/conf/tomcat-users.xml&#039; definiert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;tomcat-users xmlns=&amp;quot;http://tomcat.apache.org/xml&amp;quot;&lt;br /&gt;
              xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
              xsi:schemaLocation=&amp;quot;http://tomcat.apache.org/xml tomcat-users.xsd&amp;quot;&lt;br /&gt;
              version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;role rolename=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;user username=&amp;quot;webdavlogin&amp;quot; password=&amp;quot;**gutes*Passwort**&amp;quot; roles=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ohne weiteres können Accounts, Passworte und Rollen auch in einer SQL-Datenbank oder in einem LDAP-Verzeichnis abgelegt werden. Dazu ein Verweis auf die Upstream-Dokumentation:&lt;br /&gt;
[https://tomcat.apache.org/tomcat-10.1-doc/realm-howto.html Apache Tomcat Realm Configuration How-To]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://tomcat.apache.org/tomcat-10.1-doc/api/org/apache/catalina/servlets/WebdavServlet.html JavaDoc zur Klasse WebdavServlet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:WebDAV]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7562</id>
		<title>WebDAV mit RClone</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7562"/>
		<updated>2026-05-15T17:12:07Z</updated>

		<summary type="html">&lt;p&gt;Peh00: RAM Bedarf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Rclone =&lt;br /&gt;
&lt;br /&gt;
Rclone ist ein einfaches Binärprogramm. Es ist in der Programmiersprache &#039;Go&#039; programmiert und ist vom klassischen &#039;rsync&#039; beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Rclone kann Dateien über verschiedene Netzwerkprotokolle kopieren und sychronisieren, und es enthält auch Server-Funktionalität. Hier nutzen wir es als WebDAV-Server.&lt;br /&gt;
&lt;br /&gt;
Rclone ist als Paket in der Debian-Distribution verfügbar und auf den Hostsharing-Servern vorinstalliert. In Debian 12 ist die Version &#039;rclone v1.60.1-DEV&#039; enthalten. Für den Betrieb als Server im Webspace sollte man 128 MB RAM-Kontigent für diesen Dienst einplanen.&lt;br /&gt;
&lt;br /&gt;
Wir können ad hoc sehr einfach einen WebDAV-Server starten:&lt;br /&gt;
&lt;br /&gt;
  mkdir $HOME/data&lt;br /&gt;
  rclone serve webdav $HOME/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort&lt;br /&gt;
&lt;br /&gt;
Den &#039;rclone&#039;-Befehl brechen wir zunächst mit &#039;Ctrl-C&#039; wieder ab.&lt;br /&gt;
&lt;br /&gt;
Dann müssen wir eine Domain beim User aufschalten und die &#039;.htaccess&#039;-Datei erstellen, damit der WebDAV-Server über https/Port 443 erreichbar wird.&lt;br /&gt;
&lt;br /&gt;
Für die Domain &#039;webdav.hs-example.de&#039; wäre die .htaccess im Verzeichnis &#039;$HOME/doms/webdav.hs-example.de/htdocs-ss/&#039; mit dem oben gewählten Port &#039;38246&#039;:&lt;br /&gt;
&lt;br /&gt;
  DirectoryIndex disabled&lt;br /&gt;
  RewriteEngine On&lt;br /&gt;
  RewriteBase /&lt;br /&gt;
  RewriteRule .* http://127.0.0.1:38246%{REQUEST_URI} [proxy]&lt;br /&gt;
  RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Damit &#039;rclone&#039; als Dienst läuft, erstellen wir eine Datei &#039;rclone.service&#039; im Verzeichnis &#039;$HOME/.config/systemd/user/&#039; mit dem Inhalt:&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=Rclone WebDAV Service&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Environment=&amp;quot;UMASK=0022&amp;quot;&lt;br /&gt;
  ExecStart=/usr/bin/rclone serve webdav %h/data --addr 127.0.0.1:38246 --htpasswd %h/etc/htpasswd&lt;br /&gt;
  Restart=always&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
Hier wird eine Datei &#039;$HOME/etc/htpasswd&#039; für die WebDAV-Accounts benutzt. Diese Datei können wir wie folgt mit einem Account &#039;webdav&#039; und Passwort &#039;geheim&#039; anlegen:&lt;br /&gt;
&lt;br /&gt;
  htpasswd -cb $HOME/etc/htpasswd webdav geheim&lt;br /&gt;
  chmod 600 $HOME/etc/htpasswd&lt;br /&gt;
&lt;br /&gt;
Den Dienst aktivieren und starten:&lt;br /&gt;
&lt;br /&gt;
  systemctl --user daemon-reload&lt;br /&gt;
  systemctl --user start rclone.service&lt;br /&gt;
  systemctl --user enable rclone.service&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7561</id>
		<title>WebDAV mit RClone</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7561"/>
		<updated>2026-05-15T17:10:53Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Netzwerkfunktion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Rclone =&lt;br /&gt;
&lt;br /&gt;
Rclone ist ein einfaches Binärprogramm. Es ist in der Programmiersprache &#039;Go&#039; programmiert und ist vom klassischen &#039;rsync&#039; beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Rclone kann Dateien über verschiedene Netzwerkprotokolle kopieren und sychronisieren, und es enthält auch Server-Funktionalität. Hier nutzen wir es als WebDAV-Server.&lt;br /&gt;
&lt;br /&gt;
Rclone ist als Paket in der Debian-Distribution verfügbar und auf den Hostsharing-Servern vorinstalliert. In Debian 12 ist die Version &#039;rclone v1.60.1-DEV&#039; enthalten.&lt;br /&gt;
&lt;br /&gt;
Wir können ad hoc sehr einfach einen WebDAV-Server starten:&lt;br /&gt;
&lt;br /&gt;
  mkdir $HOME/data&lt;br /&gt;
  rclone serve webdav $HOME/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort&lt;br /&gt;
&lt;br /&gt;
Den &#039;rclone&#039;-Befehl brechen wir zunächst mit &#039;Ctrl-C&#039; wieder ab.&lt;br /&gt;
&lt;br /&gt;
Dann müssen wir eine Domain beim User aufschalten und die &#039;.htaccess&#039;-Datei erstellen, damit der WebDAV-Server über https/Port 443 erreichbar wird.&lt;br /&gt;
&lt;br /&gt;
Für die Domain &#039;webdav.hs-example.de&#039; wäre die .htaccess im Verzeichnis &#039;$HOME/doms/webdav.hs-example.de/htdocs-ss/&#039; mit dem oben gewählten Port &#039;38246&#039;:&lt;br /&gt;
&lt;br /&gt;
  DirectoryIndex disabled&lt;br /&gt;
  RewriteEngine On&lt;br /&gt;
  RewriteBase /&lt;br /&gt;
  RewriteRule .* http://127.0.0.1:38246%{REQUEST_URI} [proxy]&lt;br /&gt;
  RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Damit &#039;rclone&#039; als Dienst läuft, erstellen wir eine Datei &#039;rclone.service&#039; im Verzeichnis &#039;$HOME/.config/systemd/user/&#039; mit dem Inhalt:&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=Rclone WebDAV Service&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Environment=&amp;quot;UMASK=0022&amp;quot;&lt;br /&gt;
  ExecStart=/usr/bin/rclone serve webdav %h/data --addr 127.0.0.1:38246 --htpasswd %h/etc/htpasswd&lt;br /&gt;
  Restart=always&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
Hier wird eine Datei &#039;$HOME/etc/htpasswd&#039; für die WebDAV-Accounts benutzt. Diese Datei können wir wie folgt mit einem Account &#039;webdav&#039; und Passwort &#039;geheim&#039; anlegen:&lt;br /&gt;
&lt;br /&gt;
  htpasswd -cb $HOME/etc/htpasswd webdav geheim&lt;br /&gt;
  chmod 600 $HOME/etc/htpasswd&lt;br /&gt;
&lt;br /&gt;
Den Dienst aktivieren und starten:&lt;br /&gt;
&lt;br /&gt;
  systemctl --user daemon-reload&lt;br /&gt;
  systemctl --user start rclone.service&lt;br /&gt;
  systemctl --user enable rclone.service&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7560</id>
		<title>WebDAV mit RClone</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7560"/>
		<updated>2026-05-15T16:57:07Z</updated>

		<summary type="html">&lt;p&gt;Peh00: htpasswd, enable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Rclone =&lt;br /&gt;
&lt;br /&gt;
Rclone ist ein einfaches Binärprogramm. Es ist in der Programmiersprache &#039;Go&#039; programmiert und ist vom klassischen &#039;rsync&#039; beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Rclone kann Dateien kopieren und sychronisieren, aber es enthält auch Server-Funktionalität. Hier nutzen wir es als WebDAV-Server.&lt;br /&gt;
&lt;br /&gt;
Rclone ist als Paket in der Debian-Distribution verfügbar und auf den Hostsharing-Servern vorinstalliert. In Debian 12 ist die Version &#039;rclone v1.60.1-DEV&#039; enthalten.&lt;br /&gt;
&lt;br /&gt;
Wir können ad hoc sehr einfach einen WebDAV-Server starten:&lt;br /&gt;
&lt;br /&gt;
  mkdir $HOME/data&lt;br /&gt;
  rclone serve webdav $HOME/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort&lt;br /&gt;
&lt;br /&gt;
Den &#039;rclone&#039;-Befehl brechen wir zunächst mit &#039;Ctrl-C&#039; wieder ab.&lt;br /&gt;
&lt;br /&gt;
Dann müssen wir eine Domain beim User aufschalten und die &#039;.htaccess&#039;-Datei erstellen, damit der WebDAV-Server über https/Port 443 erreichbar wird.&lt;br /&gt;
&lt;br /&gt;
Für die Domain &#039;webdav.hs-example.de&#039; wäre die .htaccess im Verzeichnis &#039;$HOME/doms/webdav.hs-example.de/htdocs-ss/&#039; mit dem oben gewählten Port &#039;38246&#039;:&lt;br /&gt;
&lt;br /&gt;
  DirectoryIndex disabled&lt;br /&gt;
  RewriteEngine On&lt;br /&gt;
  RewriteBase /&lt;br /&gt;
  RewriteRule .* http://127.0.0.1:38246%{REQUEST_URI} [proxy]&lt;br /&gt;
  RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Damit &#039;rclone&#039; als Dienst läuft, erstellen wir eine Datei &#039;rclone.service&#039; im Verzeichnis &#039;$HOME/.config/systemd/user/&#039; mit dem Inhalt:&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=Rclone WebDAV Service&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Environment=&amp;quot;UMASK=0022&amp;quot;&lt;br /&gt;
  ExecStart=/usr/bin/rclone serve webdav %h/data --addr 127.0.0.1:38246 --htpasswd %h/etc/htpasswd&lt;br /&gt;
  Restart=always&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=default.target&lt;br /&gt;
&lt;br /&gt;
Hier wird eine Datei &#039;$HOME/etc/htpasswd&#039; für die WebDAV-Accounts benutzt. Diese Datei können wir wie folgt mit einem Account &#039;webdav&#039; und Passwort &#039;geheim&#039; anlegen:&lt;br /&gt;
&lt;br /&gt;
  htpasswd -cb $HOME/etc/htpasswd webdav geheim&lt;br /&gt;
  chmod 600 $HOME/etc/htpasswd&lt;br /&gt;
&lt;br /&gt;
Den Dienst aktivieren und starten:&lt;br /&gt;
&lt;br /&gt;
  systemctl --user daemon-reload&lt;br /&gt;
  systemctl --user start rclone.service&lt;br /&gt;
  systemctl --user enable rclone.service&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7559</id>
		<title>WebDAV mit RClone</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7559"/>
		<updated>2026-05-15T16:30:17Z</updated>

		<summary type="html">&lt;p&gt;Peh00: fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Rclone =&lt;br /&gt;
&lt;br /&gt;
Rclone ist ein einfaches Binärprogramm. Es ist in der Programmiersprache &#039;Go&#039; programmiert und ist vom klassischen &#039;rsync&#039; beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Rclone kann Dateien kopieren und sychronisieren, aber es enthält auch Server-Funktionalität. Hier nutzen wir es als WebDAV-Server.&lt;br /&gt;
&lt;br /&gt;
Rclone ist als Paket in der Debian-Distribution verfügbar und auf den Hostsharing-Servern vorinstalliert. In Debian 12 ist die Version &#039;rclone v1.60.1-DEV&#039; enthalten.&lt;br /&gt;
&lt;br /&gt;
Wir können ad hoc sehr einfach einen WebDAV-Server starten:&lt;br /&gt;
&lt;br /&gt;
  mkdir $HOME/data&lt;br /&gt;
  rclone serve webdav $HOME/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort&lt;br /&gt;
&lt;br /&gt;
Den &#039;rclone&#039;-Befehl brechen wir zunächst mit &#039;Ctrl-C&#039; wieder ab.&lt;br /&gt;
&lt;br /&gt;
Dann müssen wir eine Domain beim User aufschalten und die &#039;.htaccess&#039;-Datei erstellen, damit der WebDAV-Server über https/Port 443 erreichbar wird.&lt;br /&gt;
&lt;br /&gt;
Für die Domain &#039;webdav.hs-example.de&#039; wäre die .htaccess im Verzeichnis &#039;$HOME/doms/webdav.hs-example.de/htdocs-ss/&#039; mit dem oben gewählten Port &#039;38246&#039;:&lt;br /&gt;
&lt;br /&gt;
  DirectoryIndex disabled&lt;br /&gt;
  RewriteEngine On&lt;br /&gt;
  RewriteBase /&lt;br /&gt;
  RewriteRule .* http://127.0.0.1:38246%{REQUEST_URI} [proxy]&lt;br /&gt;
  RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Damit &#039;rclone&#039; als Dienst läuft, erstellen wir eine Datei &#039;rclone.service&#039; im Verzeichnis &#039;$HOME/.config/systemd/user/&#039; mit dem Inhalt:&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=Rclone WebDAV Service&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Environment=&amp;quot;UMASK=0022&amp;quot;&lt;br /&gt;
  ExecStart=/usr/bin/rclone serve webdav %h/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort&lt;br /&gt;
  Restart=always&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=default.target&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7558</id>
		<title>WebDAV mit RClone</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_RClone&amp;diff=7558"/>
		<updated>2026-05-15T16:26:53Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Initiale Version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Rclone =&lt;br /&gt;
&lt;br /&gt;
Rclone ist ein einfaches Binärprogramm. Es ist in der Programmiersprache &#039;Go&#039; programmiert und ist vom klassischen &#039;rsync&#039; beeinflusst.&lt;br /&gt;
&lt;br /&gt;
Rclone kann Dateien kopieren und sychronisieren, aber es enthält auch Server-Funktionalität. Hier nutzen wir es als WebDAV-Server.&lt;br /&gt;
&lt;br /&gt;
Rclone ist als Paket in der Debian-Distribution verfügbar und auf den Hostsharing-Servern vorinstalliert. In Debian 12 ist die Version &#039;rclone v1.60.1-DEV&#039; enthalten.&lt;br /&gt;
&lt;br /&gt;
Wir können ad hoc sehr einfach einen WebDAV-Server starten:&lt;br /&gt;
&lt;br /&gt;
  mkdir $HOME/data&lt;br /&gt;
  rclone serve webdav $HOME/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort&lt;br /&gt;
&lt;br /&gt;
Den &#039;rclone&#039;-Befehl brechen wir zunächst mit &#039;Ctrl-C&#039; wieder ab.&lt;br /&gt;
&lt;br /&gt;
Dann müssen wir eine Domain beim User aufschalten und die &#039;.htaccess&#039;-Datei erstellen, damit der WebDAV-Server über https/Port 443 erreichbar wird.&lt;br /&gt;
&lt;br /&gt;
Für die Domain &#039;webdav.hs-example.de&#039; wäre die .htaccess im Verzeichnis &#039;$HOME/doms/webdav.hs-example.de/htdocs-ss/&#039; mit dem oben gewählten Port &#039;38246&#039;:&lt;br /&gt;
&lt;br /&gt;
  DirectoryIndex disabled&lt;br /&gt;
  RewriteEngine On&lt;br /&gt;
  RewriteBase /&lt;br /&gt;
  RewriteRule .* http://127.0.0.1:38246%{REQUEST_URI} [proxy]&lt;br /&gt;
  RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Damit &#039;rclone&#039; als Dienst läuft, erstellen wir eine Datei &#039;rclone.service&#039; im Verzeichnis &#039;$HOME/.config/systemd/user/&#039; mit dem Inhalt:&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=Rclone WebDAV Service&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Environment=&amp;quot;UMASK=0022&amp;quot;&lt;br /&gt;
  ExecStart=/usr/bin/rclone serve_webdav %h/data --addr 127.0.0.1:38246 --user test --pass kein-gutes-passwort&lt;br /&gt;
  Restart=always&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=default.target&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7557</id>
		<title>WebDAV mit Tomcat</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7557"/>
		<updated>2026-05-14T19:07:02Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Tomcat =&lt;br /&gt;
&lt;br /&gt;
Tomcat steht als Software auf jedem Shared Server mit Webspaces der Mitglieder als Software zur Verfügung. Eine einfache WebDAV-Implementierung ist enthalten.&lt;br /&gt;
&lt;br /&gt;
Der Betrieb von Tomcat im Webspace erfordert ein ausreichendes RAM-Kontingent, das zum Webspace zugebucht werden muss.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung von Apache Tomcat im Webspace ist auf der Seite [[Tomcat Installieren|&#039;Tomcat installieren&#039;]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Sei &#039;hs-example.de&#039; die Domain, unter der der Tomcat erreichbar ist, wie auf der Installationsseite. Unter der URL https://hs-example.de/dav/ soll der WebDAV-Dienst erreichbar sein. Dann legen wir eine Datei &#039;dav.xml&#039; ins Verzeichnis &#039;~/tomcat/conf/Catalina/localhost&#039; (&#039;Catalina&#039; ist der Name der &#039;Engine&#039;, &#039;localhost&#039; der Name des &#039;Host&#039; aus der &#039;server.xml&#039; des Tomcat). Inhalt der Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Context docBase=&amp;quot;/home/storage/xyz00/users/webdav/data&amp;quot; reloadable=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier liegen die Dateien in der &#039;/home/storage&#039;-Partition auf der HDD, &#039;xyz00&#039; steht für den Namen des Webspace, &#039;webdav&#039; ist der hintere Teil des Users, mit dessen Rechten der Tomcat läuft (Beispiel-User ist also &#039;xyz00-webdav&#039;). Das Verzeichnis muss angelegt werden, zum Beispiel mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dieses &#039;docBase&#039;-Verzeichnis legen wir ein Verzeichnis &#039;WEB-INF&#039; mit einer Datei &#039;web.xml&#039;, um die Webapplikation im Tomcat zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data/WEB-INF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt der &#039;web.xml&#039; in diesem Verzeichnis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;web-app &lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;br /&gt;
	xmlns:web=&amp;quot;http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot; &lt;br /&gt;
	id=&amp;quot;WebApp_ID&amp;quot; version=&amp;quot;3.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;servlet&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-class&amp;gt;org.apache.catalina.servlets.WebdavServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;debug&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;0&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;listings&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;true&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;readonly&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;false&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;
  &amp;lt;security-role&amp;gt;&lt;br /&gt;
    &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
  &amp;lt;/security-role&amp;gt;&lt;br /&gt;
  &amp;lt;security-constraint&amp;gt;&lt;br /&gt;
    &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;
        &amp;lt;web-resource-name&amp;gt;WebDAV Access&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;
        &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
        &amp;lt;http-method&amp;gt;*&amp;lt;/http-method&amp;gt;&lt;br /&gt;
    &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;
    &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;
        &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
    &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;/security-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;login-config&amp;gt;&lt;br /&gt;
    &amp;lt;auth-method&amp;gt;BASIC&amp;lt;/auth-method&amp;gt;&lt;br /&gt;
    &amp;lt;realm-name&amp;gt;WebDAV Access&amp;lt;/realm-name&amp;gt;&lt;br /&gt;
  &amp;lt;/login-config&amp;gt;&lt;br /&gt;
&amp;lt;/web-app&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &#039;web.xml&#039; werden auch die Zugriffsrechte auf die WebDAV-Freigabe definiert. Hier bekommt die Rolle &#039;webdavaccess&#039; Vollzugriff. In der Default-Konfiguration des Tomcat werden Accounts und Rollen in der Datei &#039;~/tomcat/conf/tomcat-users.xml&#039; definiert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;tomcat-users xmlns=&amp;quot;http://tomcat.apache.org/xml&amp;quot;&lt;br /&gt;
              xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
              xsi:schemaLocation=&amp;quot;http://tomcat.apache.org/xml tomcat-users.xsd&amp;quot;&lt;br /&gt;
              version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;role rolename=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;user username=&amp;quot;webdavlogin&amp;quot; password=&amp;quot;**gutes*Passwort**&amp;quot; roles=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ohne weiteres können Accounts, Passworte und Rollen auch in einer SQL-Datenbank oder in einem LDAP-Verzeichnis abgelegt werden. Dazu ein Verweis auf die Upstream-Dokumentation:&lt;br /&gt;
[https://tomcat.apache.org/tomcat-10.1-doc/realm-howto.html Apache Tomcat Realm Configuration How-To]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://tomcat.apache.org/tomcat-10.1-doc/api/org/apache/catalina/servlets/WebdavServlet.html JavaDoc zur Klasse WebdavServlet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:WebDAV]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7556</id>
		<title>WebDAV mit Tomcat</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7556"/>
		<updated>2026-05-14T19:00:49Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Links tomcat.apache.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Tomcat =&lt;br /&gt;
&lt;br /&gt;
Tomcat steht als Software auf jedem Shared Server mit Webspaces der Mitglieder als Software zur Verfügung. Eine einfache WebDAV-Implementierung ist enthalten.&lt;br /&gt;
&lt;br /&gt;
Der Betrieb von Tomcat im Webspace erfordert ein ausreichendes RAM-Kontingent, das zum Webspace zugebucht werden muss.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung von Apache Tomcat im Webspace ist auf der Seite [[Tomcat Installieren|&#039;Tomcat installieren&#039;]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Sei &#039;hs-example.de&#039; die Domain, unter der der Tomcat erreichbar ist, wie auf der Installationsseite. Unter der URL https://hs-example.de/dav/ soll der WebDAV-Dienst erreichbar sein. Dann legen wir eine Datei &#039;dav.xml&#039; ins Verzeichnis &#039;~/tomcat/conf/Catalina/localhost&#039; (&#039;Catalina&#039; ist der Name der &#039;Engine&#039;, &#039;localhost&#039; der Name des &#039;Host&#039; aus der &#039;server.xml&#039; des Tomcat). Inhalt der Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Context docBase=&amp;quot;/home/storage/xyz00/users/webdav/data&amp;quot; reloadable=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier liegen die Dateien in der &#039;/home/storage&#039;-Partition auf der HDD, &#039;xyz00&#039; steht für den Namen des Webspace, &#039;webdav&#039; ist der hintere Teil des Users, mit dessen Rechten der Tomcat läuft (Beispiel-User ist also &#039;xyz00-webdav&#039;). Das Verzeichnis muss angelegt werden, zum Beispiel mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dieses &#039;docBase&#039;-Verzeichnis legen wir ein Verzeichnis &#039;WEB-INF&#039; mit einer Datei &#039;web.xml&#039;, um die Webapplikation im Tomcat zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data/WEB-INF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt der &#039;web.xml&#039; in diesem Verzeichnis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;web-app &lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;br /&gt;
	xmlns:web=&amp;quot;http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot; &lt;br /&gt;
	id=&amp;quot;WebApp_ID&amp;quot; version=&amp;quot;3.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;servlet&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-class&amp;gt;org.apache.catalina.servlets.WebdavServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;debug&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;0&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;listings&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;true&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;readonly&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;false&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;
  &amp;lt;security-role&amp;gt;&lt;br /&gt;
    &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
  &amp;lt;/security-role&amp;gt;&lt;br /&gt;
  &amp;lt;security-constraint&amp;gt;&lt;br /&gt;
    &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;
        &amp;lt;web-resource-name&amp;gt;WebDAV Access&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;
        &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
        &amp;lt;http-method&amp;gt;*&amp;lt;/http-method&amp;gt;&lt;br /&gt;
    &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;
    &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;
        &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
    &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;/security-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;login-config&amp;gt;&lt;br /&gt;
    &amp;lt;auth-method&amp;gt;BASIC&amp;lt;/auth-method&amp;gt;&lt;br /&gt;
    &amp;lt;realm-name&amp;gt;WebDAV Access&amp;lt;/realm-name&amp;gt;&lt;br /&gt;
  &amp;lt;/login-config&amp;gt;&lt;br /&gt;
&amp;lt;/web-app&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &#039;web.xml&#039; werden auch die Zugriffsrechte auf die WebDAV-Freigabe definiert. Hier bekommt die Rolle &#039;webdavaccess&#039; Vollzugriff. In der Defalut-Konfiguration des Tomcat werden Accounts und Rollen in der Datei &#039;~/tomcat/conf/tomcat-users.xml&#039; definiert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;tomcat-users xmlns=&amp;quot;http://tomcat.apache.org/xml&amp;quot;&lt;br /&gt;
              xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
              xsi:schemaLocation=&amp;quot;http://tomcat.apache.org/xml tomcat-users.xsd&amp;quot;&lt;br /&gt;
              version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;role rolename=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;user username=&amp;quot;webdavlogin&amp;quot; password=&amp;quot;**gutes*Passwort**&amp;quot; roles=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ohne weiteres können Accounts, Passworte und Rollen auch in einer SQL-Datenbank oder eine LDAP-Verzeichnis abgelegt werden. Dazu ein Verweis auf die Upstream-Dokumentation:&lt;br /&gt;
[https://tomcat.apache.org/tomcat-10.1-doc/realm-howto.html Apache Tomcat Realm Configuration How-To]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://tomcat.apache.org/tomcat-10.1-doc/api/org/apache/catalina/servlets/WebdavServlet.html JavaDoc zur Klasse WebdavServlet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:WebDAV]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7555</id>
		<title>WebDAV mit Tomcat</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=WebDAV_mit_Tomcat&amp;diff=7555"/>
		<updated>2026-05-14T18:54:06Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Startversion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV mit Tomcat =&lt;br /&gt;
&lt;br /&gt;
Tomcat steht als Software auf jedem Shared Server mit Webspaces der Mitglieder als Software zur Verfügung. Eine einfache WebDAV-Implementierung ist enthalten.&lt;br /&gt;
&lt;br /&gt;
Der Betrieb von Tomcat im Webspace erfordert ein ausreichendes RAM-Kontingent, das zum Webspace zugebucht werden muss.&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung von Apache Tomcat im Webspace ist auf der Seite [[Tomcat Installieren|&#039;Tomcat installieren&#039;]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Sei &#039;hs-example.de&#039; die Domain, unter der der Tomcat erreichbar ist, wie auf der Installationsseite. Unter der URL https://hs-example.de/dav/ soll der WebDAV-Dienst erreichbar sein. Dann legen wir eine Datei &#039;dav.xml&#039; ins Verzeichnis &#039;~/tomcat/conf/Catalina/localhost&#039; (&#039;Catalina&#039; ist der Name der &#039;Engine&#039;, &#039;localhost&#039; der Name des &#039;Host&#039; aus der &#039;server.xml&#039; des Tomcat). Inhalt der Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Context docBase=&amp;quot;/home/storage/xyz00/users/webdav/data&amp;quot; reloadable=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier liegen die Dateien in der &#039;/home/storage&#039;-Partition auf der HDD, &#039;xyz00&#039; steht für den Namen des Webspace, &#039;webdav&#039; ist der hintere Teil des Users, mit dessen Rechten der Tomcat läuft (Beispiel-User ist also &#039;xyz00-webdav&#039;). Das Verzeichnis muss angelegt werden, zum Beispiel mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dieses &#039;docBase&#039;-Verzeichnis legen wir ein Verzeichnis &#039;WEB-INF&#039; mit einer Datei &#039;web.xml&#039;, um die Webapplikation im Tomcat zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /home/storage/xyz00/users/webdav/data/WEB-INF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt der &#039;web.xml&#039; in diesem Verzeichnis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;web-app &lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;br /&gt;
	xmlns:web=&amp;quot;http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&amp;quot; &lt;br /&gt;
	id=&amp;quot;WebApp_ID&amp;quot; version=&amp;quot;3.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;servlet&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-class&amp;gt;org.apache.catalina.servlets.WebdavServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;debug&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;0&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;listings&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;true&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
    &amp;lt;init-param&amp;gt;&lt;br /&gt;
      &amp;lt;param-name&amp;gt;readonly&amp;lt;/param-name&amp;gt;&lt;br /&gt;
      &amp;lt;param-value&amp;gt;false&amp;lt;/param-value&amp;gt;&lt;br /&gt;
    &amp;lt;/init-param&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;webdav&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;
  &amp;lt;security-role&amp;gt;&lt;br /&gt;
    &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
  &amp;lt;/security-role&amp;gt;&lt;br /&gt;
  &amp;lt;security-constraint&amp;gt;&lt;br /&gt;
    &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;
        &amp;lt;web-resource-name&amp;gt;WebDAV Access&amp;lt;/web-resource-name&amp;gt;&lt;br /&gt;
        &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
        &amp;lt;http-method&amp;gt;*&amp;lt;/http-method&amp;gt;&lt;br /&gt;
    &amp;lt;/web-resource-collection&amp;gt;&lt;br /&gt;
    &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;
        &amp;lt;role-name&amp;gt;webdavaccess&amp;lt;/role-name&amp;gt;&lt;br /&gt;
    &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;/security-constraint&amp;gt;&lt;br /&gt;
  &amp;lt;login-config&amp;gt;&lt;br /&gt;
    &amp;lt;auth-method&amp;gt;BASIC&amp;lt;/auth-method&amp;gt;&lt;br /&gt;
    &amp;lt;realm-name&amp;gt;WebDAV Access&amp;lt;/realm-name&amp;gt;&lt;br /&gt;
  &amp;lt;/login-config&amp;gt;&lt;br /&gt;
&amp;lt;/web-app&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &#039;web.xml&#039; werden auch die Zugriffsrechte auf die WebDAV-Freigabe definiert. Hier bekommt die Rolle &#039;webdavaccess&#039; Vollzugriff. In der Defalut-Konfiguration des Tomcat werden Accounts und Rollen in der Datei &#039;~/tomcat/conf/tomcat-users.xml&#039; definiert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;tomcat-users xmlns=&amp;quot;http://tomcat.apache.org/xml&amp;quot;&lt;br /&gt;
              xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
              xsi:schemaLocation=&amp;quot;http://tomcat.apache.org/xml tomcat-users.xsd&amp;quot;&lt;br /&gt;
              version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;role rolename=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;user username=&amp;quot;webdavlogin&amp;quot; password=&amp;quot;**gutes*Passwort**&amp;quot; roles=&amp;quot;webdavaccess&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/tomcat-users&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ohne weiteres können Accounts, Passworte und Rollen auch in einer SQL-Datenbank oder eine LDAP-Verzeichnis abgelegt werden. Dazu ein Verweis auf die Upstream-Dokumentation:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:WebDAV]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Kategorie:WebDAV&amp;diff=7554</id>
		<title>Kategorie:WebDAV</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Kategorie:WebDAV&amp;diff=7554"/>
		<updated>2026-05-14T18:04:27Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Kategorie WevDAV&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WebDAV =&lt;br /&gt;
&lt;br /&gt;
[https://de.wikipedia.org/wiki/WebDAV WebDAV (Web-based Distributed Authoring and Versioning)] ist eine Erweiterung des HTTP-Protokoll. WebDAV ermöglicht es, eine Verzeichnisstruktur, die auf dem WebDAV-Server liegt, auf Arbeitsplatz-PC einzubinden. Auf diese Weise kann mit den Dateien in der Verzeichnisstruktur direkt gearbeitet werden, nahezu wie mit lokalen Verzeichnissen oder Verzeichnissen im lokalen Netzwerk.&lt;br /&gt;
&lt;br /&gt;
WebDAV ist als Funktionalität in vielen Werkzeugen zur Dateiverwaltung verfügbar. Beispiele sind [[Nextcloud]] oder [[SeedDMS installieren|SeedDMS]].&lt;br /&gt;
&lt;br /&gt;
Wer nur auf der Suche nach einer einfachen WebDAV-Implementierung ist, die im Webspace bei Hostsharing benutzt werden kann, hat findet vielleicht hier eine Lösung:&lt;br /&gt;
&lt;br /&gt;
* [[WebDAV_mit_Tomcat|WebDAV mit Tomcat]]&lt;br /&gt;
* [[WebDAV_mit_Sabre|WebDAV mit Sabre]]&lt;br /&gt;
* [[WebDAV_mit_RClone|WebDAV mit RClone]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7514</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7514"/>
		<updated>2026-02-16T13:57:28Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Eingangsserver konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei alternative Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Nutzung der &amp;quot;xmailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
2. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot; für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Diese Alternative kann von einer Domain-Administration oder vom &amp;quot;Webmaster on Demand&amp;quot; für eine oder mehrere E-Mail-Domains eingerichtet werden. Ein globaler Sieve-Filter für markiete Spam-Nachrichten ist in der Standard-Konfiguration voreingestellt, &lt;br /&gt;
so dass Nachrichten mit Spam-Bewertung in einen vorhandenen Spam-Ordner einsortiert werden.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren betreibt Hostsharing zusätzlich zu den vorkonfigurierte Maileingangsservern einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Anfang 2026 ist eine Gruppe von Eingangsserver mit der Software &amp;quot;rspamd&amp;quot; hinzugekommen. Eingehende Nachrichten mit Malware oder sehr hoher Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem geringeren Spam-Score werden angenommen und zugestellt. Spamassassin fügt die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Status: Yes, score=11.29&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der globale Sieve-Filter schiebt Nachrichten mit der Markierung &amp;quot;X-Spam-Status: Yes&amp;quot; in einen Ordner &amp;quot;Junk&amp;quot;, wenn der Ordner vorhanden ist. Viele Mailprogramme legen beim ersten Verbinden mit dem IMAP-Server einen solchen Ordner an. Unser &amp;quot;Roundcube&amp;quot;&lt;br /&gt;
unter https://webmail.hostsharing.net ist entsprechend eingerichtet, so dass der Ordner nach einer Nutzung von Webmail vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Rspamd lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  30  xmailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  30  xmailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  30  xmailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
Die Änderung des Zonefile kann für eine Domain &amp;quot;hs-example.de&amp;quot; wie folgt überprüft werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
dig +short -t MX hs-example.de @dns1.hostsharing.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die folgende Ausgabe wird erwartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
30 xmailin2.hostsharing.net.&lt;br /&gt;
30 xmailin3.hostsharing.net.&lt;br /&gt;
30 xmailin1.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der drei Eingangsserver kann variieren. &lt;br /&gt;
Die führende Zahl ist die Priorität im MX-Record (hier der Wert &amp;quot;30&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert. Es muss über das Kommando &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht-oder-verzeichnis&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht-oder-verzeichnis&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
HAM_MIN_AGE_DAYS=5&lt;br /&gt;
MAILDIR_HAM=${HOME}/Maildir/cur&lt;br /&gt;
TMPDIR=${HOME}/sa-learn-tmp&lt;br /&gt;
SPAMFOLDER=Junk&lt;br /&gt;
SPAMFOLDER_LEARNED=${SPAMFOLDER}.sa-learned&lt;br /&gt;
MAILDIR_SPAM=${HOME}/Maildir/.${SPAMFOLDER}&lt;br /&gt;
&lt;br /&gt;
# Learn spam from MAILDIR_SPAM&lt;br /&gt;
mkdir -p ${TMPDIR}/spam&lt;br /&gt;
rm -f ${TMPDIR}/spam/*&lt;br /&gt;
SPAM_COUNT=0&lt;br /&gt;
for DIR in &amp;quot;cur&amp;quot; &amp;quot;new&amp;quot;; do&lt;br /&gt;
	DIR=&amp;quot;${MAILDIR_SPAM}/${DIR}&amp;quot;&lt;br /&gt;
	cd ${DIR}&lt;br /&gt;
	# echo &amp;quot;---&amp;quot; DIR ${DIR}&lt;br /&gt;
	for SPAMFILE in $( ls ); do&lt;br /&gt;
		# echo &amp;quot;   &amp;quot; ${SPAMFILE}&lt;br /&gt;
		TMPFILE=&amp;quot;${TMPDIR}/spam/${SPAMFILE}&amp;quot;&lt;br /&gt;
		if ! zcat &amp;quot;${SPAMFILE}&amp;quot; &amp;gt; &amp;quot;${TMPFILE}&amp;quot; 2&amp;gt;/dev/null; then&lt;br /&gt;
			cp &amp;quot;${SPAMFILE}&amp;quot; &amp;quot;${TMPFILE}&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
		SPAM_COUNT=$((SPAM_COUNT + 1))&lt;br /&gt;
	done&lt;br /&gt;
done&lt;br /&gt;
sa-learn --spam ${TMPDIR}/spam/*&lt;br /&gt;
&lt;br /&gt;
# Move processed spam to keep it in another folder&lt;br /&gt;
doveadm move -u $(whoami) INBOX.${SPAMFOLDER_LEARNED} mailbox INBOX.${SPAMFOLDER} all 2&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
# Learn ham from MAILDIR_HAM (&amp;gt; HAM_MIN_AGE_DAYS days; max. 2x spam count)&lt;br /&gt;
mkdir -p ${TMPDIR}/ham&lt;br /&gt;
rm -f ${TMPDIR}/ham/*&lt;br /&gt;
cd ${MAILDIR_HAM}&lt;br /&gt;
MAX_HAM=$((SPAM_COUNT * 2))&lt;br /&gt;
HAM_COUNT=0&lt;br /&gt;
for HAMFILE in $( find . -type f -mtime +${HAM_MIN_AGE_DAYS} -printf &#039;%T@ %p\n&#039; | sort -rn | cut -d&#039; &#039; -f2- | head -n ${MAX_HAM} ); do&lt;br /&gt;
	TMPFILE=&amp;quot;${TMPDIR}/ham/${HAMFILE}&amp;quot;&lt;br /&gt;
	if ! zcat &amp;quot;${HAMFILE}&amp;quot; &amp;gt; &amp;quot;${TMPFILE}&amp;quot; 2&amp;gt;/dev/null; then&lt;br /&gt;
		cp &amp;quot;${HAMFILE}&amp;quot; &amp;quot;${TMPFILE}&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
	HAM_COUNT=$((HAM_COUNT + 1))&lt;br /&gt;
done&lt;br /&gt;
sa-learn --ham ${TMPDIR}/ham/*&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Training erfolgte mit ${SPAM_COUNT} Spam, ${HAM_COUNT} (max ${MAX_HAM}) Ham Mails.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei werden Mails verarbeitet, unabhängig davon, ob sie durch Procmail (unkomprimiert) oder über den Mailclient (komprimiert) verschoben vorliegen.&lt;br /&gt;
Für Ham wird ein Teil des Inhalts der Inbox verwendet, wobei die empfohlene Maximalanzahl von zweimal der Spammailanzahl und ein minimales Alter in Tagen gilt. Das Mindestalter garantiert ein inzwischen erfolgtes manuelles Aussortieren des Spams. Der verarbeitete Spam wird anschließend in ein separates Verzeichnis verschoben um den späteren Zugriff auf False Positives zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch vom Hostsharing-Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7270</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7270"/>
		<updated>2025-02-07T16:48:49Z</updated>

		<summary type="html">&lt;p&gt;Peh00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei alternative Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Diese Alternative kann von einem Domain-Administrator oder vom &amp;quot;Webmaster on Demand&amp;quot; für eine oder mehrere E-Mail-Domains eingerichtet werden. Die einzelnen Nutzer:innen können mit Hilfe des Hostsharing-Webmail einen Filter einrichten, so dass verdächtige Nachrichten in einem Spam-Ordner einsortiert werden.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren betreibt Hostsharing zusätzlich zu den vorkonfigurierte Maileingangsservern einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin fügt die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eingehen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch vom Hostsharing-Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7269</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7269"/>
		<updated>2025-02-07T16:48:06Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 3: SecureMX zubuchen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Diese Alternative kann von einem Domain-Administrator oder vom &amp;quot;Webmaster on Demand&amp;quot; für eine oder mehrere E-Mail-Domains eingerichtet werden. Die einzelnen Nutzer:innen können mit Hilfe des Hostsharing-Webmail einen Filter einrichten, so dass verdächtige Nachrichten in einem Spam-Ordner einsortiert werden.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren betreibt Hostsharing zusätzlich zu den vorkonfigurierte Maileingangsservern einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin fügt die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eingehen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch vom Hostsharing-Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7268</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7268"/>
		<updated>2025-02-07T16:40:59Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 2: Maileingangsserver mit Spamfilter nutzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Diese Alternative kann von einem Domain-Administrator oder vom &amp;quot;Webmaster on Demand&amp;quot; für eine oder mehrere E-Mail-Domains eingerichtet werden. Die einzelnen Nutzer:innen können mit Hilfe des Hostsharing-Webmail einen Filter einrichten, so dass verdächtige Nachrichten in einem Spam-Ordner einsortiert werden.&lt;br /&gt;
&lt;br /&gt;
Seit einigen Jahren betreibt Hostsharing zusätzlich zu den vorkonfigurierte Maileingangsservern einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin fügt die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eingehen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7267</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7267"/>
		<updated>2025-02-07T16:36:30Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Bayesfilter anlernen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Diese Alternative kann von einem Domain-Administrator oder vom &amp;quot;Webmaster on Demand&amp;quot; für eine oder mehrere E-Mail-Domains eingerichtet werden. Die einzelnen Nutzer:innen können mit Hilfe des Hostsharing-Webmail einen Filter einrichten, so dass verdächtige Nachrichten in einem Spam-Ordner einsortiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betreibt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin fügt die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eingehen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7266</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7266"/>
		<updated>2025-02-07T15:25:58Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 2: Maileingangsserver mit Spamfilter nutzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Diese Alternative kann von einem Domain-Administrator oder vom &amp;quot;Webmaster on Demand&amp;quot; für eine oder mehrere E-Mail-Domains eingerichtet werden. Die einzelnen Nutzer:innen können mit Hilfe des Hostsharing-Webmail einen Filter einrichten, so dass verdächtige Nachrichten in einem Spam-Ordner einsortiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betreibt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin fügt die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eingehen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7265</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7265"/>
		<updated>2025-02-07T15:16:19Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 1: Persönlichen Spamfilter einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eines systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betreibt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7264</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7264"/>
		<updated>2025-02-07T15:15:53Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 1: Persönlichen Spamfilter einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.  &lt;br /&gt;
&lt;br /&gt;
Ein Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Dazu sind tiefergehende Shell-Kenntnisse erforderlich (Shell-Skript und Einrichtung eine systemd-Timers).&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betreibt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7263</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7263"/>
		<updated>2025-02-07T15:08:33Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Bayesfilter anlernen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden und der Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgeführt, der pro Mailbox eingerichtet werden muss.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betreibt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7262</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7262"/>
		<updated>2025-02-07T15:07:14Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Individuelle Konfiguration per Shell Zugang für Alternative 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Spamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) Kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können. Spamassassin kann für jedes Postfach individuell konfiguriert werden und der Bayesfilter kann mit den persönlichen Nachrichten angelernt werden. Für die Einrichtung und Pflege ist Shell-Zugang zur Mailbox erforderlich.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betreibt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=7261</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=7261"/>
		<updated>2025-02-07T15:01:52Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Einrichtung des HDD Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nextcloud =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.com/ Nextcloud] ist eine PHP-basierte Open Source Lösung für gängige Cloud-Anwendungen, u.a.:&lt;br /&gt;
&lt;br /&gt;
* Filesharing unter Nutzern derselben Nextcloud, und mit der Öffentlichkeit&lt;br /&gt;
* Single-Sign-On Authentifizierung (SSO)&lt;br /&gt;
* Videokonferenzen (WebRTC)&lt;br /&gt;
* Online-Office Anwendung [https://www.collaboraoffice.com/ Collabora Online]&lt;br /&gt;
&lt;br /&gt;
Beispiel-Funktionalität, die über Plugins, sogenannte [https://apps.nextcloud.com/ &amp;quot;Apps&amp;quot;], bereit gestellt werden kann:&lt;br /&gt;
&lt;br /&gt;
* Kalender, Aufgabenverwaltung, Adressbuch&lt;br /&gt;
* Datei-Kollaboration (Kommentare zu Dateien, Verschlagwortung)&lt;br /&gt;
* Feedreader&lt;br /&gt;
* E-Mail-Programm&lt;br /&gt;
* Fotogalerie&lt;br /&gt;
* Musik- und Videowiedergabe&lt;br /&gt;
&lt;br /&gt;
= Nextcloud installieren =&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;hsadmin&#039;&#039;, zum Beispiel mit &#039;&#039;hsscript&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hsadmin&#039;&#039;-Shell starten mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
hsscript -u xyz00 -i&lt;br /&gt;
Password: ********&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann nacheinander anlegen:&lt;br /&gt;
&lt;br /&gt;
* Linux User als Domain-Administrator&lt;br /&gt;
* Subdomain &#039;&#039;cloud.example.org&#039;&#039;&lt;br /&gt;
* PostgreSQL-User &lt;br /&gt;
* PostgreSQL Datenbank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-cloud&#039;,password:&#039;geheim&#039;,shell:&#039;/bin/bash&#039;,comment:&#039;Nextcloud&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; domain.add({set:{name:&#039;cloud.example.org&#039;,user:&#039;xyz00-cloud&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; postgresqluser.add({set:{name:&#039;xyz00_nextclusr&#039;,password:&#039;geheim&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; postgresqldb.add({set:{name:&#039;xyz00_nextcloud&#039;,owner:&#039;xyz00_nextclusr&#039;}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud installieren ==&lt;br /&gt;
&lt;br /&gt;
Anmelden als Linux-User &#039;&#039;xyz00-cloud&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
ssh -l xyz00-cloud xyz00.hostsharing.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;htdocs&#039;&#039; Verzeichnis vorbereiten&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd&lt;br /&gt;
mkdir nextcloud&lt;br /&gt;
cd doms/cloud.example.org&lt;br /&gt;
rm -rf subs/www subs-ssl/www htdocs-ssl&lt;br /&gt;
ln -s $HOME/nextcloud htdocs-ssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls der &#039;&#039;Redirect&#039;&#039; auf die Domain &#039;&#039;example.org&#039;&#039; umleitet statt auf die Subdomain &#039;&#039;cloud.example.org&#039;&#039;, kann diese Aktion helfen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd doms/cloud.example.org&lt;br /&gt;
mkdir -p subs-ssl/www&lt;br /&gt;
cp htdocs/.htaccess subs-ssl/www/.htaccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nextcloud herunterladen und entpacken.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd &lt;br /&gt;
wget https://download.nextcloud.com/server/releases/nextcloud-27.1.2.zip&lt;br /&gt;
unzip nextcloud-27.1.2.zip &lt;br /&gt;
rm nextcloud-27.1.2.zip&lt;br /&gt;
mkdir data tmp&lt;br /&gt;
chmod 700 data tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis &amp;quot;$HOME/doms/cloud.example.org/fastcgi-ssl/&amp;quot; eine Datei &amp;quot;php.ini&amp;quot; anlegen mit folgendem Inhalt: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
memory_limit=512M&lt;br /&gt;
session.save_path=/home/pacs/xyz00/users/cloud/tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann mit einem Editor diese Datei bearbeiten: In der zweiten Zeile den korrekten Pfad des vorher angelegten tmp-Verzeichnisses eintragen.&lt;br /&gt;
&lt;br /&gt;
Im Browser auf die Seite &lt;br /&gt;
http://cloud.example.org gehen und den Anweisungen folgen.&lt;br /&gt;
&lt;br /&gt;
Auf der ersten Seite sind anzugeben:&lt;br /&gt;
&lt;br /&gt;
* Login und Passwort für den Administrator definieren&lt;br /&gt;
* PostgreSQL als Datenbanksystem&lt;br /&gt;
* PostgreSQL-User und Passwort aus dem ersten Schritt oben&lt;br /&gt;
* Name der PostgreSQL-Datenbank aus dem ersten Schritt&lt;br /&gt;
* &amp;quot;localhost&amp;quot; als Datenbankserver (Nextcloud 23.0.2 empfiehlt hier die Angabe des Ports, diesen also lt. [[PostgreSQL]] angeben)&lt;br /&gt;
* Das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/data/&amp;quot; als Daten-Verzeichnis (bitte beachten: das im Eingabefeld voreingestellte verweist auf das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/&#039;&#039;&#039;nextcloud&#039;&#039;&#039;/data/&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung!&#039;&#039;&#039; Die Felder für die Datenbank sind auf dem Startscreen hinter einem unscheinbaren Link versteckt. Um man das Formular für die Datenbank-Daten zu gelangen, muss man auf den Link klicken. Anschließend kann man die gewünschte Datenbank auswählen und die entsprechenden Daten eintragen. &#039;&#039;&#039;Das sollte geschehen, bevor man die Installation abschließt!&#039;&#039;&#039; Tut man dies nicht, wird Nextcloud mit SQLite installiert. Eine Änderung der Datenbank soll zwar laut Dokumentation auch später noch möglich sein, ging aber bei einem Test schief.&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) lassen sich weitere Voreinstellungen treffen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
&#039;maintenance_window_start&#039; =&amp;gt; 1,    // Wartungsfenster ab 1:00 Uhr&lt;br /&gt;
&#039;defaultapp&#039; =&amp;gt; &#039;calendar,files&#039;,   // bei Start wird der Kalender gezeigt&lt;br /&gt;
&#039;default_phone_region&#039; =&amp;gt; &#039;DE&#039;,     // Format Telefonnummern&lt;br /&gt;
&#039;default_language&#039; =&amp;gt; &#039;de&#039;,         // Sprache deutsch&lt;br /&gt;
&#039;force_language&#039; =&amp;gt; &#039;de&#039;,&lt;br /&gt;
&#039;default_locale&#039; =&amp;gt; &#039;de_DE&#039;,        // Locale (Formatierung Zeitangaben etc.) &lt;br /&gt;
&#039;force_locale&#039; =&amp;gt; &#039;de_DE&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud beschleunigen ==&lt;br /&gt;
&lt;br /&gt;
Dieser Teil ist optional.&lt;br /&gt;
&lt;br /&gt;
Wenn regelmäßig &#039;&#039;&#039;im Browser&#039;&#039;&#039; mit Nextcloud gearbeitet werden soll, ist Nextcloud im Browser oft sehr langsam. Um dies zu verbessern, unterstützt Nextcloud die Anwendung von unterschiedlichen Cache-Verfahren (zum Beispiel Memcache, Redis).&lt;br /&gt;
&lt;br /&gt;
=== Redis Cache ===&lt;br /&gt;
&lt;br /&gt;
Redis ist auf den Hostsharing-Servern vorinstalliert und wird von den Nextcloud-Entwicklern empfohlen. &#039;&#039;&#039;In Verbindung mit einem Managed Webspace&#039;&#039;&#039; muss für Redis als eigener Serverdienst RAM gebucht werden und ist &#039;&#039;&#039;kostenpflichtig&#039;&#039;&#039;. Siehe zu Kosten im Webspace Konfigurator unter: https://www.hostsharing.net/angebote/managed-webspace/ – &#039;&#039;&#039;Arbeitsspeicher für eigene Serverdienste&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des Redis-Dientes ist auf der Seite [[Redis]] beschrieben. Hier wird für Nextcloud die Variante mit einem Unixsocket benutzt.&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) wird der Redis-Cache wie folgt konfiguriert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
&#039;memcache.local&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;memcache.distributed&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;memcache.locking&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;redis&#039; =&amp;gt; &lt;br /&gt;
  array (&lt;br /&gt;
    &#039;host&#039; =&amp;gt; &#039;/home/pacs/xyz00/users/cloud/redis/var/redis-server.sock&#039;,&lt;br /&gt;
    &#039;port&#039; =&amp;gt; 0,&lt;br /&gt;
    &#039;password&#039; =&amp;gt; &#039;mein-redis-passwort&#039;,&lt;br /&gt;
    &#039;timeout&#039; =&amp;gt; 1.5,&lt;br /&gt;
  ),&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um es perfekt zu machen, nutze ich &#039;&#039;logrotate&#039;&#039; um die Logdateien zu organisieren. Dazu die Konfiguration in &#039;&#039;~/.logrotate&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
compress&lt;br /&gt;
/home/pacs/xyz00/users/cloud/redis/var/redis.log {&lt;br /&gt;
  rotate 5&lt;br /&gt;
  daily&lt;br /&gt;
  missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Mit systemd-Timern werden die Logdateien täglich rotiert:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/logrotate.service&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotate log files&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/sbin/logrotate -s %h/.logrotate.state %h/.logrotate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/logrotate.timer&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=1:1&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ systemctl --user enable logrotate.timer&lt;br /&gt;
$ systemctl --user start logrotate.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem weiteren Timer für die regelmäßigen Hintergrundaufgaben von Nextcloud lässt sie sich noch etwas beschleunigen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/nextcloud_background.service&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=php8.2 /home/pacs/xyz00/users/cloud/nextcloud/cron.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/nextcloud_background.timer&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=*:0/5&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ systemctl --user enable nextcloud_background.timer&lt;br /&gt;
$ systemctl --user start nextcloud_background.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nextcloud Push ===&lt;br /&gt;
&lt;br /&gt;
Um Vorgänge wie Sync und Benachrichtigungen bei sehr großen Nextcloud Installationen zu beschleunigen, kann der &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; Dienst hinzuinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
==== Abhängigkeiten und Einschränkungen ====&lt;br /&gt;
* &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; muss Zugriff auf den gleichen Redis-Cache wie die Nextcloud haben &lt;br /&gt;
** aufgrund von eingeschränktem Passwort Support sollte ein Redis Socket mit sicheren Berechtigungseinstellungen als Alternative zum Redis Port mit Passwort konfiguriert werden.&lt;br /&gt;
* optimaler Weise holt sich &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; benötigte informationen aus der &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; der bestehenden Nextcloud-Installation&lt;br /&gt;
* eine zusätzliche (Sub)domain im gleichen User ist nötig. Andernfalls muss die bestehende &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; muss aus o.g. Gründen modifiziert werden, dies könnte bei Nextcloud-Updates verloren gehen(!)&lt;br /&gt;
* Bestimmte Portbereiche sind bei Hostsharing eingeschränkt, es empfiehlt sich, direkt beispielsweise Port &amp;lt;code&amp;gt;37867&amp;lt;/code&amp;gt; zu nehmen. &amp;lt;strong&amp;gt;aus diesem Grund ist das automatische Setup durch das Plugin bei Hostsharing nicht möglich!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Siehe auch: https://github.com/nextcloud/notify_push#manual-setup &lt;br /&gt;
&lt;br /&gt;
1. Installieren der Nextcloud-App &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; – (nach Push suchen, &amp;quot;Client Push&amp;quot; wählen)&amp;lt;br&amp;gt;&lt;br /&gt;
2. falls noch nicht erstellt: &amp;lt;code&amp;gt;mkdir -p ~/.config/systemd/user&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
3. mit Lieblingseditor die Datei &amp;lt;code&amp;gt;~/.config/systemd/user/notify_push.service&amp;lt;/code&amp;gt; anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot; line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description = Push daemon for Nextcloud clients&lt;br /&gt;
Documentation = https://github.com/nextcloud/notify_push&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Change if you already have something running on this port&lt;br /&gt;
Environment = PORT=37867&lt;br /&gt;
# We don&#039;t want to bind to 0.0.0.0, hence the --bind&lt;br /&gt;
ExecStart = /home/pacs/xyz00/users/cloud/bin/notify_push --bind 127.0.0.1 /home/pacs/xyz00/users/cloud/nextcloud/config/config.php&lt;br /&gt;
Type=notify&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy = default.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
4. das Verzeichnis &amp;lt;code&amp;gt;~/bin&amp;lt;/code&amp;gt; anlegen und die aktuellste binary herunterladen und ausführbar machen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot; line&amp;gt;release=`curl -L https://api.github.com/repos/nextcloud/notify_push/releases/latest -s | jq -r &#039;.tag_name&#039;` &amp;amp;&amp;amp; wget --show-progress -qO ~/bin/notify_push https://github.com/nextcloud/notify_push/releases/download/$release/notify_push-x86_64-unknown-linux-musl &amp;amp;&amp;amp; chmod +x ~/bin/notify_push&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
5. es könnte die folgende Umgebungsvariable zum Bedienen von systemd notwendig werden:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;export XDG_RUNTIME_DIR=/run/user/$UID&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
6. den neuen systemd-Dienst automatisch bei Systemstart, sowie jetzt sofort starten:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;systemctl enable --now --user notify_push&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
7. nun gehen wir in &amp;lt;code&amp;gt;doms/push.cloud.example.com/htdocs-ssl/.htaccess&amp;lt;/code&amp;gt; und ersetzen den Inhalt (bevorzugt), oder wir ergänzen die .htaccess der Nextcloud im unteren Teil um die folgenden Zeilen (letzteres kann bei Updates überschrieben werden!):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot; line&amp;gt;&lt;br /&gt;
# bei eigener (sub)domain ist /push/ nicht erforderlich, aber wer weiß, eventuell ist das mit robuster&lt;br /&gt;
RewriteCond %{REQUEST_URI}  ^/push/ws    [NC,OR]&lt;br /&gt;
RewriteCond %{HTTP:UPGRADE} ^WebSocket$           [NC,OR]&lt;br /&gt;
RewriteCond %{HTTP:CONNECTION} ^Upgrade$          [NC]&lt;br /&gt;
RewriteRule .* ws://127.0.0.1:37867/ws  [proxy]&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{REQUEST_URI}  ^/push    [NC]&lt;br /&gt;
RewriteRule .* http://127.0.0.1:37867%{REQUEST_URI}  [proxy]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
8. abschließend im Nextcloud Ordner die Konfiguration des Plugins anstoßen: &amp;lt;code&amp;gt;php occ notify_push:setup https://cloud.example.com/push&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;php occ notify_push:setup https://push.cloud.example.com/push&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
9. es ist möglich, das die erkannte IP-Adresse des Hives noch nicht vertraut ist. In diesem Fall wird der obige Befehl scheitern und es muss jene aus der Fehlermeldung des Setups unter &amp;lt;code&amp;gt;trusted_proxies&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; ergänzt werden. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es wird im Repo außerdem ein Testclient bereitgestellt, der sich testweise mit dem Push-Dienst verbindet&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Online Office ==&lt;br /&gt;
&lt;br /&gt;
In Nextcloud können Office-Dokumente (Textverarbeitung, Tabellen und Präsentationen) im Browser bearbeitet werden. Dazu steht bei Hostsharing die Collabora Developer Version zur Verfügung. Bestellung und Konfiguration sind hier im Wiki auf der Seite [[Collabora_Online]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Nextcloud Talk ==&lt;br /&gt;
&lt;br /&gt;
Über die Nextcloud-App &amp;quot;Talk&amp;quot; können Videokonfererenzen mit Screensharing durchgeführt werden. Für die regelmäßige Nutzung kann es sinnvoll sein einen eigenen TURN Server zu betreiben. Siehe dazu [[Coturn_Installieren]]&lt;br /&gt;
&lt;br /&gt;
== Virenscanner ==&lt;br /&gt;
&lt;br /&gt;
Einige Nutzer wollen die Dateien in Ihrer Nextcloud regelmäßig auf Viren überprüfen. Auf unseren Servern steht dafür der OpenSource-Virenscanner &amp;quot;ClamAV&amp;quot; zur Verfügung. Wenn dieser Scanner benutzt wird, dann sollten die Einstellungen so gewählt sein, dass der ClamAV-Daemon über eine Socket Verbindung angesprochen wird. Die Einstellungen sind im Screenshot dokumentiert.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nextcloud-ClamAV-Einstellungen.png||nextcloud einstellungen für die virenscanner-app]]&lt;br /&gt;
&lt;br /&gt;
== Volltextsuche ==&lt;br /&gt;
&lt;br /&gt;
Über die Dokumente einer Nextcloud kann ein Volltextindex erstellt werden. Die Volltextsuche ermöglicht über den Index eine Suche über beliebige Begriffe, die in Dokumenten vorkommen.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung ist der Betrieb eines Elasticsearch Servers. Der Betrieb im Managed Webspace erfodert die Buchung von zwei &amp;quot;Serverdiensten&amp;quot;. Nutzer eines Managed Server müssen mit einem spürbaren Mehrbedarf an Hauptspeicher rechnen.&lt;br /&gt;
&lt;br /&gt;
Zur Installation von Elasticsearch existiert eine eigene Wikiseite: [[Elasticsearch]].&lt;br /&gt;
&lt;br /&gt;
In der Nextcloud sind folgende &#039;&#039;Apps&#039;&#039; zu installieren:&lt;br /&gt;
* Full Text Search&lt;br /&gt;
* Full Text Search - Elasticsearch Platform&lt;br /&gt;
* Full Text Search - Files&lt;br /&gt;
&lt;br /&gt;
nach der Installation der drei Apps steht in den Einstellungen ein neuer Menüpunkt &amp;quot;Volltextsuche&amp;quot; zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Hier ist einzustellen:&lt;br /&gt;
* Suchplattform: Elasticsearch&lt;br /&gt;
* Adresse des Servlets: http://elastic:das-erzeugt-passwort@127.0.0.1:39200&lt;br /&gt;
* Index: frei-gewaehlter-name-idx&lt;br /&gt;
* Analyzer tokenizer: standard&lt;br /&gt;
&lt;br /&gt;
Die anderen Einstellung nach den eigenen Vorstellungen vornehmen.&lt;br /&gt;
&lt;br /&gt;
Der initiale Aufbau des Suchindex erfolgt über ein &amp;quot;occ&amp;quot;-Kommando auf der Shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
cd nextcloud/&lt;br /&gt;
php occ fulltextsearch:index --output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn dieser Fehler kommt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text&amp;gt;&lt;br /&gt;
TypeError: Return value of OCA\Files_FullTextSearch\Model\MountPoint::isGlobal()&lt;br /&gt;
must be of the type bool, null returned in [...]/apps/files_fulltextsearch/lib/Model/MountPoint.php:103&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
sollte dieser Patch angewendet werden: https://github.com/nextcloud/files_fulltextsearch/issues/125#issuecomment-877789742&lt;br /&gt;
&lt;br /&gt;
Zur Pflege des Indexes wird ein weiterer Hintergrundprozess gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
cd nextcloud/&lt;br /&gt;
php occ fulltextsearch:live -q&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Monit Konfiguration dafür sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#~/bin/start-fulltextsearchlive&lt;br /&gt;
#&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
export HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
cd $HOME&lt;br /&gt;
mkdir -p $HOME/var&lt;br /&gt;
cd $HOME/nextcloud&lt;br /&gt;
exec php occ fulltextsearch:live -q &amp;amp;&lt;br /&gt;
echo $! &amp;gt;$HOME/var/fulltextsearchlive.pid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#~/bin/stop-fulltextsearchlive&lt;br /&gt;
#&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
export HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
kill $( cat $HOME/var/fulltextsearchlive.pid )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
~/.monitrc (siehe oben von der Redis Installation) entsprechend ergänzen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
check process fulltextsearchlive with pidfile /home/pacs/xyz00/users/cloud/var/fulltextsearchlive.pid&lt;br /&gt;
    start program &amp;quot;/home/pacs/xyz00/users/cloud/bin/start-fulltextsearchlive&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/home/pacs/xyz00/users/cloud/bin/stop-fulltextsearchlive&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integration mit LDAP ==&lt;br /&gt;
&lt;br /&gt;
Um einheitliche Benutzerzugänge für verschiedene Anwendungen zu ermöglichen, wird oft auf ein zentrales LDAP Verzeichnis gesetzt. &lt;br /&gt;
&lt;br /&gt;
Dieses kann für Nextcloud eingesetzt werden, damit Benutzer nicht lokal in Nextcloud, sondern in LDAP verwaltet werden können.&lt;br /&gt;
&lt;br /&gt;
Siehe auch https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html&lt;br /&gt;
&lt;br /&gt;
Dazu muss die App &amp;quot;LDAP user and group backend&amp;quot; in den Nextcloud Apps aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Dann muss die LDAP Anbindung in den Administrationseinstellungen unter &amp;quot;LDAP/AD-Integration&amp;quot; eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
Der Server mit Port, die BenutzerDN mit Passwort und die BaseDN müssen eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Es muss auch bestimmt werden, welche Klasse (z.B. inetOrgPerson) die Benutzer brauchen, um Zugriff auf die Nextcloud zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Falls schon Benutzer in der Nextcloud existieren, und diese zu LDAP mitgenommen werden sollen, kann der Anleitung aus diesem Forum Eintrag gefolgt werden: https://help.nextcloud.com/t/migration-to-ldap-keeping-users-and-data/13205&lt;br /&gt;
&lt;br /&gt;
* Voraussetzung ist, dass der Benutzernamen der zu übernehmenden Benutzer in Nextcloud der uid in LDAP entspricht.&lt;br /&gt;
* Es wird ein Administrator Benutzer benötigt, der lokal angelegt wurde, und auch lokal bleibt.&lt;br /&gt;
* Mit diesem Administrator Benutzer wird die LDAP Anbindung eingerichtet.&lt;br /&gt;
* In der Experten Ansicht von LDAP/AD muss bei &amp;quot;Attribut für interne Benutzernamen&amp;quot; eingetragen werden: uid&lt;br /&gt;
* Klicke den Schalter &amp;quot;LDAP Benutzernamenzuordnung löschen&amp;quot;&lt;br /&gt;
* Klicke den Schalter &amp;quot;LDAP Gruppennamenzuordnung löschen&amp;quot;&lt;br /&gt;
* dann in der MySQL Datenbank anmelden, und aus uc_users alle Benutzer bis auf den Administrator Benutzer löschen&lt;br /&gt;
* Dann in der Nextcloud Weboberfläche sich alle Benutzer anzeigen lassen&lt;br /&gt;
* Nun gelingt die Anmeldung mit den anderen Benutzern mit dem LDAP Passwort, und die Dateien wurden übernommen.&lt;br /&gt;
&lt;br /&gt;
== Optimierung der Geschwindigkeit ==&lt;br /&gt;
Manchmal fühlt sich die Nextcloud träge an.&lt;br /&gt;
&lt;br /&gt;
Folgende Änderungen können helfen:&lt;br /&gt;
&lt;br /&gt;
* HTTP/2.0 aktivieren: dem Service von Hostsharing Bescheid geben&lt;br /&gt;
* Die App Dashboard deaktivieren, und dafür werden direkt die Dateien angezeigt&lt;br /&gt;
* Einblenden der README in den Ordnern abschalten: das kann pro Ordner in der UI geschehen (links unten), oder global: &amp;lt;code&amp;gt;occ config:app:set text workspace_available --value=0&amp;lt;/code&amp;gt;. Siehe auch [https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/text_configuration.html#disable-rich-workspaces-globally]&lt;br /&gt;
&lt;br /&gt;
== Default App einstellen ==&lt;br /&gt;
&lt;br /&gt;
In der Datei config.php können wir einstellen, welche App direkt nach der Anmeldung gezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Das ist entweder die Dashboard App, wenn sie aktiviert ist, oder die Dateien App (files).&lt;br /&gt;
&lt;br /&gt;
Falls der Kalender direkt angezeigt werden soll, muss folgende Zeile in der config.php hinzugefügt werden (siehe auch [https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#defaultapp]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&#039;defaultapp&#039; =&amp;gt; &#039;calendar&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Nextcloud Updates =&lt;br /&gt;
&lt;br /&gt;
== Updater über die Shell starten ==&lt;br /&gt;
&lt;br /&gt;
Wenn die NextCloud sich nicht über das Webfrontend updaten lässt, kann der Updater auch per Shell im directory /updater durch ausführen des updater.phar gestartet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud/updater&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud/updater$ chmod u+x updater.phar&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud/updater$ ./updater.phar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es sollten außerdem ein paar Routine-Aufräumarbeiten durchgeführt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-columns --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-indices --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So können die Apps noch alle aktualisiert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ app:update --all -n --no-ansi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für weitere Informationen kann auf die offizielle Doku ab Ziffer 2. zurückgegriffen werden.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html#using-the-command-line-based-updater https://docs.nextcloud.com]&lt;br /&gt;
&lt;br /&gt;
Hier gibt es ein kurzes Video, das die Anmeldung über die Kommandozeile mit Putty erklärt und die Aktualisierung von Nextcloud auf der Kommandozeile:&lt;br /&gt;
&lt;br /&gt;
* [https://tube.solidcharity.net/w/0cf5ee97-ba7c-41df-a56f-8d1fea842ab0 Nextcloud auf der Kommandozeile aktualisieren]&lt;br /&gt;
&lt;br /&gt;
== Wartungsmodus per Shell ein- oder ausschalten ==&lt;br /&gt;
&lt;br /&gt;
So kann der Wartungsmodus angeschaltet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So kann der Wartungsmodus wieder ausgeschaltet werden, d.h. die Nextcloud ist dann wieder in Betrieb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Webfrontend-Updater Probleme / Lösungen ==&lt;br /&gt;
&lt;br /&gt;
=== Datenbank: Indizes | Primärschlüssel | Konvertierungen ===&lt;br /&gt;
&lt;br /&gt;
Aufgetreten nach erfolgtem Versionsupdate Nextcloud 19 auf Nextcloud 20&lt;br /&gt;
&lt;br /&gt;
Nach dem erfolgten Update lädt automatisch die Seite: &#039;&#039;&#039;Sicherheits- und Einrichtungswarnungen&#039;&#039;&#039; auf dieser wird angemerkt, dass manuelle Schritte für die Datenbank durchzuführen sind. Dies betrifft Indizes, Primärschlüssel und Konvertierungen. &lt;br /&gt;
&lt;br /&gt;
Per Shell in der directory /nextcloud folgende Kommandos ausführen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-columns --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-indices --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hier dem durch Nextcloud angegebenen Kommando ein &#039;&#039;&#039;php&#039;&#039;&#039; voranzustellen.&lt;br /&gt;
&lt;br /&gt;
== Update per Skript ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich die regelmäßigen Updates weitgehend zu automatisieren. Ein Skript wäre etwa:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
if [ -f $HOME/nextcloud/occ ]; then &lt;br /&gt;
  echo &amp;quot;Nextcloud Update&amp;quot;; &lt;br /&gt;
  cd $HOME/nextcloud;&lt;br /&gt;
  php updater/updater.phar -vv --no-backup --no-interaction&lt;br /&gt;
  php occ maintenance:mode --on&lt;br /&gt;
  php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
  php occ db:add-missing-columns --no-interaction&lt;br /&gt;
  php occ db:add-missing-indices --no-interaction&lt;br /&gt;
  php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
  php occ app:update --all&lt;br /&gt;
  php occ maintenance:mode --off&lt;br /&gt;
else &lt;br /&gt;
  echo &amp;quot;Keine Nextcloud Installation gefunden&amp;quot;; &lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Update: bei old-stable Version bleiben ==&lt;br /&gt;
&lt;br /&gt;
Normalerweise fragt jede Nextcloud Instanz zentral ab, welches Update zur Verfügung steht, abhängig vom Release Channel. Dabei wird aber relativ schnell auf die nächste Version gewechselt, also z.B. von Nextcloud 28 auf Nextcloud 29, obwohl Nextcloud 28 noch mehrere Monate gepflegt wird, und manche Apps noch nicht bereit sind für Nextcloud 29.&lt;br /&gt;
&lt;br /&gt;
Es kann aber auch eine Alternative eingerichtet werden, in der Datei nextcloud/config/config.php, unter dem Eintrag updater.server.url&lt;br /&gt;
&lt;br /&gt;
Hier wird z.B. auf einen Updater von unserem Mitglied Timotheus Pokorra verwiesen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
updater_server_url: &amp;quot;https://ncupdater.solidcharity.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dahinter läuft ein Skript, mit dem wir noch länger eine bestimmte Version anbieten können: https://codeberg.org/tpokorra/ncupdater&lt;br /&gt;
&lt;br /&gt;
= Daten auf HDD Storage =&lt;br /&gt;
== Einrichtung des HDD Storage ==&lt;br /&gt;
&lt;br /&gt;
Um den langsameren aber günstigeren HDD Storage von Hostsharing zu nutzen, kann das data Verzeichnis von SSD auf HDD Storage verschoben werden. Ein symbolischer Link reicht nicht aus, man muss den Pfad in der Nextcloud Konfigurationsdatei anpassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
# Nextcloud in Wartungsmodus versetzen&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --on&lt;br /&gt;
# Daten auf HDD Storage verschieben&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ mv data /home/storage/xyz00/users/cloud/&lt;br /&gt;
# symbolischen Link anlegen&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ ln -s /home/storage/xyz00/users/cloud/data data&lt;br /&gt;
# Pfad in config.php ändern&lt;br /&gt;
nano config/config.php&lt;br /&gt;
# Die Zeile mit &#039;datadirectory&#039; finden und entsprechend ändern:&lt;br /&gt;
# &#039;datadirectory&#039; =&amp;gt; &#039;/home/storage/xyz00/users/cloud/data&#039;,&lt;br /&gt;
# Wartungsmodus beenden&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Fallstrick: Im data-Verzeichnis liegt eine versteckte Datei &amp;quot;.ncdata&amp;quot;. Beim Move-Befehl &amp;quot;mv&amp;quot; für das komplette Data-Verzeichnis wird diese Datei mit verschoben. Sonst muss die Datei ggf. ins neue data-Verzeichnis kopiert werden!&lt;br /&gt;
&lt;br /&gt;
= Einschränkende Bemerkungen =&lt;br /&gt;
== Nextcloud Sync Client ==&lt;br /&gt;
&lt;br /&gt;
Der Nextcloud Sync Client erfüllt eine Funktion ähnlich wie Dropbox, und synchronisiert ganze Ordnerstrukturen. &lt;br /&gt;
&lt;br /&gt;
Gerade wenn man mit mehreren Menschen in einer Nextcloud arbeitet, ist diese Funktion mit Vorsicht zu benutzen.&lt;br /&gt;
&lt;br /&gt;
* Änderungen an der Ordnerstruktur sollten nicht lokal, sondern im Webbrowser vorgenommen werden.&lt;br /&gt;
* Wenn die Gefahr besteht, dass mehrere Menschen gleichzeitig eine Datei bearbeiten, sollte die Datei nicht lokal, sondern im Webbrowser bearbeitet werden.&lt;br /&gt;
* Aus Sicht des Datenschutzes und der Daten-Minimierung sollte überlegt werden, ob die Daten wirklich auf jeden Laptop und Rechner synchronisiert werden sollen, oder ob es reicht, ausschließlich über den Webbrowser auf die Daten zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
= weiterführende Links =&lt;br /&gt;
&lt;br /&gt;
* [https://docs.nextcloud.com/ Nextcloud Dokumentation]&lt;br /&gt;
* [https://apps.nextcloud.com/ Nextcloud Erweiterungen (&amp;quot;Apps&amp;quot;)]&lt;br /&gt;
* [https://ownyourbits.com/2019/06/29/understanding-and-improving-nextcloud-previews/ Optimierung des Caches für Previews]&lt;br /&gt;
* [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/nextcloud Ansible Playbook für Hostsharing]&lt;br /&gt;
&lt;br /&gt;
= Nextcloud Reseller bei HS =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.ossaas.de OS SaaS]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Ansible Playbook]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;br /&gt;
[[Kategorie:Nextcloud]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=7260</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=7260"/>
		<updated>2025-02-07T15:01:19Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Einrichtung des HDD Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nextcloud =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.com/ Nextcloud] ist eine PHP-basierte Open Source Lösung für gängige Cloud-Anwendungen, u.a.:&lt;br /&gt;
&lt;br /&gt;
* Filesharing unter Nutzern derselben Nextcloud, und mit der Öffentlichkeit&lt;br /&gt;
* Single-Sign-On Authentifizierung (SSO)&lt;br /&gt;
* Videokonferenzen (WebRTC)&lt;br /&gt;
* Online-Office Anwendung [https://www.collaboraoffice.com/ Collabora Online]&lt;br /&gt;
&lt;br /&gt;
Beispiel-Funktionalität, die über Plugins, sogenannte [https://apps.nextcloud.com/ &amp;quot;Apps&amp;quot;], bereit gestellt werden kann:&lt;br /&gt;
&lt;br /&gt;
* Kalender, Aufgabenverwaltung, Adressbuch&lt;br /&gt;
* Datei-Kollaboration (Kommentare zu Dateien, Verschlagwortung)&lt;br /&gt;
* Feedreader&lt;br /&gt;
* E-Mail-Programm&lt;br /&gt;
* Fotogalerie&lt;br /&gt;
* Musik- und Videowiedergabe&lt;br /&gt;
&lt;br /&gt;
= Nextcloud installieren =&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;hsadmin&#039;&#039;, zum Beispiel mit &#039;&#039;hsscript&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hsadmin&#039;&#039;-Shell starten mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
hsscript -u xyz00 -i&lt;br /&gt;
Password: ********&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann nacheinander anlegen:&lt;br /&gt;
&lt;br /&gt;
* Linux User als Domain-Administrator&lt;br /&gt;
* Subdomain &#039;&#039;cloud.example.org&#039;&#039;&lt;br /&gt;
* PostgreSQL-User &lt;br /&gt;
* PostgreSQL Datenbank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-cloud&#039;,password:&#039;geheim&#039;,shell:&#039;/bin/bash&#039;,comment:&#039;Nextcloud&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; domain.add({set:{name:&#039;cloud.example.org&#039;,user:&#039;xyz00-cloud&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; postgresqluser.add({set:{name:&#039;xyz00_nextclusr&#039;,password:&#039;geheim&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; postgresqldb.add({set:{name:&#039;xyz00_nextcloud&#039;,owner:&#039;xyz00_nextclusr&#039;}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud installieren ==&lt;br /&gt;
&lt;br /&gt;
Anmelden als Linux-User &#039;&#039;xyz00-cloud&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
ssh -l xyz00-cloud xyz00.hostsharing.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;htdocs&#039;&#039; Verzeichnis vorbereiten&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd&lt;br /&gt;
mkdir nextcloud&lt;br /&gt;
cd doms/cloud.example.org&lt;br /&gt;
rm -rf subs/www subs-ssl/www htdocs-ssl&lt;br /&gt;
ln -s $HOME/nextcloud htdocs-ssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls der &#039;&#039;Redirect&#039;&#039; auf die Domain &#039;&#039;example.org&#039;&#039; umleitet statt auf die Subdomain &#039;&#039;cloud.example.org&#039;&#039;, kann diese Aktion helfen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd doms/cloud.example.org&lt;br /&gt;
mkdir -p subs-ssl/www&lt;br /&gt;
cp htdocs/.htaccess subs-ssl/www/.htaccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nextcloud herunterladen und entpacken.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd &lt;br /&gt;
wget https://download.nextcloud.com/server/releases/nextcloud-27.1.2.zip&lt;br /&gt;
unzip nextcloud-27.1.2.zip &lt;br /&gt;
rm nextcloud-27.1.2.zip&lt;br /&gt;
mkdir data tmp&lt;br /&gt;
chmod 700 data tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis &amp;quot;$HOME/doms/cloud.example.org/fastcgi-ssl/&amp;quot; eine Datei &amp;quot;php.ini&amp;quot; anlegen mit folgendem Inhalt: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
memory_limit=512M&lt;br /&gt;
session.save_path=/home/pacs/xyz00/users/cloud/tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann mit einem Editor diese Datei bearbeiten: In der zweiten Zeile den korrekten Pfad des vorher angelegten tmp-Verzeichnisses eintragen.&lt;br /&gt;
&lt;br /&gt;
Im Browser auf die Seite &lt;br /&gt;
http://cloud.example.org gehen und den Anweisungen folgen.&lt;br /&gt;
&lt;br /&gt;
Auf der ersten Seite sind anzugeben:&lt;br /&gt;
&lt;br /&gt;
* Login und Passwort für den Administrator definieren&lt;br /&gt;
* PostgreSQL als Datenbanksystem&lt;br /&gt;
* PostgreSQL-User und Passwort aus dem ersten Schritt oben&lt;br /&gt;
* Name der PostgreSQL-Datenbank aus dem ersten Schritt&lt;br /&gt;
* &amp;quot;localhost&amp;quot; als Datenbankserver (Nextcloud 23.0.2 empfiehlt hier die Angabe des Ports, diesen also lt. [[PostgreSQL]] angeben)&lt;br /&gt;
* Das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/data/&amp;quot; als Daten-Verzeichnis (bitte beachten: das im Eingabefeld voreingestellte verweist auf das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/&#039;&#039;&#039;nextcloud&#039;&#039;&#039;/data/&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung!&#039;&#039;&#039; Die Felder für die Datenbank sind auf dem Startscreen hinter einem unscheinbaren Link versteckt. Um man das Formular für die Datenbank-Daten zu gelangen, muss man auf den Link klicken. Anschließend kann man die gewünschte Datenbank auswählen und die entsprechenden Daten eintragen. &#039;&#039;&#039;Das sollte geschehen, bevor man die Installation abschließt!&#039;&#039;&#039; Tut man dies nicht, wird Nextcloud mit SQLite installiert. Eine Änderung der Datenbank soll zwar laut Dokumentation auch später noch möglich sein, ging aber bei einem Test schief.&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) lassen sich weitere Voreinstellungen treffen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
&#039;maintenance_window_start&#039; =&amp;gt; 1,    // Wartungsfenster ab 1:00 Uhr&lt;br /&gt;
&#039;defaultapp&#039; =&amp;gt; &#039;calendar,files&#039;,   // bei Start wird der Kalender gezeigt&lt;br /&gt;
&#039;default_phone_region&#039; =&amp;gt; &#039;DE&#039;,     // Format Telefonnummern&lt;br /&gt;
&#039;default_language&#039; =&amp;gt; &#039;de&#039;,         // Sprache deutsch&lt;br /&gt;
&#039;force_language&#039; =&amp;gt; &#039;de&#039;,&lt;br /&gt;
&#039;default_locale&#039; =&amp;gt; &#039;de_DE&#039;,        // Locale (Formatierung Zeitangaben etc.) &lt;br /&gt;
&#039;force_locale&#039; =&amp;gt; &#039;de_DE&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud beschleunigen ==&lt;br /&gt;
&lt;br /&gt;
Dieser Teil ist optional.&lt;br /&gt;
&lt;br /&gt;
Wenn regelmäßig &#039;&#039;&#039;im Browser&#039;&#039;&#039; mit Nextcloud gearbeitet werden soll, ist Nextcloud im Browser oft sehr langsam. Um dies zu verbessern, unterstützt Nextcloud die Anwendung von unterschiedlichen Cache-Verfahren (zum Beispiel Memcache, Redis).&lt;br /&gt;
&lt;br /&gt;
=== Redis Cache ===&lt;br /&gt;
&lt;br /&gt;
Redis ist auf den Hostsharing-Servern vorinstalliert und wird von den Nextcloud-Entwicklern empfohlen. &#039;&#039;&#039;In Verbindung mit einem Managed Webspace&#039;&#039;&#039; muss für Redis als eigener Serverdienst RAM gebucht werden und ist &#039;&#039;&#039;kostenpflichtig&#039;&#039;&#039;. Siehe zu Kosten im Webspace Konfigurator unter: https://www.hostsharing.net/angebote/managed-webspace/ – &#039;&#039;&#039;Arbeitsspeicher für eigene Serverdienste&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des Redis-Dientes ist auf der Seite [[Redis]] beschrieben. Hier wird für Nextcloud die Variante mit einem Unixsocket benutzt.&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) wird der Redis-Cache wie folgt konfiguriert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
&#039;memcache.local&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;memcache.distributed&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;memcache.locking&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;redis&#039; =&amp;gt; &lt;br /&gt;
  array (&lt;br /&gt;
    &#039;host&#039; =&amp;gt; &#039;/home/pacs/xyz00/users/cloud/redis/var/redis-server.sock&#039;,&lt;br /&gt;
    &#039;port&#039; =&amp;gt; 0,&lt;br /&gt;
    &#039;password&#039; =&amp;gt; &#039;mein-redis-passwort&#039;,&lt;br /&gt;
    &#039;timeout&#039; =&amp;gt; 1.5,&lt;br /&gt;
  ),&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um es perfekt zu machen, nutze ich &#039;&#039;logrotate&#039;&#039; um die Logdateien zu organisieren. Dazu die Konfiguration in &#039;&#039;~/.logrotate&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
compress&lt;br /&gt;
/home/pacs/xyz00/users/cloud/redis/var/redis.log {&lt;br /&gt;
  rotate 5&lt;br /&gt;
  daily&lt;br /&gt;
  missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Mit systemd-Timern werden die Logdateien täglich rotiert:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/logrotate.service&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotate log files&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/sbin/logrotate -s %h/.logrotate.state %h/.logrotate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/logrotate.timer&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=1:1&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ systemctl --user enable logrotate.timer&lt;br /&gt;
$ systemctl --user start logrotate.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem weiteren Timer für die regelmäßigen Hintergrundaufgaben von Nextcloud lässt sie sich noch etwas beschleunigen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/nextcloud_background.service&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=php8.2 /home/pacs/xyz00/users/cloud/nextcloud/cron.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/nextcloud_background.timer&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=*:0/5&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ systemctl --user enable nextcloud_background.timer&lt;br /&gt;
$ systemctl --user start nextcloud_background.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nextcloud Push ===&lt;br /&gt;
&lt;br /&gt;
Um Vorgänge wie Sync und Benachrichtigungen bei sehr großen Nextcloud Installationen zu beschleunigen, kann der &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; Dienst hinzuinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
==== Abhängigkeiten und Einschränkungen ====&lt;br /&gt;
* &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; muss Zugriff auf den gleichen Redis-Cache wie die Nextcloud haben &lt;br /&gt;
** aufgrund von eingeschränktem Passwort Support sollte ein Redis Socket mit sicheren Berechtigungseinstellungen als Alternative zum Redis Port mit Passwort konfiguriert werden.&lt;br /&gt;
* optimaler Weise holt sich &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; benötigte informationen aus der &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; der bestehenden Nextcloud-Installation&lt;br /&gt;
* eine zusätzliche (Sub)domain im gleichen User ist nötig. Andernfalls muss die bestehende &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; muss aus o.g. Gründen modifiziert werden, dies könnte bei Nextcloud-Updates verloren gehen(!)&lt;br /&gt;
* Bestimmte Portbereiche sind bei Hostsharing eingeschränkt, es empfiehlt sich, direkt beispielsweise Port &amp;lt;code&amp;gt;37867&amp;lt;/code&amp;gt; zu nehmen. &amp;lt;strong&amp;gt;aus diesem Grund ist das automatische Setup durch das Plugin bei Hostsharing nicht möglich!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Siehe auch: https://github.com/nextcloud/notify_push#manual-setup &lt;br /&gt;
&lt;br /&gt;
1. Installieren der Nextcloud-App &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; – (nach Push suchen, &amp;quot;Client Push&amp;quot; wählen)&amp;lt;br&amp;gt;&lt;br /&gt;
2. falls noch nicht erstellt: &amp;lt;code&amp;gt;mkdir -p ~/.config/systemd/user&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
3. mit Lieblingseditor die Datei &amp;lt;code&amp;gt;~/.config/systemd/user/notify_push.service&amp;lt;/code&amp;gt; anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot; line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description = Push daemon for Nextcloud clients&lt;br /&gt;
Documentation = https://github.com/nextcloud/notify_push&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Change if you already have something running on this port&lt;br /&gt;
Environment = PORT=37867&lt;br /&gt;
# We don&#039;t want to bind to 0.0.0.0, hence the --bind&lt;br /&gt;
ExecStart = /home/pacs/xyz00/users/cloud/bin/notify_push --bind 127.0.0.1 /home/pacs/xyz00/users/cloud/nextcloud/config/config.php&lt;br /&gt;
Type=notify&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy = default.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
4. das Verzeichnis &amp;lt;code&amp;gt;~/bin&amp;lt;/code&amp;gt; anlegen und die aktuellste binary herunterladen und ausführbar machen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot; line&amp;gt;release=`curl -L https://api.github.com/repos/nextcloud/notify_push/releases/latest -s | jq -r &#039;.tag_name&#039;` &amp;amp;&amp;amp; wget --show-progress -qO ~/bin/notify_push https://github.com/nextcloud/notify_push/releases/download/$release/notify_push-x86_64-unknown-linux-musl &amp;amp;&amp;amp; chmod +x ~/bin/notify_push&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
5. es könnte die folgende Umgebungsvariable zum Bedienen von systemd notwendig werden:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;export XDG_RUNTIME_DIR=/run/user/$UID&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
6. den neuen systemd-Dienst automatisch bei Systemstart, sowie jetzt sofort starten:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;systemctl enable --now --user notify_push&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
7. nun gehen wir in &amp;lt;code&amp;gt;doms/push.cloud.example.com/htdocs-ssl/.htaccess&amp;lt;/code&amp;gt; und ersetzen den Inhalt (bevorzugt), oder wir ergänzen die .htaccess der Nextcloud im unteren Teil um die folgenden Zeilen (letzteres kann bei Updates überschrieben werden!):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot; line&amp;gt;&lt;br /&gt;
# bei eigener (sub)domain ist /push/ nicht erforderlich, aber wer weiß, eventuell ist das mit robuster&lt;br /&gt;
RewriteCond %{REQUEST_URI}  ^/push/ws    [NC,OR]&lt;br /&gt;
RewriteCond %{HTTP:UPGRADE} ^WebSocket$           [NC,OR]&lt;br /&gt;
RewriteCond %{HTTP:CONNECTION} ^Upgrade$          [NC]&lt;br /&gt;
RewriteRule .* ws://127.0.0.1:37867/ws  [proxy]&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{REQUEST_URI}  ^/push    [NC]&lt;br /&gt;
RewriteRule .* http://127.0.0.1:37867%{REQUEST_URI}  [proxy]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
8. abschließend im Nextcloud Ordner die Konfiguration des Plugins anstoßen: &amp;lt;code&amp;gt;php occ notify_push:setup https://cloud.example.com/push&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;php occ notify_push:setup https://push.cloud.example.com/push&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
9. es ist möglich, das die erkannte IP-Adresse des Hives noch nicht vertraut ist. In diesem Fall wird der obige Befehl scheitern und es muss jene aus der Fehlermeldung des Setups unter &amp;lt;code&amp;gt;trusted_proxies&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; ergänzt werden. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es wird im Repo außerdem ein Testclient bereitgestellt, der sich testweise mit dem Push-Dienst verbindet&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Online Office ==&lt;br /&gt;
&lt;br /&gt;
In Nextcloud können Office-Dokumente (Textverarbeitung, Tabellen und Präsentationen) im Browser bearbeitet werden. Dazu steht bei Hostsharing die Collabora Developer Version zur Verfügung. Bestellung und Konfiguration sind hier im Wiki auf der Seite [[Collabora_Online]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Nextcloud Talk ==&lt;br /&gt;
&lt;br /&gt;
Über die Nextcloud-App &amp;quot;Talk&amp;quot; können Videokonfererenzen mit Screensharing durchgeführt werden. Für die regelmäßige Nutzung kann es sinnvoll sein einen eigenen TURN Server zu betreiben. Siehe dazu [[Coturn_Installieren]]&lt;br /&gt;
&lt;br /&gt;
== Virenscanner ==&lt;br /&gt;
&lt;br /&gt;
Einige Nutzer wollen die Dateien in Ihrer Nextcloud regelmäßig auf Viren überprüfen. Auf unseren Servern steht dafür der OpenSource-Virenscanner &amp;quot;ClamAV&amp;quot; zur Verfügung. Wenn dieser Scanner benutzt wird, dann sollten die Einstellungen so gewählt sein, dass der ClamAV-Daemon über eine Socket Verbindung angesprochen wird. Die Einstellungen sind im Screenshot dokumentiert.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nextcloud-ClamAV-Einstellungen.png||nextcloud einstellungen für die virenscanner-app]]&lt;br /&gt;
&lt;br /&gt;
== Volltextsuche ==&lt;br /&gt;
&lt;br /&gt;
Über die Dokumente einer Nextcloud kann ein Volltextindex erstellt werden. Die Volltextsuche ermöglicht über den Index eine Suche über beliebige Begriffe, die in Dokumenten vorkommen.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung ist der Betrieb eines Elasticsearch Servers. Der Betrieb im Managed Webspace erfodert die Buchung von zwei &amp;quot;Serverdiensten&amp;quot;. Nutzer eines Managed Server müssen mit einem spürbaren Mehrbedarf an Hauptspeicher rechnen.&lt;br /&gt;
&lt;br /&gt;
Zur Installation von Elasticsearch existiert eine eigene Wikiseite: [[Elasticsearch]].&lt;br /&gt;
&lt;br /&gt;
In der Nextcloud sind folgende &#039;&#039;Apps&#039;&#039; zu installieren:&lt;br /&gt;
* Full Text Search&lt;br /&gt;
* Full Text Search - Elasticsearch Platform&lt;br /&gt;
* Full Text Search - Files&lt;br /&gt;
&lt;br /&gt;
nach der Installation der drei Apps steht in den Einstellungen ein neuer Menüpunkt &amp;quot;Volltextsuche&amp;quot; zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Hier ist einzustellen:&lt;br /&gt;
* Suchplattform: Elasticsearch&lt;br /&gt;
* Adresse des Servlets: http://elastic:das-erzeugt-passwort@127.0.0.1:39200&lt;br /&gt;
* Index: frei-gewaehlter-name-idx&lt;br /&gt;
* Analyzer tokenizer: standard&lt;br /&gt;
&lt;br /&gt;
Die anderen Einstellung nach den eigenen Vorstellungen vornehmen.&lt;br /&gt;
&lt;br /&gt;
Der initiale Aufbau des Suchindex erfolgt über ein &amp;quot;occ&amp;quot;-Kommando auf der Shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
cd nextcloud/&lt;br /&gt;
php occ fulltextsearch:index --output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn dieser Fehler kommt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text&amp;gt;&lt;br /&gt;
TypeError: Return value of OCA\Files_FullTextSearch\Model\MountPoint::isGlobal()&lt;br /&gt;
must be of the type bool, null returned in [...]/apps/files_fulltextsearch/lib/Model/MountPoint.php:103&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
sollte dieser Patch angewendet werden: https://github.com/nextcloud/files_fulltextsearch/issues/125#issuecomment-877789742&lt;br /&gt;
&lt;br /&gt;
Zur Pflege des Indexes wird ein weiterer Hintergrundprozess gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
cd nextcloud/&lt;br /&gt;
php occ fulltextsearch:live -q&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Monit Konfiguration dafür sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#~/bin/start-fulltextsearchlive&lt;br /&gt;
#&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
export HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
cd $HOME&lt;br /&gt;
mkdir -p $HOME/var&lt;br /&gt;
cd $HOME/nextcloud&lt;br /&gt;
exec php occ fulltextsearch:live -q &amp;amp;&lt;br /&gt;
echo $! &amp;gt;$HOME/var/fulltextsearchlive.pid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#~/bin/stop-fulltextsearchlive&lt;br /&gt;
#&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
export HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
kill $( cat $HOME/var/fulltextsearchlive.pid )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
~/.monitrc (siehe oben von der Redis Installation) entsprechend ergänzen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
check process fulltextsearchlive with pidfile /home/pacs/xyz00/users/cloud/var/fulltextsearchlive.pid&lt;br /&gt;
    start program &amp;quot;/home/pacs/xyz00/users/cloud/bin/start-fulltextsearchlive&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/home/pacs/xyz00/users/cloud/bin/stop-fulltextsearchlive&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integration mit LDAP ==&lt;br /&gt;
&lt;br /&gt;
Um einheitliche Benutzerzugänge für verschiedene Anwendungen zu ermöglichen, wird oft auf ein zentrales LDAP Verzeichnis gesetzt. &lt;br /&gt;
&lt;br /&gt;
Dieses kann für Nextcloud eingesetzt werden, damit Benutzer nicht lokal in Nextcloud, sondern in LDAP verwaltet werden können.&lt;br /&gt;
&lt;br /&gt;
Siehe auch https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html&lt;br /&gt;
&lt;br /&gt;
Dazu muss die App &amp;quot;LDAP user and group backend&amp;quot; in den Nextcloud Apps aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Dann muss die LDAP Anbindung in den Administrationseinstellungen unter &amp;quot;LDAP/AD-Integration&amp;quot; eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
Der Server mit Port, die BenutzerDN mit Passwort und die BaseDN müssen eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Es muss auch bestimmt werden, welche Klasse (z.B. inetOrgPerson) die Benutzer brauchen, um Zugriff auf die Nextcloud zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Falls schon Benutzer in der Nextcloud existieren, und diese zu LDAP mitgenommen werden sollen, kann der Anleitung aus diesem Forum Eintrag gefolgt werden: https://help.nextcloud.com/t/migration-to-ldap-keeping-users-and-data/13205&lt;br /&gt;
&lt;br /&gt;
* Voraussetzung ist, dass der Benutzernamen der zu übernehmenden Benutzer in Nextcloud der uid in LDAP entspricht.&lt;br /&gt;
* Es wird ein Administrator Benutzer benötigt, der lokal angelegt wurde, und auch lokal bleibt.&lt;br /&gt;
* Mit diesem Administrator Benutzer wird die LDAP Anbindung eingerichtet.&lt;br /&gt;
* In der Experten Ansicht von LDAP/AD muss bei &amp;quot;Attribut für interne Benutzernamen&amp;quot; eingetragen werden: uid&lt;br /&gt;
* Klicke den Schalter &amp;quot;LDAP Benutzernamenzuordnung löschen&amp;quot;&lt;br /&gt;
* Klicke den Schalter &amp;quot;LDAP Gruppennamenzuordnung löschen&amp;quot;&lt;br /&gt;
* dann in der MySQL Datenbank anmelden, und aus uc_users alle Benutzer bis auf den Administrator Benutzer löschen&lt;br /&gt;
* Dann in der Nextcloud Weboberfläche sich alle Benutzer anzeigen lassen&lt;br /&gt;
* Nun gelingt die Anmeldung mit den anderen Benutzern mit dem LDAP Passwort, und die Dateien wurden übernommen.&lt;br /&gt;
&lt;br /&gt;
== Optimierung der Geschwindigkeit ==&lt;br /&gt;
Manchmal fühlt sich die Nextcloud träge an.&lt;br /&gt;
&lt;br /&gt;
Folgende Änderungen können helfen:&lt;br /&gt;
&lt;br /&gt;
* HTTP/2.0 aktivieren: dem Service von Hostsharing Bescheid geben&lt;br /&gt;
* Die App Dashboard deaktivieren, und dafür werden direkt die Dateien angezeigt&lt;br /&gt;
* Einblenden der README in den Ordnern abschalten: das kann pro Ordner in der UI geschehen (links unten), oder global: &amp;lt;code&amp;gt;occ config:app:set text workspace_available --value=0&amp;lt;/code&amp;gt;. Siehe auch [https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/text_configuration.html#disable-rich-workspaces-globally]&lt;br /&gt;
&lt;br /&gt;
== Default App einstellen ==&lt;br /&gt;
&lt;br /&gt;
In der Datei config.php können wir einstellen, welche App direkt nach der Anmeldung gezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Das ist entweder die Dashboard App, wenn sie aktiviert ist, oder die Dateien App (files).&lt;br /&gt;
&lt;br /&gt;
Falls der Kalender direkt angezeigt werden soll, muss folgende Zeile in der config.php hinzugefügt werden (siehe auch [https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#defaultapp]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&#039;defaultapp&#039; =&amp;gt; &#039;calendar&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Nextcloud Updates =&lt;br /&gt;
&lt;br /&gt;
== Updater über die Shell starten ==&lt;br /&gt;
&lt;br /&gt;
Wenn die NextCloud sich nicht über das Webfrontend updaten lässt, kann der Updater auch per Shell im directory /updater durch ausführen des updater.phar gestartet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud/updater&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud/updater$ chmod u+x updater.phar&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud/updater$ ./updater.phar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es sollten außerdem ein paar Routine-Aufräumarbeiten durchgeführt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-columns --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-indices --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So können die Apps noch alle aktualisiert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ app:update --all -n --no-ansi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für weitere Informationen kann auf die offizielle Doku ab Ziffer 2. zurückgegriffen werden.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html#using-the-command-line-based-updater https://docs.nextcloud.com]&lt;br /&gt;
&lt;br /&gt;
Hier gibt es ein kurzes Video, das die Anmeldung über die Kommandozeile mit Putty erklärt und die Aktualisierung von Nextcloud auf der Kommandozeile:&lt;br /&gt;
&lt;br /&gt;
* [https://tube.solidcharity.net/w/0cf5ee97-ba7c-41df-a56f-8d1fea842ab0 Nextcloud auf der Kommandozeile aktualisieren]&lt;br /&gt;
&lt;br /&gt;
== Wartungsmodus per Shell ein- oder ausschalten ==&lt;br /&gt;
&lt;br /&gt;
So kann der Wartungsmodus angeschaltet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So kann der Wartungsmodus wieder ausgeschaltet werden, d.h. die Nextcloud ist dann wieder in Betrieb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Webfrontend-Updater Probleme / Lösungen ==&lt;br /&gt;
&lt;br /&gt;
=== Datenbank: Indizes | Primärschlüssel | Konvertierungen ===&lt;br /&gt;
&lt;br /&gt;
Aufgetreten nach erfolgtem Versionsupdate Nextcloud 19 auf Nextcloud 20&lt;br /&gt;
&lt;br /&gt;
Nach dem erfolgten Update lädt automatisch die Seite: &#039;&#039;&#039;Sicherheits- und Einrichtungswarnungen&#039;&#039;&#039; auf dieser wird angemerkt, dass manuelle Schritte für die Datenbank durchzuführen sind. Dies betrifft Indizes, Primärschlüssel und Konvertierungen. &lt;br /&gt;
&lt;br /&gt;
Per Shell in der directory /nextcloud folgende Kommandos ausführen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-columns --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-indices --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hier dem durch Nextcloud angegebenen Kommando ein &#039;&#039;&#039;php&#039;&#039;&#039; voranzustellen.&lt;br /&gt;
&lt;br /&gt;
== Update per Skript ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich die regelmäßigen Updates weitgehend zu automatisieren. Ein Skript wäre etwa:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
if [ -f $HOME/nextcloud/occ ]; then &lt;br /&gt;
  echo &amp;quot;Nextcloud Update&amp;quot;; &lt;br /&gt;
  cd $HOME/nextcloud;&lt;br /&gt;
  php updater/updater.phar -vv --no-backup --no-interaction&lt;br /&gt;
  php occ maintenance:mode --on&lt;br /&gt;
  php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
  php occ db:add-missing-columns --no-interaction&lt;br /&gt;
  php occ db:add-missing-indices --no-interaction&lt;br /&gt;
  php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
  php occ app:update --all&lt;br /&gt;
  php occ maintenance:mode --off&lt;br /&gt;
else &lt;br /&gt;
  echo &amp;quot;Keine Nextcloud Installation gefunden&amp;quot;; &lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Update: bei old-stable Version bleiben ==&lt;br /&gt;
&lt;br /&gt;
Normalerweise fragt jede Nextcloud Instanz zentral ab, welches Update zur Verfügung steht, abhängig vom Release Channel. Dabei wird aber relativ schnell auf die nächste Version gewechselt, also z.B. von Nextcloud 28 auf Nextcloud 29, obwohl Nextcloud 28 noch mehrere Monate gepflegt wird, und manche Apps noch nicht bereit sind für Nextcloud 29.&lt;br /&gt;
&lt;br /&gt;
Es kann aber auch eine Alternative eingerichtet werden, in der Datei nextcloud/config/config.php, unter dem Eintrag updater.server.url&lt;br /&gt;
&lt;br /&gt;
Hier wird z.B. auf einen Updater von unserem Mitglied Timotheus Pokorra verwiesen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
updater_server_url: &amp;quot;https://ncupdater.solidcharity.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dahinter läuft ein Skript, mit dem wir noch länger eine bestimmte Version anbieten können: https://codeberg.org/tpokorra/ncupdater&lt;br /&gt;
&lt;br /&gt;
= Daten auf HDD Storage =&lt;br /&gt;
== Einrichtung des HDD Storage ==&lt;br /&gt;
&lt;br /&gt;
Um den langsameren aber günstigeren HDD Storage von Hostsharing zu nutzen, kann das data Verzeichnis von SSD auf HDD Storage verschoben werden. Ein symbolischer Link reicht nicht aus, man muss den Pfad in der Nextcloud Konfigurationsdatei anpassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
# Nextcloud in Wartungsmodus versetzen&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --on&lt;br /&gt;
# Daten auf HDD Storage verschieben&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ mv data /home/storage/xyz00/users/cloud/&lt;br /&gt;
# symbolischen Link anlegen&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ ln -s /home/storage/xyz00/users/cloud/data data&lt;br /&gt;
# Pfad in config.php ändern&lt;br /&gt;
nano config/config.php&lt;br /&gt;
# Die Zeile mit &#039;datadirectory&#039; finden und entsprechend ändern:&lt;br /&gt;
# &#039;datadirectory&#039; =&amp;gt; &#039;/home/storage/xyz00/users/cloud/data&#039;,&lt;br /&gt;
# Wartungsmodus beenden&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Fallstrick: Im data-Verzeichnis liegt eine versteckte Datei &amp;quot;.ncdata&amp;quot;. Beim Move-Befehl &amp;quot;mv&amp;quot; für das komplette Data-verezcihnis wird diese Datei mit verschoben. Sonst muss die Datei ggf. ins neue data-Verzeichnis kopiert werden!&lt;br /&gt;
&lt;br /&gt;
= Einschränkende Bemerkungen =&lt;br /&gt;
== Nextcloud Sync Client ==&lt;br /&gt;
&lt;br /&gt;
Der Nextcloud Sync Client erfüllt eine Funktion ähnlich wie Dropbox, und synchronisiert ganze Ordnerstrukturen. &lt;br /&gt;
&lt;br /&gt;
Gerade wenn man mit mehreren Menschen in einer Nextcloud arbeitet, ist diese Funktion mit Vorsicht zu benutzen.&lt;br /&gt;
&lt;br /&gt;
* Änderungen an der Ordnerstruktur sollten nicht lokal, sondern im Webbrowser vorgenommen werden.&lt;br /&gt;
* Wenn die Gefahr besteht, dass mehrere Menschen gleichzeitig eine Datei bearbeiten, sollte die Datei nicht lokal, sondern im Webbrowser bearbeitet werden.&lt;br /&gt;
* Aus Sicht des Datenschutzes und der Daten-Minimierung sollte überlegt werden, ob die Daten wirklich auf jeden Laptop und Rechner synchronisiert werden sollen, oder ob es reicht, ausschließlich über den Webbrowser auf die Daten zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
= weiterführende Links =&lt;br /&gt;
&lt;br /&gt;
* [https://docs.nextcloud.com/ Nextcloud Dokumentation]&lt;br /&gt;
* [https://apps.nextcloud.com/ Nextcloud Erweiterungen (&amp;quot;Apps&amp;quot;)]&lt;br /&gt;
* [https://ownyourbits.com/2019/06/29/understanding-and-improving-nextcloud-previews/ Optimierung des Caches für Previews]&lt;br /&gt;
* [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/nextcloud Ansible Playbook für Hostsharing]&lt;br /&gt;
&lt;br /&gt;
= Nextcloud Reseller bei HS =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.ossaas.de OS SaaS]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Ansible Playbook]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;br /&gt;
[[Kategorie:Nextcloud]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7258</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7258"/>
		<updated>2025-02-07T14:43:23Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 3: SecureMX zubuchen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und proprietäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7257</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7257"/>
		<updated>2025-02-07T14:43:05Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 3: SecureMX zubuchen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen und propiretäre Software einsetzen. Dieser Sachverhalt muss vom Mitglied ggf. datenschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7256</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7256"/>
		<updated>2025-02-07T14:28:04Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen. Dieser Sachverhalt muss vom Mitglied ggf. dateschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7255</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7255"/>
		<updated>2025-02-07T14:27:23Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Formatierung Screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|gerahmt|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen. Dieser Sachverhalt muss von Mitglied ggf. dateschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7254</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7254"/>
		<updated>2025-02-07T14:24:25Z</updated>

		<summary type="html">&lt;p&gt;Peh00: SecureMX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt drei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
3. Nutzung der Spam-Appliance &amp;quot;SecureMX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
= Alternative 3: SecureMX zubuchen =&lt;br /&gt;
&lt;br /&gt;
Über unseren Domain-Anbieter &amp;quot;Partnergate&amp;quot; bietet Hostsharing als dritte Alternative die kommerzielle Spam-Appliance von Cisco an. Das Produkt heißt bei Partnergate &amp;quot;SecureMX&amp;quot;: https://www.hostsharing.net/loesungen/email/spam-abwehr/&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von SecureMX ist kostenpflichtig und wird auf Wunsch von Service eingerichtet. &lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass bei der Nutzung von SecureMX alle eingehenden E-Mail Nachrichten über Server geleitet werden, die nicht unter der Kontrolle von Hostsharing stehen. Dieser Sachverhalt muss von Mitglied ggf. dateschutzrechtlich bewertet werden.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7253</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7253"/>
		<updated>2025-02-07T14:17:00Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Spamassassin Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          4.0&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7252</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7252"/>
		<updated>2025-02-07T14:16:23Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 1: Persönlichen Spamfilter einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          3.8&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bayesfilter anlernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7251</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7251"/>
		<updated>2025-02-07T14:15:29Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Spamassassin Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          3.8&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Empfängerin der Nachrichten / der Empfänger füttert den Lernprozess, indem Spam-Nachrichten in den Ordner &amp;quot;Spam/LearnSpam&amp;quot; verschoben werden und indem gute Nachrichten in den Ordner &amp;quot;Spam/LearnHam&amp;quot; kopiert werden.&lt;br /&gt;
&lt;br /&gt;
Das Skript wird über einen systemd-Timer täglich ausgefürt.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7250</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7250"/>
		<updated>2025-02-07T14:11:32Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Alternative 1: Persönlichen Spamfilter einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          3.8&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen. Ein Bash-Skript für das Erlernen von Spam/Nonspam kann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Learn Spam from Maildir folder Junk/LearnSpam&lt;br /&gt;
# &lt;br /&gt;
mkdir -p ${HOME}/sa-learn-tmp&lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnSpam/cur/&lt;br /&gt;
for JUNK in $( ls ); do zcat ${JUNK} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${JUNK} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --spam ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnSpam/cur/*&lt;br /&gt;
#&lt;br /&gt;
# Learn Non-Spam from Maildir folder Junk/LearnHam&lt;br /&gt;
# &lt;br /&gt;
cd ${HOME}/Maildir/.Junk.LearnHam/cur/&lt;br /&gt;
for HAM in $( ls ); do zcat ${HAM} &amp;gt; ${HOME}/sa-learn-tmp/$( echo ${HAM} | cut -d&#039;.&#039; -f2 ).eml ; done&lt;br /&gt;
cd ${HOME}/&lt;br /&gt;
sa-learn --ham ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/sa-learn-tmp/*.eml&lt;br /&gt;
rm -f ${HOME}/Maildir/.Junk.LearnHam/cur/*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7249</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7249"/>
		<updated>2025-02-07T14:06:43Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Spamassassin Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          3.8&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn der Bayesfilter eingeschaltet ist, macht es Sinn den Filter mit den Befehlen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sa-learn --spam &amp;lt;platzhalter-spam-nachricht&amp;gt;&lt;br /&gt;
sa-learn --ham &amp;lt;platzhalter-erwünschte-nachricht&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anzulernen.&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7248</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7248"/>
		<updated>2025-02-07T14:03:09Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Spamassassin Konfigurieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
In dieser Variante kann man Spamassassin individuell konfigurieren. Dazu legt man im $HOME des Mailbox-Account ein Verzeichnis &amp;quot;$HOME/.spamassassin&amp;quot; an. Die Konfiguration erfolgt in der Datei &amp;quot;$HOME/.spamassassin/user_prefs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsbeispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
required_score          3.8&lt;br /&gt;
report_safe             0&lt;br /&gt;
use_bayes               1&lt;br /&gt;
bayes_auto_learn        1&lt;br /&gt;
skip_rbl_checks         0&lt;br /&gt;
use_razor2              1&lt;br /&gt;
use_pyzor               1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7247</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7247"/>
		<updated>2025-02-07T13:57:04Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Intro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern. Der Artikel beschreibt zwei Möglichkeiten: &lt;br /&gt;
&lt;br /&gt;
1. Die Einrichtung von Apamassassin für das persönliche Postfach&lt;br /&gt;
&lt;br /&gt;
2. Die Nutzung der &amp;quot;smailin&amp;quot;-Server für eine komplette Domain&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7246</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7246"/>
		<updated>2025-02-07T13:55:24Z</updated>

		<summary type="html">&lt;p&gt;Peh00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern.&lt;br /&gt;
&lt;br /&gt;
= Alternative 1: Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Alternative 2: Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7245</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7245"/>
		<updated>2025-02-07T13:53:46Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* Maileingangsserver mit Spamfilter nutzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern.&lt;br /&gt;
&lt;br /&gt;
= Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte Maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe später folgenden Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Eingangsserver konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Maileingangsserver mit Spamassassin lassen sich pro Domain konfigurieren, indem die MX-Records im DNS-Zonefile gegenüber dem Default-Zonefile angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im Zonefile entfällt der Platzhalter &amp;quot;{MX_RR}&amp;quot;. Stattdessen werden die folgenden MX-Records eingefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin1.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin2.hostsharing.net.&lt;br /&gt;
{DOM_HOSTNAME}.    IN  MX  10  smailin3.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Änderung der DNS-Zone siehe: https://www.hostsharing.net/doc/managed-operations-platform/zonefile/&lt;br /&gt;
Wer sich die Aktion auf der Shell nicht zutraut, möge bitte den &amp;quot;Webmaster on Demand&amp;quot; beauftragen.&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7244</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7244"/>
		<updated>2025-02-07T13:45:23Z</updated>

		<summary type="html">&lt;p&gt;Peh00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern.&lt;br /&gt;
&lt;br /&gt;
= Persönlichen Spamfilter einrichten =&lt;br /&gt;
&lt;br /&gt;
Hier geht es darum, wie Personen mit (grundlegenden) kenntnissen in der Shell-Bedienung für ihr persönliches Postfach einen Spam-Filter einrichten können.&lt;br /&gt;
&lt;br /&gt;
== Spamassassin Konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Maileingangsserver mit Spamfilter nutzen =&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den vorkonfigurierte maileingangsservern betriebt Hostsharing seit einigen Jahren einen zweiten Satz von Maileingangsservern, bei denen Spamassassin bereits beim Annehmen einer E-Mail ausgeführt wird. Eingehende Nachrichten mit eindeutiger Bewertung als Spam werden bereits im SMTP-Dialog abgewiesen. Nachrichten mit einem Spam-Score über 5 Punkten werden angenommen und zugestellt. Spamassassin für die Bewertung für diese Nachrichten in die Header der Nachricht ein, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
X-Spam-Flag: YES&lt;br /&gt;
X-Spam-Score: 6.263&lt;br /&gt;
X-Spam-Level: ******&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anhand dieser Zeilen kann man in Roundcube Filter einrichten, die die Nachrichten beim Eintreffen der Nachricht in einen Spam-Ordner mit verdächtigen Nachrichten verschieben (siehe folgender Abschnitt).&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7243</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7243"/>
		<updated>2025-02-07T13:29:15Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Screenshot Sieve Filter in Roundcube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern.&lt;br /&gt;
&lt;br /&gt;
= Spamassassin Konfigurieren =&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spam-Ordner ==&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Filter können Nachrichten, die von Spamassassin markiert wurden, automatisch in einen Spam-Ordner verschoben werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:2025-02-07 Sievefilter-Spam.png|960x480px|links|alternativtext=Screenshot Filterregel zum Spam Aussortieren|Filter in Roundcube einrichten]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Datei:2025-02-07_Sievefilter-Spam.png&amp;diff=7242</id>
		<title>Datei:2025-02-07 Sievefilter-Spam.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Datei:2025-02-07_Sievefilter-Spam.png&amp;diff=7242"/>
		<updated>2025-02-07T13:23:23Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Eigener Screenshot der Roundcube Installation bei Hostsharing

Sieve Filter zum Aussortieren von Nachrichten mit &amp;quot;X-Spam&amp;quot;-Headern&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
Eigener Screenshot der Roundcube Installation bei Hostsharing&lt;br /&gt;
&lt;br /&gt;
Sieve Filter zum Aussortieren von Nachrichten mit &amp;quot;X-Spam&amp;quot;-Headern&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7241</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7241"/>
		<updated>2025-02-07T13:21:26Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Seite aufgeräumt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern.&lt;br /&gt;
&lt;br /&gt;
= Spamassassin Konfigurieren =&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7240</id>
		<title>Spamfilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spamfilter&amp;diff=7240"/>
		<updated>2025-02-07T13:01:54Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einrichtung, Konfiguration und Optimierung eines Spamfilters auf den Hostsharing Servern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Spamassassin Konfigurieren =&lt;br /&gt;
&lt;br /&gt;
Der Spamfilter &amp;quot;Spamassassin&amp;quot; ist bei HS vorinstalliert und kann wie auf der Seite [[Procmail]] beschrieben für eine Mailbox eingebunden werden.&lt;br /&gt;
Alternativ kann &amp;quot;spamc&amp;quot;, das Kommando zur Nutzung des Spamassassin-Daemon, auch einfach in der Datei &amp;quot;.forward&amp;quot; eines Mail-Users aufgerufen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/spamc -U /var/run/spamd -e /usr/lib/dovecot/deliver&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Effekt: Spammassassin schreibt seine Testergebnisse in die Headerzeilen jeder E-Mail und leitet die E-Mails weiter an das Programm &amp;quot;deliver&amp;quot; aus dem Dovecot-Paket. Das Sortieren von Spam-EMail in einen Spam-Ordner lässt sich mit Sieve-Filtern umsetzen.&lt;br /&gt;
&lt;br /&gt;
ToDo: Anpassung Konfiguration, Filtertraining&lt;br /&gt;
&lt;br /&gt;
= Mitteilungen über aussortierte Emails erzeugen lassen =&lt;br /&gt;
&lt;br /&gt;
Spamcheck Verzeichnis im Homeverzeichnis anlegen,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
mkdir spamcheck&lt;br /&gt;
cd spamcheck&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und dort drei Skriptdateien anlegen und deren Voreinstellungen anpassen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash line&amp;gt;&lt;br /&gt;
cat &amp;gt; check &amp;lt;&amp;lt;EOF&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#----------------------------------------------------------------------------------------&lt;br /&gt;
# send spam mailfolder infomail&lt;br /&gt;
# (c) 04/2004 by ff, webmaster@ff-newmedia.net&lt;br /&gt;
#----------------------------------------------------------------------------------------&lt;br /&gt;
#set -x&lt;br /&gt;
version=&amp;quot;0.4 0405201035 (modified)&amp;quot;&lt;br /&gt;
mailuser=$1&lt;br /&gt;
mailpath=&amp;quot;Maildir/.Spam/&amp;quot;&lt;br /&gt;
checkmaildir=&amp;quot;spamcheck/checkmaildir&amp;quot;&lt;br /&gt;
listmaildir=&amp;quot;spamcheck/listmaildir&amp;quot;&lt;br /&gt;
mailhost=&amp;quot;h02&amp;quot;&lt;br /&gt;
maildomain=&amp;quot;hostsharing.net&amp;quot;&lt;br /&gt;
purgetime=&amp;quot;7&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if ($checkmaildir $mailpath)&lt;br /&gt;
    then&lt;br /&gt;
        mailbox_status=`$listmaildir $mailpath`&lt;br /&gt;
	# send infomail&lt;br /&gt;
	(&lt;br /&gt;
	echo &amp;quot;From: spamcheck &amp;lt;admin@xyz00.$maildomain&amp;gt;&amp;quot;&lt;br /&gt;
        echo &amp;quot;To: $mailuser &amp;lt;$mailuser@$mailhost.$maildomain&amp;gt;&amp;quot;&lt;br /&gt;
        echo &amp;quot;Subject: Status des Spam-Ordners&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
        echo&lt;br /&gt;
        echo &amp;quot;$mailbox_status&amp;quot;&lt;br /&gt;
	echo&lt;br /&gt;
        echo&lt;br /&gt;
    	echo &amp;quot;Bitte pruefen ob evtl. erwuenschte Nachrichten aussortiert wurden.&amp;quot;&lt;br /&gt;
	echo &amp;quot;Zugriff auf das Postfach ist IMAP oder Webmail moeglich.&amp;quot;&lt;br /&gt;
        echo &amp;quot;(https://webmail.hostsharing.net)&amp;quot;&lt;br /&gt;
        echo&lt;br /&gt;
        echo&lt;br /&gt;
	echo &amp;quot;-- &amp;quot;&lt;br /&gt;
	echo &amp;quot;created by spamcheck $version&amp;quot;&lt;br /&gt;
    )|/usr/lib/sendmail $mailuser@$mailhost.$maildomain&lt;br /&gt;
else&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash line&amp;gt;&lt;br /&gt;
cat &amp;gt; checkmaildir &amp;lt;&amp;lt;EOF&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
#----------------------------------------------------------------------------------------&lt;br /&gt;
# send spam mailfolder infomail - check if maildir exists&lt;br /&gt;
# (c) 05/2004 by ff, webmaster@ff-newmedia.net&lt;br /&gt;
# based on mdfrm (c) 1996, Matthew C. Mead&lt;br /&gt;
#----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
$maildir = shift;&lt;br /&gt;
&lt;br /&gt;
if (!$maildir) {&lt;br /&gt;
    $maildir = $ENV{&#039;MAILDIR&#039;};&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (!$maildir) {&lt;br /&gt;
    $maildir = &amp;quot;$ENV{&#039;HOME&#039;}/.Maildir&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$maildir =~ s/^=/$ENV{&#039;HOME&#039;}\/Mail\//;&lt;br /&gt;
&lt;br /&gt;
# Kein Spamordner vorhanden - Errorcode 1&lt;br /&gt;
if (!(-d $maildir &amp;amp;&amp;amp; -r $maildir &amp;amp;&amp;amp; -x $maildir &amp;amp;&amp;amp; -d &amp;quot;$maildir/cur&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
      -r &amp;quot;$maildir/cur&amp;quot; &amp;amp;&amp;amp; -x &amp;quot;$maildir/cur&amp;quot; &amp;amp;&amp;amp; -d &amp;quot;$maildir/new&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
      -r &amp;quot;$maildir/new&amp;quot; &amp;amp;&amp;amp; -x &amp;quot;$maildir/new&amp;quot;)) {&lt;br /&gt;
    exit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Anderenfalls nachsehen ob Mails vorhanden sind&lt;br /&gt;
opendir(DIR, &amp;quot;$maildir/cur&amp;quot;);&lt;br /&gt;
@tmpfiles = map{$_ = &amp;quot;$maildir/cur/$_&amp;quot;} grep{!/(^\.$)|(^\.\.$)/} readdir(DIR);&lt;br /&gt;
@msgfiles = @tmpfiles;&lt;br /&gt;
closedir(DIR);&lt;br /&gt;
opendir(DIR, &amp;quot;$maildir/new&amp;quot;);&lt;br /&gt;
@tmpfiles = map{$_ = &amp;quot;$maildir/new/$_&amp;quot;} grep{!/(^\.$)|(^\.\.$)/} readdir(DIR);&lt;br /&gt;
push(@msgfiles, @tmpfiles);&lt;br /&gt;
closedir(DIR);&lt;br /&gt;
&lt;br /&gt;
# Wenn keine Mails vorhanden - Errorcode 1&lt;br /&gt;
if (!@msgfiles) {&lt;br /&gt;
    exit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Wenn Mails vorhanden - Errorcode 0&lt;br /&gt;
exit 0;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash line&amp;gt;&lt;br /&gt;
cat &amp;gt; listmaildir &amp;lt;&amp;lt;EOF&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
#----------------------------------------------------------------------------------------&lt;br /&gt;
# send spam mailfolder infomail - list maildir contents&lt;br /&gt;
# (c) 05/2004 by ff, webmaster@ff-newmedia.net&lt;br /&gt;
# based on mdfrm (c) 1996, Matthew C. Mead.&lt;br /&gt;
#----------------------------------------------------------------------------------------&lt;br /&gt;
$hours = 24; #Anzeigen von Mails, deren mtime hoechstens $hours Stunden in der Vergangenheit liegt&lt;br /&gt;
&lt;br /&gt;
use Date::Parse;&lt;br /&gt;
use Date::Format;&lt;br /&gt;
&lt;br /&gt;
$maildir = shift;&lt;br /&gt;
&lt;br /&gt;
if ($maildir eq &amp;quot;-h&amp;quot;) {&lt;br /&gt;
    print &amp;quot;usage: mdfrm /path/to/Maildir\n&amp;quot;;&lt;br /&gt;
    print &amp;quot;       mdfrm =Maildir == mdfrm ~/Mail/Maildir\n&amp;quot;;&lt;br /&gt;
    print &amp;quot;       otherwise, mdfrm defaults to \$MAILDIR\n&amp;quot;;&lt;br /&gt;
    print &amp;quot;       otherwise, mdfrm defaults to ~/.Maildir\n&amp;quot;;&lt;br /&gt;
    exit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (!$maildir) {&lt;br /&gt;
    $maildir = $ENV{&#039;MAILDIR&#039;};&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (!$maildir) {&lt;br /&gt;
    $maildir = &amp;quot;$ENV{&#039;HOME&#039;}/.Maildir&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$maildir =~ s/^=/$ENV{&#039;HOME&#039;}\/Mail\//;&lt;br /&gt;
&lt;br /&gt;
if (!(-d $maildir &amp;amp;&amp;amp; -r $maildir &amp;amp;&amp;amp; -x $maildir &amp;amp;&amp;amp; -d &amp;quot;$maildir/cur&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
      -r &amp;quot;$maildir/cur&amp;quot; &amp;amp;&amp;amp; -x &amp;quot;$maildir/cur&amp;quot; &amp;amp;&amp;amp; -d &amp;quot;$maildir/new&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
      -r &amp;quot;$maildir/new&amp;quot; &amp;amp;&amp;amp; -x &amp;quot;$maildir/new&amp;quot;)) {&lt;br /&gt;
    # faellt weg, da checkmaildir bereits ueberprueft&lt;br /&gt;
    # print &amp;quot;Kein Spamordner in \&amp;quot;$maildir\&amp;quot; vorhanden. Sie haben offensichtlich noch keine Spammails erhalten.\n&amp;quot;;&lt;br /&gt;
    exit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
opendir(DIR, &amp;quot;$maildir/cur&amp;quot;);&lt;br /&gt;
@tmpfiles = map{$_ = &amp;quot;$maildir/cur/$_&amp;quot;} grep{!/(^\.$)|(^\.\.$)/} readdir(DIR);&lt;br /&gt;
@msgfiles = @tmpfiles;&lt;br /&gt;
closedir(DIR);&lt;br /&gt;
opendir(DIR, &amp;quot;$maildir/new&amp;quot;);&lt;br /&gt;
@tmpfiles = map{$_ = &amp;quot;$maildir/new/$_&amp;quot;} grep{!/(^\.$)|(^\.\.$)/} readdir(DIR);&lt;br /&gt;
push(@msgfiles, @tmpfiles);&lt;br /&gt;
closedir(DIR);&lt;br /&gt;
&lt;br /&gt;
@msgs = ( );&lt;br /&gt;
&lt;br /&gt;
foreach $file (@msgfiles) {&lt;br /&gt;
    # wirkliches Alter der Mail&lt;br /&gt;
    $mtime = (stat($file))[9];&lt;br /&gt;
&lt;br /&gt;
    $from = &amp;quot;&amp;quot;;&lt;br /&gt;
    $subject = &amp;quot;&amp;quot;;&lt;br /&gt;
    $date = 0;&lt;br /&gt;
    $hits = 0;&lt;br /&gt;
    &lt;br /&gt;
    open(INPUT, sprintf(&amp;quot;zcat %s |&amp;quot;,$file));&lt;br /&gt;
&lt;br /&gt;
FILEINPUT:&lt;br /&gt;
    while(&amp;lt;INPUT&amp;gt;) {&lt;br /&gt;
	&lt;br /&gt;
	if (/^From:\s+(.*)$/i) {&lt;br /&gt;
	    $from = $1;&lt;br /&gt;
	    next FILEINPUT;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (/^Subject:\s+(.*)$/i) {&lt;br /&gt;
	    $subject = $1;&lt;br /&gt;
	    next FILEINPUT;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (/^Date:\s+(.*)$/i) {&lt;br /&gt;
	    $date = $1;&lt;br /&gt;
	    next FILEINPUT;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (/^X-Spam-Status: Yes, hits=+(.*)$/i) {&lt;br /&gt;
	    $hits = $1;&lt;br /&gt;
	    next FILEINPUT;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (/^\s*$/) {&lt;br /&gt;
	    last FILEINPUT;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if ($from &amp;amp;&amp;amp; $subject &amp;amp;&amp;amp; $date &amp;amp;&amp;amp; $hits) {&lt;br /&gt;
	    last FILEINPUT;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    close(INPUT);&lt;br /&gt;
&lt;br /&gt;
    @tmp = ( str2time($date), $from, $subject, $mtime, $hits );&lt;br /&gt;
    push(@msgs, [ @tmp ]);&lt;br /&gt;
}&lt;br /&gt;
    &lt;br /&gt;
$oldest = time - $hours * 3600; # Berechnen des Timestamps now - $hours&lt;br /&gt;
&lt;br /&gt;
$o = 0;&lt;br /&gt;
&lt;br /&gt;
foreach $msg (@msgs){&lt;br /&gt;
    if ($msg-&amp;gt;[3] &amp;gt;= $oldest) { # Innerhalb der letzten $hours aussortierte Mails&lt;br /&gt;
    $o++;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $i++; # alle Mails&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ($i==0) { # Wenn keine Mail da sind, Errorcode 1&lt;br /&gt;
    exit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Insgesamt befinden sich &amp;quot;, $i, &amp;quot; E-Mails in Ihrem Trash-Ordner.\n&amp;quot;);&lt;br /&gt;
print(&amp;quot;In den letzen &amp;quot;, $hours, &amp;quot; Stunden wurden &amp;quot;, $o, &amp;quot; Spam-E-Mails&lt;br /&gt;
aussortiert.\n\n&amp;quot;);&lt;br /&gt;
if ($o==0) { exit 0; }&lt;br /&gt;
print(&amp;quot;Datum (mtime)   Absender              Betreff                      Hits\n&amp;quot;);&lt;br /&gt;
print(&amp;quot;-----------------------------------------------------------------------&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    foreach $msg (sort {$b-&amp;gt;[3] &amp;lt;=&amp;gt; $a-&amp;gt;[3]} @msgs) { # Sortierung vorher auf 0/0&lt;br /&gt;
	if ($msg-&amp;gt;[3] &amp;gt;= $oldest) {&lt;br /&gt;
    	    if ($msg-&amp;gt;[1] =~ /\s*&amp;quot;*([^&amp;quot;]*)&amp;quot;*\s*\&amp;lt;[a-zA-Z0-9._%-=]+@[a-zA-Z0-9._%-=]+\&amp;gt;/) {&lt;br /&gt;
		$from = $1;&lt;br /&gt;
    	    } elsif ($msg-&amp;gt;[1] =~ /[a-zA-z0-9._%-=]+@[a-zA-Z0-9._%-=]+.*\(&amp;quot;*([^&amp;quot;]*)&amp;quot;*\)/) {&lt;br /&gt;
		$from = $1;&lt;br /&gt;
	    } else {&lt;br /&gt;
		$from = $msg-&amp;gt;[1];&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    # Datum ausgeben&lt;br /&gt;
	    if (time2str(&amp;quot;%d&amp;quot;,$msg-&amp;gt;[3]) &amp;lt;=&amp;gt; $olddate) {&lt;br /&gt;
    		print(&amp;quot;\n&amp;quot;);&lt;br /&gt;
	    }   &lt;br /&gt;
	    &lt;br /&gt;
	    # Urspruengliches aus der Mail extrahiertes Datum, sinnlos weil oft gefaelscht&lt;br /&gt;
	    # printf(&amp;quot;%-12s  &amp;quot;, time2str(&amp;quot;%d.%m.%y %H:%M&amp;quot;,$msg-&amp;gt;[0]));&lt;br /&gt;
	    printf(&amp;quot;%-12s  &amp;quot;, time2str(&amp;quot;%d.%m.%y %H:%M&amp;quot;,$msg-&amp;gt;[3]));&lt;br /&gt;
    &lt;br /&gt;
    	    $olddate = time2str(&amp;quot;%d&amp;quot;,$msg-&amp;gt;[3]);    &lt;br /&gt;
&lt;br /&gt;
	    # From ausgeben&lt;br /&gt;
    	    if (length($from) &amp;lt;= 20) {&lt;br /&gt;
		printf(&amp;quot;%-20s  &amp;quot;, $from);&lt;br /&gt;
	    } else {&lt;br /&gt;
		printf(&amp;quot;%-.20s  &amp;quot;, $from);&lt;br /&gt;
	    }&lt;br /&gt;
    &lt;br /&gt;
	    # um *****SPAM***** bereinigtes Subject ausgeben&lt;br /&gt;
	    @sub = $msg-&amp;gt;[2];&lt;br /&gt;
	    if (length(@sub) &amp;lt;= 27) {&lt;br /&gt;
		printf(&amp;quot;%-27s  &amp;quot;, @sub);&lt;br /&gt;
	    } else {&lt;br /&gt;
		printf(&amp;quot;%-.27s  &amp;quot;, @sub);&lt;br /&gt;
	    }&lt;br /&gt;
	    &lt;br /&gt;
	    # Punkte&lt;br /&gt;
	    if (length($msg-&amp;gt;[4]) &amp;lt;= 4) {&lt;br /&gt;
		printf(&amp;quot;%-4s\n&amp;quot;, $msg-&amp;gt;[4]);&lt;br /&gt;
	    } else {&lt;br /&gt;
		printf(&amp;quot;%-.4s\n&amp;quot;, $msg-&amp;gt;[4]);&lt;br /&gt;
	    }&lt;br /&gt;
	    &lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
exit 0;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und diese ausführbar machen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
chmod a+x check checkmaildir listmaildir&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend einen [[Cron]]job anlegen, der check für den Mailboxuser aufruft:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#Spam Verzeichnis checken&lt;br /&gt;
51 5 * * * sleep $[ ($RANDOM % 120) ]; spamcheck/check xyz00-otto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatisches löschen aussortierter Emails =&lt;br /&gt;
&lt;br /&gt;
ToDo: Emails nach einer bestimmten Zeit löschen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=7238</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=7238"/>
		<updated>2025-02-03T12:56:06Z</updated>

		<summary type="html">&lt;p&gt;Peh00: fix logrotate.service&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nextcloud =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.com/ Nextcloud] ist eine PHP-basierte Open Source Lösung für gängige Cloud-Anwendungen, u.a.:&lt;br /&gt;
&lt;br /&gt;
* Filesharing unter Nutzern derselben Nextcloud, und mit der Öffentlichkeit&lt;br /&gt;
* Single-Sign-On Authentifizierung (SSO)&lt;br /&gt;
* Videokonferenzen (WebRTC)&lt;br /&gt;
* Online-Office Anwendung [https://www.collaboraoffice.com/ Collabora Online]&lt;br /&gt;
&lt;br /&gt;
Beispiel-Funktionalität, die über Plugins, sogenannte [https://apps.nextcloud.com/ &amp;quot;Apps&amp;quot;], bereit gestellt werden kann:&lt;br /&gt;
&lt;br /&gt;
* Kalender, Aufgabenverwaltung, Adressbuch&lt;br /&gt;
* Datei-Kollaboration (Kommentare zu Dateien, Verschlagwortung)&lt;br /&gt;
* Feedreader&lt;br /&gt;
* E-Mail-Programm&lt;br /&gt;
* Fotogalerie&lt;br /&gt;
* Musik- und Videowiedergabe&lt;br /&gt;
&lt;br /&gt;
= Nextcloud installieren =&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;hsadmin&#039;&#039;, zum Beispiel mit &#039;&#039;hsscript&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hsadmin&#039;&#039;-Shell starten mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
hsscript -u xyz00 -i&lt;br /&gt;
Password: ********&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann nacheinander anlegen:&lt;br /&gt;
&lt;br /&gt;
* Linux User als Domain-Administrator&lt;br /&gt;
* Subdomain &#039;&#039;cloud.example.org&#039;&#039;&lt;br /&gt;
* PostgreSQL-User &lt;br /&gt;
* PostgreSQL Datenbank&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-cloud&#039;,password:&#039;geheim&#039;,shell:&#039;/bin/bash&#039;,comment:&#039;Nextcloud&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; domain.add({set:{name:&#039;cloud.example.org&#039;,user:&#039;xyz00-cloud&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; postgresqluser.add({set:{name:&#039;xyz00_nextclusr&#039;,password:&#039;geheim&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; postgresqldb.add({set:{name:&#039;xyz00_nextcloud&#039;,owner:&#039;xyz00_nextclusr&#039;}})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud installieren ==&lt;br /&gt;
&lt;br /&gt;
Anmelden als Linux-User &#039;&#039;xyz00-cloud&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
ssh -l xyz00-cloud xyz00.hostsharing.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;htdocs&#039;&#039; Verzeichnis vorbereiten&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd&lt;br /&gt;
mkdir nextcloud&lt;br /&gt;
cd doms/cloud.example.org&lt;br /&gt;
rm -rf subs/www subs-ssl/www htdocs-ssl&lt;br /&gt;
ln -s $HOME/nextcloud htdocs-ssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls der &#039;&#039;Redirect&#039;&#039; auf die Domain &#039;&#039;example.org&#039;&#039; umleitet statt auf die Subdomain &#039;&#039;cloud.example.org&#039;&#039;, kann diese Aktion helfen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd doms/cloud.example.org&lt;br /&gt;
mkdir -p subs-ssl/www&lt;br /&gt;
cp htdocs/.htaccess subs-ssl/www/.htaccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nextcloud herunterladen und entpacken.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
cd &lt;br /&gt;
wget https://download.nextcloud.com/server/releases/nextcloud-27.1.2.zip&lt;br /&gt;
unzip nextcloud-27.1.2.zip &lt;br /&gt;
rm nextcloud-27.1.2.zip&lt;br /&gt;
mkdir data tmp&lt;br /&gt;
chmod 700 data tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis &amp;quot;$HOME/doms/cloud.example.org/fastcgi-ssl/&amp;quot; eine Datei &amp;quot;php.ini&amp;quot; anlegen mit folgendem Inhalt: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
memory_limit=512M&lt;br /&gt;
session.save_path=/home/pacs/xyz00/users/cloud/tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann mit einem Editor diese Datei bearbeiten: In der zweiten Zeile den korrekten Pfad des vorher angelegten tmp-Verzeichnisses eintragen.&lt;br /&gt;
&lt;br /&gt;
Im Browser auf die Seite &lt;br /&gt;
http://cloud.example.org gehen und den Anweisungen folgen.&lt;br /&gt;
&lt;br /&gt;
Auf der ersten Seite sind anzugeben:&lt;br /&gt;
&lt;br /&gt;
* Login und Passwort für den Administrator definieren&lt;br /&gt;
* PostgreSQL als Datenbanksystem&lt;br /&gt;
* PostgreSQL-User und Passwort aus dem ersten Schritt oben&lt;br /&gt;
* Name der PostgreSQL-Datenbank aus dem ersten Schritt&lt;br /&gt;
* &amp;quot;localhost&amp;quot; als Datenbankserver (Nextcloud 23.0.2 empfiehlt hier die Angabe des Ports, diesen also lt. [[PostgreSQL]] angeben)&lt;br /&gt;
* Das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/data/&amp;quot; als Daten-Verzeichnis (bitte beachten: das im Eingabefeld voreingestellte verweist auf das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/&#039;&#039;&#039;nextcloud&#039;&#039;&#039;/data/&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung!&#039;&#039;&#039; Die Felder für die Datenbank sind auf dem Startscreen hinter einem unscheinbaren Link versteckt. Um man das Formular für die Datenbank-Daten zu gelangen, muss man auf den Link klicken. Anschließend kann man die gewünschte Datenbank auswählen und die entsprechenden Daten eintragen. &#039;&#039;&#039;Das sollte geschehen, bevor man die Installation abschließt!&#039;&#039;&#039; Tut man dies nicht, wird Nextcloud mit SQLite installiert. Eine Änderung der Datenbank soll zwar laut Dokumentation auch später noch möglich sein, ging aber bei einem Test schief.&lt;br /&gt;
&lt;br /&gt;
In der Konfigurationsdatei der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) lassen sich weitere Voreinstellungen treffen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
&#039;maintenance_window_start&#039; =&amp;gt; 1,    // Wartungsfenster ab 1:00 Uhr&lt;br /&gt;
&#039;defaultapp&#039; =&amp;gt; &#039;calendar,files&#039;,   // bei Start wird der Kalender gezeigt&lt;br /&gt;
&#039;default_phone_region&#039; =&amp;gt; &#039;DE&#039;,     // Format Telefonnummern&lt;br /&gt;
&#039;default_language&#039; =&amp;gt; &#039;de&#039;,         // Sprache deutsch&lt;br /&gt;
&#039;force_language&#039; =&amp;gt; &#039;de&#039;,&lt;br /&gt;
&#039;default_locale&#039; =&amp;gt; &#039;de_DE&#039;,        // Locale (Formatierung Zeitangaben etc.) &lt;br /&gt;
&#039;force_locale&#039; =&amp;gt; &#039;de_DE&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud beschleunigen ==&lt;br /&gt;
&lt;br /&gt;
Dieser Teil ist optional.&lt;br /&gt;
&lt;br /&gt;
Wenn regelmäßig &#039;&#039;&#039;im Browser&#039;&#039;&#039; mit Nextcloud gearbeitet werden soll, ist Nextcloud im Browser oft sehr langsam. Um dies zu verbessern, unterstützt Nextcloud die Anwendung von unterschiedlichen Cache-Verfahren (zum Beispiel Memcache, Redis).&lt;br /&gt;
&lt;br /&gt;
=== Redis Cache ===&lt;br /&gt;
&lt;br /&gt;
Redis ist auf den Hostsharing-Servern vorinstalliert und wird von den Nextcloud-Entwicklern empfohlen. &#039;&#039;&#039;In Verbindung mit einem Managed Webspace&#039;&#039;&#039; muss für Redis als eigener Serverdienst RAM gebucht werden und ist &#039;&#039;&#039;kostenpflichtig&#039;&#039;&#039;. Siehe zu Kosten im Webspace Konfigurator unter: https://www.hostsharing.net/angebote/managed-webspace/ – &#039;&#039;&#039;Arbeitsspeicher für eigene Serverdienste&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des Redis-Dientes ist auf der Seite [[Redis]] beschrieben. Hier wird für Nextcloud die Variante mit einem Unixsocket benutzt.&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) wird der Redis-Cache wie folgt konfiguriert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
&#039;memcache.local&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;memcache.distributed&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;memcache.locking&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
&#039;redis&#039; =&amp;gt; &lt;br /&gt;
  array (&lt;br /&gt;
    &#039;host&#039; =&amp;gt; &#039;/home/pacs/xyz00/users/cloud/redis/var/redis-server.sock&#039;,&lt;br /&gt;
    &#039;port&#039; =&amp;gt; 0,&lt;br /&gt;
    &#039;password&#039; =&amp;gt; &#039;mein-redis-passwort&#039;,&lt;br /&gt;
    &#039;timeout&#039; =&amp;gt; 1.5,&lt;br /&gt;
  ),&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um es perfekt zu machen, nutze ich &#039;&#039;logrotate&#039;&#039; um die Logdateien zu organisieren. Dazu die Konfiguration in &#039;&#039;~/.logrotate&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
compress&lt;br /&gt;
/home/pacs/xyz00/users/cloud/redis/var/redis.log {&lt;br /&gt;
  rotate 5&lt;br /&gt;
  daily&lt;br /&gt;
  missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Mit systemd-Timern werden die Logdateien täglich rotiert:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/logrotate.service&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotate log files&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/sbin/logrotate -s %h/.logrotate.state %h/.logrotate&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/logrotate.timer&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=1:1&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ systemctl --user enable logrotate.timer&lt;br /&gt;
$ systemctl --user start logrotate.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem weiteren Timer für die regelmäßigen Hintergrundaufgaben von Nextcloud lässt sie sich noch etwas beschleunigen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/nextcloud_background.service&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=php8.2 /home/pacs/xyz00/users/cloud/nextcloud/cron.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/nextcloud_background.timer&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for nextcloud cleanup job&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=*:0/5&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Den Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ systemctl --user enable nextcloud_background.timer&lt;br /&gt;
$ systemctl --user start nextcloud_background.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nextcloud Push ===&lt;br /&gt;
&lt;br /&gt;
Um Vorgänge wie Sync und Benachrichtigungen bei sehr großen Nextcloud Installationen zu beschleunigen, kann der &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; Dienst hinzuinstalliert werden.&lt;br /&gt;
&lt;br /&gt;
==== Abhängigkeiten und Einschränkungen ====&lt;br /&gt;
* &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; muss Zugriff auf den gleichen Redis-Cache wie die Nextcloud haben &lt;br /&gt;
** aufgrund von eingeschränktem Passwort Support sollte ein Redis Socket mit sicheren Berechtigungseinstellungen als Alternative zum Redis Port mit Passwort konfiguriert werden.&lt;br /&gt;
* optimaler Weise holt sich &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; benötigte informationen aus der &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; der bestehenden Nextcloud-Installation&lt;br /&gt;
* eine zusätzliche (Sub)domain im gleichen User ist nötig. Andernfalls muss die bestehende &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; muss aus o.g. Gründen modifiziert werden, dies könnte bei Nextcloud-Updates verloren gehen(!)&lt;br /&gt;
* Bestimmte Portbereiche sind bei Hostsharing eingeschränkt, es empfiehlt sich, direkt beispielsweise Port &amp;lt;code&amp;gt;37867&amp;lt;/code&amp;gt; zu nehmen. &amp;lt;strong&amp;gt;aus diesem Grund ist das automatische Setup durch das Plugin bei Hostsharing nicht möglich!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
Siehe auch: https://github.com/nextcloud/notify_push#manual-setup &lt;br /&gt;
&lt;br /&gt;
1. Installieren der Nextcloud-App &amp;lt;code&amp;gt;notify_push&amp;lt;/code&amp;gt; – (nach Push suchen, &amp;quot;Client Push&amp;quot; wählen)&amp;lt;br&amp;gt;&lt;br /&gt;
2. falls noch nicht erstellt: &amp;lt;code&amp;gt;mkdir -p ~/.config/systemd/user&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
3. mit Lieblingseditor die Datei &amp;lt;code&amp;gt;~/.config/systemd/user/notify_push.service&amp;lt;/code&amp;gt; anlegen:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot; line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description = Push daemon for Nextcloud clients&lt;br /&gt;
Documentation = https://github.com/nextcloud/notify_push&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
# Change if you already have something running on this port&lt;br /&gt;
Environment = PORT=37867&lt;br /&gt;
# We don&#039;t want to bind to 0.0.0.0, hence the --bind&lt;br /&gt;
ExecStart = /home/pacs/xyz00/users/cloud/bin/notify_push --bind 127.0.0.1 /home/pacs/xyz00/users/cloud/nextcloud/config/config.php&lt;br /&gt;
Type=notify&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy = default.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
4. das Verzeichnis &amp;lt;code&amp;gt;~/bin&amp;lt;/code&amp;gt; anlegen und die aktuellste binary herunterladen und ausführbar machen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot; line&amp;gt;release=`curl -L https://api.github.com/repos/nextcloud/notify_push/releases/latest -s | jq -r &#039;.tag_name&#039;` &amp;amp;&amp;amp; wget --show-progress -qO ~/bin/notify_push https://github.com/nextcloud/notify_push/releases/download/$release/notify_push-x86_64-unknown-linux-musl &amp;amp;&amp;amp; chmod +x ~/bin/notify_push&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
5. es könnte die folgende Umgebungsvariable zum Bedienen von systemd notwendig werden:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;export XDG_RUNTIME_DIR=/run/user/$UID&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
6. den neuen systemd-Dienst automatisch bei Systemstart, sowie jetzt sofort starten:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;systemctl enable --now --user notify_push&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
7. nun gehen wir in &amp;lt;code&amp;gt;doms/push.cloud.example.com/htdocs-ssl/.htaccess&amp;lt;/code&amp;gt; und ersetzen den Inhalt (bevorzugt), oder wir ergänzen die .htaccess der Nextcloud im unteren Teil um die folgenden Zeilen (letzteres kann bei Updates überschrieben werden!):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot; line&amp;gt;&lt;br /&gt;
# bei eigener (sub)domain ist /push/ nicht erforderlich, aber wer weiß, eventuell ist das mit robuster&lt;br /&gt;
RewriteCond %{REQUEST_URI}  ^/push/ws    [NC,OR]&lt;br /&gt;
RewriteCond %{HTTP:UPGRADE} ^WebSocket$           [NC,OR]&lt;br /&gt;
RewriteCond %{HTTP:CONNECTION} ^Upgrade$          [NC]&lt;br /&gt;
RewriteRule .* ws://127.0.0.1:37867/ws  [proxy]&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{REQUEST_URI}  ^/push    [NC]&lt;br /&gt;
RewriteRule .* http://127.0.0.1:37867%{REQUEST_URI}  [proxy]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
8. abschließend im Nextcloud Ordner die Konfiguration des Plugins anstoßen: &amp;lt;code&amp;gt;php occ notify_push:setup https://cloud.example.com/push&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;php occ notify_push:setup https://push.cloud.example.com/push&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
9. es ist möglich, das die erkannte IP-Adresse des Hives noch nicht vertraut ist. In diesem Fall wird der obige Befehl scheitern und es muss jene aus der Fehlermeldung des Setups unter &amp;lt;code&amp;gt;trusted_proxies&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; ergänzt werden. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es wird im Repo außerdem ein Testclient bereitgestellt, der sich testweise mit dem Push-Dienst verbindet&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Online Office ==&lt;br /&gt;
&lt;br /&gt;
In Nextcloud können Office-Dokumente (Textverarbeitung, Tabellen und Präsentationen) im Browser bearbeitet werden. Dazu steht bei Hostsharing die Collabora Developer Version zur Verfügung. Bestellung und Konfiguration sind hier im Wiki auf der Seite [[Collabora_Online]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Nextcloud Talk ==&lt;br /&gt;
&lt;br /&gt;
Über die Nextcloud-App &amp;quot;Talk&amp;quot; können Videokonfererenzen mit Screensharing durchgeführt werden. Für die regelmäßige Nutzung kann es sinnvoll sein einen eigenen TURN Server zu betreiben. Siehe dazu [[Coturn_Installieren]]&lt;br /&gt;
&lt;br /&gt;
== Virenscanner ==&lt;br /&gt;
&lt;br /&gt;
Einige Nutzer wollen die Dateien in Ihrer Nextcloud regelmäßig auf Viren überprüfen. Auf unseren Servern steht dafür der OpenSource-Virenscanner &amp;quot;ClamAV&amp;quot; zur Verfügung. Wenn dieser Scanner benutzt wird, dann sollten die Einstellungen so gewählt sein, dass der ClamAV-Daemon über eine Socket Verbindung angesprochen wird. Die Einstellungen sind im Screenshot dokumentiert.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Nextcloud-ClamAV-Einstellungen.png||nextcloud einstellungen für die virenscanner-app]]&lt;br /&gt;
&lt;br /&gt;
== Volltextsuche ==&lt;br /&gt;
&lt;br /&gt;
Über die Dokumente einer Nextcloud kann ein Volltextindex erstellt werden. Die Volltextsuche ermöglicht über den Index eine Suche über beliebige Begriffe, die in Dokumenten vorkommen.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung ist der Betrieb eines Elasticsearch Servers. Der Betrieb im Managed Webspace erfodert die Buchung von zwei &amp;quot;Serverdiensten&amp;quot;. Nutzer eines Managed Server müssen mit einem spürbaren Mehrbedarf an Hauptspeicher rechnen.&lt;br /&gt;
&lt;br /&gt;
Zur Installation von Elasticsearch existiert eine eigene Wikiseite: [[Elasticsearch]].&lt;br /&gt;
&lt;br /&gt;
In der Nextcloud sind folgende &#039;&#039;Apps&#039;&#039; zu installieren:&lt;br /&gt;
* Full Text Search&lt;br /&gt;
* Full Text Search - Elasticsearch Platform&lt;br /&gt;
* Full Text Search - Files&lt;br /&gt;
&lt;br /&gt;
nach der Installation der drei Apps steht in den Einstellungen ein neuer Menüpunkt &amp;quot;Volltextsuche&amp;quot; zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Hier ist einzustellen:&lt;br /&gt;
* Suchplattform: Elasticsearch&lt;br /&gt;
* Adresse des Servlets: http://elastic:das-erzeugt-passwort@127.0.0.1:39200&lt;br /&gt;
* Index: frei-gewaehlter-name-idx&lt;br /&gt;
* Analyzer tokenizer: standard&lt;br /&gt;
&lt;br /&gt;
Die anderen Einstellung nach den eigenen Vorstellungen vornehmen.&lt;br /&gt;
&lt;br /&gt;
Der initiale Aufbau des Suchindex erfolgt über ein &amp;quot;occ&amp;quot;-Kommando auf der Shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
cd nextcloud/&lt;br /&gt;
php occ fulltextsearch:index --output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn dieser Fehler kommt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text&amp;gt;&lt;br /&gt;
TypeError: Return value of OCA\Files_FullTextSearch\Model\MountPoint::isGlobal()&lt;br /&gt;
must be of the type bool, null returned in [...]/apps/files_fulltextsearch/lib/Model/MountPoint.php:103&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
sollte dieser Patch angewendet werden: https://github.com/nextcloud/files_fulltextsearch/issues/125#issuecomment-877789742&lt;br /&gt;
&lt;br /&gt;
Zur Pflege des Indexes wird ein weiterer Hintergrundprozess gestartet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
cd nextcloud/&lt;br /&gt;
php occ fulltextsearch:live -q&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Monit Konfiguration dafür sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#~/bin/start-fulltextsearchlive&lt;br /&gt;
#&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
export HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
cd $HOME&lt;br /&gt;
mkdir -p $HOME/var&lt;br /&gt;
cd $HOME/nextcloud&lt;br /&gt;
exec php occ fulltextsearch:live -q &amp;amp;&lt;br /&gt;
echo $! &amp;gt;$HOME/var/fulltextsearchlive.pid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#~/bin/stop-fulltextsearchlive&lt;br /&gt;
#&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
export HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
kill $( cat $HOME/var/fulltextsearchlive.pid )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
~/.monitrc (siehe oben von der Redis Installation) entsprechend ergänzen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
check process fulltextsearchlive with pidfile /home/pacs/xyz00/users/cloud/var/fulltextsearchlive.pid&lt;br /&gt;
    start program &amp;quot;/home/pacs/xyz00/users/cloud/bin/start-fulltextsearchlive&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/home/pacs/xyz00/users/cloud/bin/stop-fulltextsearchlive&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integration mit LDAP ==&lt;br /&gt;
&lt;br /&gt;
Um einheitliche Benutzerzugänge für verschiedene Anwendungen zu ermöglichen, wird oft auf ein zentrales LDAP Verzeichnis gesetzt. &lt;br /&gt;
&lt;br /&gt;
Dieses kann für Nextcloud eingesetzt werden, damit Benutzer nicht lokal in Nextcloud, sondern in LDAP verwaltet werden können.&lt;br /&gt;
&lt;br /&gt;
Siehe auch https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html&lt;br /&gt;
&lt;br /&gt;
Dazu muss die App &amp;quot;LDAP user and group backend&amp;quot; in den Nextcloud Apps aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Dann muss die LDAP Anbindung in den Administrationseinstellungen unter &amp;quot;LDAP/AD-Integration&amp;quot; eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
Der Server mit Port, die BenutzerDN mit Passwort und die BaseDN müssen eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Es muss auch bestimmt werden, welche Klasse (z.B. inetOrgPerson) die Benutzer brauchen, um Zugriff auf die Nextcloud zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Falls schon Benutzer in der Nextcloud existieren, und diese zu LDAP mitgenommen werden sollen, kann der Anleitung aus diesem Forum Eintrag gefolgt werden: https://help.nextcloud.com/t/migration-to-ldap-keeping-users-and-data/13205&lt;br /&gt;
&lt;br /&gt;
* Voraussetzung ist, dass der Benutzernamen der zu übernehmenden Benutzer in Nextcloud der uid in LDAP entspricht.&lt;br /&gt;
* Es wird ein Administrator Benutzer benötigt, der lokal angelegt wurde, und auch lokal bleibt.&lt;br /&gt;
* Mit diesem Administrator Benutzer wird die LDAP Anbindung eingerichtet.&lt;br /&gt;
* In der Experten Ansicht von LDAP/AD muss bei &amp;quot;Attribut für interne Benutzernamen&amp;quot; eingetragen werden: uid&lt;br /&gt;
* Klicke den Schalter &amp;quot;LDAP Benutzernamenzuordnung löschen&amp;quot;&lt;br /&gt;
* Klicke den Schalter &amp;quot;LDAP Gruppennamenzuordnung löschen&amp;quot;&lt;br /&gt;
* dann in der MySQL Datenbank anmelden, und aus uc_users alle Benutzer bis auf den Administrator Benutzer löschen&lt;br /&gt;
* Dann in der Nextcloud Weboberfläche sich alle Benutzer anzeigen lassen&lt;br /&gt;
* Nun gelingt die Anmeldung mit den anderen Benutzern mit dem LDAP Passwort, und die Dateien wurden übernommen.&lt;br /&gt;
&lt;br /&gt;
== Optimierung der Geschwindigkeit ==&lt;br /&gt;
Manchmal fühlt sich die Nextcloud träge an.&lt;br /&gt;
&lt;br /&gt;
Folgende Änderungen können helfen:&lt;br /&gt;
&lt;br /&gt;
* HTTP/2.0 aktivieren: dem Service von Hostsharing Bescheid geben&lt;br /&gt;
* Die App Dashboard deaktivieren, und dafür werden direkt die Dateien angezeigt&lt;br /&gt;
* Einblenden der README in den Ordnern abschalten: das kann pro Ordner in der UI geschehen (links unten), oder global: &amp;lt;code&amp;gt;occ config:app:set text workspace_available --value=0&amp;lt;/code&amp;gt;. Siehe auch [https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/text_configuration.html#disable-rich-workspaces-globally]&lt;br /&gt;
&lt;br /&gt;
== Default App einstellen ==&lt;br /&gt;
&lt;br /&gt;
In der Datei config.php können wir einstellen, welche App direkt nach der Anmeldung gezeigt wird.&lt;br /&gt;
&lt;br /&gt;
Das ist entweder die Dashboard App, wenn sie aktiviert ist, oder die Dateien App (files).&lt;br /&gt;
&lt;br /&gt;
Falls der Kalender direkt angezeigt werden soll, muss folgende Zeile in der config.php hinzugefügt werden (siehe auch [https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#defaultapp]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&#039;defaultapp&#039; =&amp;gt; &#039;calendar&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Nextcloud Updates =&lt;br /&gt;
&lt;br /&gt;
== Updater über die Shell starten ==&lt;br /&gt;
&lt;br /&gt;
Wenn die NextCloud sich nicht über das Webfrontend updaten lässt, kann der Updater auch per Shell im directory /updater durch ausführen des updater.phar gestartet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud/updater&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud/updater$ chmod u+x updater.phar&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud/updater$ ./updater.phar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es sollten außerdem ein paar Routine-Aufräumarbeiten durchgeführt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-columns --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-indices --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So können die Apps noch alle aktualisiert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ app:update --all -n --no-ansi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für weitere Informationen kann auf die offizielle Doku ab Ziffer 2. zurückgegriffen werden.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.nextcloud.com/server/latest/admin_manual/maintenance/update.html#using-the-command-line-based-updater https://docs.nextcloud.com]&lt;br /&gt;
&lt;br /&gt;
Hier gibt es ein kurzes Video, das die Anmeldung über die Kommandozeile mit Putty erklärt und die Aktualisierung von Nextcloud auf der Kommandozeile:&lt;br /&gt;
&lt;br /&gt;
* [https://tube.solidcharity.net/w/0cf5ee97-ba7c-41df-a56f-8d1fea842ab0 Nextcloud auf der Kommandozeile aktualisieren]&lt;br /&gt;
&lt;br /&gt;
== Wartungsmodus per Shell ein- oder ausschalten ==&lt;br /&gt;
&lt;br /&gt;
So kann der Wartungsmodus angeschaltet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So kann der Wartungsmodus wieder ausgeschaltet werden, d.h. die Nextcloud ist dann wieder in Betrieb:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Webfrontend-Updater Probleme / Lösungen ==&lt;br /&gt;
&lt;br /&gt;
=== Datenbank: Indizes | Primärschlüssel | Konvertierungen ===&lt;br /&gt;
&lt;br /&gt;
Aufgetreten nach erfolgtem Versionsupdate Nextcloud 19 auf Nextcloud 20&lt;br /&gt;
&lt;br /&gt;
Nach dem erfolgten Update lädt automatisch die Seite: &#039;&#039;&#039;Sicherheits- und Einrichtungswarnungen&#039;&#039;&#039; auf dieser wird angemerkt, dass manuelle Schritte für die Datenbank durchzuführen sind. Dies betrifft Indizes, Primärschlüssel und Konvertierungen. &lt;br /&gt;
&lt;br /&gt;
Per Shell in der directory /nextcloud folgende Kommandos ausführen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
xyz00-cloud@h00:~$ cd ~/nextcloud&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-columns --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:add-missing-indices --no-interaction&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hier dem durch Nextcloud angegebenen Kommando ein &#039;&#039;&#039;php&#039;&#039;&#039; voranzustellen.&lt;br /&gt;
&lt;br /&gt;
== Update per Skript ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich die regelmäßigen Updates weitgehend zu automatisieren. Ein Skript wäre etwa:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
if [ -f $HOME/nextcloud/occ ]; then &lt;br /&gt;
  echo &amp;quot;Nextcloud Update&amp;quot;; &lt;br /&gt;
  cd $HOME/nextcloud;&lt;br /&gt;
  php updater/updater.phar -vv --no-backup --no-interaction&lt;br /&gt;
  php occ maintenance:mode --on&lt;br /&gt;
  php occ db:add-missing-primary-keys --no-interaction&lt;br /&gt;
  php occ db:add-missing-columns --no-interaction&lt;br /&gt;
  php occ db:add-missing-indices --no-interaction&lt;br /&gt;
  php occ db:convert-filecache-bigint --no-interaction&lt;br /&gt;
  php occ app:update --all&lt;br /&gt;
  php occ maintenance:mode --off&lt;br /&gt;
else &lt;br /&gt;
  echo &amp;quot;Keine Nextcloud Installation gefunden&amp;quot;; &lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Update: bei old-stable Version bleiben ==&lt;br /&gt;
&lt;br /&gt;
Normalerweise fragt jede Nextcloud Instanz zentral ab, welches Update zur Verfügung steht, abhängig vom Release Channel. Dabei wird aber relativ schnell auf die nächste Version gewechselt, also z.B. von Nextcloud 28 auf Nextcloud 29, obwohl Nextcloud 28 noch mehrere Monate gepflegt wird, und manche Apps noch nicht bereit sind für Nextcloud 29.&lt;br /&gt;
&lt;br /&gt;
Es kann aber auch eine Alternative eingerichtet werden, in der Datei nextcloud/config/config.php, unter dem Eintrag updater.server.url&lt;br /&gt;
&lt;br /&gt;
Hier wird z.B. auf einen Updater von unserem Mitglied Timotheus Pokorra verwiesen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php line&amp;gt;&lt;br /&gt;
updater_server_url: &amp;quot;https://ncupdater.solidcharity.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dahinter läuft ein Skript, mit dem wir noch länger eine bestimmte Version anbieten können: https://codeberg.org/tpokorra/ncupdater&lt;br /&gt;
&lt;br /&gt;
= Daten auf HDD Storage =&lt;br /&gt;
== Einrichtung des HDD Storage ==&lt;br /&gt;
&lt;br /&gt;
Um den langsameren aber günstigeren HDD Storage von Hostsharing zu nutzen, kann das data Verzeichnis von SSD auf HDD Storage verschoben werden. Ein symbolischer Link reicht nicht aus, man muss den Pfad in der Nextcloud Konfigurationsdatei anpassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
# Nextcloud in Wartungsmodus versetzen&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --on&lt;br /&gt;
# Daten auf HDD Storage verschieben&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ mv data /home/storage/xyz00/users/cloud/&lt;br /&gt;
# symbolischen Link anlegen&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ ln -s /home/storage/xyz00/users/cloud/data data&lt;br /&gt;
# Pfad in config.php ändern&lt;br /&gt;
nano config/config.php&lt;br /&gt;
# Die Zeile mit &#039;datadirectory&#039; finden und entsprechend ändern:&lt;br /&gt;
# &#039;datadirectory&#039; =&amp;gt; &#039;/home/storage/xyz00/users/cloud/data&#039;,&lt;br /&gt;
# Wartungsmodus beenden&lt;br /&gt;
xyz00-cloud@h00:~/nextcloud$ php occ maintenance:mode --off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Einschränkende Bemerkungen =&lt;br /&gt;
== Nextcloud Sync Client ==&lt;br /&gt;
&lt;br /&gt;
Der Nextcloud Sync Client erfüllt eine Funktion ähnlich wie Dropbox, und synchronisiert ganze Ordnerstrukturen. &lt;br /&gt;
&lt;br /&gt;
Gerade wenn man mit mehreren Menschen in einer Nextcloud arbeitet, ist diese Funktion mit Vorsicht zu benutzen.&lt;br /&gt;
&lt;br /&gt;
* Änderungen an der Ordnerstruktur sollten nicht lokal, sondern im Webbrowser vorgenommen werden.&lt;br /&gt;
* Wenn die Gefahr besteht, dass mehrere Menschen gleichzeitig eine Datei bearbeiten, sollte die Datei nicht lokal, sondern im Webbrowser bearbeitet werden.&lt;br /&gt;
* Aus Sicht des Datenschutzes und der Daten-Minimierung sollte überlegt werden, ob die Daten wirklich auf jeden Laptop und Rechner synchronisiert werden sollen, oder ob es reicht, ausschließlich über den Webbrowser auf die Daten zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
= weiterführende Links =&lt;br /&gt;
&lt;br /&gt;
* [https://docs.nextcloud.com/ Nextcloud Dokumentation]&lt;br /&gt;
* [https://apps.nextcloud.com/ Nextcloud Erweiterungen (&amp;quot;Apps&amp;quot;)]&lt;br /&gt;
* [https://ownyourbits.com/2019/06/29/understanding-and-improving-nextcloud-previews/ Optimierung des Caches für Previews]&lt;br /&gt;
* [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/nextcloud Ansible Playbook für Hostsharing]&lt;br /&gt;
&lt;br /&gt;
= Nextcloud Reseller bei HS =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.ossaas.de OS SaaS]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Ansible Playbook]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;br /&gt;
[[Kategorie:Nextcloud]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=DKIM&amp;diff=7215</id>
		<title>DKIM</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=DKIM&amp;diff=7215"/>
		<updated>2025-01-08T11:04:14Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Neuer Domainkey fuer DKIM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:HSDoku]][[Kategorie:E-Mail]]&lt;br /&gt;
= DomainKeys Identified Mail (DKIM) =&lt;br /&gt;
&lt;br /&gt;
DKIM ist ein Verfahren, dass die Authentizität einer E-Mail sicherstellen kann. Dazu wird die E-Mail auf dem sendenden System mit einer elektronischen Signatur in den unsichtbaren Headerzeilen der E-Mail versehen. Es kommt ein asymmetrisches Schlüsselverfahren zum Einsatz. Der sendende Server verwendet seinen privaten Schlüssel, um die Signatur zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Der öffentliche Schlüssel wird im DNS der E-Mail-Domain veröffentlicht, so dass Empfänger die Authentizität der Signatur prüfen können.&lt;br /&gt;
&lt;br /&gt;
== DKIM bei Hostsharing aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Die Nutzer der Hostsharing-Plattform können E-Mails, die sie über die Hostsharing-Server versenden, mit einer DKIM Signatur versehen lassen. Dazu sind zwei Voraussetzungen notwendig:&lt;br /&gt;
&lt;br /&gt;
# Die Veröffentlichung des öffentlichen Domainkey im DNS der eigenen E-Mail-Domain.&lt;br /&gt;
# Das Setzen der Domain-Option &amp;quot;Domain Key – DKIM&amp;quot; mit Hilfe von HSAdmin.&lt;br /&gt;
&lt;br /&gt;
=== Domainkey im DNS ===&lt;br /&gt;
&lt;br /&gt;
==== Wenn ein individuell angepasstes Zonefile existiert ====&lt;br /&gt;
&lt;br /&gt;
Wenn das Zonefile individuell angepasst wurde, muss es entweder den Platzhalter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{DEFAULT_ZONEFILE}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder den Platzhalter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{DKIM_RR}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht der Fall ist, muss eine der beiden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
==== Wenn das Zonefile nicht verändert wurde ====&lt;br /&gt;
&lt;br /&gt;
Wenn kein Zonefile im etc-Verzeichnis der Domain vorhanden ist, bedeutet dies, dass das Default-Zonefile mit der Zeile &amp;quot;&amp;lt;code&amp;gt;{DEFAULT_ZONEFILE}&amp;lt;/code&amp;gt;&amp;quot; genutzt wird.&lt;br /&gt;
&lt;br /&gt;
Die Veröffentlichung ddes Domainkeys ist dann mit einem einfachen &amp;quot;touch&amp;quot;-Befehl möglich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
touch doms/hs-example.de/etc/pri.hs-example.de &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daraufhin erstellt das System automatisch einen Domain-Key und veröffentlicht ihn.&lt;br /&gt;
Etwa drei Minuten nach dem &amp;quot;touch&amp;quot; liefert der Befehl&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
dig -t TXT +short hskey1._domainkey.hs-example.de @dns1.hostsharing.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;hs-example.de&amp;quot; durch die eigene Domain ersetzen) &lt;br /&gt;
&lt;br /&gt;
das folgende Alias:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
hskey1._domainkey.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Domainoption DKIM ===&lt;br /&gt;
&lt;br /&gt;
Über die Domainoption &amp;quot;Domain Key – DKIM&amp;quot; wird gesteuert, dass der SMTP-Server, auf dem der Webspace mit der Domain liegt, die ausgehenden E-Mail mit einer DKIM-Signatur ausstattet.&lt;br /&gt;
&lt;br /&gt;
Zum Anpassen der Domainoptionen wählt man in HSAdmin links den Punkt &amp;quot;Web-Paket&amp;quot; und im rechten Bereich im Menü die Auswahl &amp;quot;Domain&amp;quot;. Bei Domains, die ab 3. September 2021 eingerichtet wurden, ist die Domainoption per Voreinstellung gesetzt,&lt;br /&gt;
&lt;br /&gt;
[[Datei:dkim-domain.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:dkim-option.png]]&lt;br /&gt;
&lt;br /&gt;
== DKIM deaktivieren ==&lt;br /&gt;
&lt;br /&gt;
Das Abstellen der DKIM-Option in folgender Reihenfolge wird funktionieren:&lt;br /&gt;
&lt;br /&gt;
# Die Domainoption deaktivieren&lt;br /&gt;
# Abwarten bis alle mit der Option (und damit mit einer Signatur) versendeten E-Mail zugestellt sind&lt;br /&gt;
# Den Domainkey im DNS entfernen&lt;br /&gt;
&lt;br /&gt;
== DKIM bei Google ==&lt;br /&gt;
&lt;br /&gt;
Die Server von &#039;&#039;gmail&#039;&#039; sind so eingestellt, dass E-Mails von Domains ohne DKIM oder SPF nicht zugestellt werden. Die Empfängerseite wird nicht informiert. An die Absenderseite geht eine Fehlermeldung in der Art:&lt;br /&gt;
&amp;lt;Blockquote&amp;gt;... host gmail-smtp-in.l.google.com[2a00:1450:4010:c0f::1a] said: 550-5.7.26 Your email has been blocked because the sender is unauthenticated. 550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM. 550-5.7.26  550-5.7.26  Authentication results: 550-5.7.26  DKIM = did not pass 550-5.7.26 ...&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Dieser Google-Support-Artikel: [https://support.google.com/a/answer/81126 Richtlinien für E-Mail-Absender] (abgerufen am 26. Mai 2024) soll das erläutern.&lt;br /&gt;
&lt;br /&gt;
Nach erfolgreicher Umstellung findet sich im Header einer E-Mail in Googles Posteingang Text in der Art:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;Authentication-Results: mx.google.com;&lt;br /&gt;
dkim=pass ...&lt;br /&gt;
spf=pass ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://de.wikipedia.org/wiki/DomainKeys DKIM Artikel der Wikipedia]&lt;br /&gt;
* [https://www.hostsharing.net/doc/managed-operations-platform/zonefile/ Hostsharing-Dokumentation zur Anpassung des Zonefile]&lt;br /&gt;
* [https://www.hostsharing.net/doc/managed-operations-platform/domain/#kap-domain-optionen Hostsharing-Dokumentation Domain-Optionen]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=7196</id>
		<title>Mlmmj</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=7196"/>
		<updated>2025-01-03T11:43:07Z</updated>

		<summary type="html">&lt;p&gt;Peh00: fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.mlmmj.org/ mlmmj], angeblich eine Abkürzung für &amp;quot;Mailing List Management Made Joyful&amp;quot;, ist ein Programm, mit dem in einem Hostsharing Paket E-Mail-Verteiler realisiert werden kann.&lt;br /&gt;
&lt;br /&gt;
Wer noch nicht weiß, was ein E-Mail-Verteiler machen soll oder wie, lese vielleicht auch den Wikipedia-Artikel:&lt;br /&gt;
[http://de.wikipedia.org/wiki/Mailingliste Mailingliste]&lt;br /&gt;
&lt;br /&gt;
Eine leistungsfähigere Alternative zu mlmmj könnte [[Mailman_3_installieren|Mailman 3]] sein.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die Einrichtung einer Mailingliste für eine Domain in einem Hostsharing-Webspace.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen  ==&lt;br /&gt;
&lt;br /&gt;
Das Debian Paket [http://packages.debian.org/search?keywords=mlmmj mlmmj] ist auf den Shared-Hosting-Servern bereits installiert. (Wer die Software selbst kompilieren möchte kann aktuellen Source-Code bei [https://codeberg.org/mlmmj/mlmmj codeberg.org] finden.)&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb der Mailingliste empfiehlt sich das Anlegen eines eigenen Users für diesen Zweck mit hsadmin.&lt;br /&gt;
&lt;br /&gt;
In dieser Anleitung heißt das Paket &#039;&#039;xyz00&#039;&#039; und der für Mailinglisten eingesetzte User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die E-Mail-Adresse der einzurichtende Mailing-Liste soll &#039;&#039;discuss@example.org&#039;&#039; sein. Den lokalen Teil dieser Adresse, &#039;&#039;discuss&#039;&#039;, ist der Listenname. Der Listenname darf auf keinen Fall das Plus-Zeichen (+) enthalten, weil dies ein Sonderbedeutung für die Listensteuerung hat: &#039;&#039;mlmmj&#039;&#039; wird nämlich Befehle der Abonnenten über erweiterte Adressen annehmen, wie z.B. &#039;&#039;discuss+help@example.org&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Domain &#039;&#039;example.org&#039;&#039; muss dazu bei einem beliebigen User im Paket &#039;&#039;xyz00&#039;&#039; [[aufgeschaltet]] sein. (&amp;quot;Aufgeschaltet&amp;quot; bedeutet, daß diese Domain bei Hostsharing gehostet wird und der Domainname als Verzeichnis /home/pacs/xyz00/*User*/doms/example.org/ erscheint.)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
Ich melde mich über SSH auf der Hostsharing-Console als der Paketuser &#039;&#039;xyz00&#039;&#039; an.&lt;br /&gt;
&lt;br /&gt;
Im Shell kann ich dann durch den Befehl &#039;&#039;hsscript -i&#039;&#039; das Verwaltungswerkzeug [[hsadmin]] interaktiv ausführen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@h03:~$ hsscript -i&lt;br /&gt;
Password: *************&lt;br /&gt;
xyz00@hsadmin&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;hsadmin&#039;&#039; werden User und E-Mail-Adresse angelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-list&#039;,comment:&#039;Mailingliste Discuss&#039;,shell:&#039;/bin/bash&#039;,password:&#039;geheimnis&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; emailaddress.add({set:{target:&#039;xyz00-list&#039;,localpart:&#039;discuss&#039;,domain:&#039;example.org&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; bye&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Parameter &amp;quot;target&amp;quot; wird die für diese Adresse eingehende Post zunächst in das Postfach des Users xyz00-list abgelegt.&lt;br /&gt;
&lt;br /&gt;
Für den User xyz00-list lege ich in seinem Heimat-Verzeichnis das Unterverzeichnis &amp;lt;tt&amp;gt;mlmmj&amp;lt;/tt&amp;gt; an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mkdir /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann lege ich die Mailingliste mit folgendem Kommando an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mlmmj-make-ml -L discuss -s /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Skript &#039;&#039;mlmmj-make-ml&#039;&#039; fragt weitere Parameter der Mailingliste ab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=output line&amp;gt;&lt;br /&gt;
The Domain for the List? [] : example.org&lt;br /&gt;
The emailaddress of the list owner? [postmaster] : webmaster@example.org&lt;br /&gt;
For the list texts you can choose between the following languages or&lt;br /&gt;
give an absolute path to a directory containing the texts.&lt;br /&gt;
Available languages:&lt;br /&gt;
cz  da	de  en	es  fr	it  nl	ru&lt;br /&gt;
The path to texts for the list? [en] : de&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das skript &#039;&#039;mlmmj-make-ml&#039;&#039; legt daraufhin unter &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; ein Verzeichnis &amp;quot;discuss&amp;quot; an, das die Datenstruktur zur Verwaltung der Mailingliste enthält.&lt;br /&gt;
&lt;br /&gt;
Weitere Konfigurationen der Liste erfolgen durch das Anlegen von Dateien im&lt;br /&gt;
Verzeichnis &amp;quot;/home/pacs/xyz00/users/list/mlmmj/discuss/control&amp;quot;.&lt;br /&gt;
Die Konfigurationsmöglichkeiten finden Sie auf der [http://mlmmj.org/TUNABLES.html Internetseite von mlmmj].&lt;br /&gt;
&lt;br /&gt;
Damit mlmmj die Verteilung der Post übernimmt, muß ich im Heimat-Verzeichnis des users xyz00-list die Datei &amp;lt;tt&amp;gt;.forward&amp;lt;/tt&amp;gt; mit folgenden Inhalt (INKLUSIVE der Anführungszeichen!) erstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/mlmmj-receive -L /home/pacs/xyz00/users/list/mlmmj/discuss/&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Ja, &#039;&#039;receive&#039;&#039; schreibt sich mit &#039;&#039;-ei-&#039;&#039;, aber mlmmj hält einen symbolischen Link bereit für diejenigen, die in englischer Rechtschreibung unsicher sind:)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00-list@h03:~$ ls -la /usr/bin/mlmmj-rec*&lt;br /&gt;
-rwxr-xr-x 1 root root 27104 Sep 25  2018 /usr/bin/mlmmj-receive&lt;br /&gt;
lrwxrwxrwx 1 root root    13 Sep 25  2018 /usr/bin/mlmmj-recieve -&amp;gt; mlmmj-receive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;lt;tt&amp;gt;.forward&amp;lt;/tt&amp;gt;-Datei sorgt dafür, dass eingehende E-Mails an das User-Postfach an das Programm &#039;&#039;mlmmj-recieve&#039;&#039; übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Für regelmäßige Aufgaben der Listen-Managers definiere ich den systemd timer wie folgt (immer noch als &#039;&#039;xyz00-list&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
~/.config/systemd/user/mlmmj.service&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=mlmmj maintenance&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/bin/mlmmj-maintd -d /home/pacs/xyz00/users/list/mlmmj -F&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
~/.config/systemd/user/mlmmj.timer&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=mlmmj maintenance&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=*/4:28&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ systemctl --user enable mlmmj.timer&lt;br /&gt;
$ systemctl --user start mlmmj.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Schluss rufe ich das Skript mlmmj-sub auf, um die E-Mail-Adressen der gewünschten Abonnenten des Verteilers einzutragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
/usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a klaus.muster@gmx.de -c &lt;br /&gt;
/usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a sabine.beispiel@arcor.de -c &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei bewirkt &amp;quot;-c&amp;quot;, dass der Abonnent eine Begrüßungs-Nachricht erhält. Alternativ kann man &amp;quot;-C&amp;quot; (großes C) angeben: dann muss der Abonnent das Abo durch Antworten auf die Nachricht bestätigen.&lt;br /&gt;
&lt;br /&gt;
== weitere Optionen  ==&lt;br /&gt;
&lt;br /&gt;
Noch ein paar Dinge, die Sie möglicherweise einstellen wollen:&lt;br /&gt;
&lt;br /&gt;
Ein Prefix in der Betreffzeile setzen, z.B.: &amp;quot;[discuss]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
echo &amp;quot;[discuss]&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/prefix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn die Liste nur E-Mails von eingetragenen Abonnenten weiterleiten soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/subonlypost&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit der Listen-Owner weitere Abonnements bestätigen muss:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/submod&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einen &amp;quot;Reply-To:&amp;quot;-Header setzen, damit Antwort-Mails standardmäßig an die Mailing-Liste gehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
echo &amp;quot;Reply-To:&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/delheaders&lt;br /&gt;
echo &amp;quot;Reply-To: discuss@example.org&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/customheaders&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beim Massenversand, z.B. bei Newslettern, nutzen Sie bitte möglichst den dedizierten Postausgangsserver für den Massenversand. Dadurch tragen Sie dazu bei, die Reputation unserer regulären Ausgangsserver aufrechtzuerhalten.&lt;br /&gt;
&lt;br /&gt;
Um dies zu tun, setzen Sie den SMTP-Port entsprechend:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
echo &amp;quot;4025&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/smtpport&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Konfigurationsvariante des Ausgangsserver sind unter https://www.hostsharing.net/doc/managed-operations-platform/email/ zu finden.&lt;br /&gt;
&lt;br /&gt;
Weitere Möglichkeiten finden Sie (wie oben bereits angegeben) &lt;br /&gt;
auf der [http://mlmmj.org/TUNABLES.html Internetseite von mlmmj].&lt;br /&gt;
&lt;br /&gt;
=== Achtung: DKIM ===&lt;br /&gt;
&lt;br /&gt;
Mlmmj gibt die Möglichkeit, mit &#039;&#039;&#039;delheaders&#039;&#039;&#039; und &#039;&#039;&#039;customheaders&#039;&#039;&#039; die Header der durchgeleiteten Mail umfangreich zu ändern. Allerdings tragen Mails heute häufig kryptografische Signaturen der sendenden Mailserver. Eine DKIM-Signatur sichert damit in der Regel die Integrität des Body der Mail sowie der Header &#039;&#039;Subject:&#039;&#039;, &#039;&#039;From:&#039;&#039;, &#039;&#039;To:&#039;&#039;, &#039;&#039;Date:&#039;&#039;, &#039;&#039;From&#039;&#039;, und oft auch &#039;&#039;Reply-To:&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Wird zum Beispiel mit einem Prefix das Subject geändert oder ein Footer angehängt, macht dies die DKIM-Signatur ungültig. Das ist für viele Mailprovider ein Grund die Nachricht abzuweisen. (siehe auch Diskussions-Seite zum Artikel)&lt;br /&gt;
&lt;br /&gt;
== Zur Konfiguration im Browser ==&lt;br /&gt;
&lt;br /&gt;
Die Original-Distribution von &#039;&#039;mlmmj&#039;&#039; enthält ein paar einfache PHP- und Perl-Skripte.  Das sind Beispiele für Subscribe-/Unsubscribe-Formulare, ein Admin-Formular zum Eintragen und Löschen von Abonnements und eine Seite mit der gesamten Listen-Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Wer es sich ansehen möchte:&lt;br /&gt;
&lt;br /&gt;
Als Paket-Admin eine Domain aufschalten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
hsscript -u xyz00 -e &amp;quot;domain.add({set:{name:&#039;lists.example.org&#039;,user:&#039;xyz00-list&#039;}})&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Und weiter als &amp;quot;xyz00-list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Download der neuesten Version der Sourcen von mlmmj von http://mlmmj.org/downloads/ (noch besser: Download des aktuellen Debian-Pakets von [https://packages.debian.org/bookworm/all/mlmmj-php-web-admin/download debian.org]: da sind einige veraltete PHP-Ausdrücke schon herausgepatcht) und diese in einem temporären Verzeichnis entpacken (mit tar oder dpkg-deb).&lt;br /&gt;
&lt;br /&gt;
Unter &amp;quot;/mlmmj-$versionsnummer/contrib/web/php-admin/&amp;quot;, oder beim .deb-Paket unter &amp;quot;usr/share/mlmmj-...&amp;quot;, findet sich die PHP-Admin-Anwendung. Also ...&lt;br /&gt;
&lt;br /&gt;
* den Inhalt diese Verzeichnisses nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/&amp;quot; packen;&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/conf/config.php&amp;quot; die Variable &amp;quot;$topdir&amp;quot; anpassen;&lt;br /&gt;
* die Dateien aus &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs/&amp;quot; nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; verschieben;&lt;br /&gt;
* Beim .deb-Paket die config.php, die templates/ und die tunables.pl aus etc/ nach example.org/conf/ verschieben;&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; und in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; eine &amp;quot;.htaccess&amp;quot; mit folgendem Inhalt ablegen: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=apache line&amp;gt;&lt;br /&gt;
Require valid-user&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;mlmmj web-interface&amp;quot;&lt;br /&gt;
AuthUserFile /home/pacs/xyz00/users/list/doms/lists.example.org/etc/htpasswd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Und schließlich die &amp;quot;htpasswd&amp;quot;-Datei anlegen.&lt;br /&gt;
&lt;br /&gt;
 cd /home/pacs/xyz00/users/list/doms/lists.example.org/etc/&lt;br /&gt;
 htpasswd -c htpasswd listadmin&lt;br /&gt;
&lt;br /&gt;
* Ein Passwort angeben.&lt;br /&gt;
&lt;br /&gt;
Nun enthält diese PHP-Anwendung, wenn man sie nicht dem Debian-Paket entnommen hat, leider noch eine Zeile, die schon seit PHP 7 nicht mehr lauffähig ist. Also muß man noch&lt;br /&gt;
&lt;br /&gt;
* in &amp;lt;tt&amp;gt;.../htdocs-ssl/index.php&amp;lt;/tt&amp;gt; folgende Änderung vornehmen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=diff line&amp;gt;&lt;br /&gt;
@@ -38,4 +38,5 @@&lt;br /&gt;
 # use scandir to have alphabetical order &lt;br /&gt;
 foreach (scandir($topdir) as $file) {&lt;br /&gt;
-    if (!ereg(&amp;quot;^\.&amp;quot;,$file))&lt;br /&gt;
+# ereg obsolete!! Vormals:    if (!ereg(&amp;quot;^\.&amp;quot;,$file))&lt;br /&gt;
+    if (!preg_match(&#039;/^\./&#039;,$file))&lt;br /&gt;
     {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
und das Ergebnis auf https://lists.example.org anschauen.&lt;br /&gt;
&lt;br /&gt;
== Mehrere Mailinglisten betreiben ==&lt;br /&gt;
&lt;br /&gt;
Wenn mehrere Mailinglisten in einem Account und mit einer Admin-Oberfläche betrieben werden soll, empfiehlt sich die Nutzung von Procmail für den Aufruf von &#039;&#039;mlmmj&#039;&#039; für die jeweiligen Liste mit ihrem Daten-Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
Dazu trägt man in der Datei &amp;lt;tt&amp;gt;.forward&amp;lt;/tt&amp;gt; statt des Aufrufs von &#039;&#039;mlmmj-recieve&#039;&#039; einen Aufruf von &#039;&#039;procmail&#039;&#039; ein:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
|/usr/bin/procmail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration von Procmail kann generisch erfolgen. Dazu legt man eine Datei &amp;lt;tt&amp;gt;.procmailrc&amp;lt;/tt&amp;gt; mit folgendem Inhalt ins $HOME des Users:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
SHELL=/bin/sh&lt;br /&gt;
HOMEDIR=/home/pacs/xyz00/users/list&lt;br /&gt;
MAILDIR=/home/pacs/xyz00/users/list/Maildir&lt;br /&gt;
PMDIR=/home/pacs/xyz00/users/list&lt;br /&gt;
VERBOSE=yes&lt;br /&gt;
LOGFILE=/home/pacs/xyz00/users/list/var/procmail.log&lt;br /&gt;
DEFAULT&lt;br /&gt;
 &lt;br /&gt;
:0:&lt;br /&gt;
* ^X-Original-To: ()\/[^@+]+&lt;br /&gt;
|/usr/bin/mlmmj-receive -F -L /home/pacs/xyz00/users/list/mlmmj/${MATCH}/&lt;br /&gt;
 &lt;br /&gt;
:0&lt;br /&gt;
{ EXITCODE 67 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bitte dafür sorgen, dass das Verzeichnis &#039;&#039;/home/pacs/xyz00/users/list/var&#039;&#039; existiert.&lt;br /&gt;
&lt;br /&gt;
Der kryptische reguläre Ausdruck hinter dem Header &#039;&#039;X-Original-To:&#039;&#039; passt auf den Beginn der E-Mail-Adresse bis zum ersten &#039;&#039;@&#039;&#039;- oder &#039;&#039;+&#039;&#039;-Zeichen. In der Variable &#039;&#039;MATCH&#039;&#039; steht also der Name der Mailingliste, d.h. der Name der Verzeichnisses, in dem die Liste verwaltet wird.&lt;br /&gt;
&lt;br /&gt;
Sehr wichtig ist die Zeile &#039;&#039;DEFAULT&#039;&#039; zu Beginn der &#039;&#039;.procmailrc&#039;&#039;. Die Variable &#039;&#039;DEFAULT&#039;&#039; wird von &#039;&#039;procmail&#039;&#039; gesetzt. Wir sorgen mit dieser Zeile dafür, dass sie wieder undefiniert ist. Diese Variable wird intern von &#039;&#039;mlmmj&#039;&#039; benutzt, wenn sie gesetzt ist. Das führt in Kombination mit &#039;&#039;procmail&#039;&#039; zu Fehlfunktionen (vgl. Links).&lt;br /&gt;
&lt;br /&gt;
===Groß- und Kleinschreibung===&lt;br /&gt;
&lt;br /&gt;
Achtung, mit der Groß- und Kleinschreibung von Listennamen gibt es bei dieser Procmail-Lösung eine kleine Tücke. Procmail übernimmt in die Variable $MATCH genau die in der X-Original-To-Headerzeile vorgefundene Schreibweise, und diese kann denkbarerweise &amp;quot;Listen-Name&amp;quot; oder &amp;quot;listen-name&amp;quot; oder &amp;quot;Listen-name&amp;quot; sein. &amp;lt;tt&amp;gt;mlmmj&amp;lt;/tt&amp;gt; hingegen wird diesen Wert in Unix-Manier mit dem genauen Verzeichnisnamen &amp;lt;tt&amp;gt;${HOME}/mlmmj/listen-name&amp;lt;/tt&amp;gt; vergleichen, und bei unterschiedlicher Schreibweise die Mail nicht verteilen.&lt;br /&gt;
&lt;br /&gt;
====Lösung 1====&lt;br /&gt;
&lt;br /&gt;
Eine teilweise Lösung besteht darin, den Listennamen in dem &amp;lt;tt&amp;gt;mlmmj&amp;lt;/tt&amp;gt;-Aufruf in der &amp;lt;tt&amp;gt;.procmailrc&amp;lt;/tt&amp;gt; in Kleinbuchstaben umzuschreiben. Dann lautet das Rezept so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
:0:&lt;br /&gt;
* ^X-Original-To: ()\/[^@+]+&lt;br /&gt;
|/usr/bin/mlmmj-receive -F -L /home/pacs/xyz00/users/list/mlmmj/$(echo ${MATCH} | tr [:upper:] [:lower:])/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Rest der Datei muß gleich bleiben, wie weiter oben angezeigt.&lt;br /&gt;
&lt;br /&gt;
In diesem Fall müssen aber alle Mailing-Listen ohne Großbuchstaben im Namen angelegt werden!&lt;br /&gt;
&lt;br /&gt;
(Man kann auch in &amp;lt;tt&amp;gt;${HOME}/mlmmj/&amp;lt;/tt&amp;gt; durch kleingeschriebene Symlinks großgeschriebene Listennamen ansprechbar machen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=output&amp;gt;&lt;br /&gt;
xyz00-list@h02:~$ ls -lA mlmmj/&lt;br /&gt;
total 8&lt;br /&gt;
-rw-r--r--  1 xyz00-list xyz00  148 Feb  1 16:56 .htaccess&lt;br /&gt;
lrwxrwxrwx  1 xyz00-list xyz00   10 Feb  2 18:01 mitglieder -&amp;gt; Mitglieder&lt;br /&gt;
drwxr-xr-x 15 xyz00-list xyz00 4096 Feb  2 16:53 Mitglieder&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lösung 2====&lt;br /&gt;
&lt;br /&gt;
Bash kann bei der Auflösung von Variablen die Groß- und Kleinschreibung manipulieren. (Siehe dazu bei der Zeichenfolge &amp;lt;tt&amp;gt;,,&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;man bash&amp;lt;/tt&amp;gt;.) Dann ist &amp;lt;tt&amp;gt;$(echo ${MATCH} | tr [:upper:] [:lower:])&amp;lt;/tt&amp;gt; gleichbedeutend mit &amp;lt;tt&amp;gt;${MATCH,,}&amp;lt;/tt&amp;gt;. Allerdings braucht procmail einige Überredung, um Bash zu verwenden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SHELLMETAS=&amp;amp;|&amp;lt;&amp;gt;~;?*[{&lt;br /&gt;
HOMEDIR= ...&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
:0:&lt;br /&gt;
* ^X-Original-To: ()\/[^@+]+&lt;br /&gt;
|/usr/bin/mlmmj-receive -F -L /home/pacs/xyz00/users/list/mlmmj/${MATCH,,}/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Tücke ist, daß procmail den in SHELL angegebenen Shell nur dann verwendet, wenn die Befehlszeile eines der in SHELLMETAS angegebenen Zeichen enthält. Und das &#039;|&#039; am Anfang der Zeile zählt dabei nicht! In diesem Beispiel ist es das Zeichen &amp;lt;tt&amp;gt;{&amp;lt;/tt&amp;gt;, das den Einsatz von Bash auslöst.&lt;br /&gt;
&lt;br /&gt;
Beide Lösungen scheinen zu funktionieren; Angabe ohne Gewähr.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* http://mlmmj.org/ Projektseite&lt;br /&gt;
* https://codeberg.org/mlmmj mlmmj auf Codeberg&lt;br /&gt;
* https://github.com/tchapi/mlmmj-simple-web-interface ein Admin-Interface in NodeJS&lt;br /&gt;
* [https://web.archive.org/web/20221228110514/https://www.tablix.org/~avian/blog/archives/2010/04/the_faulty_default/ https://www.tablix.org/~avian/blog/archives/2010/04/the_faulty_default/ (via web.archive.org)] Nutzung von mlmmj in Verbindung mit Procmail&lt;br /&gt;
* [https://gist.github.com/kboss/7c9593f0fd9219406226c4f11256b98a Einfaches Python-Script zum Massenimport aus einem Texfile.] Geht bestimmt auch eleganter mit purem Bash&lt;br /&gt;
* Ein Self-Service zum Subscriben/Unsubscriben lässt sich in Form von Mail-to-Links in Webseiten einbinden. Beispiele gibt es bei Hostsharing für die öffentlichen &amp;quot;public&amp;quot;-Mailinglisten: https://www.hostsharing.net/lists/public-discussion/ . Alternativ auf https://github.com/hblasum/mlmmj-php-web-simplified ein Webfrontend mit dem sich Benutzerinnen und Benutzer selbst ein-/austragen können (Vereinfachung von mlmmj-php-web von Christoph Thiel).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Mailinglisten]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
</feed>