<?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-04-25T22:44:50Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<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>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_Zertifikat_mit_LEGO&amp;diff=7191</id>
		<title>TLS Zertifikat mit LEGO</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_Zertifikat_mit_LEGO&amp;diff=7191"/>
		<updated>2024-12-23T12:41:18Z</updated>

		<summary type="html">&lt;p&gt;Peh00: /* regelmäßige Verlängerung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TLS Zertifikat mit LEGO =&lt;br /&gt;
&lt;br /&gt;
Für den zentralen Apache Webserver werden bei Hostsharing automatisch TLS Zertifikate über den Dienst &amp;quot;Lets Encrypt&amp;quot; erzeugt und verlängert. Das wird über die Domain-Option &amp;quot;letsencrypt&amp;quot; gesteuert.&lt;br /&gt;
&lt;br /&gt;
Teilweise will man aber eigene Serverdienste betreiben, die nicht über HTTP hinter dem Apache-Proxy erreichbar sind. Beispiele dafür sind ein eigener XMPP Server oder ein Mumble Server. Für diese Server können die Nutzer:innen der Hostsharing Plattform sehr leicht TLS Zertifikate erzeugen, indem sie den zentral installierten LEGO-Bot nutzen.&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
Zunächst muss eine Domain vorhanden sein, auf die das Zertifikat ausgestellt werden soll und die im Webspace über HTTP erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Ich nutze hier den Service-User &amp;quot;xyz00-mumble&amp;quot; als Beispiel. Bei diesem User sei die Domain &amp;quot;mumble.hs-example.de&amp;quot; aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
Dann lösche ich bei der Domain die HTTP-Weiterleitungen und die www-Subdomain:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
rm -rf ~/doms/mumble.hs-example.de/subs/www \&lt;br /&gt;
         ~/doms/mumble.hs-example.de/subs-ssl/www \&lt;br /&gt;
         ~/doms/mumble.hs-example.de/htdocs/.htaccess \&lt;br /&gt;
         ~/doms/mumble.hs-example.de/htdocs-ssl/.htaccess &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das erste Zertifikat wird mit dem folgenden Befehl erzeugt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
/usr/bin/lego -d mumble.hs-example.de -a \&lt;br /&gt;
        --email webmaster@mumble.hs-example.de -k ec256 \&lt;br /&gt;
        --http.webroot $HOME/doms/mumble.hs-example.de/htdocs \&lt;br /&gt;
        --http run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Bei der erfolgreichen Ausführung diese Befehls wurde ein verstecktes Verzeichnis &amp;quot;.lego&amp;quot; angelegt. In diesem Verzeichnis befinden sich die Daten zum neu angelegten Letsencrypt-Account und das Zertifikat mit dem zugehörigen private key.&lt;br /&gt;
&lt;br /&gt;
Die Daten des Zertifikates kann man wie folgt auslesen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
openssl x509 -in .lego/certificates/mumble.hs-example.de.crt -noout -text&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== regelmäßige Verlängerung ==&lt;br /&gt;
&lt;br /&gt;
Für die automatische Verlängerung des Zertifikats können wir einen Cronjob aufsetzen, der zum Beispiel täglich oder wöchentlich läuft:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ cat bin/lego-renew &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
HOME=/home/pacs/xyz00/users/mumble&lt;br /&gt;
/usr/bin/lego -d mumble.hs-example.de  -a \&lt;br /&gt;
  --email webmaster@mumble.hs-example.de -k ec256 \&lt;br /&gt;
  --http.webroot $HOME/doms/mumble.hs-example.de/htdocs \&lt;br /&gt;
  --http renew&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ausführung des Skriptes wird über einen systemd timer gesteuert:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/lego_certificate.service&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=renew lego certificate&lt;br /&gt;
  &lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=%h/bin/lego-renew&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/lego_certificate.timer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for lego certificate&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Thu 4:34&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;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
systemctl --user enable lego_certificate.timer&lt;br /&gt;
systemctl --user start lego_certificate.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=TLS_Zertifikat_mit_LEGO&amp;diff=7190</id>
		<title>TLS Zertifikat mit LEGO</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=TLS_Zertifikat_mit_LEGO&amp;diff=7190"/>
		<updated>2024-12-23T12:39:14Z</updated>

		<summary type="html">&lt;p&gt;Peh00: regelmäßige Verlängerung braucht sicher kein PHP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TLS Zertifikat mit LEGO =&lt;br /&gt;
&lt;br /&gt;
Für den zentralen Apache Webserver werden bei Hostsharing automatisch TLS Zertifikate über den Dienst &amp;quot;Lets Encrypt&amp;quot; erzeugt und verlängert. Das wird über die Domain-Option &amp;quot;letsencrypt&amp;quot; gesteuert.&lt;br /&gt;
&lt;br /&gt;
Teilweise will man aber eigene Serverdienste betreiben, die nicht über HTTP hinter dem Apache-Proxy erreichbar sind. Beispiele dafür sind ein eigener XMPP Server oder ein Mumble Server. Für diese Server können die Nutzer:innen der Hostsharing Plattform sehr leicht TLS Zertifikate erzeugen, indem sie den zentral installierten LEGO-Bot nutzen.&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
Zunächst muss eine Domain vorhanden sein, auf die das Zertifikat ausgestellt werden soll und die im Webspace über HTTP erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Ich nutze hier den Service-User &amp;quot;xyz00-mumble&amp;quot; als Beispiel. Bei diesem User sei die Domain &amp;quot;mumble.hs-example.de&amp;quot; aufgeschaltet.&lt;br /&gt;
&lt;br /&gt;
Dann lösche ich bei der Domain die HTTP-Weiterleitungen und die www-Subdomain:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
rm -rf ~/doms/mumble.hs-example.de/subs/www \&lt;br /&gt;
         ~/doms/mumble.hs-example.de/subs-ssl/www \&lt;br /&gt;
         ~/doms/mumble.hs-example.de/htdocs/.htaccess \&lt;br /&gt;
         ~/doms/mumble.hs-example.de/htdocs-ssl/.htaccess &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das erste Zertifikat wird mit dem folgenden Befehl erzeugt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
/usr/bin/lego -d mumble.hs-example.de -a \&lt;br /&gt;
        --email webmaster@mumble.hs-example.de -k ec256 \&lt;br /&gt;
        --http.webroot $HOME/doms/mumble.hs-example.de/htdocs \&lt;br /&gt;
        --http run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Bei der erfolgreichen Ausführung diese Befehls wurde ein verstecktes Verzeichnis &amp;quot;.lego&amp;quot; angelegt. In diesem Verzeichnis befinden sich die Daten zum neu angelegten Letsencrypt-Account und das Zertifikat mit dem zugehörigen private key.&lt;br /&gt;
&lt;br /&gt;
Die Daten des Zertifikates kann man wie folgt auslesen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
openssl x509 -in .lego/certificates/mumble.hs-example.de.crt -noout -text&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== regelmäßige Verlängerung ==&lt;br /&gt;
&lt;br /&gt;
Für die automatische Verlängerung des Zertifikats können wir einen Cronjob aufsetzen, der zum Beispiel täglich oder wöchentlich läuft:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell line&amp;gt;&lt;br /&gt;
$ cat bin/lego-renew &lt;br /&gt;
#!/bin/bash&lt;br /&gt;
HOME=/home/pacs/xyz00/users/mumble&lt;br /&gt;
/usr/bin/lego -d mumble.hs-example.de  -a \&lt;br /&gt;
  --email webmaster@mumble.hs-example.de -k ec256 \&lt;br /&gt;
  --http.webroot $HOME/doms/mumble.hs-example.de/htdocs \&lt;br /&gt;
  --http renew&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ausführung des Skriptes wird über einen systemd timer gesteuert:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/lego_certificate.service&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=renew lego certificate&lt;br /&gt;
  &lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/home/pacs/xyz00/users/mumble/bin/lego-renew&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/.config/systemd/user/lego_certificate.timer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=timer for lego certificate&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=Thu 4:34&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;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
systemctl --user enable lego_certificate.timer&lt;br /&gt;
systemctl --user start lego_certificate.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=5521</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=5521"/>
		<updated>2021-05-21T08:40:10Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Eigenes Python installieren =&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/collective/buildout.python buildout.python] ist ein Projekt auf Github, dass sich zum Ziel gemacht hat, auf (allen) vielen Plattformen diverse Distributionen von Python zu kompilieren. Man klont das Projekt:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy). Danach lässt man das Buildout durchlaufen.&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternative ==&lt;br /&gt;
&lt;br /&gt;
Ich kann nicht beurteilen, ob die Variante oben mit Buildout noch zum Ziel führt.&lt;br /&gt;
Ein Mitglied hatte Schwierigkeiten damit.&lt;br /&gt;
&lt;br /&gt;
Ich würde (hier Python 3.9) so installieren:&lt;br /&gt;
&lt;br /&gt;
  mkdir /home/pacs/xyz00/opt&lt;br /&gt;
  mkdir /home/pacs/xyz00/build&lt;br /&gt;
  cd /home/pacs/xyz00/build&lt;br /&gt;
  wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz&lt;br /&gt;
  tar xzf Python-3.9.5.tgz&lt;br /&gt;
  cd Python-3.9.5&lt;br /&gt;
  ./configure --enable-optimizations --prefix=/home/pacs/xyz00/opt&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  cd ..&lt;br /&gt;
  rm -rf build&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;br /&gt;
[[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=5520</id>
		<title>Eigenes Python installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Eigenes_Python_installieren&amp;diff=5520"/>
		<updated>2021-05-21T08:38:32Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Python mit configure,make&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Eigenes Python installieren =&lt;br /&gt;
&lt;br /&gt;
Manchmal macht es Sinn eine eigene Python-Umgebung zu installieren. Gründe dafür können sein&lt;br /&gt;
&lt;br /&gt;
* Unabhängigkeit vom System-Python&lt;br /&gt;
* Volle Kontrolle über eingesetzte Python-Packages&lt;br /&gt;
* Freie Auswahl der Python-Distribution (z. B. die neueste)&lt;br /&gt;
&lt;br /&gt;
Ich empfehle Python mithilfe von [http://www.buildout.org/ buildout] zu installieren. Im folgenden wird die Vorgehensweise erläutert.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/collective/buildout.python buildout.python] ist ein Projekt auf Github, dass sich zum Ziel gemacht hat, auf (allen) vielen Plattformen diverse Distributionen von Python zu kompilieren. Man klont das Projekt:&lt;br /&gt;
&lt;br /&gt;
 git clone git://github.com/collective/buildout.python.git ~/mypython&lt;br /&gt;
 cd ~/mypython&lt;br /&gt;
&lt;br /&gt;
Nun die buildout.cfg editieren: alle ungewollten Python-Distributionen auskommentieren (auch die pypy). Danach lässt man das Buildout durchlaufen.&lt;br /&gt;
&lt;br /&gt;
 python bootstrap.py&lt;br /&gt;
 bin/buildout&lt;br /&gt;
&lt;br /&gt;
Jetzt wird das Python runtergeladen, kompiliert und installiert.&lt;br /&gt;
Es lässt sich folgendermaßen aktivieren:&lt;br /&gt;
&lt;br /&gt;
 source ~/mypython/python-x.x/bin/activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternative ==&lt;br /&gt;
&lt;br /&gt;
Ich kann nicht beurteilen, ob die Variante oben mit Buildout noch zum Ziel führt.&lt;br /&gt;
Ein Mitglied hatte Schwierigkeiten damit.&lt;br /&gt;
&lt;br /&gt;
Ich würde (hier Python9) so installieren:&lt;br /&gt;
&lt;br /&gt;
  mkdir /home/pacs/xyz00/opt&lt;br /&gt;
  mkdir /home/pacs/xyz00/build&lt;br /&gt;
  cd /home/pacs/xyz00/build&lt;br /&gt;
  wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz&lt;br /&gt;
  tar xzf Python-3.9.5.tgz&lt;br /&gt;
  cd Python-3.9.5&lt;br /&gt;
  ./configure --enable-optimizations --prefix=/home/pacs/xyz00/opt&lt;br /&gt;
  make&lt;br /&gt;
  make install&lt;br /&gt;
  cd ..&lt;br /&gt;
  rm -rf build&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;br /&gt;
[[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=5119</id>
		<title>Matrix Synapse installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=5119"/>
		<updated>2020-04-18T12:26:38Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Matrix Server &#039;&#039;Synapse&#039;&#039;, der sogenannte &#039;Homeserver&#039;, ist aktuell die einzige vollständige serverseitige Implementierung des Matrix-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Work in Progress|Leider funktioniert die Server-zu-Server-Kommunikation von Synapse hinter dem Apache-Proxy mit den genannten Rewrite-Rules nicht. Bitten Sie dazu den Service, Ihren Apache VHost individuell für den Matrix Server anzupassen.&lt;br /&gt;
Weiterhin wird für die aktuelle Version von Synapse Python 3.8 benötigt. Es ist kein Problem sich ein Python 3.8 aus den Sourcen zu kompilieren. Das ist hier nicht noch nicht beschrieben.}}&lt;br /&gt;
&lt;br /&gt;
Synapse wird bei Hostsharing als &#039;&#039;eigener Daemon&#039;&#039; betrieben. Der Betrieb ist im Shared Hosting anmelde- und kostenpflichtig. Daher emfpehlen wir für den Betrieb einen &#039;&#039;Managed Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man den Matrix-Homeserver Synapse auf der Managed Hosting Plattform von Hostsharing installieren kann. Dabei sind die User-IDs nach dem Schema @user:beispiel.de aufgebaut, der Homeserver an sich ist unter matrix.beispiel.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin werden angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-matrix&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-matrix&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;matrix.beispiel.de&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_matrixuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_matrixdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_matrixuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: xyz00.hostsharing.net:32800&lt;br /&gt;
# Synapse: localhost:32801&lt;br /&gt;
&lt;br /&gt;
== Installation von Synapse ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung basierend auf https://github.com/matrix-org/synapse/blob/master/INSTALL.md#installing-from-source&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-matrix&amp;quot; ein Python3 virtualenv erstellen&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/synapse&lt;br /&gt;
 virtualenv -p python3 ~/synapse/env&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install --upgrade setuptools&lt;br /&gt;
&lt;br /&gt;
Synapse und Postgres-Dependencies installieren&lt;br /&gt;
&lt;br /&gt;
 pip install matrix-synapse[postgres]&lt;br /&gt;
&lt;br /&gt;
Initiale Konfiguration mit richtigem server-name &amp;quot;beispiel.de&amp;quot; generieren, außerdem im laufenden Betrieb keine Statistiken an Matrix.org senden&lt;br /&gt;
&lt;br /&gt;
 cd ~/synapse&lt;br /&gt;
 python -m synapse.app.homeserver --server-name beispiel.de --config-path homeserver.yaml --generate-config --report-stats=no&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Synapse ==&lt;br /&gt;
&lt;br /&gt;
In die initial generierte Konfiguration muss noch die Port- und Datenbank-Konfiguration eingetragen werden:&lt;br /&gt;
&lt;br /&gt;
Port: Innerhalb der listener-section den Port 8008 auf 32801 (wie initial definiert) ändern, alles andere beibehalten:&lt;br /&gt;
&lt;br /&gt;
      - port: 32801&lt;br /&gt;
        tls: false&lt;br /&gt;
        bind_addresses: [&#039;::1&#039;, &#039;127.0.0.1&#039;]&lt;br /&gt;
        type: http&lt;br /&gt;
        x_forwarded: true&lt;br /&gt;
&lt;br /&gt;
Postgres-Datenbank:&lt;br /&gt;
&lt;br /&gt;
    database:&lt;br /&gt;
      # The database engine name&lt;br /&gt;
      name: &amp;quot;psycopg2&amp;quot;&lt;br /&gt;
      # Arguments to pass to the engine&lt;br /&gt;
      args:&lt;br /&gt;
        host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
        database: &amp;quot;xyz00_matrixdb&amp;quot;&lt;br /&gt;
        user: &amp;quot;xyz00_matrixuser&amp;quot;&lt;br /&gt;
        password: &amp;quot;meinPasswort&amp;quot;&lt;br /&gt;
        cp_min: 5&lt;br /&gt;
        cp_max: 10&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
Das monitpassword auf jeden Fall durch ein sicheres Passwort ersetzen:&lt;br /&gt;
&lt;br /&gt;
 set daemon 60&lt;br /&gt;
     with start delay 120&lt;br /&gt;
 set logfile /home/pacs/xyz00/users/matrix/monit/var/monit.log&lt;br /&gt;
 set idfile /home/pacs/xyz00/users/matrix/monit/var/monit.id&lt;br /&gt;
 set statefile /home/pacs/xyz00/users/matrix/monit/var/monit.state&lt;br /&gt;
 set mailserver localhost&lt;br /&gt;
 set mail-format { from: monit@matrix.beispiel.de }&lt;br /&gt;
 set alert matrix@matrix.beispiel.de&lt;br /&gt;
 set httpd port 32800 address xyz00.hostsharing.net &lt;br /&gt;
     allow matrix:monitpassword&lt;br /&gt;
 check process synapse with pidfile /home/pacs/xyz00/users/matrix/synapse/homeserver.pid&lt;br /&gt;
     start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl start&#039;&amp;quot;&lt;br /&gt;
     stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/homeserver.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für eine Aufgabe genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 HOME=/home/pacs/xyz00/users/matrix&lt;br /&gt;
 MAILTO=matrix@matrix.beispiel.de&lt;br /&gt;
 &lt;br /&gt;
 @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;~/doms/matrix.beispiel.de/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&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;
 RewriteRule .* http://localhost:32801%{REQUEST_URI} [NE,proxy]&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Well-Known unter beispiel.de ==&lt;br /&gt;
&lt;br /&gt;
Damit die User-Accounts das Format @user:beispiel.de haben, der Server aber unter matrix.beispiel.de erreichbar ist, müssen noch folgende zwei Dateien unter der Domain beispiel.de abgelegt werden:&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/server&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.server&amp;quot;: &amp;quot;matrix.beispiel.de:443&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/client&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.homeserver&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://matrix.beispiel.de&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;m.identity_server&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://vector.im&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für die muss noch der CORS-Header Access-Control-Allow-Origin &amp;quot;*&amp;quot; gesetzt werden, damit die Datei aus beliebigem Riot-Web im Browser abrufbar ist. Dazu in den Ordner .well-known/matrix/ folgende .htaccess anlegen:&lt;br /&gt;
&lt;br /&gt;
 Header set Access-Control-Allow-Origin &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation dazu findet man unter https://matrix.org/docs/spec/server_server/r0.1.2#get-well-known-matrix-server und https://matrix.org/docs/spec/client_server/r0.5.0#get-well-known-matrix-client&lt;br /&gt;
&lt;br /&gt;
== Update von Synapse ==&lt;br /&gt;
&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install -U matrix-synapse[postgres]&lt;br /&gt;
 monit restart synapse&lt;br /&gt;
&lt;br /&gt;
== Riot-Web ==&lt;br /&gt;
&lt;br /&gt;
Riot-Web ist aus Server-Seite eine rein statische html+javascript-Kombination, daher:&lt;br /&gt;
&lt;br /&gt;
* Account und Domain anlegen (separat von der Synapse-Domain)&lt;br /&gt;
* aktuelles riot-web release .tgz herunterladen&lt;br /&gt;
* Symlink von htdocs-ssl auf entpacktes riot-web-Verzeichnis&lt;br /&gt;
* config.sample.json in config.json kopieren und Matrix-Homeserver-Einträge anpassen&lt;br /&gt;
* Piwik aus config.json entfernen&lt;br /&gt;
&lt;br /&gt;
== SAML mit Synapse ==&lt;br /&gt;
&lt;br /&gt;
Synapse unterstützt mit Version 1.1.0 SAML. Dazu wie folgt vorgehen:&lt;br /&gt;
&lt;br /&gt;
Das Paket xmlsec1 muss installiert sein:&lt;br /&gt;
&lt;br /&gt;
 $ xmlsec1  --version&lt;br /&gt;
 xmlsec1 1.2.23 (openssl)&lt;br /&gt;
&lt;br /&gt;
Das Python-Paket pysaml2 installieren&lt;br /&gt;
&lt;br /&gt;
 source synapse/env/bin/activate&lt;br /&gt;
 pip install pysaml2&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die SAML-Direktiven einkommentieren, hier mit dem Beispiel eines SAML IdP unter https://login.beispiel.de/simplesaml/saml2/idp/metadata.php:&lt;br /&gt;
&lt;br /&gt;
 # Once SAML support is enabled, a metadata file will be exposed at&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/metadata.xml, which you may be able to &lt;br /&gt;
 # use to configure your SAML IdP with. Alternatively, you can manually configure&lt;br /&gt;
 # the IdP to use an ACS location of&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/authn_response.&lt;br /&gt;
 #&lt;br /&gt;
 saml2_config:&lt;br /&gt;
   sp_config:&lt;br /&gt;
     # point this to the IdP&#039;s metadata. You can use either a local file or&lt;br /&gt;
     # (preferably) a URL.&lt;br /&gt;
     metadata:&lt;br /&gt;
       #local: [&amp;quot;saml2/idp.xml&amp;quot;]&lt;br /&gt;
       remote:&lt;br /&gt;
         - url: https://login.beispiel.de/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
&lt;br /&gt;
Wichtig ist außerdem, dass die public_baseurl in der homeserver.yaml gesetzt ist, damit Synapse weiß, wie es erreichbar ist und dies in seine SP-Metadaten einbauen kann:&lt;br /&gt;
&lt;br /&gt;
 public_baseurl: https://matrix.beispiel.de/&lt;br /&gt;
&lt;br /&gt;
Die Service-Provider-Konfiguration als XML bekommt man von Synapse dann wie schon in der homeserver.yaml als Kommentar beschrieben, unter https://matrix.beispiel.de/_matrix/saml2/metadata.xml&lt;br /&gt;
&lt;br /&gt;
Diese dann in den SAML-IdP-importieren und dann sollte der Single-Sign-On via SAML funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Federation Sender Worker für Synapse ==&lt;br /&gt;
&lt;br /&gt;
Zur Parallelisierung bietet Synapse das Konzept &amp;quot;Worker&amp;quot; an, die spezifische Aufgaben übernehmen, damit der Hauptprozess diese nicht durchführen muss.&lt;br /&gt;
&lt;br /&gt;
Details dazu: https://github.com/matrix-org/synapse/blob/master/docs/workers.md&lt;br /&gt;
&lt;br /&gt;
Ein einfach einzurichtender Worker, der auch viel Last abfedert, ist der Federation Sender Worker, da das Verschicken des Federation-Traffics 10-50% der Serverlast ausmacht.&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die Worker-Konfiguration aktivieren:&lt;br /&gt;
&lt;br /&gt;
 ## Worker ##&lt;br /&gt;
 worker_app: synapse.app.homeserver&lt;br /&gt;
 daemonize: true&lt;br /&gt;
&lt;br /&gt;
und dazugehörige Listener (Abschnitt listener:) aktivieren:&lt;br /&gt;
&lt;br /&gt;
 # The TCP replication port&lt;br /&gt;
 - port: 32892&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: replication&lt;br /&gt;
 # The HTTP replication port&lt;br /&gt;
 - port: 32893&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: http&lt;br /&gt;
   resources:&lt;br /&gt;
    - names: [replication]&lt;br /&gt;
&lt;br /&gt;
Funktionen, die Worker machen sollen, in der homeserver.yaml deaktivieren:&lt;br /&gt;
&lt;br /&gt;
 # disable federation sending here, use worker for it&lt;br /&gt;
 send_federation: False&lt;br /&gt;
&lt;br /&gt;
Dann Verzeichnis synapse/workers anlegen, darin federation_sender.yaml:&lt;br /&gt;
&lt;br /&gt;
 worker_app: synapse.app.federation_sender&lt;br /&gt;
 &lt;br /&gt;
 # The replication listener on the synapse to talk to.&lt;br /&gt;
 worker_replication_host: 127.0.0.1&lt;br /&gt;
 worker_replication_port: 32892&lt;br /&gt;
 worker_replication_http_port: 32893&lt;br /&gt;
 &lt;br /&gt;
 worker_daemonize: True&lt;br /&gt;
 worker_pid_file: /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
 worker_log_config: /home/pacs/xyz00/users/matrix/synapse/federation_sender.log.config&lt;br /&gt;
&lt;br /&gt;
.monitrc um worker erweitern:&lt;br /&gt;
&lt;br /&gt;
 check process federation_sender with pidfile /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
    start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl -w workers/federation_sender.yaml start&#039;&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/federation_sender.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Monit neu laden und synapse und federation_sender neustarten:&lt;br /&gt;
&lt;br /&gt;
 monit reload&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
Nach Updates ebenfalls immer Hauptprozess und alle Worker neustarten&lt;br /&gt;
&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://matrix.org/docs/projects/server/synapse &lt;br /&gt;
* https://github.com/matrix-org/synapse&lt;br /&gt;
* https://github.com/matrix-org/synapse/blob/master/INSTALL.md&lt;br /&gt;
* https://matrix.org/docs/spec/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=5118</id>
		<title>Matrix Synapse installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=5118"/>
		<updated>2020-04-18T12:25:56Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Zeilenumbruch entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Matrix Server &#039;&#039;Synapse&#039;&#039;, der sogenannte &#039;Homeserver&#039;, ist aktuell die einzige vollständige serverseitige Implementierung des Matrix-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Work in Progress|Leider funktioniert die Server-zu-Server-Kommunikation von Synapse hinter dem Apache-Proxy mit den genannten Rewrite-Rules nicht. Bitten Sie dazu den Service, Ihren Apache VHost individuell für den Martrix Server anzupassen.&lt;br /&gt;
Weiterhin wird für die aktuelle Version von Synapse Python 3.8 benötigt. Es ist kein Problem sich ein Python 3.8 aus den Sourcen zu kompilieren. Das ist hier nicht noch nicht beschrieben.}}&lt;br /&gt;
&lt;br /&gt;
Synapse wird bei Hostsharing als &#039;&#039;eigener Daemon&#039;&#039; betrieben. Der Betrieb ist im Shared Hosting anmelde- und kostenpflichtig. Daher emfpehlen wir für den Betrieb einen &#039;&#039;Managed Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man den Matrix-Homeserver Synapse auf der Managed Hosting Plattform von Hostsharing installieren kann. Dabei sind die User-IDs nach dem Schema @user:beispiel.de aufgebaut, der Homeserver an sich ist unter matrix.beispiel.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin werden angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-matrix&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-matrix&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;matrix.beispiel.de&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_matrixuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_matrixdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_matrixuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: xyz00.hostsharing.net:32800&lt;br /&gt;
# Synapse: localhost:32801&lt;br /&gt;
&lt;br /&gt;
== Installation von Synapse ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung basierend auf https://github.com/matrix-org/synapse/blob/master/INSTALL.md#installing-from-source&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-matrix&amp;quot; ein Python3 virtualenv erstellen&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/synapse&lt;br /&gt;
 virtualenv -p python3 ~/synapse/env&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install --upgrade setuptools&lt;br /&gt;
&lt;br /&gt;
Synapse und Postgres-Dependencies installieren&lt;br /&gt;
&lt;br /&gt;
 pip install matrix-synapse[postgres]&lt;br /&gt;
&lt;br /&gt;
Initiale Konfiguration mit richtigem server-name &amp;quot;beispiel.de&amp;quot; generieren, außerdem im laufenden Betrieb keine Statistiken an Matrix.org senden&lt;br /&gt;
&lt;br /&gt;
 cd ~/synapse&lt;br /&gt;
 python -m synapse.app.homeserver --server-name beispiel.de --config-path homeserver.yaml --generate-config --report-stats=no&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Synapse ==&lt;br /&gt;
&lt;br /&gt;
In die initial generierte Konfiguration muss noch die Port- und Datenbank-Konfiguration eingetragen werden:&lt;br /&gt;
&lt;br /&gt;
Port: Innerhalb der listener-section den Port 8008 auf 32801 (wie initial definiert) ändern, alles andere beibehalten:&lt;br /&gt;
&lt;br /&gt;
      - port: 32801&lt;br /&gt;
        tls: false&lt;br /&gt;
        bind_addresses: [&#039;::1&#039;, &#039;127.0.0.1&#039;]&lt;br /&gt;
        type: http&lt;br /&gt;
        x_forwarded: true&lt;br /&gt;
&lt;br /&gt;
Postgres-Datenbank:&lt;br /&gt;
&lt;br /&gt;
    database:&lt;br /&gt;
      # The database engine name&lt;br /&gt;
      name: &amp;quot;psycopg2&amp;quot;&lt;br /&gt;
      # Arguments to pass to the engine&lt;br /&gt;
      args:&lt;br /&gt;
        host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
        database: &amp;quot;xyz00_matrixdb&amp;quot;&lt;br /&gt;
        user: &amp;quot;xyz00_matrixuser&amp;quot;&lt;br /&gt;
        password: &amp;quot;meinPasswort&amp;quot;&lt;br /&gt;
        cp_min: 5&lt;br /&gt;
        cp_max: 10&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
Das monitpassword auf jeden Fall durch ein sicheres Passwort ersetzen:&lt;br /&gt;
&lt;br /&gt;
 set daemon 60&lt;br /&gt;
     with start delay 120&lt;br /&gt;
 set logfile /home/pacs/xyz00/users/matrix/monit/var/monit.log&lt;br /&gt;
 set idfile /home/pacs/xyz00/users/matrix/monit/var/monit.id&lt;br /&gt;
 set statefile /home/pacs/xyz00/users/matrix/monit/var/monit.state&lt;br /&gt;
 set mailserver localhost&lt;br /&gt;
 set mail-format { from: monit@matrix.beispiel.de }&lt;br /&gt;
 set alert matrix@matrix.beispiel.de&lt;br /&gt;
 set httpd port 32800 address xyz00.hostsharing.net &lt;br /&gt;
     allow matrix:monitpassword&lt;br /&gt;
 check process synapse with pidfile /home/pacs/xyz00/users/matrix/synapse/homeserver.pid&lt;br /&gt;
     start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl start&#039;&amp;quot;&lt;br /&gt;
     stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/homeserver.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für eine Aufgabe genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 HOME=/home/pacs/xyz00/users/matrix&lt;br /&gt;
 MAILTO=matrix@matrix.beispiel.de&lt;br /&gt;
 &lt;br /&gt;
 @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;~/doms/matrix.beispiel.de/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&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;
 RewriteRule .* http://localhost:32801%{REQUEST_URI} [NE,proxy]&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Well-Known unter beispiel.de ==&lt;br /&gt;
&lt;br /&gt;
Damit die User-Accounts das Format @user:beispiel.de haben, der Server aber unter matrix.beispiel.de erreichbar ist, müssen noch folgende zwei Dateien unter der Domain beispiel.de abgelegt werden:&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/server&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.server&amp;quot;: &amp;quot;matrix.beispiel.de:443&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/client&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.homeserver&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://matrix.beispiel.de&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;m.identity_server&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://vector.im&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für die muss noch der CORS-Header Access-Control-Allow-Origin &amp;quot;*&amp;quot; gesetzt werden, damit die Datei aus beliebigem Riot-Web im Browser abrufbar ist. Dazu in den Ordner .well-known/matrix/ folgende .htaccess anlegen:&lt;br /&gt;
&lt;br /&gt;
 Header set Access-Control-Allow-Origin &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation dazu findet man unter https://matrix.org/docs/spec/server_server/r0.1.2#get-well-known-matrix-server und https://matrix.org/docs/spec/client_server/r0.5.0#get-well-known-matrix-client&lt;br /&gt;
&lt;br /&gt;
== Update von Synapse ==&lt;br /&gt;
&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install -U matrix-synapse[postgres]&lt;br /&gt;
 monit restart synapse&lt;br /&gt;
&lt;br /&gt;
== Riot-Web ==&lt;br /&gt;
&lt;br /&gt;
Riot-Web ist aus Server-Seite eine rein statische html+javascript-Kombination, daher:&lt;br /&gt;
&lt;br /&gt;
* Account und Domain anlegen (separat von der Synapse-Domain)&lt;br /&gt;
* aktuelles riot-web release .tgz herunterladen&lt;br /&gt;
* Symlink von htdocs-ssl auf entpacktes riot-web-Verzeichnis&lt;br /&gt;
* config.sample.json in config.json kopieren und Matrix-Homeserver-Einträge anpassen&lt;br /&gt;
* Piwik aus config.json entfernen&lt;br /&gt;
&lt;br /&gt;
== SAML mit Synapse ==&lt;br /&gt;
&lt;br /&gt;
Synapse unterstützt mit Version 1.1.0 SAML. Dazu wie folgt vorgehen:&lt;br /&gt;
&lt;br /&gt;
Das Paket xmlsec1 muss installiert sein:&lt;br /&gt;
&lt;br /&gt;
 $ xmlsec1  --version&lt;br /&gt;
 xmlsec1 1.2.23 (openssl)&lt;br /&gt;
&lt;br /&gt;
Das Python-Paket pysaml2 installieren&lt;br /&gt;
&lt;br /&gt;
 source synapse/env/bin/activate&lt;br /&gt;
 pip install pysaml2&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die SAML-Direktiven einkommentieren, hier mit dem Beispiel eines SAML IdP unter https://login.beispiel.de/simplesaml/saml2/idp/metadata.php:&lt;br /&gt;
&lt;br /&gt;
 # Once SAML support is enabled, a metadata file will be exposed at&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/metadata.xml, which you may be able to &lt;br /&gt;
 # use to configure your SAML IdP with. Alternatively, you can manually configure&lt;br /&gt;
 # the IdP to use an ACS location of&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/authn_response.&lt;br /&gt;
 #&lt;br /&gt;
 saml2_config:&lt;br /&gt;
   sp_config:&lt;br /&gt;
     # point this to the IdP&#039;s metadata. You can use either a local file or&lt;br /&gt;
     # (preferably) a URL.&lt;br /&gt;
     metadata:&lt;br /&gt;
       #local: [&amp;quot;saml2/idp.xml&amp;quot;]&lt;br /&gt;
       remote:&lt;br /&gt;
         - url: https://login.beispiel.de/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
&lt;br /&gt;
Wichtig ist außerdem, dass die public_baseurl in der homeserver.yaml gesetzt ist, damit Synapse weiß, wie es erreichbar ist und dies in seine SP-Metadaten einbauen kann:&lt;br /&gt;
&lt;br /&gt;
 public_baseurl: https://matrix.beispiel.de/&lt;br /&gt;
&lt;br /&gt;
Die Service-Provider-Konfiguration als XML bekommt man von Synapse dann wie schon in der homeserver.yaml als Kommentar beschrieben, unter https://matrix.beispiel.de/_matrix/saml2/metadata.xml&lt;br /&gt;
&lt;br /&gt;
Diese dann in den SAML-IdP-importieren und dann sollte der Single-Sign-On via SAML funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Federation Sender Worker für Synapse ==&lt;br /&gt;
&lt;br /&gt;
Zur Parallelisierung bietet Synapse das Konzept &amp;quot;Worker&amp;quot; an, die spezifische Aufgaben übernehmen, damit der Hauptprozess diese nicht durchführen muss.&lt;br /&gt;
&lt;br /&gt;
Details dazu: https://github.com/matrix-org/synapse/blob/master/docs/workers.md&lt;br /&gt;
&lt;br /&gt;
Ein einfach einzurichtender Worker, der auch viel Last abfedert, ist der Federation Sender Worker, da das Verschicken des Federation-Traffics 10-50% der Serverlast ausmacht.&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die Worker-Konfiguration aktivieren:&lt;br /&gt;
&lt;br /&gt;
 ## Worker ##&lt;br /&gt;
 worker_app: synapse.app.homeserver&lt;br /&gt;
 daemonize: true&lt;br /&gt;
&lt;br /&gt;
und dazugehörige Listener (Abschnitt listener:) aktivieren:&lt;br /&gt;
&lt;br /&gt;
 # The TCP replication port&lt;br /&gt;
 - port: 32892&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: replication&lt;br /&gt;
 # The HTTP replication port&lt;br /&gt;
 - port: 32893&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: http&lt;br /&gt;
   resources:&lt;br /&gt;
    - names: [replication]&lt;br /&gt;
&lt;br /&gt;
Funktionen, die Worker machen sollen, in der homeserver.yaml deaktivieren:&lt;br /&gt;
&lt;br /&gt;
 # disable federation sending here, use worker for it&lt;br /&gt;
 send_federation: False&lt;br /&gt;
&lt;br /&gt;
Dann Verzeichnis synapse/workers anlegen, darin federation_sender.yaml:&lt;br /&gt;
&lt;br /&gt;
 worker_app: synapse.app.federation_sender&lt;br /&gt;
 &lt;br /&gt;
 # The replication listener on the synapse to talk to.&lt;br /&gt;
 worker_replication_host: 127.0.0.1&lt;br /&gt;
 worker_replication_port: 32892&lt;br /&gt;
 worker_replication_http_port: 32893&lt;br /&gt;
 &lt;br /&gt;
 worker_daemonize: True&lt;br /&gt;
 worker_pid_file: /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
 worker_log_config: /home/pacs/xyz00/users/matrix/synapse/federation_sender.log.config&lt;br /&gt;
&lt;br /&gt;
.monitrc um worker erweitern:&lt;br /&gt;
&lt;br /&gt;
 check process federation_sender with pidfile /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
    start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl -w workers/federation_sender.yaml start&#039;&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/federation_sender.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Monit neu laden und synapse und federation_sender neustarten:&lt;br /&gt;
&lt;br /&gt;
 monit reload&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
Nach Updates ebenfalls immer Hauptprozess und alle Worker neustarten&lt;br /&gt;
&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://matrix.org/docs/projects/server/synapse &lt;br /&gt;
* https://github.com/matrix-org/synapse&lt;br /&gt;
* https://github.com/matrix-org/synapse/blob/master/INSTALL.md&lt;br /&gt;
* https://matrix.org/docs/spec/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=5117</id>
		<title>Matrix Synapse installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=5117"/>
		<updated>2020-04-18T12:25:27Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Python 3.8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Matrix Server &#039;&#039;Synapse&#039;&#039;, der sogenannte &#039;Homeserver&#039;, ist aktuell die einzige vollständige serverseitige Implementierung des Matrix-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Work in Progress|Leider funktioniert die Server-zu-Server-Kommunikation von Synapse hinter dem Apache-Proxy mit den genannten Rewrite-Rules nicht. Bitten Sie dazu den Service,&lt;br /&gt;
Ihren Apache VHost individuell für den Martrix Server anzupassen.&lt;br /&gt;
Weiterhin wird für die aktuelle Version von Synapse Python 3.8 benötigt. Es ist kein Problem sich ein Python 3.8 aus den Sourcen zu kompilieren. Das ist hier nicht noch nicht beschrieben.}}&lt;br /&gt;
&lt;br /&gt;
Synapse wird bei Hostsharing als &#039;&#039;eigener Daemon&#039;&#039; betrieben. Der Betrieb ist im Shared Hosting anmelde- und kostenpflichtig. Daher emfpehlen wir für den Betrieb einen &#039;&#039;Managed Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man den Matrix-Homeserver Synapse auf der Managed Hosting Plattform von Hostsharing installieren kann. Dabei sind die User-IDs nach dem Schema @user:beispiel.de aufgebaut, der Homeserver an sich ist unter matrix.beispiel.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin werden angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-matrix&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-matrix&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;matrix.beispiel.de&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_matrixuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_matrixdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_matrixuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: xyz00.hostsharing.net:32800&lt;br /&gt;
# Synapse: localhost:32801&lt;br /&gt;
&lt;br /&gt;
== Installation von Synapse ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung basierend auf https://github.com/matrix-org/synapse/blob/master/INSTALL.md#installing-from-source&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-matrix&amp;quot; ein Python3 virtualenv erstellen&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/synapse&lt;br /&gt;
 virtualenv -p python3 ~/synapse/env&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install --upgrade setuptools&lt;br /&gt;
&lt;br /&gt;
Synapse und Postgres-Dependencies installieren&lt;br /&gt;
&lt;br /&gt;
 pip install matrix-synapse[postgres]&lt;br /&gt;
&lt;br /&gt;
Initiale Konfiguration mit richtigem server-name &amp;quot;beispiel.de&amp;quot; generieren, außerdem im laufenden Betrieb keine Statistiken an Matrix.org senden&lt;br /&gt;
&lt;br /&gt;
 cd ~/synapse&lt;br /&gt;
 python -m synapse.app.homeserver --server-name beispiel.de --config-path homeserver.yaml --generate-config --report-stats=no&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Synapse ==&lt;br /&gt;
&lt;br /&gt;
In die initial generierte Konfiguration muss noch die Port- und Datenbank-Konfiguration eingetragen werden:&lt;br /&gt;
&lt;br /&gt;
Port: Innerhalb der listener-section den Port 8008 auf 32801 (wie initial definiert) ändern, alles andere beibehalten:&lt;br /&gt;
&lt;br /&gt;
      - port: 32801&lt;br /&gt;
        tls: false&lt;br /&gt;
        bind_addresses: [&#039;::1&#039;, &#039;127.0.0.1&#039;]&lt;br /&gt;
        type: http&lt;br /&gt;
        x_forwarded: true&lt;br /&gt;
&lt;br /&gt;
Postgres-Datenbank:&lt;br /&gt;
&lt;br /&gt;
    database:&lt;br /&gt;
      # The database engine name&lt;br /&gt;
      name: &amp;quot;psycopg2&amp;quot;&lt;br /&gt;
      # Arguments to pass to the engine&lt;br /&gt;
      args:&lt;br /&gt;
        host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
        database: &amp;quot;xyz00_matrixdb&amp;quot;&lt;br /&gt;
        user: &amp;quot;xyz00_matrixuser&amp;quot;&lt;br /&gt;
        password: &amp;quot;meinPasswort&amp;quot;&lt;br /&gt;
        cp_min: 5&lt;br /&gt;
        cp_max: 10&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
Das monitpassword auf jeden Fall durch ein sicheres Passwort ersetzen:&lt;br /&gt;
&lt;br /&gt;
 set daemon 60&lt;br /&gt;
     with start delay 120&lt;br /&gt;
 set logfile /home/pacs/xyz00/users/matrix/monit/var/monit.log&lt;br /&gt;
 set idfile /home/pacs/xyz00/users/matrix/monit/var/monit.id&lt;br /&gt;
 set statefile /home/pacs/xyz00/users/matrix/monit/var/monit.state&lt;br /&gt;
 set mailserver localhost&lt;br /&gt;
 set mail-format { from: monit@matrix.beispiel.de }&lt;br /&gt;
 set alert matrix@matrix.beispiel.de&lt;br /&gt;
 set httpd port 32800 address xyz00.hostsharing.net &lt;br /&gt;
     allow matrix:monitpassword&lt;br /&gt;
 check process synapse with pidfile /home/pacs/xyz00/users/matrix/synapse/homeserver.pid&lt;br /&gt;
     start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl start&#039;&amp;quot;&lt;br /&gt;
     stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/homeserver.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für eine Aufgabe genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 HOME=/home/pacs/xyz00/users/matrix&lt;br /&gt;
 MAILTO=matrix@matrix.beispiel.de&lt;br /&gt;
 &lt;br /&gt;
 @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;~/doms/matrix.beispiel.de/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&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;
 RewriteRule .* http://localhost:32801%{REQUEST_URI} [NE,proxy]&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Well-Known unter beispiel.de ==&lt;br /&gt;
&lt;br /&gt;
Damit die User-Accounts das Format @user:beispiel.de haben, der Server aber unter matrix.beispiel.de erreichbar ist, müssen noch folgende zwei Dateien unter der Domain beispiel.de abgelegt werden:&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/server&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.server&amp;quot;: &amp;quot;matrix.beispiel.de:443&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/client&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.homeserver&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://matrix.beispiel.de&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;m.identity_server&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://vector.im&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für die muss noch der CORS-Header Access-Control-Allow-Origin &amp;quot;*&amp;quot; gesetzt werden, damit die Datei aus beliebigem Riot-Web im Browser abrufbar ist. Dazu in den Ordner .well-known/matrix/ folgende .htaccess anlegen:&lt;br /&gt;
&lt;br /&gt;
 Header set Access-Control-Allow-Origin &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation dazu findet man unter https://matrix.org/docs/spec/server_server/r0.1.2#get-well-known-matrix-server und https://matrix.org/docs/spec/client_server/r0.5.0#get-well-known-matrix-client&lt;br /&gt;
&lt;br /&gt;
== Update von Synapse ==&lt;br /&gt;
&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install -U matrix-synapse[postgres]&lt;br /&gt;
 monit restart synapse&lt;br /&gt;
&lt;br /&gt;
== Riot-Web ==&lt;br /&gt;
&lt;br /&gt;
Riot-Web ist aus Server-Seite eine rein statische html+javascript-Kombination, daher:&lt;br /&gt;
&lt;br /&gt;
* Account und Domain anlegen (separat von der Synapse-Domain)&lt;br /&gt;
* aktuelles riot-web release .tgz herunterladen&lt;br /&gt;
* Symlink von htdocs-ssl auf entpacktes riot-web-Verzeichnis&lt;br /&gt;
* config.sample.json in config.json kopieren und Matrix-Homeserver-Einträge anpassen&lt;br /&gt;
* Piwik aus config.json entfernen&lt;br /&gt;
&lt;br /&gt;
== SAML mit Synapse ==&lt;br /&gt;
&lt;br /&gt;
Synapse unterstützt mit Version 1.1.0 SAML. Dazu wie folgt vorgehen:&lt;br /&gt;
&lt;br /&gt;
Das Paket xmlsec1 muss installiert sein:&lt;br /&gt;
&lt;br /&gt;
 $ xmlsec1  --version&lt;br /&gt;
 xmlsec1 1.2.23 (openssl)&lt;br /&gt;
&lt;br /&gt;
Das Python-Paket pysaml2 installieren&lt;br /&gt;
&lt;br /&gt;
 source synapse/env/bin/activate&lt;br /&gt;
 pip install pysaml2&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die SAML-Direktiven einkommentieren, hier mit dem Beispiel eines SAML IdP unter https://login.beispiel.de/simplesaml/saml2/idp/metadata.php:&lt;br /&gt;
&lt;br /&gt;
 # Once SAML support is enabled, a metadata file will be exposed at&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/metadata.xml, which you may be able to &lt;br /&gt;
 # use to configure your SAML IdP with. Alternatively, you can manually configure&lt;br /&gt;
 # the IdP to use an ACS location of&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/authn_response.&lt;br /&gt;
 #&lt;br /&gt;
 saml2_config:&lt;br /&gt;
   sp_config:&lt;br /&gt;
     # point this to the IdP&#039;s metadata. You can use either a local file or&lt;br /&gt;
     # (preferably) a URL.&lt;br /&gt;
     metadata:&lt;br /&gt;
       #local: [&amp;quot;saml2/idp.xml&amp;quot;]&lt;br /&gt;
       remote:&lt;br /&gt;
         - url: https://login.beispiel.de/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
&lt;br /&gt;
Wichtig ist außerdem, dass die public_baseurl in der homeserver.yaml gesetzt ist, damit Synapse weiß, wie es erreichbar ist und dies in seine SP-Metadaten einbauen kann:&lt;br /&gt;
&lt;br /&gt;
 public_baseurl: https://matrix.beispiel.de/&lt;br /&gt;
&lt;br /&gt;
Die Service-Provider-Konfiguration als XML bekommt man von Synapse dann wie schon in der homeserver.yaml als Kommentar beschrieben, unter https://matrix.beispiel.de/_matrix/saml2/metadata.xml&lt;br /&gt;
&lt;br /&gt;
Diese dann in den SAML-IdP-importieren und dann sollte der Single-Sign-On via SAML funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Federation Sender Worker für Synapse ==&lt;br /&gt;
&lt;br /&gt;
Zur Parallelisierung bietet Synapse das Konzept &amp;quot;Worker&amp;quot; an, die spezifische Aufgaben übernehmen, damit der Hauptprozess diese nicht durchführen muss.&lt;br /&gt;
&lt;br /&gt;
Details dazu: https://github.com/matrix-org/synapse/blob/master/docs/workers.md&lt;br /&gt;
&lt;br /&gt;
Ein einfach einzurichtender Worker, der auch viel Last abfedert, ist der Federation Sender Worker, da das Verschicken des Federation-Traffics 10-50% der Serverlast ausmacht.&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die Worker-Konfiguration aktivieren:&lt;br /&gt;
&lt;br /&gt;
 ## Worker ##&lt;br /&gt;
 worker_app: synapse.app.homeserver&lt;br /&gt;
 daemonize: true&lt;br /&gt;
&lt;br /&gt;
und dazugehörige Listener (Abschnitt listener:) aktivieren:&lt;br /&gt;
&lt;br /&gt;
 # The TCP replication port&lt;br /&gt;
 - port: 32892&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: replication&lt;br /&gt;
 # The HTTP replication port&lt;br /&gt;
 - port: 32893&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: http&lt;br /&gt;
   resources:&lt;br /&gt;
    - names: [replication]&lt;br /&gt;
&lt;br /&gt;
Funktionen, die Worker machen sollen, in der homeserver.yaml deaktivieren:&lt;br /&gt;
&lt;br /&gt;
 # disable federation sending here, use worker for it&lt;br /&gt;
 send_federation: False&lt;br /&gt;
&lt;br /&gt;
Dann Verzeichnis synapse/workers anlegen, darin federation_sender.yaml:&lt;br /&gt;
&lt;br /&gt;
 worker_app: synapse.app.federation_sender&lt;br /&gt;
 &lt;br /&gt;
 # The replication listener on the synapse to talk to.&lt;br /&gt;
 worker_replication_host: 127.0.0.1&lt;br /&gt;
 worker_replication_port: 32892&lt;br /&gt;
 worker_replication_http_port: 32893&lt;br /&gt;
 &lt;br /&gt;
 worker_daemonize: True&lt;br /&gt;
 worker_pid_file: /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
 worker_log_config: /home/pacs/xyz00/users/matrix/synapse/federation_sender.log.config&lt;br /&gt;
&lt;br /&gt;
.monitrc um worker erweitern:&lt;br /&gt;
&lt;br /&gt;
 check process federation_sender with pidfile /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
    start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl -w workers/federation_sender.yaml start&#039;&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/federation_sender.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Monit neu laden und synapse und federation_sender neustarten:&lt;br /&gt;
&lt;br /&gt;
 monit reload&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
Nach Updates ebenfalls immer Hauptprozess und alle Worker neustarten&lt;br /&gt;
&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://matrix.org/docs/projects/server/synapse &lt;br /&gt;
* https://github.com/matrix-org/synapse&lt;br /&gt;
* https://github.com/matrix-org/synapse/blob/master/INSTALL.md&lt;br /&gt;
* https://matrix.org/docs/spec/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=HsadminWeb&amp;diff=4534</id>
		<title>HsadminWeb</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=HsadminWeb&amp;diff=4534"/>
		<updated>2017-11-30T10:43:13Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Link altes Web-Frontend gelöscht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= HSAdmin =&lt;br /&gt;
&lt;br /&gt;
Mit dieser Anwendung werden Hosting-Pakete und Domains bei der Hostsharing eG verwaltet.&lt;br /&gt;
&lt;br /&gt;
Die Anwendung ist zu finden unter: https://admin.hostsharing.net/&lt;br /&gt;
&lt;br /&gt;
Die Bedienung hat sich dahingehend verändert, dass es im linken Bereich&lt;br /&gt;
des Fensters Einstiegsobjekte gibt:&lt;br /&gt;
&lt;br /&gt;
== Kunde/Mitglied ==&lt;br /&gt;
&lt;br /&gt;
Mitglieder der Genossenschaft sehen hier Ihre Adress-Daten, Ihre&lt;br /&gt;
Bankverbindung und die gebuchten Pakete.&lt;br /&gt;
&lt;br /&gt;
== Web-Paket ==&lt;br /&gt;
&lt;br /&gt;
Die Hosting Pakete zur Administration von Benutzern (als&lt;br /&gt;
Postfächer oder Domain-Administratoren),&lt;br /&gt;
Administration von Domains und Datenbanken (MySQL, PostgreSQL)&lt;br /&gt;
&lt;br /&gt;
== Domain ==&lt;br /&gt;
&lt;br /&gt;
Die Domains zur Verwaltung von E-Mail Adressen&lt;br /&gt;
&lt;br /&gt;
Benutzer ohne Rolle &amp;quot;Domain-Administrator&amp;quot; können lediglich über den&lt;br /&gt;
Link unter Ihrem User-Namen oben rechts ihr Passwort ändern.&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Domains&amp;diff=2918</id>
		<title>Domains</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Domains&amp;diff=2918"/>
		<updated>2011-04-23T14:10:41Z</updated>

		<summary type="html">&lt;p&gt;Peh00: Datenbanken und Postfächer werden keine gelöscht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
Die Domainverwaltung bei Hostsharing ist in zwei unabhängige Bereiche aufgeteilt:&lt;br /&gt;
*  Das &amp;quot;Domain-Bestellsystem&amp;quot; zur Vergabe von Aufträgen an Registrierungstellen, die über HS abgerechnet werden.&lt;br /&gt;
*  Die Domaineinrichtung in den HS-Paketen, zur Aufschaltung von Domains auf HS Name-, Mail- und Webserver.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Hostern ist eine Domainbestellung teilweise eine feste Kopplung der Registrierung einer Domain mit Konnektierung und Aufschaltung auf bestimmte Nameserver und Webpakete. HS ist hier wesentlich flexibler. Der über HS angebotene Zugang zur Registrierungsverwaltung &amp;quot;Domain-Bestellsystem&amp;quot; (Domain-Robot Webfrontend) erlaubt es registrierte Domains auf frei wählbare DNS-Server zu konnektieren. Auf den HS Nameservern und Paketen lassen sich gleichzeitig beliebige weltweit registrierbare Domains einrichten. Hostsharing unterstützt damit die Einrichtetung und den Betrieb von Domains die von beliebigen (auch sehr exotischen) Registrierungsstellen verwaltet und abgerechnet werden können.&lt;br /&gt;
&lt;br /&gt;
Typische Domainaktionen beinhalten daher ein paar koordinierte Änderungen in der Domainregistrierung und HS-Einrichtung, wie folgend aufgezeigt. &lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gruen||Der verbreitete Ausdruck KK (Konnektivitätskoordination) ist eigentlich veraltet, neu heißt es CHPROV (change provider).}}&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
Zu Domains gibt es [[FAQ#Domains|hier]].&lt;br /&gt;
&lt;br /&gt;
= Domainregistrierung oder eingehender Transfer (KK) =&lt;br /&gt;
&lt;br /&gt;
Soll eine neue Domain registriert oder eingehend transferiert werden, sollte die Domain bei Hostsharing eingerichtet werden, bevor die Registrierung letztlich eingeleitet bzw. aktualisiert wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. ggf. bereits registrierte Domain zum Transfer freischalten&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Dem vorherigen Provider muss die Transfer-Absicht mitgeteilt werden. Dafür gibt es bei den jeweiligen Providern etablierte Verfahren, die dort zu erfragen sind. Bspw. bekommt man dort eine AuthCode für die Domain mitgeteilt. Gibt es dort kein etabliertes Verfahren, so kann man wie folgt verfahren:&lt;br /&gt;
&lt;br /&gt;
:* Formlos per Brief/Fax den Transfer ankündigen und um Zustimmung bitten, z.B.:&lt;br /&gt;
:::&amp;quot;Hiermit kündige ich als Owner/Admin-C den Transfer (KK) der Domain example.com zur Hostsharing eG, vertreten durch den Registrar Internetwire, an. &lt;br /&gt;
::: Ich bitte, dem folgenden Transferantrag zuzustimmen.&amp;quot; &lt;br /&gt;
:* Nach Absendung der Transfer-Ankündigung 3-4 Tage warten, um dem alten Provider  Zeit zu geben auf den Transferantrag zu reagieren. &lt;br /&gt;
:* Wenn dem Transfer nicht stattgegeben wird, den Registrar der Domain herausfinden (z.B. über die Nameserver oder zuständige Registry) und bitten den Transfer zuzulassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Einrichten der Domain auf den HS Servern&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auf der [[Shell|Kommandozeile]]:&lt;br /&gt;
  hsadmin -c domain.add --set:user=&amp;quot;&amp;lt;xyz00-admin&amp;gt;&amp;quot; --set:name=&amp;quot;&amp;lt;example.com&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
oder mit dem [[WebFrontend | HSadmin Webfrontend ]].&lt;br /&gt;
&lt;br /&gt;
Bei diesem Vorgang werden die Verzeichnisse für die Domain im eigenen Paket angelegt und die Nameserver von HS erhalten die notwendigen Updates. Letzteres ist Voraussetzung für den nächsten Schritt.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gruen|Bei Fehler ... | Bei in [[hsadmin]] hängenden Domainaufträgen bitte Mail an mailto://service@hostsharing.net}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Neuregistrierung oder Transfer (KK) einleiten&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Im [http://www.domain-bestellsystem.de Domainbestellsystem] mit dem über HS vergebenen Account anmelden. Es handelt sich dabei nicht um den xyz00 Nutzer sondern der Nutzername ist hs-xyz.&lt;br /&gt;
&lt;br /&gt;
:* Neuregistrierung/Transfer(KK) einleiten. (Für den Transfer ist hier i.d.R. der zuvor in Erfahrung gebrachte AuthCode notwendig.)&lt;br /&gt;
&lt;br /&gt;
:* Bei der allerersten Domainregistrierung im Domainbestellsystem müssen die Hostsharing Nameserver noch manuell eingegeben werden. Es sind dies:&lt;br /&gt;
&lt;br /&gt;
     dns1.hostsharing.net&lt;br /&gt;
     dns2.hostsharing.net&lt;br /&gt;
     dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. E-Mail-Adressen der neu eingerichteten Domain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ist die Domain bei Hostsharing aufgeschaltet, sind standardmäßig nur die E-Mail-Adressen webmaster@..., postmaster@... und abuse@... eingerichtet. Weitere Adressen können mit [[Hsadmin-mail]] konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
= Abgehender Transfer (KK) oder Domainkündigung/-löschung =&lt;br /&gt;
&lt;br /&gt;
Ausgehende Domaintransfers sind unabhängig von den Domaineinrichtungen bei HS möglich. Eine Domainregistrierung kann also über eine andere Registrierungsverwaltung abgerechnet werden und weiter bei HS eingerichtet und betrieben werden. Falls bei einem ausgehendem Transfer eine Domain jedoch auch nicht mehr weiter bei Hostsharing gehostet werden soll aber eine möglichst durchgehende Erreichbarkeit sichergestellt werden soll, ist es wichtig, dass die neuen (externen) DNS-Konnektierungen und Webserveraufschaltungen in Betrieb sind und alle alten DNS Caches ausgelaufen sind, bevor die Einrichtung bei HS entfernt wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Domainlöschung beauftragen bzw. den Transfer freischalten&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Im [http://www.domain-bestellsystem.de Domainbestellsystem] mit dem über HS vergebenen Account anmelden.&lt;br /&gt;
&lt;br /&gt;
:* Die gewünschte Aktion einleiten (Löschung/Transit bzw. Domain für den Transfer freigeben/AuthCode erstellen lassen).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. ggf. Domaintransfer (KK)  im externen Abrechnungssystem beauftragen (mit oder ohne externe DNS/Webserver Aufschaltung)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Hierfür ist i.d.R. der zuvor erstellte AuthCode notwendig.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. ggf. Domaineinrichtung auf den HS Servern entfernen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;pre&amp;gt;hsadmin -c domain.delete &amp;quot;&amp;lt;example.com&amp;gt;&amp;quot;&amp;lt;/pre&amp;gt; oder mit dem HSadmin Webfrontend. Dies entfernt die Domainverzeichnisse aus dem Webserverpaket und die Domain aus dem DNS- und Mailservern bei Hostsharing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= &amp;quot;Handles&amp;quot; in der Registrierungsverwaltung =&lt;br /&gt;
&lt;br /&gt;
Die verschiednenen Registrierungstellen vergeben i.d.R. automatisch Registrierschlüssel -die sog. &amp;quot;Handles&amp;quot;- für jeden neuen Kontaktdatensatz (owner, admin-c, tech-c, zone-c Datensätze). Diese kann man bei weiteren Registrierungen verwenden um sich auf die gleichen Kontaktdaten zu beziehen. Die Internetwire-internen Handles im Domain-Bestellsystem beginnen mit einer Buchstaben/Zahlenkombination und enden mit @HANDLES.DE. Sie dienen dazu auch Kontaktdatensätze, die bei verschiedenen Registrierungsstellen hinterlegt sind unter einem Handle im Internetwire-System zu verwalten.&lt;br /&gt;
&lt;br /&gt;
= Weitere Domaineinrichtungs-Aktionen =&lt;br /&gt;
&lt;br /&gt;
== eigene Verwaltung der Zonefiles ==&lt;br /&gt;
&lt;br /&gt;
Siehe [[Verwalten der Zonendaten]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== lokale Subdomains aufschalten ==&lt;br /&gt;
&lt;br /&gt;
Lokale Subdomains können:&lt;br /&gt;
&lt;br /&gt;
* vom Domainadmin selbst unter ~/doms/example.net/subs/ durch das Anlegen eines Verzeichnisses erzeugt werden&lt;br /&gt;
* vom Paketadmin einem anderen Domainadmin aufgeschaltet werden, auch in einem anderen Paket&lt;br /&gt;
&lt;br /&gt;
:: Es ist empfehlenswert vor Änderungen am Zonefile die Seite [[Verwalten_der_Zonendaten]]  aufmerksam zu lesen &#039;&#039;&#039;und&#039;&#039;&#039; zu verstehen!&lt;br /&gt;
&lt;br /&gt;
:::Die Subdomain muss vom Paket-Admin/Domain-Admin durch folgende Ergänzung &#039;&#039;&#039;am Ende&#039;&#039;&#039; des Zonefile der Domain delegiert werden:&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;pre&amp;gt;&lt;br /&gt;
:::[...]&lt;br /&gt;
:::pic IN NS {HS_DNS1_HOSTNAME}.&lt;br /&gt;
:::pic IN NS {HS_DNS2_HOSTNAME}.&lt;br /&gt;
:::pic IN NS {HS_DNS3_HOSTNAME}.&lt;br /&gt;
:::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::Prüfen, ob die Änderung des Zonefiles erfolgreich war:&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;pre&amp;gt;xyz00-abc@h01&amp;gt; dig @dns1.hostsharing.net &amp;quot;pic.example.org&amp;quot; NS | grep &#039;^pic.example.org&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::Bei Ausgabe&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;pre&amp;gt;&lt;br /&gt;
:::pic.example.org.            14400   IN      NS      dns1.hostsharing.net.&lt;br /&gt;
:::pic.example.org.            14400   IN      NS      dns2.hostsharing.net.&lt;br /&gt;
:::pic.example.org.            14400   IN      NS      dns3.hostsharing.net.&lt;br /&gt;
:::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::kann mit &amp;quot;Einrichten der Domain auf den HS Servern&amp;quot; per hsadmin oder WebFrontend fortgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Domains neu zuordnen (Domain-Admin ändern, Paketzuordnung ändern) ==&lt;br /&gt;
&lt;br /&gt;
Domain-Verschiebungen (neu zuordnen) wird auch über die DNS Delegation gemacht und erfolgen grundsätzlich über HSAdmin durch Löschen und Neuanlegen der Domain vom Paketadmin bzw. den&lt;br /&gt;
Paketadmins . &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Das ~/doms/example.org Verzeichnis, also alle Dateien im Webspace werden bei dieser Aktion komplett gelöscht. Sie müssen vorher manuell (am Besten in einem tar-archiv) gesichert werden!&lt;br /&gt;
&lt;br /&gt;
Verschiebungen über den HS-Service (service@hostsharing.net), etwa zur Verkürzung des&lt;br /&gt;
Ausfallzeiten, sind gemäß Hostmaster-Stundensatz kostenpflichtig.&lt;br /&gt;
&lt;br /&gt;
== Status der Domaineinrichtung ==&lt;br /&gt;
&lt;br /&gt;
Der Domaineinrichtungs-Status kann  mit unserem hsadmin-[[WebFrontend]] eingesehen werden oder mit [[hsadmin]] auf der Kommandozeile der [[Shell]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hsadmin -c domain.search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adresse von Owner / Admin-C ändern ==&lt;br /&gt;
&lt;br /&gt;
Die Änderung der Adressdaten erfolgt, indem die Adressdaten des zugehörigen Handles im [https://www.domain-bestellsystem.de Domain-Bestellsystem] aktualisiert werden. Die Logindaten &lt;br /&gt;
sind im Februar 2010 an alle HS-Mitglieder versand worden.&lt;br /&gt;
&lt;br /&gt;
= Weiterführende Links =&lt;br /&gt;
&lt;br /&gt;
[[Verzeichnis-Struktur]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Hsadmin]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Peh00</name></author>
	</entry>
</feed>