<?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=Web</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=Web"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Web"/>
	<updated>2026-04-28T16:09:26Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6385</id>
		<title>Anpassungen von Anwendungen nach Debian Bookworm Upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6385"/>
		<updated>2024-01-30T11:49:43Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Fall: Verwendung der Standard-PHP-Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wer ist für was verantwortlich? ==&lt;br /&gt;
&lt;br /&gt;
Die Hostmaster aktualisieren das Betriebssytem. &lt;br /&gt;
&lt;br /&gt;
Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden. &lt;br /&gt;
&lt;br /&gt;
Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein [https://www.hostsharing.net/service/webmaster-on-demand/ Webmaster On Demand (WoD)] Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail mit einem Auftrag an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer sie läuft oder um welche Domain/Subdomain es sich handelt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an PHP-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Unter Debian 12 (&amp;quot;Bookworm&amp;quot;) ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.}}&lt;br /&gt;
&lt;br /&gt;
Wenn die PHP-Anwendung nach dem Upgrade nicht mehr läuft, Fehler anzeigt oder sogar eine ungeeignete PHP-Version moniert sind zwei Fälle zu unterscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Fall: Verwendung der Standard-PHP-Version ===&lt;br /&gt;
&lt;br /&gt;
Die Anwendung lief vormals mit der PHP-Version 7.4 (alter Standard) und verweigert nun mit der PHP-Version 8.2 (neuer Standard) den Dienst.&lt;br /&gt;
Dann kann über das Admin-Tool HSAdmin in den Domain-Einstellungen explizit die Verwendung der PHP-Version 7.4 für die betroffene Domain oder Subdomain festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Fall: Verwendung einer individuellen PHP-Version ===&lt;br /&gt;
&lt;br /&gt;
Die Anwendung lief vormals einer individuellen PHP-Version und verweigert den Dienst.&lt;br /&gt;
&lt;br /&gt;
Zunächst empfiehlt es sich aus der .htaccess-Datei zur Domain den Verweis auf die individuelle PHP-Version zu entfernen, indem sinngemäß folgende Zeilen entfernt werden:&lt;br /&gt;
&lt;br /&gt;
  nano doms/meinedomain.de/.htaccess&lt;br /&gt;
          # diese Zeilen entfernen:&lt;br /&gt;
          AddType application/x-httpd-php81 .php&lt;br /&gt;
          Action application/x-httpd-php81 /fastcgi-bin/phpstub81&lt;br /&gt;
&lt;br /&gt;
Wenn die Anwendung dann noch immer nicht lauffähig ist, kann die PHP-Version wie im vorangehenden Abschnitt beschrieben, über das Admin-Tool HSAdmin gewechselt werden.&lt;br /&gt;
&lt;br /&gt;
=== Allgemeine Empfehlung ===&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich generell, (nicht nur) PHP-Anwendungen auf dem aktuellen Stand zu halten (Updates) und nach Möglichkeit, die Standard-PHP-Version im Admin-Tool HSAdmin auszuwählen.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Python-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Python 2.7 steht unter Debian 12 (&amp;quot;Bookworm&amp;quot;) nicht mehr zur Verfügung!}}&lt;br /&gt;
&lt;br /&gt;
Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11&lt;br /&gt;
&lt;br /&gt;
Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: [[Eigenes_Python_installieren#Installation_mit_pyenv]]&lt;br /&gt;
&lt;br /&gt;
Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
In der .profile oder .bash_profile sollte diese Variable gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
  export PYTHONIOENCODING=utf-8&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Python mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter &amp;lt;code&amp;gt;PassengerPython&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;PassengerFriendlyErrorPages&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt;-Datei gesetzt werden. Das führt zu einem 500er Fehler.&lt;br /&gt;
&lt;br /&gt;
Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; Datei gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt&lt;br /&gt;
&lt;br /&gt;
Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3&amp;lt;/code&amp;gt;, oder bei einem Virtual Environment: &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Versionsnummer, User und Paket im Pfad anpassen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Ruby-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek. &lt;br /&gt;
&lt;br /&gt;
Daher muss die rbenv-Umgebung neu installiert werden, siehe [[RubyRBEnv]].&lt;br /&gt;
&lt;br /&gt;
Es müssen auch meistens die Ruby Gems neu installiert werden.&lt;br /&gt;
&lt;br /&gt;
  # erst löschen&lt;br /&gt;
  rm -Rf ~/.gem/&lt;br /&gt;
  rm -Rf ~/.bundle&lt;br /&gt;
  rm -Rf ~/.local/state/gem/&lt;br /&gt;
  &lt;br /&gt;
  # dann installieren&lt;br /&gt;
  cd meineapp # z.B. zammad&lt;br /&gt;
  export RAILS_ENV=&amp;quot;production&amp;quot;&lt;br /&gt;
  bundle install&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Ruby mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen. Sie müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Ruby Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.rbenv/shims/ruby&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Node.js-Anwendungen ==&lt;br /&gt;
Es muss das Verzeichns &amp;lt;code&amp;gt;.nvm&amp;lt;/code&amp;gt; im Home Verzeichnis gelöscht werden, und &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt; im Projekt.&lt;br /&gt;
&lt;br /&gt;
Dann Node wieder neu installieren, siehe [[NodeJS]].&lt;br /&gt;
&lt;br /&gt;
Dann &amp;lt;code&amp;gt;yarn install&amp;lt;/code&amp;gt; bzw andere Befehle ausführen, um die Node Module wieder zu installieren.&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Node.js mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen, und müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Node Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Java Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
=== Eigenes Java Development Kit (JDK) installieren ===&lt;br /&gt;
&lt;br /&gt;
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere JDKs können hier als Binary für Linux/x64 heruntergeladen werden: https://jdk.java.net/archive/&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für JDK 11:&lt;br /&gt;
&lt;br /&gt;
   mkdir ~/bin&lt;br /&gt;
   cd bin&lt;br /&gt;
   wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
   tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
&lt;br /&gt;
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/&lt;br /&gt;
&lt;br /&gt;
Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11&lt;br /&gt;
&lt;br /&gt;
=== Eigenen Tomcat installieren ===&lt;br /&gt;
&lt;br /&gt;
Bei Debian Buster lief Tomcat 9, auf Debian Bookworm steht Tomcat 10 zur Verfügung. Die beiden Versionen sind nicht kompatibel. Tomcat 9 implementiert Java EE 8; bei Tomcat 10 ist es Jakarta EE 9. Aus lizenzrechtlichen Gründen wurden alle Java-Packages aus den Java-EE-Spezifikationen von &amp;lt;code&amp;gt;javax.&amp;lt;/code&amp;gt; nach &amp;lt;code&amp;gt;jakarta.&amp;lt;/code&amp;gt; umbenannt.&lt;br /&gt;
&lt;br /&gt;
Für eigene Anwendungen empfehlen wir, die Software entsprechend anzupassen und neu zu kompilieren. Für Software aus anderen Quellen kann das Tool &amp;lt;code&amp;gt;javax2jakarta&amp;lt;/code&amp;gt; diesen Schritt in der Regel leisten.&lt;br /&gt;
&lt;br /&gt;
Wenn die Migration nicht möglich oder nicht gewünscht ist, kann leicht ein vollständiger Tomcat 9 pro User installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
    mv tomcat tomcat.bak&lt;br /&gt;
    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz&lt;br /&gt;
    mv apache-tomcat-9.0.84 tomcat&lt;br /&gt;
    cp tomcat.bak/conf/server.xml tomcat/conf/&lt;br /&gt;
    cp tomcat.bak/conf/setenv.sh tomcat/conf/&lt;br /&gt;
    cp -R tomcat.bak/webapps tomcat&lt;br /&gt;
&lt;br /&gt;
Bitte darauf achten, ob noch weitere Konfigurationsdateien kopiert werden und Anpassungen an der context.xml und web.xml übernommen werden müssen.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Redis-Diensten ==&lt;br /&gt;
&lt;br /&gt;
Falls ein Redis-Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls müssen in der Datei &amp;lt;code&amp;gt;redis.conf&amp;lt;/code&amp;gt; relative Pfade in absolute Pfade geändert werden, falls dies nicht bereits der Fall ist (z.B. für &amp;lt;code&amp;gt;logfile&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unixsocket&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Aktualisierung von MongoDB ==&lt;br /&gt;
&lt;br /&gt;
MongoDB wird bei uns nicht vom Betriebssystem bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Falls MongoDB verwendet wird, müssen neue Binaries heruntergeladen werden. Dabei ist die Version für Ubuntu 22.04 zu verwenden, da es keine Version für Debian 12 (Bookworm) gibt: siehe https://www.mongodb.com/try/download/community&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6384</id>
		<title>Anpassungen von Anwendungen nach Debian Bookworm Upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6384"/>
		<updated>2024-01-30T11:47:51Z</updated>

		<summary type="html">&lt;p&gt;Web: PHP überarbeitet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wer ist für was verantwortlich? ==&lt;br /&gt;
&lt;br /&gt;
Die Hostmaster aktualisieren das Betriebssytem. &lt;br /&gt;
&lt;br /&gt;
Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden. &lt;br /&gt;
&lt;br /&gt;
Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein [https://www.hostsharing.net/service/webmaster-on-demand/ Webmaster On Demand (WoD)] Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail mit einem Auftrag an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer sie läuft oder um welche Domain/Subdomain es sich handelt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an PHP-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Unter Debian 12 (&amp;quot;Bookworm&amp;quot;) ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.}}&lt;br /&gt;
&lt;br /&gt;
Wenn die PHP-Anwendung nach dem Upgrade nicht mehr läuft, Fehler anzeigt oder sogar eine ungeeignete PHP-Version moniert sind zwei Fälle zu unterscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Fall: Verwendung der Standard-PHP-Version ===&lt;br /&gt;
&lt;br /&gt;
Die Anwendung lief vormals mit der PHP-Version 7.4 und verweigert nun mit der PHP-Version 7.4 den Dienst.&lt;br /&gt;
Dann kann über das Admin-Tool HSAdmin in den Domain-Einstellungen explizit die Verwendung der PHP-Version 7.4 für die betroffene Domain oder Subdomain festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Fall: Verwendung einer individuellen PHP-Version ===&lt;br /&gt;
&lt;br /&gt;
Die Anwendung lief vormals einer individuellen PHP-Version und verweigert den Dienst.&lt;br /&gt;
&lt;br /&gt;
Zunächst empfiehlt es sich aus der .htaccess-Datei zur Domain den Verweis auf die individuelle PHP-Version zu entfernen, indem sinngemäß folgende Zeilen entfernt werden:&lt;br /&gt;
&lt;br /&gt;
  nano doms/meinedomain.de/.htaccess&lt;br /&gt;
          # diese Zeilen entfernen:&lt;br /&gt;
          AddType application/x-httpd-php81 .php&lt;br /&gt;
          Action application/x-httpd-php81 /fastcgi-bin/phpstub81&lt;br /&gt;
&lt;br /&gt;
Wenn die Anwendung dann noch immer nicht lauffähig ist, kann die PHP-Version wie im vorangehenden Abschnitt beschrieben, über das Admin-Tool HSAdmin gewechselt werden.&lt;br /&gt;
&lt;br /&gt;
=== Allgemeine Empfehlung ===&lt;br /&gt;
&lt;br /&gt;
Es empfiehlt sich generell, (nicht nur) PHP-Anwendungen auf dem aktuellen Stand zu halten (Updates) und nach Möglichkeit, die Standard-PHP-Version im Admin-Tool HSAdmin auszuwählen.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Python-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Python 2.7 steht unter Debian 12 (&amp;quot;Bookworm&amp;quot;) nicht mehr zur Verfügung!}}&lt;br /&gt;
&lt;br /&gt;
Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11&lt;br /&gt;
&lt;br /&gt;
Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: [[Eigenes_Python_installieren#Installation_mit_pyenv]]&lt;br /&gt;
&lt;br /&gt;
Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
In der .profile oder .bash_profile sollte diese Variable gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
  export PYTHONIOENCODING=utf-8&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Python mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter &amp;lt;code&amp;gt;PassengerPython&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;PassengerFriendlyErrorPages&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt;-Datei gesetzt werden. Das führt zu einem 500er Fehler.&lt;br /&gt;
&lt;br /&gt;
Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; Datei gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt&lt;br /&gt;
&lt;br /&gt;
Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3&amp;lt;/code&amp;gt;, oder bei einem Virtual Environment: &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Versionsnummer, User und Paket im Pfad anpassen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Ruby-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek. &lt;br /&gt;
&lt;br /&gt;
Daher muss die rbenv-Umgebung neu installiert werden, siehe [[RubyRBEnv]].&lt;br /&gt;
&lt;br /&gt;
Es müssen auch meistens die Ruby Gems neu installiert werden.&lt;br /&gt;
&lt;br /&gt;
  # erst löschen&lt;br /&gt;
  rm -Rf ~/.gem/&lt;br /&gt;
  rm -Rf ~/.bundle&lt;br /&gt;
  rm -Rf ~/.local/state/gem/&lt;br /&gt;
  &lt;br /&gt;
  # dann installieren&lt;br /&gt;
  cd meineapp # z.B. zammad&lt;br /&gt;
  export RAILS_ENV=&amp;quot;production&amp;quot;&lt;br /&gt;
  bundle install&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Ruby mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen. Sie müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Ruby Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.rbenv/shims/ruby&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Node.js-Anwendungen ==&lt;br /&gt;
Es muss das Verzeichns &amp;lt;code&amp;gt;.nvm&amp;lt;/code&amp;gt; im Home Verzeichnis gelöscht werden, und &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt; im Projekt.&lt;br /&gt;
&lt;br /&gt;
Dann Node wieder neu installieren, siehe [[NodeJS]].&lt;br /&gt;
&lt;br /&gt;
Dann &amp;lt;code&amp;gt;yarn install&amp;lt;/code&amp;gt; bzw andere Befehle ausführen, um die Node Module wieder zu installieren.&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Node.js mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen, und müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Node Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Java Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
=== Eigenes Java Development Kit (JDK) installieren ===&lt;br /&gt;
&lt;br /&gt;
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere JDKs können hier als Binary für Linux/x64 heruntergeladen werden: https://jdk.java.net/archive/&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für JDK 11:&lt;br /&gt;
&lt;br /&gt;
   mkdir ~/bin&lt;br /&gt;
   cd bin&lt;br /&gt;
   wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
   tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
&lt;br /&gt;
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/&lt;br /&gt;
&lt;br /&gt;
Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11&lt;br /&gt;
&lt;br /&gt;
=== Eigenen Tomcat installieren ===&lt;br /&gt;
&lt;br /&gt;
Bei Debian Buster lief Tomcat 9, auf Debian Bookworm steht Tomcat 10 zur Verfügung. Die beiden Versionen sind nicht kompatibel. Tomcat 9 implementiert Java EE 8; bei Tomcat 10 ist es Jakarta EE 9. Aus lizenzrechtlichen Gründen wurden alle Java-Packages aus den Java-EE-Spezifikationen von &amp;lt;code&amp;gt;javax.&amp;lt;/code&amp;gt; nach &amp;lt;code&amp;gt;jakarta.&amp;lt;/code&amp;gt; umbenannt.&lt;br /&gt;
&lt;br /&gt;
Für eigene Anwendungen empfehlen wir, die Software entsprechend anzupassen und neu zu kompilieren. Für Software aus anderen Quellen kann das Tool &amp;lt;code&amp;gt;javax2jakarta&amp;lt;/code&amp;gt; diesen Schritt in der Regel leisten.&lt;br /&gt;
&lt;br /&gt;
Wenn die Migration nicht möglich oder nicht gewünscht ist, kann leicht ein vollständiger Tomcat 9 pro User installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
    mv tomcat tomcat.bak&lt;br /&gt;
    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz&lt;br /&gt;
    mv apache-tomcat-9.0.84 tomcat&lt;br /&gt;
    cp tomcat.bak/conf/server.xml tomcat/conf/&lt;br /&gt;
    cp tomcat.bak/conf/setenv.sh tomcat/conf/&lt;br /&gt;
    cp -R tomcat.bak/webapps tomcat&lt;br /&gt;
&lt;br /&gt;
Bitte darauf achten, ob noch weitere Konfigurationsdateien kopiert werden und Anpassungen an der context.xml und web.xml übernommen werden müssen.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Redis-Diensten ==&lt;br /&gt;
&lt;br /&gt;
Falls ein Redis-Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls müssen in der Datei &amp;lt;code&amp;gt;redis.conf&amp;lt;/code&amp;gt; relative Pfade in absolute Pfade geändert werden, falls dies nicht bereits der Fall ist (z.B. für &amp;lt;code&amp;gt;logfile&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unixsocket&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Aktualisierung von MongoDB ==&lt;br /&gt;
&lt;br /&gt;
MongoDB wird bei uns nicht vom Betriebssystem bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Falls MongoDB verwendet wird, müssen neue Binaries heruntergeladen werden. Dabei ist die Version für Ubuntu 22.04 zu verwenden, da es keine Version für Debian 12 (Bookworm) gibt: siehe https://www.mongodb.com/try/download/community&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6383</id>
		<title>Anpassungen von Anwendungen nach Debian Bookworm Upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6383"/>
		<updated>2024-01-30T11:35:05Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wer ist für was verantwortlich? ==&lt;br /&gt;
&lt;br /&gt;
Die Hostmaster aktualisieren das Betriebssytem. &lt;br /&gt;
&lt;br /&gt;
Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden. &lt;br /&gt;
&lt;br /&gt;
Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein [https://www.hostsharing.net/service/webmaster-on-demand/ Webmaster On Demand (WoD)] Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail mit einem Auftrag an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer sie läuft oder um welche Domain/Subdomain es sich handelt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an PHP-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Unter Debian 12 (&amp;quot;Bookworm&amp;quot;) ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.}}&lt;br /&gt;
&lt;br /&gt;
In der .htaccess Datei müssen die Zeilen mit AddType und Action für PHP entfernt werden:&lt;br /&gt;
&lt;br /&gt;
  nano doms/meinedomain.de/.htaccess&lt;br /&gt;
          # diese Zeilen entfernen:&lt;br /&gt;
          AddType application/x-httpd-php81 .php&lt;br /&gt;
          Action application/x-httpd-php81 /fastcgi-bin/phpstub81&lt;br /&gt;
&lt;br /&gt;
Wenn bisher der voreingestellte phpstub verwendet wurde, lief die Seite bisher auf PHP 7.4. Nun würde sie auf PHP 8.2 laufen. Falls die Anwendung das nicht unterstützt, muss für die Domain in HSAdmin die gewünschte PHP Version in der Liste bei &amp;quot;FastCGI PHP-Interpreter&amp;quot; gewählt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Python-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Python 2.7 steht unter Debian 12 (&amp;quot;Bookworm&amp;quot;) nicht mehr zur Verfügung!}}&lt;br /&gt;
&lt;br /&gt;
Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11&lt;br /&gt;
&lt;br /&gt;
Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: [[Eigenes_Python_installieren#Installation_mit_pyenv]]&lt;br /&gt;
&lt;br /&gt;
Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
In der .profile oder .bash_profile sollte diese Variable gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
  export PYTHONIOENCODING=utf-8&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Python mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter &amp;lt;code&amp;gt;PassengerPython&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;PassengerFriendlyErrorPages&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt;-Datei gesetzt werden. Das führt zu einem 500er Fehler.&lt;br /&gt;
&lt;br /&gt;
Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; Datei gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt&lt;br /&gt;
&lt;br /&gt;
Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3&amp;lt;/code&amp;gt;, oder bei einem Virtual Environment: &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Versionsnummer, User und Paket im Pfad anpassen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Ruby-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek. &lt;br /&gt;
&lt;br /&gt;
Daher muss die rbenv-Umgebung neu installiert werden, siehe [[RubyRBEnv]].&lt;br /&gt;
&lt;br /&gt;
Es müssen auch meistens die Ruby Gems neu installiert werden.&lt;br /&gt;
&lt;br /&gt;
  # erst löschen&lt;br /&gt;
  rm -Rf ~/.gem/&lt;br /&gt;
  rm -Rf ~/.bundle&lt;br /&gt;
  rm -Rf ~/.local/state/gem/&lt;br /&gt;
  &lt;br /&gt;
  # dann installieren&lt;br /&gt;
  cd meineapp # z.B. zammad&lt;br /&gt;
  export RAILS_ENV=&amp;quot;production&amp;quot;&lt;br /&gt;
  bundle install&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Ruby mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen. Sie müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Ruby Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.rbenv/shims/ruby&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Node.js-Anwendungen ==&lt;br /&gt;
Es muss das Verzeichns &amp;lt;code&amp;gt;.nvm&amp;lt;/code&amp;gt; im Home Verzeichnis gelöscht werden, und &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt; im Projekt.&lt;br /&gt;
&lt;br /&gt;
Dann Node wieder neu installieren, siehe [[NodeJS]].&lt;br /&gt;
&lt;br /&gt;
Dann &amp;lt;code&amp;gt;yarn install&amp;lt;/code&amp;gt; bzw andere Befehle ausführen, um die Node Module wieder zu installieren.&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Node.js mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen, und müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Node Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Java Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
=== Eigenes Java Development Kit (JDK) installieren ===&lt;br /&gt;
&lt;br /&gt;
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere JDKs können hier als Binary für Linux/x64 heruntergeladen werden: https://jdk.java.net/archive/&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für JDK 11:&lt;br /&gt;
&lt;br /&gt;
   mkdir ~/bin&lt;br /&gt;
   cd bin&lt;br /&gt;
   wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
   tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
&lt;br /&gt;
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/&lt;br /&gt;
&lt;br /&gt;
Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11&lt;br /&gt;
&lt;br /&gt;
=== Eigenen Tomcat installieren ===&lt;br /&gt;
&lt;br /&gt;
Bei Debian Buster lief Tomcat 9, auf Debian Bookworm steht Tomcat 10 zur Verfügung. Die beiden Versionen sind nicht kompatibel. Tomcat 9 implementiert Java EE 8; bei Tomcat 10 ist es Jakarta EE 9. Aus lizenzrechtlichen Gründen wurden alle Java-Packages aus den Java-EE-Spezifikationen von &amp;lt;code&amp;gt;javax.&amp;lt;/code&amp;gt; nach &amp;lt;code&amp;gt;jakarta.&amp;lt;/code&amp;gt; umbenannt.&lt;br /&gt;
&lt;br /&gt;
Für eigene Anwendungen empfehlen wir, die Software entsprechend anzupassen und neu zu kompilieren. Für Software aus anderen Quellen kann das Tool &amp;lt;code&amp;gt;javax2jakarta&amp;lt;/code&amp;gt; diesen Schritt in der Regel leisten.&lt;br /&gt;
&lt;br /&gt;
Wenn die Migration nicht möglich oder nicht gewünscht ist, kann leicht ein vollständiger Tomcat 9 pro User installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
    mv tomcat tomcat.bak&lt;br /&gt;
    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz&lt;br /&gt;
    mv apache-tomcat-9.0.84 tomcat&lt;br /&gt;
    cp tomcat.bak/conf/server.xml tomcat/conf/&lt;br /&gt;
    cp tomcat.bak/conf/setenv.sh tomcat/conf/&lt;br /&gt;
    cp -R tomcat.bak/webapps tomcat&lt;br /&gt;
&lt;br /&gt;
Bitte darauf achten, ob noch weitere Konfigurationsdateien kopiert werden und Anpassungen an der context.xml und web.xml übernommen werden müssen.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Redis-Diensten ==&lt;br /&gt;
&lt;br /&gt;
Falls ein Redis-Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls müssen in der Datei &amp;lt;code&amp;gt;redis.conf&amp;lt;/code&amp;gt; relative Pfade in absolute Pfade geändert werden, falls dies nicht bereits der Fall ist (z.B. für &amp;lt;code&amp;gt;logfile&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unixsocket&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Aktualisierung von MongoDB ==&lt;br /&gt;
&lt;br /&gt;
MongoDB wird bei uns nicht vom Betriebssystem bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Falls MongoDB verwendet wird, müssen neue Binaries heruntergeladen werden. Dabei ist die Version für Ubuntu 22.04 zu verwenden, da es keine Version für Debian 12 (Bookworm) gibt: siehe https://www.mongodb.com/try/download/community&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6382</id>
		<title>Anpassungen von Anwendungen nach Debian Bookworm Upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6382"/>
		<updated>2024-01-30T11:34:02Z</updated>

		<summary type="html">&lt;p&gt;Web: PHP vor anderen Sprachen, Passenger symmetrisch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wer ist für was verantwortlich? ==&lt;br /&gt;
&lt;br /&gt;
Die Hostmaster aktualisieren das Betriebssytem. &lt;br /&gt;
&lt;br /&gt;
Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden. &lt;br /&gt;
&lt;br /&gt;
Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein [https://www.hostsharing.net/service/webmaster-on-demand/ Webmaster On Demand (WoD)] Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail mit einem Auftrag an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer sie läuft oder um welche Domain/Subdomain es sich handelt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an PHP Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Unter Debian 12 (&amp;quot;Bookworm&amp;quot;) ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.}}&lt;br /&gt;
&lt;br /&gt;
In der .htaccess Datei müssen die Zeilen mit AddType und Action für PHP entfernt werden:&lt;br /&gt;
&lt;br /&gt;
  nano doms/meinedomain.de/.htaccess&lt;br /&gt;
          # diese Zeilen entfernen:&lt;br /&gt;
          AddType application/x-httpd-php81 .php&lt;br /&gt;
          Action application/x-httpd-php81 /fastcgi-bin/phpstub81&lt;br /&gt;
&lt;br /&gt;
Wenn bisher nur der voreingestellte phpstub verwendet wurde, lief die Seite bisher auf PHP 7.4. Nun würde sie auf PHP 8.2 laufen. Falls die Anwendung das nicht unterstützt, muss für die Domain in HSAdmin die gewünschte PHP Version in der Liste bei &amp;quot;FastCGI PHP-Interpreter&amp;quot; gewählt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Python-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Python 2.7 steht unter Debian 12 (&amp;quot;Bookworm&amp;quot;) nicht mehr zur Verfügung!}}&lt;br /&gt;
&lt;br /&gt;
Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11&lt;br /&gt;
&lt;br /&gt;
Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: [[Eigenes_Python_installieren#Installation_mit_pyenv]]&lt;br /&gt;
&lt;br /&gt;
Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
In der .profile oder .bash_profile sollte diese Variable gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
  export PYTHONIOENCODING=utf-8&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Python mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter &amp;lt;code&amp;gt;PassengerPython&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;PassengerFriendlyErrorPages&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt;-Datei gesetzt werden. Das führt zu einem 500er Fehler.&lt;br /&gt;
&lt;br /&gt;
Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; Datei gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt&lt;br /&gt;
&lt;br /&gt;
Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3&amp;lt;/code&amp;gt;, oder bei einem Virtual Environment: &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Versionsnummer, User und Paket im Pfad anpassen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Ruby-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek. &lt;br /&gt;
&lt;br /&gt;
Daher muss die rbenv-Umgebung neu installiert werden, siehe [[RubyRBEnv]].&lt;br /&gt;
&lt;br /&gt;
Es müssen auch meistens die Ruby Gems neu installiert werden.&lt;br /&gt;
&lt;br /&gt;
  # erst löschen&lt;br /&gt;
  rm -Rf ~/.gem/&lt;br /&gt;
  rm -Rf ~/.bundle&lt;br /&gt;
  rm -Rf ~/.local/state/gem/&lt;br /&gt;
  &lt;br /&gt;
  # dann installieren&lt;br /&gt;
  cd meineapp # z.B. zammad&lt;br /&gt;
  export RAILS_ENV=&amp;quot;production&amp;quot;&lt;br /&gt;
  bundle install&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Ruby mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen. Sie müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Ruby Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.rbenv/shims/ruby&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Node.js-Anwendungen ==&lt;br /&gt;
Es muss das Verzeichns &amp;lt;code&amp;gt;.nvm&amp;lt;/code&amp;gt; im Home Verzeichnis gelöscht werden, und &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt; im Projekt.&lt;br /&gt;
&lt;br /&gt;
Dann Node wieder neu installieren, siehe [[NodeJS]].&lt;br /&gt;
&lt;br /&gt;
Dann &amp;lt;code&amp;gt;yarn install&amp;lt;/code&amp;gt; bzw andere Befehle ausführen, um die Node Module wieder zu installieren.&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Node.js mit Passenger ===&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen, und müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Node Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Java Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
=== Eigenes Java Development Kit (JDK) installieren ===&lt;br /&gt;
&lt;br /&gt;
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere JDKs können hier als Binary für Linux/x64 heruntergeladen werden: https://jdk.java.net/archive/&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für JDK 11:&lt;br /&gt;
&lt;br /&gt;
   mkdir ~/bin&lt;br /&gt;
   cd bin&lt;br /&gt;
   wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
   tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
&lt;br /&gt;
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/&lt;br /&gt;
&lt;br /&gt;
Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11&lt;br /&gt;
&lt;br /&gt;
=== Eigenen Tomcat installieren ===&lt;br /&gt;
&lt;br /&gt;
Bei Debian Buster lief Tomcat 9, auf Debian Bookworm steht Tomcat 10 zur Verfügung. Die beiden Versionen sind nicht kompatibel. Tomcat 9 implementiert Java EE 8; bei Tomcat 10 ist es Jakarta EE 9. Aus lizenzrechtlichen Gründen wurden alle Java-Packages aus den Java-EE-Spezifikationen von &amp;lt;code&amp;gt;javax.&amp;lt;/code&amp;gt; nach &amp;lt;code&amp;gt;jakarta.&amp;lt;/code&amp;gt; umbenannt.&lt;br /&gt;
&lt;br /&gt;
Für eigene Anwendungen empfehlen wir, die Software entsprechend anzupassen und neu zu kompilieren. Für Software aus anderen Quellen kann das Tool &amp;lt;code&amp;gt;javax2jakarta&amp;lt;/code&amp;gt; diesen Schritt in der Regel leisten.&lt;br /&gt;
&lt;br /&gt;
Wenn die Migration nicht möglich oder nicht gewünscht ist, kann leicht ein vollständiger Tomcat 9 pro User installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
    mv tomcat tomcat.bak&lt;br /&gt;
    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz&lt;br /&gt;
    mv apache-tomcat-9.0.84 tomcat&lt;br /&gt;
    cp tomcat.bak/conf/server.xml tomcat/conf/&lt;br /&gt;
    cp tomcat.bak/conf/setenv.sh tomcat/conf/&lt;br /&gt;
    cp -R tomcat.bak/webapps tomcat&lt;br /&gt;
&lt;br /&gt;
Bitte darauf achten, ob noch weitere Konfigurationsdateien kopiert werden und Anpassungen an der context.xml und web.xml übernommen werden müssen.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Redis-Diensten ==&lt;br /&gt;
&lt;br /&gt;
Falls ein Redis-Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls müssen in der Datei &amp;lt;code&amp;gt;redis.conf&amp;lt;/code&amp;gt; relative Pfade in absolute Pfade geändert werden, falls dies nicht bereits der Fall ist (z.B. für &amp;lt;code&amp;gt;logfile&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unixsocket&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Aktualisierung von MongoDB ==&lt;br /&gt;
&lt;br /&gt;
MongoDB wird bei uns nicht vom Betriebssystem bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Falls MongoDB verwendet wird, müssen neue Binaries heruntergeladen werden. Dabei ist die Version für Ubuntu 22.04 zu verwenden, da es keine Version für Debian 12 (Bookworm) gibt: siehe https://www.mongodb.com/try/download/community&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6381</id>
		<title>Anpassungen von Anwendungen nach Debian Bookworm Upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Anpassungen_von_Anwendungen_nach_Debian_Bookworm_Upgrade&amp;diff=6381"/>
		<updated>2024-01-30T11:29:35Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wer ist für was verantwortlich? ==&lt;br /&gt;
&lt;br /&gt;
Die Hostmaster aktualisieren das Betriebssytem. &lt;br /&gt;
&lt;br /&gt;
Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden. &lt;br /&gt;
&lt;br /&gt;
Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein [https://www.hostsharing.net/service/webmaster-on-demand/ Webmaster On Demand (WoD)] Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail mit einem Auftrag an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer sie läuft oder um welche Domain/Subdomain es sich handelt.&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Python-Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Python 2.7 steht unter Debian 12 (&amp;quot;Bookworm&amp;quot;) nicht mehr zur Verfügung!}}&lt;br /&gt;
&lt;br /&gt;
Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11&lt;br /&gt;
&lt;br /&gt;
Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: [[Eigenes_Python_installieren#Installation_mit_pyenv]]&lt;br /&gt;
&lt;br /&gt;
Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
In der .profile oder .bash_profile sollte diese Variable gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
  export PYTHONIOENCODING=utf-8&lt;br /&gt;
&lt;br /&gt;
=== Änderungen beim Einsatz von Passenger und Python ===&lt;br /&gt;
&lt;br /&gt;
Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter &amp;lt;code&amp;gt;PassengerPython&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;PassengerFriendlyErrorPages&amp;lt;/code&amp;gt; in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt;-Datei gesetzt werden. Das führt zu einem 500er Fehler.&lt;br /&gt;
&lt;br /&gt;
Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; Datei gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt&lt;br /&gt;
&lt;br /&gt;
Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3&amp;lt;/code&amp;gt;, oder bei einem Virtual Environment: &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Versionsnummer, User und Paket im Pfad anpassen)&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an PHP Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
 {{Textkasten|gelb|Achtung|Unter Debian 12 (&amp;quot;Bookworm&amp;quot;) ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.}}&lt;br /&gt;
&lt;br /&gt;
In der .htaccess Datei müssen die Zeilen mit AddType und Action für PHP entfernt werden:&lt;br /&gt;
&lt;br /&gt;
  nano doms/meinedomain.de/.htaccess&lt;br /&gt;
          # diese Zeilen entfernen:&lt;br /&gt;
          AddType application/x-httpd-php81 .php&lt;br /&gt;
          Action application/x-httpd-php81 /fastcgi-bin/phpstub81&lt;br /&gt;
&lt;br /&gt;
Wenn bisher nur der voreingestellte phpstub verwendet wurde, lief die Seite bisher auf PHP 7.4. Nun würde sie auf PHP 8.2 laufen. Falls die Anwendung das nicht unterstützt, muss für die Domain in HSAdmin die gewünschte PHP Version in der Liste bei &amp;quot;FastCGI PHP-Interpreter&amp;quot; gewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Ruby Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek. &lt;br /&gt;
&lt;br /&gt;
Daher muss die rbenv-Umgebung neu installiert werden, siehe [[RubyRBEnv]].&lt;br /&gt;
&lt;br /&gt;
Es müssen auch meistens die Ruby Gems neu installiert werden.&lt;br /&gt;
&lt;br /&gt;
  # erst löschen&lt;br /&gt;
  rm -Rf ~/.gem/&lt;br /&gt;
  rm -Rf ~/.bundle&lt;br /&gt;
  rm -Rf ~/.local/state/gem/&lt;br /&gt;
  &lt;br /&gt;
  # dann installieren&lt;br /&gt;
  cd meineapp # z.B. zammad&lt;br /&gt;
  export RAILS_ENV=&amp;quot;production&amp;quot;&lt;br /&gt;
  bundle install&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen. Sie müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Ruby Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.rbenv/shims/ruby&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Node.js Anwendungen ==&lt;br /&gt;
Es muss das Verzeichns &amp;lt;code&amp;gt;.nvm&amp;lt;/code&amp;gt; im Home Verzeichnis gelöscht werden, und &amp;lt;code&amp;gt;node_modules&amp;lt;/code&amp;gt; im Projekt.&lt;br /&gt;
&lt;br /&gt;
Dann Node wieder neu installieren, siehe [[NodeJS]].&lt;br /&gt;
&lt;br /&gt;
Dann &amp;lt;code&amp;gt;yarn install&amp;lt;/code&amp;gt; bzw andere Befehle ausführen, um die Node Module wieder zu installieren.&lt;br /&gt;
&lt;br /&gt;
Falls &#039;&#039;&#039;Passenger&#039;&#039;&#039; zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in &amp;lt;code&amp;gt;doms/meinedomain.de/.htaccess&amp;lt;/code&amp;gt; stehen, und müssen dort auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
In HSAdmin kann im Dialog &amp;quot;Domain ändern&amp;quot; eingestellt werden, welche Node Version verwendet werden soll.&lt;br /&gt;
Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. &amp;lt;code&amp;gt;/home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Java Anwendungen ==&lt;br /&gt;
=== Eigenes Java Development Kit (JDK) installieren ===&lt;br /&gt;
&lt;br /&gt;
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere JDKs können hier als Binary für Linux/x64 heruntergeladen werden: https://jdk.java.net/archive/&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für JDK 11:&lt;br /&gt;
&lt;br /&gt;
   mkdir ~/bin&lt;br /&gt;
   cd bin&lt;br /&gt;
   wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
   tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz&lt;br /&gt;
&lt;br /&gt;
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/&lt;br /&gt;
&lt;br /&gt;
Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
    JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11&lt;br /&gt;
&lt;br /&gt;
=== Eigenen Tomcat installieren ===&lt;br /&gt;
&lt;br /&gt;
Bei Debian Buster lief Tomcat 9, auf Debian Bookworm steht Tomcat 10 zur Verfügung. Die beiden Versionen sind nicht kompatibel. Tomcat 9 implementiert Java EE 8; bei Tomcat 10 ist es Jakarta EE 9. Aus lizenzrechtlichen Gründen wurden alle Java-Packages aus den Java-EE-Spezifikationen von &amp;lt;code&amp;gt;javax.&amp;lt;/code&amp;gt; nach &amp;lt;code&amp;gt;jakarta.&amp;lt;/code&amp;gt; umbenannt.&lt;br /&gt;
&lt;br /&gt;
Für eigene Anwendungen empfehlen wir, die Software entsprechend anzupassen und neu zu kompilieren. Für Software aus anderen Quellen kann das Tool &amp;lt;code&amp;gt;javax2jakarta&amp;lt;/code&amp;gt; diesen Schritt in der Regel leisten.&lt;br /&gt;
&lt;br /&gt;
Wenn die Migration nicht möglich oder nicht gewünscht ist, kann leicht ein vollständiger Tomcat 9 pro User installiert werden.&lt;br /&gt;
&lt;br /&gt;
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi&lt;br /&gt;
&lt;br /&gt;
    mv tomcat tomcat.bak&lt;br /&gt;
    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz&lt;br /&gt;
    mv apache-tomcat-9.0.84 tomcat&lt;br /&gt;
    cp tomcat.bak/conf/server.xml tomcat/conf/&lt;br /&gt;
    cp tomcat.bak/conf/setenv.sh tomcat/conf/&lt;br /&gt;
    cp -R tomcat.bak/webapps tomcat&lt;br /&gt;
&lt;br /&gt;
Bitte darauf achten, ob noch weitere Konfigurationsdateien kopiert werden und Anpassungen an der context.xml und web.xml übernommen werden müssen.&lt;br /&gt;
&lt;br /&gt;
== Anpassungen an Redis Diensten ==&lt;br /&gt;
&lt;br /&gt;
Falls ein Redis-Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.&lt;br /&gt;
&lt;br /&gt;
Gegebenenfalls müssen in der Datei &amp;lt;code&amp;gt;redis.conf&amp;lt;/code&amp;gt; relative Pfade in absolute Pfade geändert werden, falls dies nicht bereits der Fall ist (z.B. für &amp;lt;code&amp;gt;logfile&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;unixsocket&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Aktualisierung von MongoDB ==&lt;br /&gt;
&lt;br /&gt;
MongoDB wird bei uns nicht vom Betriebssystem bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Falls MongoDB verwendet wird, müssen neue Binaries heruntergeladen werden. Dabei ist die Version für Ubuntu 22.04 zu verwenden, da es keine Version für Debian 12 (Bookworm) gibt: siehe https://www.mongodb.com/try/download/community&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=ListMonk_installieren&amp;diff=6292</id>
		<title>ListMonk installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=ListMonk_installieren&amp;diff=6292"/>
		<updated>2023-11-23T09:29:37Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ListMonk ==&lt;br /&gt;
ListMonk [https://listmonk.app/] ist ein Newsletter-Manager zum Selbsthosten, und steht unter der Open Source Lizenz AGPLv3.&lt;br /&gt;
&lt;br /&gt;
Monk hat in diesem Fall nichts mit einem Mönch zu tun, sondern ist eine versteckte Anspielung auf Monkey, da ListMonk eine Alternative zu MailChimp (Chimpanse) ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Listmonk wirbt damit, [https://github.com/knadh/listmonk/blob/master/README.md Newsletter- und Mailinglisten-Manager] zu sein. Laut [https://github.com/knadh/listmonk/issues/1355 Fehlerbericht] ist das Tool aber lediglich für Einweg-Kommunikation (Newsletter) vorgesehen.&lt;br /&gt;
&lt;br /&gt;
== Zur Technik ==&lt;br /&gt;
ListMonk ist in Go geschrieben, und wird als ein einziges Binary (Programm) installiert. Man muss im Shared Webspace bei Hostsharing einen Service dazu buchen, oder man setzt es auf einem Managed Server von Hostsharing ein.&lt;br /&gt;
&lt;br /&gt;
Im Hintergrund wird PostgreSQL als Datenbank benutzt.&lt;br /&gt;
&lt;br /&gt;
ListMonk bietet Anmeldungen per Double-Opt-In, und es gibt auch eine API für die Integration mit CRM/ERP Systemen (https://listmonk.app/docs/apis/apis/).&lt;br /&gt;
&lt;br /&gt;
== Zur Installation ==&lt;br /&gt;
Die Installation ist recht einfach: https://listmonk.app/docs/installation/&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss heruntergeladen werden.&lt;br /&gt;
* Vorher den Hostsharing Service um eine freie Port Nummer fragen.&lt;br /&gt;
* Mit systemctl wird das Programm als Dienst gestartet.&lt;br /&gt;
&lt;br /&gt;
=== Installation mit Ansible Skript ===&lt;br /&gt;
Es gibt ein Ansible Skript für Hostsharing [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/listmonk], das die Installation automatisiert vornimmt, und schon den SMTP und POP Zugang konfiguriert.&lt;br /&gt;
&lt;br /&gt;
Dort kann man sicherlich auch Feinheiten der Installation abschauen, wenn man ListMonk manuell installieren will.&lt;br /&gt;
&lt;br /&gt;
== Zur Bedienung ==&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Bildschirmfoto zur Einrichtung von SMTP für den Versand der E-Mails:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ListMonk SMTPSetup.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier ist ein Bildschirmfoto zur Generierung des Formulars zur Anmeldung für einen Newsletter:&lt;br /&gt;
&lt;br /&gt;
[[Datei:ListMonk SubscriptionForm.png]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://listmonk.app/ Projektseite&lt;br /&gt;
* https://github.com/knadh/listmonk ListMonk auf Github&lt;br /&gt;
* https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/listmonk Ansible Skript für Hostsharing von Timotheus Pokorra&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:Mailinglisten]]&lt;br /&gt;
[[Kategorie:Newsletterversand]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Keycloak_installieren&amp;diff=6193</id>
		<title>Keycloak installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Keycloak_installieren&amp;diff=6193"/>
		<updated>2023-08-02T08:57:59Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemein ==&lt;br /&gt;
&lt;br /&gt;
Keycloak [http://www.keycloak.org/] ist eine Open Source Lösung, die ein Single Sign On für verschiedene Anwendungen ermöglicht. Dabei ermöglicht es sowohl die Identitätsverwaltung als auch Zugriffsmanagement.&lt;br /&gt;
&lt;br /&gt;
Es kann die Benutzer entweder aus einem existierenden Verzeichnisdienst (LDAP, Active Directory) auslesen, oder die Gruppen und Benutzer auch selber verwalten.&lt;br /&gt;
&lt;br /&gt;
== Technische Details ==&lt;br /&gt;
Keycloak ist in Java geschrieben. Bisher lief es in einem Wildfly Server, aber seit Version 17 (Februar 2022) benutzt es Quarkus, welches ein leichtgewichtiges Java Framework ist.&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Ansible Skript, das die Installationsschritte für Keycloak automatisiert durchführt.&lt;br /&gt;
&lt;br /&gt;
Die Quellen für das Ansible Skript können hier eingesehen werden: [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/keycloak]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Was das Ansible Skript macht, lässt sich mit diesen Worten beschreiben:&lt;br /&gt;
&lt;br /&gt;
* Es wird ein Linux Benutzer eingerichtet.&lt;br /&gt;
* Es wird eine Postgresql Datenbank eingerichtet.&lt;br /&gt;
* Es wird eine Domain aufgeschaltet.&lt;br /&gt;
* Es wird Keycloak als Zip Datei heruntergeladen, z.B. [https://github.com/keycloak/keycloak/releases/download/17.0.0/keycloak-17.0.0.zip], und ins Verzeichnis $HOME/keycloak-17.0.0 entpackt.&lt;br /&gt;
* Dann werden ein paar Konfigurationen an der Datei &amp;lt;code&amp;gt;keycloak/conf/keycloak.conf&amp;lt;/code&amp;gt; vorgenommen, um die Postgresql Datenbank einzurichten, und um den Proxymodus auf edge zu setzen und den Hostname zu setzen.&lt;br /&gt;
* Nun wird die Keycloak Instanz initialisiert, mit dem Befehl: &amp;lt;code&amp;gt;keycloak/bin/kc.sh --cache=local --profile=prod build&amp;lt;/code&amp;gt;. Hierbei verhindert die Einstellung für den Cache, dass Keycloak versucht über das Netzwerk Verbindungen zu anderen Instanzen herzustellen.&lt;br /&gt;
* Es muss der Server einmal gestartet werden, während der Admin Benutzer mit Passwort in einer Umgebungsvariable gesetzt ist, damit der Benutzer eingerichtet wird.&lt;br /&gt;
* Es wird Monit konfiguriert, um den Keycloak Service zu starten, der auf einem internen Port lauscht.&lt;br /&gt;
* Es wird der Apache in der htaccess Datei konfiguriert, damit die aufgeschaltete Domain über Proxy auf den Keycloak Dienst verweist. Dabei ist wichtig, dass der Java Prozess mitbekommt, dass die Seite über https läuft. Dazu wird in der htaccess Datei der Wert X-Forwarded-Proto auf https gesetzt.&lt;br /&gt;
&lt;br /&gt;
== Beispiel einer Einrichtung ==&lt;br /&gt;
Diese Anleitung steht auch als [https://youtu.be/bmOp8epgxsM Video auf Youtube] zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
* Auf https://keycloak.example.org/admin anmelden.&lt;br /&gt;
&lt;br /&gt;
=== Realm einrichten ===&lt;br /&gt;
* Es soll nicht mit der master Realm gearbeitet werden, sondern sollte eine weitere Realm eingerichtet werden, z.B. &amp;quot;MeineFirma&amp;quot;&lt;br /&gt;
* Diese neue Realm wird dann ausgewählt&lt;br /&gt;
&lt;br /&gt;
=== Benutzer einrichten ===&lt;br /&gt;
* Innerhalb der neuen Realm wird dann ein neuer Benutzer angelegt.&lt;br /&gt;
* Beim neuen Benutzer kann ausgewählt werden, dass die E-Mail bereits bestätigt ist.&lt;br /&gt;
* Nach dem Speichern des Benutzers kann man dann auch bei Credentials das Passwort setzen. Wenn es nur temporär ist, muss der Benutzer es bei der ersten Anmeldung ändern.&lt;br /&gt;
* Nun kann man sich als Administrator abmelden und sich als der Benutzer anmelden, auf https://keycloak.example.org/realms/MeineFirma/account/#/&lt;br /&gt;
** Achtung: in anderen Anleitungen heißen die URLs /auth/realms usw, aber auth scheint nicht mehr Teil der Standardeinrichtung zu sein.&lt;br /&gt;
* Als Benutzer kann man sein Passwort ändern.&lt;br /&gt;
* Wieder abmelden, und wieder als Administrator anmelden.&lt;br /&gt;
&lt;br /&gt;
=== Client einrichten ===&lt;br /&gt;
* Achtung: erst aus der Master Realm in die vorher angelegte Realm wechseln, z.B. &amp;quot;MeineFirma&amp;quot;&lt;br /&gt;
* Nun sollte ein Client hinzugefügt werden, also eine beliebige Anwendung, die mit Keycloak zusammenarbeiten soll&lt;br /&gt;
** Als Client-Protokoll wählt man &amp;quot;OpenID Connect&amp;quot;&lt;br /&gt;
** Die Client-ID kann so aussehen: my-nextcloud&lt;br /&gt;
** Anwählen: &#039;Client Authentication&#039;, um den OID Typ auf &#039;Confidential Access Type&#039; zu setzen.&lt;br /&gt;
** Anwählen: &#039;Standard Flow&#039;, &#039;Implicit Flow&#039; und &#039;Direct Access Grants&#039;&lt;br /&gt;
* Eine Root Url eingeben, z.B. https://nextcloud.example.org&lt;br /&gt;
* Eine Valid Redirect URI eingeben, z.B. https://nextcloud.example.org/*&lt;br /&gt;
* Gültige Web Origins eingeben, z.B. https://nextcloud.example.org&lt;br /&gt;
* Speichern&lt;br /&gt;
* Unter Roles eine neue Rolle mit Namen admin anlegen.&lt;br /&gt;
* Wieder unter den Client Nextcloud gehen, und bei &amp;quot;Client Scopes&amp;quot; klicke auf &amp;quot;my-nextcloud-dedicated&amp;quot;, und wähle dort &amp;quot;Add predefined Mapper&amp;quot;. Wähle &amp;quot;client roles&amp;quot;, und klicke auf &amp;quot;Add&amp;quot;. Dann diesen neuen Mapper &amp;quot;client roles&amp;quot; Bearbeiten, und Client ID auf &amp;quot;my-nextcloud&amp;quot; setzen, und &amp;quot;Token Claim Name&amp;quot; mit &amp;quot;roles&amp;quot; setzen, und &amp;quot;Add to userinfo&amp;quot; auf &amp;quot;ON&amp;quot; stellen. Dann Speichern.&lt;br /&gt;
* Dann zu nochmal zu Client Scopes (im Client) gehen, und auf &amp;quot;my-nextcloud-dedicated&amp;quot; klicken, und dort im Reiter &amp;quot;Scope&amp;quot; die Option &amp;quot;Full Scope Allowed&amp;quot; abschalten.&lt;br /&gt;
&lt;br /&gt;
* Dann unter Configure / Realm Settings, in General, bei Endpoints auf &amp;quot;OpenID Endpoint Configuration&amp;quot; klicken, dann wird eine Seite geöffnet, auf dieser URL: https://keycloak.example.org/realms/MeineFirma/.well-known/openid-configuration; diese Seite offen halten, wir brauchen daraus die Daten für die Nextcloud Einrichtung&lt;br /&gt;
&lt;br /&gt;
=== Nextcloud einrichten (Einfach) ===&lt;br /&gt;
* Als Administrator anmelden, und bei den Apps die App [https://apps.nextcloud.com/apps/sociallogin &amp;quot;Social Login&amp;quot;] installieren.&lt;br /&gt;
* Dann bei Einstellungen, unter Verwaltung, Social Login, die gewünschten Einstellungen vornehmen.&lt;br /&gt;
* Es sollte ein Kreuz sein bei: Anlegen eines Kontos verhindern, wenn die E-Mail-Adresse bereits von einem anderen Konto verwendet wird.&lt;br /&gt;
* Es sollte ein Kreuz sein bei: Verhindern, dass sich Benutzer ohne gemappte Gruppe anmelden können.&lt;br /&gt;
* Speichern&lt;br /&gt;
* Dann bei &amp;quot;Benutzerdefinierte OpenID Connect Anbindung&amp;quot; auf das Plus klicken&lt;br /&gt;
* Nun die Daten aus der &amp;quot;OpenID Endpoint Configuration&amp;quot; (siehe oben) übernehmen: Authorize URL, Token URL, User info URL, Logout URL&lt;br /&gt;
* Client ID: nc (Name des Clients in Keycloak)&lt;br /&gt;
* Client Secret: hier kommt das Secret hinein, das in Keycloak im Client unter Credentials &amp;quot;Client Secret&amp;quot; zu finden ist. Das kann über die Zwischenablage kopiert werden.&lt;br /&gt;
* Scope: openid&lt;br /&gt;
* Speichern&lt;br /&gt;
&lt;br /&gt;
=== Nextcloud einrichten (Fortgeschritten) ===&lt;br /&gt;
Die folgende App wird mit Rücksicht auf Keycloak entwickelt und hat daher eine &amp;lt;strong&amp;gt;bessere Kompatibilität&amp;lt;/strong&amp;gt; als das Beispiel oben. Allerdings gibt es hierfür keine Optionen in der Cloud, stattdessen wird die &amp;lt;code&amp;gt;config.php&amp;lt;/code&amp;gt; direkt bearbeitet.&lt;br /&gt;
&lt;br /&gt;
==== Plugin-Installation ====&lt;br /&gt;
&lt;br /&gt;
# Als Administrator die App [https://github.com/pulsejet/nextcloud-oidc-login &amp;quot;Nextcloud OIDC Login&amp;quot;] installieren&lt;br /&gt;
# Die Nextcloud Konfigurationsdatei unter &amp;lt;code&amp;gt;pfad/zur/nextcloud/config/config.php&amp;lt;/code&amp;gt; öffnen und basierend auf dem Readme der App (Link aus Schritt #1) befüllen. Das könnte so aussehen: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &#039;oidc_login_client_id&#039; =&amp;gt; &#039;nextcloud&#039;,&lt;br /&gt;
  &#039;oidc_login_client_secret&#039; =&amp;gt; &#039;bSIPDNUyTQpxmfOpXdwyoBP8nZDQZVuL&#039;, // Client Reiter &amp;quot;Credentials&amp;quot; in Keycloak&lt;br /&gt;
  &#039;oidc_login_provider_url&#039; =&amp;gt; &#039;https://login.mydomain.de/realms/myrealm&#039;,&lt;br /&gt;
  &#039;oidc_login_end_session_redirect&#039; =&amp;gt; true,&lt;br /&gt;
  &#039;oidc_login_logout_url&#039; =&amp;gt; &#039;https://cloud.mydomain.de/index.php/apps/oidc_login/oidc&#039;,&lt;br /&gt;
  &#039;oidc_login_auto_redirect&#039; =&amp;gt; true, // hiermit wird das Login-Formular übergangen um Leute weniger zu verwirren&lt;br /&gt;
  &#039;oidc_login_redir_fallback&#039; =&amp;gt; false,&lt;br /&gt;
  &#039;oidc_login_disable_registration&#039; =&amp;gt; false, // Nextcloud soll neue Keycloak Accounts akzeptieren&lt;br /&gt;
  &#039;oidc_login_attributes&#039; =&amp;gt; array(&lt;br /&gt;
  &#039;id&#039; =&amp;gt; &#039;preferred_username&#039;,&lt;br /&gt;
  &#039;mail&#039; =&amp;gt; &#039;email&#039;,&lt;br /&gt;
  &#039;groups&#039; =&amp;gt; &#039;ownCloudGroups&#039;,&lt;br /&gt;
  &#039;is_admin&#039; =&amp;gt; &#039;ownCloudAdmin&#039;,&lt;br /&gt;
  ),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== In Keycloak nochmal alles kontrollieren ====&lt;br /&gt;
# Client ID stimmt überein&lt;br /&gt;
# unter &amp;lt;code&amp;gt;Capability config&amp;lt;/code&amp;gt; ist &amp;lt;code&amp;gt;Client authentication&amp;lt;/code&amp;gt; aktiv (damit wir ua. unser Secret bekommen)&lt;br /&gt;
# &amp;lt;code&amp;gt;Valid redirect URIs&amp;lt;/code&amp;gt; erlaubt &amp;lt;/code&amp;gt;https://cloud.mydomain.de/*&amp;lt;/code&amp;gt; – oder eine konkretere Adresse. Das Plus übernimmt die Einstellung aus &amp;lt;code&amp;gt;Valid redirect URIs&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Valid post logout redirect URIs&amp;lt;/code&amp;gt; erlaubt &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; oder &amp;lt;/code&amp;gt;https://cloud.mydomain.de/*&amp;lt;/code&amp;gt; – oder eine konkretere Adresse&lt;br /&gt;
# &amp;lt;code&amp;gt;Fine Grain OpenID Connect Configuration&amp;lt;/code&amp;gt; steht unter &amp;lt;code&amp;gt;ID Token Signature Algorithm&amp;lt;/code&amp;gt; auf &amp;lt;code&amp;gt;RS256&amp;lt;/code&amp;gt; (Achtung, hier verrutscht man schnell weil die Einträge sich ähneln)&lt;br /&gt;
&lt;br /&gt;
==== Gruppen Synchronisation ermöglichen ====&lt;br /&gt;
Hierfür legen wir einen Mapper in &amp;lt;code&amp;gt;nextcloud&amp;lt;/code&amp;gt; Client an. Anschließend müssen die tatsächlichen Gruppen mit Roles verknüpft werden. Hintergrund ist, dass Roles eigentlich für Berechtigungsmanagement gedacht sind, und Gruppen eigentlich nur User gruppieren sollen.&lt;br /&gt;
# wir wechseln im Client &amp;lt;code&amp;gt;nextcloud&amp;lt;/code&amp;gt; auf den Reiter &amp;lt;code&amp;gt;Client scopes&amp;lt;/code&amp;gt;&lt;br /&gt;
# wir wählen &amp;lt;code&amp;gt;nextcloud-dedicated&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add mapper -&amp;gt; by configuration&lt;br /&gt;
## Type: &amp;lt;code&amp;gt;User Client Role&amp;lt;/code&amp;gt;&lt;br /&gt;
## Name: &amp;lt;code&amp;gt;ownCloudGroups&amp;lt;/code&amp;gt;&lt;br /&gt;
## Client ID&lt;br /&gt;
### &amp;lt;strong&amp;gt;Option #1:&amp;lt;/strong&amp;gt; &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; – es werden alle &amp;lt;code&amp;gt;Realm roles&amp;lt;/code&amp;gt; abgerufen. Das umfasst allerdings auch die Defaults wie &amp;lt;code&amp;gt;uma_authorization&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;offline_access&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;default-user-roles&amp;lt;/code&amp;gt; und ist nicht immer gewünscht.&lt;br /&gt;
### &amp;lt;strong&amp;gt;Option #2:&amp;lt;/strong&amp;gt; &amp;lt;code&amp;gt;nextcloud&amp;lt;/code&amp;gt; hier können im Anschluss roles im Client angelegt und mit &amp;lt;code&amp;gt;Groups&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;Realm roles&amp;lt;/code&amp;gt; verknüpft werden. &lt;br /&gt;
## Multivalued: &amp;lt;code&amp;gt;On&amp;lt;/code&amp;gt;&lt;br /&gt;
## Token Claim Name: &amp;lt;code&amp;gt;ownCloudGroups&amp;lt;/code&amp;gt;&lt;br /&gt;
## Claim JSON Type: &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;&lt;br /&gt;
## die folgenden drei Optionen: &amp;lt;code&amp;gt;On&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Gruppen Synchronisation in der Praxis ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Option #2:&amp;lt;/strong&amp;gt; Client ID &amp;lt;code&amp;gt;nextcloud&amp;lt;/code&amp;gt;&lt;br /&gt;
# wir wechseln im Client &amp;lt;code&amp;gt;nextcloud&amp;lt;/code&amp;gt; auf den Reiter &amp;lt;code&amp;gt;Roles&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create role&lt;br /&gt;
## Wunschname&lt;br /&gt;
# wir wechseln in &amp;lt;code&amp;gt;Groups&amp;lt;/code&amp;gt; (Sidebar)&lt;br /&gt;
# Create group&lt;br /&gt;
## Wunschname&lt;br /&gt;
# In der Gruppe wechseln wir auf den Reiter &amp;lt;code&amp;gt;Role mapping&amp;lt;/code&amp;gt;&lt;br /&gt;
## Assign role&lt;br /&gt;
## Im Dropdown welchseln wir auf den Filter &amp;lt;code&amp;gt;by clients&amp;lt;/code&amp;gt;&lt;br /&gt;
## Wir wählen die gewünschte Rolle&lt;br /&gt;
## Unten Links, button &amp;lt;code&amp;gt;Assign&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ab hier können wir die Gruppe normal zuweisen.&lt;br /&gt;
&lt;br /&gt;
=== Benutzer einrichten ===&lt;br /&gt;
* Einen Benutzer im Keycloak einrichten, in der Realm &amp;quot;MeineFirma&amp;quot;.&lt;br /&gt;
* Den Benutzer bearbeiten, und unter &amp;quot;Role Mappings&amp;quot;, &amp;quot;Assign Role&amp;quot;, &amp;quot;Filter by Clients&amp;quot;, wähle &amp;quot;my-nextcloud admin&amp;quot; und klicke auf &amp;quot;Assign&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Fehler beheben ==&lt;br /&gt;
&lt;br /&gt;
Problem: Gerade beim Experimentieren kommt schon mal die Meldung: &amp;quot;expected expression, got end of script&amp;quot;&lt;br /&gt;
* Lösung: Webseite aus der Firefox Chronik komplett löschen, oder in einem privaten Fenster öffnen, dann geht es wieder.&lt;br /&gt;
&lt;br /&gt;
Generell kann es zu verwirrenden Fehlermeldungen kommen, wenn man sich versucht in einer verknüpften Anwendung einzuloggen aber beispielsweise noch als Admin im Master-Realm eingeloggt ist.&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
Um Fehler besser verstehen zu können, kann das Logging angeschaltet werden, siehe auch [https://www.keycloak.org/server/logging].&lt;br /&gt;
&lt;br /&gt;
Dazu müssen im Start Skript &amp;lt;code&amp;gt;bin/start-keycloak.sh&amp;lt;/code&amp;gt; folgende Parameter hinzugefügt werden:&lt;br /&gt;
&lt;br /&gt;
     --log-level=ERROR --log=file&lt;br /&gt;
&lt;br /&gt;
Also sieht es z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
    ./bin/kc.sh start --http-port [...] --proxy edge --log-level=ERROR --log=file &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart von Keycloak gibt es dann die Datei &amp;lt;code&amp;gt;keycloak/data/log/keycloak.log&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[http://www.keycloak.org/ Webseite von Keycloak]&lt;br /&gt;
*[https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/keycloak Ansible Playbook für Hostsharing]&lt;br /&gt;
*[https://robferguson.org/blog/2019/12/24/getting-started-with-keycloak/ Getting started with Keycloak]&lt;br /&gt;
*[https://janikvonrotz.ch/2020/10/20/openid-connect-with-nextcloud-and-keycloak/ OpenID Connect with Nextcloud and Keycloak] von Janik Vonrotz, Oktober 2020&lt;br /&gt;
* [https://www.muehlencord.de/wordpress/2019/12/14/nextcloud-sso-using-keycloak/ Nextcloud SSO using Keycloak] von Jörns Blog, Dezember 2019&lt;br /&gt;
* [https://youtu.be/bmOp8epgxsM Erklärvideo auf Youtube] zum Einrichten von Keycloak und Nextcloud&lt;br /&gt;
* [https://apps.nextcloud.com/apps/sociallogin Nextcloud App Social Login]&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:SSO]]&lt;br /&gt;
[[Kategorie:Java]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5842</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5842"/>
		<updated>2022-07-10T07:47:31Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Idee */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Skizze für die Einrichtung von DynDNS bei Hostsharing.&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
# Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
# Es werden die leichtgewichtigen Subdomains &#039;&#039;login.vpn.example.com&#039;&#039; und &#039;&#039;update.vpn.example.com&#039;&#039; verwendet.&lt;br /&gt;
# Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
# Es wird das nachfolgende Skript verwendet, welches auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.vpn.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.    60   IN   A      &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}.        IN   A      {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}.        IN   AAAA   {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5837</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5837"/>
		<updated>2022-06-23T15:53:30Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Skript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Skizze für die Einrichtung von DynDNS bei Hostsharing.&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
# Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
# Es werden die leichtgewichtigen Subdomains &#039;&#039;login.example.com&#039;&#039; und &#039;&#039;update.example.com&#039;&#039; verwendet.&lt;br /&gt;
# Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
# Es wird das nachfolgende Skript verwendet, welche auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.vpn.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.    60   IN   A      &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}.        IN   A      {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}.        IN   AAAA   {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5836</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5836"/>
		<updated>2022-06-23T15:52:54Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Skript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Skizze für die Einrichtung von DynDNS bei Hostsharing.&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
# Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
# Es werden die leichtgewichtigen Subdomains &#039;&#039;login.example.com&#039;&#039; und &#039;&#039;update.example.com&#039;&#039; verwendet.&lt;br /&gt;
# Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
# Es wird das nachfolgende Skript verwendet, welche auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.vpn.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.  60 IN A    &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}.    IN A    {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}.    IN AAAA {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5835</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5835"/>
		<updated>2022-06-23T15:51:38Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Idee */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Skizze für die Einrichtung von DynDNS bei Hostsharing.&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
# Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
# Es werden die leichtgewichtigen Subdomains &#039;&#039;login.example.com&#039;&#039; und &#039;&#039;update.example.com&#039;&#039; verwendet.&lt;br /&gt;
# Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
# Es wird das nachfolgende Skript verwendet, welche auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.vpn.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.  60 IN A    &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN A    {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN AAAA {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5834</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5834"/>
		<updated>2022-06-23T15:50:05Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Skript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Skizze für die Einrichtung von DynDNS bei Hostsharing.&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
1. Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
2. Es werden die leichtgewichtigen Subdomains &#039;&#039;login.example.com&#039;&#039; und &#039;&#039;update.example.com&#039;&#039; verwendet.&lt;br /&gt;
3. Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
4. Es wird das nachfolgende Skript verwendet, welche auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.vpn.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.  60 IN A    &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN A    {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN AAAA {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5833</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5833"/>
		<updated>2022-06-23T15:49:40Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dies ist eine Skizze für die Einrichtung von DynDNS bei Hostsharing.&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
1. Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
2. Es werden die leichtgewichtigen Subdomains &#039;&#039;login.example.com&#039;&#039; und &#039;&#039;update.example.com&#039;&#039; verwendet.&lt;br /&gt;
3. Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
4. Es wird das nachfolgende Skript verwendet, welche auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.  60 IN A    &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN A    {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN AAAA {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5832</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5832"/>
		<updated>2022-06-23T15:49:05Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Annahme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skizze für die Einrichtung von DynDNS&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zugreifen zu können.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
1. Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
2. Es werden die leichtgewichtigen Subdomains &#039;&#039;login.example.com&#039;&#039; und &#039;&#039;update.example.com&#039;&#039; verwendet.&lt;br /&gt;
3. Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
4. Es wird das nachfolgende Skript verwendet, welche auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.  60 IN A    &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN A    {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN AAAA {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5831</id>
		<title>Dynamisches DNS (DynDNS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Dynamisches_DNS_(DynDNS)&amp;diff=5831"/>
		<updated>2022-06-23T15:48:20Z</updated>

		<summary type="html">&lt;p&gt;Web: Die Seite wurde neu angelegt: „Skizze für die Einrichtung von DynDNS  == Annahme ==   Für die bei Hostsharing gehostete Domain &amp;#039;&amp;#039;example.com&amp;#039;&amp;#039; soll DynDNS eingerichtet werden um per VPN au…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skizze für die Einrichtung von DynDNS&lt;br /&gt;
&lt;br /&gt;
== Annahme ==&lt;br /&gt;
 &lt;br /&gt;
Für die bei Hostsharing gehostete Domain &#039;&#039;example.com&#039;&#039; soll DynDNS eingerichtet werden um per VPN auf das Heimnetz zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
1. Es wird die Subdomain &#039;&#039;vpn.example.com&#039;&#039; in einem dedizierten Domain-Admin aufgeschaltet. &lt;br /&gt;
2. Es werden die leichtgewichtigen Subdomains &#039;&#039;login.example.com&#039;&#039; und &#039;&#039;update.example.com&#039;&#039; verwendet.&lt;br /&gt;
3. Die Subdomain &#039;&#039;update.vpn.example.com&#039;&#039; wird per HTTP Basic Authentication geschützt.&lt;br /&gt;
4. Es wird das nachfolgende Skript verwendet, welche auf dem Ansatz basiert, dass lediglich eine vertrauenswürdige Quelle die Basic Authentication passieren kann. Für eine weitergehende Absicherung wären Eingabeprüfungen sinnvoll.&lt;br /&gt;
&lt;br /&gt;
== Lösung ==&lt;br /&gt;
&lt;br /&gt;
Wenn im Router, z.B. der Fritz!Box, oder im sonstigen DynDNS-Client als Update-URL &#039;&#039;&amp;lt;nowiki&amp;gt;https://update.vpn.example.com/update.php?ip=&amp;lt;ipaddr&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039; und die Credentials der Basic Authentication hinterlegt werden, kann über &#039;&#039;login.vpn.example.com&#039;&#039; auf das Heimnetz zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$ip = $_GET[&amp;quot;ip&amp;quot;] ?? NULL;&lt;br /&gt;
&lt;br /&gt;
if ($ip) {&lt;br /&gt;
    $filename = &amp;quot;/home/doms/vpn.example.com/etc/pri.example.com&amp;quot;;&lt;br /&gt;
    $zone  = &amp;quot;{HEADER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{SOA_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;{NS_RR}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;login.{DOM_HOSTNAME}.  60 IN A    &amp;quot;.$ip.&amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN A    {DOM_IPNUMBER}\n&amp;quot;;&lt;br /&gt;
    $zone .= &amp;quot;update.{DOM_HOSTNAME}. 60 IN AAAA {DOM_IP6NUMBER}\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    file_put_contents($filename, $zone);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=OpenLDAP&amp;diff=5813</id>
		<title>OpenLDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=OpenLDAP&amp;diff=5813"/>
		<updated>2022-05-23T15:16:40Z</updated>

		<summary type="html">&lt;p&gt;Web: Skript&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
== OpenLDAP installieren ==&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: Das Debian-Paket &amp;quot;slapd&amp;quot; ist auf dem Managed Server vorinstalliert.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 BASE_DIR=&amp;quot;${HOME}/slapd2&amp;quot;&lt;br /&gt;
 BASE_DN=&amp;quot;dc=example,dc=com&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 INITIAL_PASSWORD=&amp;quot;myInitialPassword&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 BIND_IP_ADDR=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
 BIND_IP_PORT=&amp;quot;12345&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ############################################################################&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Fail, if base directory already exists&lt;br /&gt;
 &lt;br /&gt;
 if test -e ${BASE_DIR}; then&lt;br /&gt;
     echo &amp;quot;Initialization failed.&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     echo &amp;quot;Base directory already exists.&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create directory&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p 700 ${BASE_DIR}&lt;br /&gt;
 cd ${BASE_DIR}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Unpack initital configuration&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF |base64 -d |tar -xz&lt;br /&gt;
 H4sIALShi2IAA+w9a3PjNpLzGb8Cm0yVPXexI74ky1v5oNhOynse22vZqWS/XFEkZHOHIhWKmrE3&lt;br /&gt;
 Nf/9GgDx4AMQZWtcud1R1ZQloUV0o5/obmBIGX3/5gu/BvAaDQZvBp47CgKXfXZ8n/2tXm8c3/Xd&lt;br /&gt;
 kTvwAvjeGQSe+wYHXxox+lqvyrDAGP6Swg5HitVrIPS6LwL8j7IfojybJ/dfSBIY/4OgB/+d0Wg0&lt;br /&gt;
 BP67vh985f9rvOr8h3eLPF6n5I/B58M0TuY7mYMyeEj5beD/aDAU/HdhBPgfDD3vDR7sZPYNr/9w&lt;br /&gt;
 /n+LJ3e3Vwc/n12e3Uxuz07xT+cXZ/gAn17hy6tbfHZ6fvuXv+C7FcFpHC5BOJL50yH6Fp/cnHgu&lt;br /&gt;
 PgpmQw9sNoqzY6wLD8pn/yRReZKGq9UxztPoPRu5SFYligBWAxRj12H5cIy/X6+K79Nk9j2dTg1e&lt;br /&gt;
 5GF8jAF+FkYf/ncRz9CqLNZRuS7C9Mo8FcnK4unu7vz0GA+CURw5w8GB74/JgTPwooNxPHcPxl4c&lt;br /&gt;
 +t7Q8QYDgqKChGVerC7DBWEEhfEiyb6TCsIByG2yICA2i+UxdgcuOC1v4IwCzxn+g894Mr1sjhwG&lt;br /&gt;
 7tGRH/zjWy7y31b/4IXYoibEMitfdsusz+e/Sf+dXeu/xf+PvFFb/wdf9f81Xi/Tfy8gThDMnIb+&lt;br /&gt;
 O33139la/wsyT7KyNeB8XpDFjBT5fGvD4M1H/nw0PzoYetG8MgxzMj84GgcgrkdzMBDz5xqGYDCG&lt;br /&gt;
 B3qg903DIEcOnaE/9rxdGgZt1o38r+s/LNKPYGBJFv8Aaw1mdidGYJP/H3q6/4dxZxj4X/X/VV4v&lt;br /&gt;
 0/8oHgy80YDrf0t4WkagGj7hwqu+YJptd+r1nzb8ehzPorpf917Rr4+D0eBP59f7vlr+fxU9kEW4&lt;br /&gt;
 O+f/pof+O35D/wPHC77q/2u8Xqb/o9j3ZiEobuX/ufC09H7Kvq50l7r/Cs6s7rVfNLTdI6Fb03YS&lt;br /&gt;
 v6K2B/54/P9W29uvlv8/DctwFq7ID38cOJ/nRZ6VYHZfZg426L/juk5d/13qVb7q/2u8Xqb/8/nw&lt;br /&gt;
 aDw6CoX/7xSeljkQUCIOaAz/VP1OhQniBxAn1J6bRpMoIvRnED+UOf4vPHvCcXZIHsOo/OE+iS/X&lt;br /&gt;
 dFPww+C/1+o91cglIQUYgZi+J48lKTKEw5R+CtflA16EWXhP6MPgiWArPtSmcuhUcpZvvuFwAFbH&lt;br /&gt;
 yK3A2Hp8A4+ermfc7jV+MU3+BZuSRVIe4wAMidkoNtataRYH82HdLM42mMVdWEPHP+pnDf/MRvA/&lt;br /&gt;
 +GWI/3ZaCdgi/1/Ff/DW/5r/f42Xif/wDmxqlBfk5VsBu//3hrTmV+f/yBl+jf9f5fVC/z87In7s&lt;br /&gt;
 +CL+r0Rm8wZAAoLDLMsima3BAz0tCXfl+9g9DA79QxdfTt6f4b0PWf4pJfE9Oc/mebEIyyTP9vDp&lt;br /&gt;
 2fQE7938dOK6wfAYf0BYgOFEhzv7+93k4vz2NxyB7zy/z2De92EZPeDpb5e3k1+xc+gdDg8dmM85&lt;br /&gt;
 dPwhvHWCQ4Qd16FfBH+A1A6PPuN3ncg6ElmfI7uP91Yw6d5qXWTg+/bwuyaisColRnh/Hi6S9Okd&lt;br /&gt;
 pmD7q3cYUMafHhJArHwgGJxuUj7hZIUp9RmEDHt4enfNoA24uBKXoFo4kNkkTHnk01owPoizNcJ0&lt;br /&gt;
 HOdzbWLbst39OL290b6mgQ2gkt2vAADhDSvL19X3/xj6pkX1JCFDuagRrGmUr2koctlcVz9wxse4&lt;br /&gt;
 /IRwfpCSEuI5fD69OoB4Yoir38DfmGgruBlDkAAHT88vf744O/hlcnF3ZkDWl8iOJLIpIJvmUZjC&lt;br /&gt;
 SrawraQAkOUAkunAa644EBqukpisQI43Mj2Q0x8pASypAJYQ1V0V10X+Mcki0kQDYSEGFA6D7C0r&lt;br /&gt;
 yJfhM5T4jDV8CkI4TvTNJI7hgav6oiBcYUMhcMhBuExKPHoLJaxtQyx7CSUou+MaVX0kKXMGkrQc&lt;br /&gt;
 qMqL+zBL/sXMTQe3EaaE6UC1tZ2RNAcccZlvXNsjhYGjMFg3UAjTuywpdUQQ1gSvDorXAPtcfMYK&lt;br /&gt;
 H2GqwXakpGVq2LcYvEEeJSBtCMf4U1I+1OzNhrkc5RYcX5q3sIgefobNXXtKPobvEabD3+GYLAsS&lt;br /&gt;
 weQx3X2R7CEEUY+n+hP62AQ3MOGnPIEjzO9svUoyEOMTmPY+L55aSAIAwgwERxLmmYaXAiD8Qhl3&lt;br /&gt;
 lA9xKtu7t8zBRKRSaRsk8FGQsFAAdOBPa24GGuhQgw54WA8H4phIUN7DGdVIOMk75IQPgXsAoSQv&lt;br /&gt;
 WnwdZXAehsX3B8a1V57EOdIQv5rPk4j8mD+2cL+GUXyFMAPADOKl+MPa24XHgr9yRc5Y4P/wtErA&lt;br /&gt;
 zZ2SNPlIiidOC7dNLU90XQFjAY05OObwvUhDeDNznqMXyq25A2HqSEqWD3lGDPHVLYwjzCCwAJE0&lt;br /&gt;
 NH5cI6QxJmlBuDc1wQDCViMxypO5jkbMo4WQRyCBx4l97GTgmqZWLsx1talL8nhLikUCHuk8ph6B&lt;br /&gt;
 Jo80RMDwSlQAFgtgrEP3wMtoNJQrcz3pWudhtEogSCe3TVbD0CP1rqi5Vj+Jn+D9n8LHd1j+UoqA&lt;br /&gt;
 GUsIFCo8XdP6udrmSHjBR/iNyTr/Sh+IJzEYt4ZxztYLiP+jKZOsmvjVRroUCWH7KntDagtMFCg/&lt;br /&gt;
 6Qo/mWQ0BVtFJMn09LJDEHkUVYOEIP/0kqJbV60elCFsom0zZUMjZcp3usJ3FuQe/BspSGziEGyC&lt;br /&gt;
 sYARzki6UhoT1dzvRhyZ4zFJuatcoytcI4T1ZcJX9DyLwfyWecsCgFPQwIAJEu4Z7mYLKwabRItN&lt;br /&gt;
 dpW/dKW/LMicFLCUwoW8J+VDHndIkoQE0ipvs6hgezgLX+wMEbbtDV3lEt2xQnEFNostpUkoENah&lt;br /&gt;
 OkKrjocYFxVEorGsXp99ratcnidc3mq9XOYFxNCT5TKlMgDTn9BqzGMpaUBYhuACGocKHCKtCl4S&lt;br /&gt;
 wzceypJrlCBs18cjE/LKxXnCxfEOsdZa86/pTjOku4UiXy+54sUJFfn7dbJ6IPGlJe2ifJonfFr+&lt;br /&gt;
 KeuYin2L96tEC6oIf7fldMpVeZ4wM3lKrqJovQyzsj0rH0C4pERS0O0m9JTP8YRdo9nQE1JQftGN&lt;br /&gt;
 S4ffCQYIjzGFw5EC/I5+g/86A1NS3+ookDNaVmsJM8IGETBJgKf8jCdsXTTZhPMYuHIy2QnGQ6Z6&lt;br /&gt;
 22Cs/Icn7BktR+YF7I9vyMecKxDdMHXYM469hAe/In6AU/hFgwyjiQNjIfAcm/BUXsQTRk1bDSOm&lt;br /&gt;
 IobjmGq/eA6uIA/6mhpxVT7CF0YsKnLYkqvpr8Oky+NVaFLgGrJLAO+7mhw/hOkXAxOKykf4rgw9&lt;br /&gt;
 78ElVcmkvfusI384RzgpYPu3s+yxp+y978nALCmTMG07KDEAFgWWapUvWAYxTFNqYugkq+8wPBxn&lt;br /&gt;
 ecnwqbLhgOjhZkSU7fZFjHtPwHIyCfn7GkLExu5AOE320N8FgIhTwMZR0y6fsBkBZdB9EaI+BoPB&lt;br /&gt;
 XZb8viad+xNdaAY0pwaAONEgpd2YJWUtMu2hiEMTnsoT+MIwx5YFgmCZLQ7CDZyawdvVzenZDUQI&lt;br /&gt;
 2sBVEZNWPE2HEe6RDjFEd6aMunI4vjDdnQm7lgAIKJn965vYc00hs68VeFSQmZd5lKe2ahSN4DiU&lt;br /&gt;
 oRjV8ZAtIjjT/tDXakDC3nFpfN8d/VSiiuphEA+CJK76E3pwFww9C86M/FUOJBDB2UMOFtWsWpiO&lt;br /&gt;
 A3+7deo5uS6ENyeErJU/X7mWwG3Fx+k9dcMPi67YXouLNbAeCmPycr5yIYEn93VpGVqiBo4Kg2r6&lt;br /&gt;
 379u5d0s3tdXLiUQljxexPX0X4ULs8cgfafvT/doAthuon3lI4bCRC9XZB3n2dNCPBuMsTvY98uH&lt;br /&gt;
 d7Dd44MIPy2Yq6ROSRSVNs1F3cHgcHzoer576Ixpd+JgAA59QIVceuxFmNCyXzGPjlz3PXxAeJY/&lt;br /&gt;
 1jy34478YwxvAAJTEAaAuwT5fBJwUcVcmhG+qY82RbpPztwdwo50+Bn4bqB0bKFUZGuA1JgWY+Mc&lt;br /&gt;
 KIbd32KZg+cldOPRIPV71/VHx5gDwr4PIDmcjd4pwk3t7aC2D610k4vwpm1uMLBxV7gfWbqKTxk1&lt;br /&gt;
 e3rmj7O1IlNB8hKXpXL5JWg2EEm9GIwfHvlAluMF/piq7aGqIpJKfNlfmZZAoFUfotW4GtX467lH&lt;br /&gt;
 g2OckvswesKhmI+pFgMWOQtWNIbIgz3MugbbrYBxPwgyrnJGWgdlrbVkKFtLqvaAljkKsRyh5gE2&lt;br /&gt;
 z/kSA4J3J7d3N5ML/P5ueosj/H7yG6yeVofEb2mqLCqSJTOn77rxcCQewlyLboEORNTQ9A7h6xYm&lt;br /&gt;
 HAVeN38LuJBJusrZOx2rFR1Ma+iB2poQdCWCwm7rZeM2kpkoKyOsxdhda5ZXCNPMwDVM9ykv4jay&lt;br /&gt;
 nAjwA29xs4gKX2kZb/jUyrFyIptZTYQLGDAkCGFEq4BUnzqLEnwMQhGtHgDfGVLYMIJNVQTGFMo1&lt;br /&gt;
 Rmat0ld95iVL+UGRZy6rgaR28trIaU9yOujgNO8l6OQ3rGerkcDC9rWV77xKXxPf5/OdbgRr+eyX&lt;br /&gt;
 8B3hOud7872L7VWn1Vulri9gOzBAZ/x2bPcl22WZnxSrLtXGYoCzFjY2LeaC+clg2ojO1snl9rpx&lt;br /&gt;
 PiOc90M3kOiOOqX02oA8BHzNhhedHP6+bU15v0pL4EAWepmaXgInZWGDqeklcNy4bTY1vSQO4X6m&lt;br /&gt;
 5i3Vail2Bs4NJeeOOjl3k3f0C3XZF5W47nTFWcW6bhsBnNsBy6qlRDthWWUjYDto4pg0hXp634on&lt;br /&gt;
 2olhqZgMa9bB5l7qOpJMFwlillK4mtMHtrfEVcaBJxNZ9hDvQ8j4zszufZGvqFmdhsuAzV5tGXn5&lt;br /&gt;
 pSKnp+E5kpSIpr893gyZ0fyn0ewwWyHBNtkcSlHaTQN3ezSjsnXAYxJphJ8R8JhEGix4H8dXDZkl&lt;br /&gt;
 l8ktLVHtLBJiUZXdNo0Vc0UeSqtUXhd51FWcBe6iWkVzKQA3GidNFtdSm0BpN+4X1MZFdlpqGJxV&lt;br /&gt;
 LZSbENVbLbu1qqOurFQMYUaDuQZc1zahZT1thqM2RY5MYk0nHcYiTgr4JdWN1dOKdpMucHgPWOP9&lt;br /&gt;
 kDa1gxhUlqO1RE1P3z5YQOXZgJ/aE8kG1Jh8BGnrQrEasOwdlUyoHn27uUqZhe+zlCqol72ooGB5&lt;br /&gt;
 dj9Zlw9UCvii3K06m2xCzIFZNVFBs6BOCc/k7tfzi/PJzW+cnkZF2ICYCjtle6mqrVGZE/XLxpoi&lt;br /&gt;
 zLbk2vNDBWnAaB8bqqfMMhgrlnRsUqOEMaqramggUgWrsgG1cn+8gmRygki6QZGWl74QdDnG/Nda&lt;br /&gt;
 y5vNQQKRetre6ig3usk+JkoFerJ7lcrElERrygJjsQRhRjzrFFhVwPWaSQd/J3VLJNPoQLUJv5Em&lt;br /&gt;
 eir90yl8B7+4fFY6jHAboIVKR7bdiIgWUsjy+c3FabLiSTTqefIka++lEdYMtcZMmyQbNAC/ZS1d&lt;br /&gt;
 /XFWnlK2v8aL2OZJeJ6flmwMe8LOjI9134/wbgIgFnHAAuwkAGLhD8I9A6A+4TnaLuGzXWTuailQ&lt;br /&gt;
 EfMsPyRNTxAcjahSXv/PubD6CHdqYS+z7yrXLrt+YdKTSWtKOqEmz/RYgdXOM8EyCnldNRC2mvm3&lt;br /&gt;
 BhNvIElFA26t5HZyc9FJlXCeIoNbJ6JTFzvn9VgmX5UA3GAAn6SbT8MZCF18d3N+VRUe9La8wWh8&lt;br /&gt;
 LM75lA9hyZrxwiRbsXoY/EhL5ZdPSwhg+Aqrp8J6ABuo8tRo6MbVN5ZWtCMCoCrLlAg3wZ4BEdNe&lt;br /&gt;
 s7zCwZSH0It3hnCEGxuwGrEBv6CxlqyU4MmmkzhqrCH1V7SihVo1rU3oxJEBhaGGAv0rdBLMYnty&lt;br /&gt;
 bwSTwwjMhrCd/ITS/Lz7dQLHbVwkQV7zfp3xyP03ul/nz/6ynf93Pkc59cUvvQHAfv7fHdLD/o3z&lt;br /&gt;
 /4Hz9fz/q7xeeP+X77qjeTCQ5/+FyPS4AUCBGu4AMDYiyHNDj+VZRs91x1c3VaiE8M6O8Bm6d52A&lt;br /&gt;
 91CYrwMw4S3cCt3bNN0bOFTeoGhqF9uGFlqD7XvmzR345gMWFmK0ZhCY9AM7EfUxp66ZnLLTNR86&lt;br /&gt;
 Ol8oCIXA1W/6UPf8/kI7pzwLcfL0Tp4vmkeREK6IoYPtw0df5LIEOyXmKMuR1TLYhZRNoaM5FfY9&lt;br /&gt;
 3v/ZA948vuvVKekBLmC2TdgEFmz0vAAzDbXucL6s4hw0y4Ksnrm2W5wxsq/t0EKNCGAf8lUrXAV9&lt;br /&gt;
 pl+zABEe97JmxX6nui1UjCxUyLIGv/RM3wXSsgNlyeklZYYcl5S0DpBY15x2wSt8TQ2stl47maSP&lt;br /&gt;
 82i9gBhS6xeFBW8Ym1YTNiVC/NLOD4S38hNb88PWZifz+wLVW3WjQnWPA6eP16h709SiiNUKd0eT&lt;br /&gt;
 Y3PZKqFf4foLBFM8E4hwnW0f+cjzCKMZol0zy7H5dFUJqHDlKULKLhAinS6uRDxVYSDOok+bjtwa&lt;br /&gt;
 9cmxOXGZNRDIXFT5h472xlR0CGu4Y/Dm9zRZtoFDCH9RdXJsvtxVd7U85AtyTdNxe/w9wq1z3a2Q&lt;br /&gt;
 hcKp9F/b38shhLc4yb+JcO3wR2A6N+TY/L7M7a0IbMbLUOtwpIkgXSQ1iO0tOzXqfSXRFhnItGBe&lt;br /&gt;
 PtA1rFqje502N3WfOzbnLU9ohzckyotYIx51tqc+v/nWsblfeQ57cdpEBKz9jhGxOVd5hHrx65dH&lt;br /&gt;
 xNpnLuKqbPrFEXGtzd/y1PPVpIEJrYTvGBObl5FHmCP6p4YLbI8M/dQvwMXmM9TRVNnoLs5zdHo8&lt;br /&gt;
 luprdcXHVRe92eIg3Ns5GC/LsPkFT4Xv4BVqVxy1Y0nmBZqXM/S75wjCLPNNRy+558iSXXfUYVfe&lt;br /&gt;
 bRSmKoqEDaxGmRjH1cVdW25T+EUaO/Ljrs1D+OqswiKfJRTX6g1o40Y3ziH7OHLa9bYzR07vENzo&lt;br /&gt;
 yF2bn9KOBC/59ov/vW32oHcQzQB7BS+iG3UnwYsT0KhgA802n+irQ1URvV9vXiQki9OnkxzQ7LwA&lt;br /&gt;
 skovVXDyzsfMfm8U2joj2CnStmshjCSKfcO6daa4FXnXN7L2XEITXXodzHY6aHPNfvcRgWlJM1nr&lt;br /&gt;
 Vatm1+i8pjdNrrsNZ93GIPzF9gqezePLU9T/DDNSyii0tfX+Gx3GCzG+9bEmWKztj3ZZqbLmnWWI&lt;br /&gt;
 CQhfs34IkkXkasm73VpcY8e3lhIO58uqDafH1UMQzloutzBiKGKK2TpJY1gWdUK0tu7ijKgA29Zd&lt;br /&gt;
 IbxTUbKFF74IL+LphJ3IVy1tCKsQaTrBcrQHPuM+F/d4tsBAngpfwUKk5IJ8JGmFAa2dNERhyoAw&lt;br /&gt;
 g9oKUY8e4e2Bqs3jy7Phq/WMts28T7JksV5QNBCutwhW2HI4TAHB1/VFmNlImqLqg7DNV2vHwDnC&lt;br /&gt;
 4WNPhBlg9kUQtjlaeVhcRIHT5D4DG12Qjhj4WkSKEqh33YAj7Hq2+zaMOMoM2/ntDeGtv9VCIn2z&lt;br /&gt;
 cX6L1fAzUtStOxaM2wrP5iID4SLDdZzUKy4IU0TZ93h/fZCGn3oVXHx7vcW3ObRg2EjwXa9nKV2L&lt;br /&gt;
 roT5Uoxtn3t9SZHOfFLX1DqkblpfJmleikMYexn5dA0uTfvqnfWUFy0vJfwkRLuSTNsM5wiLw/wz&lt;br /&gt;
 1qWnapy0gMlO5ogKIXyQZS14T3eMjewiaztu7TZZ72OVgaONfvp+zdK/iLo7JfXAhXbvatk0+Fjt&lt;br /&gt;
 l1pdiQiLPUVjoB3nrSnC7UAizyTu9H/SUSbCcgDaxF6pQRGL4+tNprB71dpMKw6KHlzV/ag3lOoX&lt;br /&gt;
 sddpgt1E+0vt/mzGL3NXrDmkkRfX7yk90qhAuNYs2y5nic7efLHIBYom8pCFwI3k1YpM/HhBvUKj&lt;br /&gt;
 wfDShvaFqBZoX0n7YjtubFozEadSpbJ1P2vLwteppoWmddK3swjPzCjauhbHDbZOQf6IOPkD0XTH&lt;br /&gt;
 OY8mshvxy5S1eDZnLcdojQ2ZqkbHc3NmtdOu/mDNj1Ubbi0h2I0uIx6CIUG+9SBCvUO80T4ulgZh&lt;br /&gt;
 2QXd+v8OZMN1z0bqJXCw0XfdPHum92w3n93o+6abK0PD+LneLt5uLu9oRYeti96M/tjjSJ2hI74g&lt;br /&gt;
 98CAZvu8fmzWcpLXKDwiSuOX2zDmXIcFN3v0rAHvl2254JqFqy6Js+tw6+YFO0ft/KQ18C04aucn&lt;br /&gt;
 7Oq34aidn/TA8hYctfOTnooxHdM1clTWhi+np5pFYJykN4e0eFkVSWDy96fq7a/y7eVUvp1eKWDY&lt;br /&gt;
 4quqhu0YrhHTUc1w3ZCU2qCqe7od5tKz5eJ/NWGQYOTol02z1+ioptYNwkHtDiDzmVIjpiLPoWU0&lt;br /&gt;
 5R0ztLhV5S2bPqQBru5q7TwnappdntxhUfNV7T4XxMjer/8vJV3ehYbUdcbrORvLyU4jVo6O1Sk9&lt;br /&gt;
 8MnEbBVi1jegT6VyKZYjmsaJxO78d/6IC3qmIQVmhvTGA3Pn/ioUc4pTZ81sBB17K7+Hhz3qI++e&lt;br /&gt;
 3Yg/mgf1/9aazF+xEX/kBP7XRvx/95et/9/9nCWrHfxP4Pb+f8cPhk6z/3/g+l/7/1/j9bL+fz/0&lt;br /&gt;
 B8NZOJf9/0xkejT//197V9vcKI6E77N/hao2H672sglgMDhX88GbZOZ8N3Fcca5mv21hwA43DrC2&lt;br /&gt;
 s5Nc1fz365aEkBBgkjjeqw3aqh2H19YLT7e6W4/4dTWZ/8WCKOo3FBzAQSpiTLd3Efl0eX49Qy7b&lt;br /&gt;
 Vfh3XGUPh5g9WR/4a0k31z75gNEM7vLCmlql8skW+oMucj4DuXL+fJOCsftAGadxq6yUVpBmIoTF&lt;br /&gt;
 DUodKRF5bQYIo6F+ifiWJn5u7q/SZZzM7kCRyrLnArM+odeQDbvoGfKWpKXit5O3r8krWBDu/DD9&lt;br /&gt;
 9tnfbM/v/GQpDxIw6JHfqRXDLWs7t+32gKosA0WWKyUNBmcVTISWSwPaCeFoQriqEP7j2wsx0ITw&lt;br /&gt;
 FCG++OtEDeoxQXpkz13iaoIMFUHGCQxLmHmVJYHhsWdJPE0SkY7PRLl8zOBbf/smGeqCmIogH1e+&lt;br /&gt;
 3jPr9kuN2olh6ugv8uEZ4dO/47ACRABoqpA9x5fnhSV4tKo2eVEHc+E6YzJO4s0k2pZJtHtVkPdS&lt;br /&gt;
 WSn9aYtESx25hacmKaS8XcdZwcI2QYooxkSy5SdKQuB/xkltYrIOv8KZEGezaI3UONN0vS2NJ3jp&lt;br /&gt;
 vr8vU0dfwTtTiMKZ2CUi6DqCZFMHUuF9iLP8Qdpmb+gv2e5ftZg6ogoPQ5oEN1mgS/I2OGbqkCrW&lt;br /&gt;
 98fZP9LNVl1GN56yNMoeqUmkfFYaa+PGfTrECj9InMFQ/5auv2rCYTo/PbMf4Xrke6tW1FFYeEeo&lt;br /&gt;
 rPf+pkZWPHNQWa0KO10gtR+UNra6Gp3zvFno8bftcEuHZ0HQMU/T7dRfwxe+LZpwnQUncAIaMcNT&lt;br /&gt;
 IcmKKypxrzYhVwdbsUcfvvljXGDsz/A3ie/9ZUQwYKrNVp5lGTdpAEsHY7H0ATTAlZ+xXKtdW4vr&lt;br /&gt;
 QCpWLrDHXDJHZqkWULd9qLuBsic7DgADJKoYp1VpBLLY1olwgqab+HGUh5hZr4xQFrT9Usobu0C3&lt;br /&gt;
 MI9Cs7T16fVs/EvBkbKp9RpSgqYjSsMB/++ROBQO/qX0W5n91RElFXMsvBu+dpgGtyP7KX8K1olq&lt;br /&gt;
 1JWrH4Yx8/Qi746oJCV1ZzfAt8HEqq/5g4jH59XokZzxqTT5EodgDlT89h/Fbz4jEH+DYQ61R9Nc&lt;br /&gt;
 HGIGsvgTzdSWREha21jyyPjErDdtXCAv7UIiLM3HRwP7Ix8LRb9L/QyGvNTTwsRtV4Xyp20Jr4Kw&lt;br /&gt;
 bapqQEmRxzR8FW1JbrRQ5kTBWdhQD8WEoykDmiXFa6hUoS7SrlbA1oyp+j5ICGi/TDHeGsVWzbOi&lt;br /&gt;
 iTG0miZtZS5bgFbBm05Nrkp5F6zRryfnpzfTczLHnalwprtDZtmIU4cE5blrJW/ZRrROBophVicv&lt;br /&gt;
 6dHcl2PezjKhZT3eybaeGOY6beVRvpi8iT9YFdot22zVciNwUXmT/Kqdw0KxAYXQeJzbVaL9yxRr&lt;br /&gt;
 O6tRtj0t4fFI5CmiXpEe64JEXLKTWVabzQk4mWC0Pz/XDljKdqglHCRM1wuRGWlJHKC3EoXnnxIV&lt;br /&gt;
 fjKeQfs0yF6YH+1GsuYcsApvCTxLpcsaJXzlWUxJcHdLw8eDZMyIv3hGDRNSocKsjXaWxBRWfBRF&lt;br /&gt;
 nmFdKLSxI/5xwdilRoZPCnO5Ws+CIIWN3RAKLUlhScaoP19FlWIgYyMVA68qbOFaQf5KctsW03lk&lt;br /&gt;
 A5tuj/3S2OdwMVRJyBbGIWOfQ894H7HPpvhf/3sMCJSulyyx88WRwOb4n+HYbl+N/1mm2e/ifwcp&lt;br /&gt;
 r4v/RRH0mD0fiPhfaci0iARqd9TEBC2k7aXbV+EGVm6fsl6K+Uzgrz8DliUbhYy7R+BDRkqRuzgA&lt;br /&gt;
 fFqxK3CnUpYyteb87Su6HfCORHdl8fke1wmatZUTTDARwPAW001l5w9fGWXRKgqWmw0lH8+vp0iO&lt;br /&gt;
 m5IlRN2/qVxXMDheypKm1xUjdbWrIutrawt6n3gDXfKkbBNI6UtpVYuN26m/YpuSeYRTqZB8u4sS&lt;br /&gt;
 wm/GaSMCPM3OPUBtW0Ylq6ueT9ui+2yVPkWR6uOj68VY3ZOHezS3/NXqSelyMHb4rbt6XGUueGUb&lt;br /&gt;
 yMub27WBXdsGdqkNbin9rMS6xloAWWkprQC9jI5xdE8UuxS1WK4CJs7ev+KmhWyD3Er9TxYtpyoT&lt;br /&gt;
 m6iYT/45vfzEfIKteNjqthEf1A+z3IoXn9BnP1k+0BdK7A3lz+zbOt5uIxxPZJOlX+HXit9W3/QF&lt;br /&gt;
 68EePrPc79duiLn1Q0zsiIu89Ffjq0t5O3g5U5Q1wfRf57MfXLrejaUJMpgBxOHM82R2ik+p6K6K&lt;br /&gt;
 ddd1I8erR0QRq6KuNJDGtCpGjqBwYIigsucfUxbv8xn5Acz/6cdf2m2n3rAoq0rUwneGuvx6vSzv&lt;br /&gt;
 iyNkFW6na3Vp+FTaIKdqZy95utYTtN+4kq5yDUFhDtAJr6o+8ZDQMDjdOSIq8EoHsJOo747vxp6v&lt;br /&gt;
 4KJ8CtpqLgxn0dRwvjn6ERFfPLoPChJttoRKciDka7MI23EBl2Px/Qr5zcoSF3nBGHcxl2jYjwhu&lt;br /&gt;
 WF6QC0jLB7SPn99e/iDyJRd02L0ii3XuDi11JmcecCbnOcP++5jJvayo8z/oSsS5OcA0cvneh/PT&lt;br /&gt;
 PbwDG9x1jLr5H5ZS/ufAgNPE2cO7d5Z3Pv/b2f+oBn6P1oCWHwD/ATviZPtMTwCd/xu1/W8atlua&lt;br /&gt;
 /1uu63bz/0OUV87/B2DhLsIhnf9XjRTNAcB1RPkwv7Hm7A19VtXJbZr1itupiZK/OL9NGFxn3CGO&lt;br /&gt;
 XLZsT6Rc+7Idj+Ttkhp0nSKMpOsczw78uRP9NOgHC67rFgvjJ2/owLD3FqDzFi/VdY4xhAfalq7r&lt;br /&gt;
 xBmwyfre0NunrpPe+kcP0668UXkW/sMR/gU9SwPswn/LLq3/sNDK6vD/EOV1+L9wHC/wbUfD/2Kk&lt;br /&gt;
 aGDOAPZaP9GsA1qhv/za4k0XMNFZxcnyjMC8J13LpwDMYUp6husML+XjNP3j+vyM6Bv3NV2mXcD+&lt;br /&gt;
 HV2cqdpFu+J6gdfc501Tr31E60maZ+B5QRAGnqp5zH1qHseu0zyOfWIaLnzXb6B58K1/9AfyJy8N&lt;br /&gt;
 +G98Z0dfvQJwR/wPhk+/vP7PNrv430HK6/B/2F94RmC4Of7rg0fD8fySHM+LI9R6D8ThUYCbKtOD&lt;br /&gt;
 25T8SOZPJExOIswb/SBy6T4Yf3sofiOuZFG0BigL8Xf0iN5GJCTCv5B7n5v8+DB4IiDeVzpRSNPt&lt;br /&gt;
 xaQSn/jZ6ZczMp6Mb8ejz79OR7PZl+ubiwaULlWy5BHrDy1fXdcd7PCI7WNftb7TcnLwrvxf773s&lt;br /&gt;
 sv/3sPx7J/4PAPM5/ruuO0D/n9vv/D8HKa/D/8Fi6Iem4+j4TwfPTvAvG7fhvFIt8IfBsbnIlj8j&lt;br /&gt;
 P49ml79ejG9Of/epRT17WCzix/z4RNchmNK++aBk14Me2ESrBY1xUq3gJ2nydJ8+bOhWLUxPJJQV&lt;br /&gt;
 XHmeWTxPy2rXnvkjAdwOlfstodOKk/iIqzQsJiOaWpJqVquUaCud30XB1wx3kT4jjmmRvsGOj5Mw&lt;br /&gt;
 esx3gGVUhdFvyqkgOcaIUumo0LHHRRZ76RI2dzkuUtjz81f+4yz+L3Qj2nlg2HmW3TS/EUNAVZoR&lt;br /&gt;
 KDBPDSPZhwsj9U3b+HMmBCr4vw+wryg78B+GRY7/0DAOHDfhws7/c5DySvyfz10vKPg/amz+T6t0&lt;br /&gt;
 7q9ovp9k36+XG0wbloB8/ZCcblZ+Fp74cJJiYrqk5NNnCMIUgqdxWHtXFlMgvU3T1e0dwiq83mwA&lt;br /&gt;
 Gy5XyTy33EXJPPff3jy3vUHLOPV+cQUb700H2F94/Lfe/yvHf2ks0DANZ2B18d9DFLCd/s/636b9&lt;br /&gt;
 b/e7/u9KV7rSla50pStd6UpXutKVrnSlK13pSle60pWudKUrXXlJ+R8PJCZ+APAAAA==&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Patch configuration files&lt;br /&gt;
 &lt;br /&gt;
 sed -e&amp;quot;s%BASE_DIR%${BASE_DIR}%&amp;quot; -i $(find -name \*.ldif)&lt;br /&gt;
 sed -e&amp;quot;s%BASE_DN%${BASE_DN}%&amp;quot; -i $(find -name \*.ldif)&lt;br /&gt;
 sed -e&amp;quot;s%INITIAL_PASSWORD%${INITIAL_PASSWORD}%&amp;quot; -i $(find -name \*.ldif)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Fix CRC32 checksums on configuration files&lt;br /&gt;
 &lt;br /&gt;
 for FILE in $(find -name \*.ldif); do&lt;br /&gt;
     CRC32=$(tail -n +3 ${FILE} |crc32 /dev/stdin)&lt;br /&gt;
     sed -e&amp;quot;s/^# CRC32 [0-9a-f]*$/# CRC32 ${CRC32}/&amp;quot; -i ${FILE}&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Add Root DSE&lt;br /&gt;
 &lt;br /&gt;
 DC=$(echo ${BASE_DN} |cut -d &amp;quot;,&amp;quot; -f1 |cut -d &amp;quot;=&amp;quot; -f2)&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF |/usr/sbin/slapadd -F &amp;quot;${BASE_DIR}/etc&amp;quot; -b ${BASE_DN}&lt;br /&gt;
 dn: ${BASE_DN}&lt;br /&gt;
 dc: ${DC}&lt;br /&gt;
 objectClass: domain&lt;br /&gt;
 objectClass: top&lt;br /&gt;
 structuralObjectClass: domain&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Print instructions&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 Instructions&lt;br /&gt;
 ============&lt;br /&gt;
 &lt;br /&gt;
 Launch slapd (debug level 0 - foreground mode)&lt;br /&gt;
 $ /usr/sbin/slapd -h &amp;quot;ldap://${BIND_IP_ADDR}:${BIND_IP_PORT}/&amp;quot; -F &amp;quot;${BASE_DIR}/etc&amp;quot; -d 0&lt;br /&gt;
 &lt;br /&gt;
 LDAPvi on cn=config&lt;br /&gt;
 $ ldapvi -h &amp;quot;ldap://${BIND_IP_ADDR}:${BIND_IP_PORT}/&amp;quot; -D &amp;quot;cn=admin,cn=config&amp;quot; -b &amp;quot;cn=config&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 LDAPvi on dc=hostsharing,dc=net&lt;br /&gt;
 $ ldapvi -h &amp;quot;ldap://${BIND_IP_ADDR}:${BIND_IP_PORT}/&amp;quot; -D &amp;quot;cn=admin,${BASE_DN}&amp;quot; -b &amp;quot;${BASE_DN}&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Do not forget to update the intitial passwords for both identities:&lt;br /&gt;
 &lt;br /&gt;
     cn=admin,cn=config&lt;br /&gt;
     cn=admin,${BASE_DN}&lt;br /&gt;
&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://www.vincentliefooghe.net/content/openldap-setup-multiple-instances-server Ein Setup für mehrere OpenLDAP Instanzen auf einem Server]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5179</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5179"/>
		<updated>2020-04-25T11:40:38Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Outlook 2016, Outlook 2019, Outlook für Office 365 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/users/administration/email/index.html}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
Hostsharing unterscheidet zwischen E-Mail-Adresse und Mailbox.&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse gibt an, wie eine eingehende Nachricht auszuliefern ist.&lt;br /&gt;
&lt;br /&gt;
Eine Mailbox ist ein Ort, wo erhaltene E-Mails lagern, bis ein User sie lesen will,&lt;br /&gt;
typischerweise indem er mittels seiner Client-Software die Mails mit IMAP oder POP3&lt;br /&gt;
abholt und anzeigt.&lt;br /&gt;
&lt;br /&gt;
In Hostsharing hat jeder User, ob Paketadmin oder Paketuser, eine Mailbox. E-Mail-Adressen&lt;br /&gt;
können unabhängig von tatsächlichen Usern eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist in Hostsharing eine&lt;br /&gt;
Kennung der üblichen Form &amp;lt;code&amp;gt;userimbreitestensinn@domain&amp;lt;/code&amp;gt;,&lt;br /&gt;
zusammen mit einer Zielangabe, das heißt, mit der Angabe, wohin eine mit dieser&lt;br /&gt;
Kennung adressierten E-Mail geliefert&lt;br /&gt;
werden soll. Bei Einrichtung einer E-Mail-Adresse in Hostsharing kann ein Ziel eine Mailbox&lt;br /&gt;
sein, oder aber eine andere E-Mail-Adresse (mit einer beliebigen Domain, ob bei Hostsharing&lt;br /&gt;
gehostet oder extern). Eine E-Mail-Adresse kann mehrere Ziele haben: dann wird die&lt;br /&gt;
eingehende Mail zur Auslieferung vervielfacht.&lt;br /&gt;
&lt;br /&gt;
Es werden n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht. Das heißt,&lt;br /&gt;
mehrere E-Mail-Adressen können dieselbe Mailbox als Ziel haben, und eine E-Mail-Adresse&lt;br /&gt;
kann mehrere Mailboxen als Ziele haben.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist, ähnlich wie eine E-Mail-Adresse, mit einer Angabe verbunden, wie&lt;br /&gt;
mit einer entsprechend adressierten E-Mail bei Eingang zu verfahren ist. Ein E-Mail-Alias&lt;br /&gt;
in Hostsharing ist nicht an eine bestimmte Domain gebunden, wohl aber an ein bestimmtes&lt;br /&gt;
Paket. Daher beginnen alle Aliase mit einem Pakennamen (plus Bindestrich) in der Form xyz00-... (Damit kann ein Alias gleichlautend mit der Mailbox eines Paketusers sein: in diesem Fall hat der Alias&lt;br /&gt;
Vorrang; eine so geleitete Mail wird nicht in die Mailbox geliefert, sondern entsprechend dem zum Alias gehörenden Ziel.)&lt;br /&gt;
&lt;br /&gt;
Das Ziel eines E-Mail-Alias ist &lt;br /&gt;
allerdings flexibler als das Ziel einer E-Mail-Adresse, und erlaubt beispielsweise, eingehende&lt;br /&gt;
Mails durch Programme verarbeiten zu lassen. Damit kann man unter anderem Mailverteiler flexibel definieren.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. E-Mail-Aliases werden deshalb als&lt;br /&gt;
Werkzeug für Administratoren angeboten; der Endverbraucher wird in der Regel keine Aliases benötigen.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;localpart@domainpart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Beispiel = username@example.com&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierter Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-username&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
:*kann durch .forward-Datei(en) umgelenkt werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
&lt;br /&gt;
Wenn E-Mail-Alias gleich wie eine Mailbox-Bezeichnung lautet,&lt;br /&gt;
hat der Alias Vorrang. Um ankommende E-Mails dennoch in die Mailbox liefern zu lassen, &lt;br /&gt;
kann als Ziel eines Aliases die Mailbox-Bezeichnung mit vorangestelltem Backslash&lt;br /&gt;
angegeben werden (z. B. &amp;quot;\xyz00-username&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Outlook 2016, Outlook 2019, Outlook für Office 365 ===&lt;br /&gt;
&lt;br /&gt;
Outlook 2016, Outlook 2019, Outlook für Office 365 erfordern folgenden Registry-Patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
&lt;br /&gt;
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Setup]&lt;br /&gt;
&amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;=dword:00000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der &amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;-Patch reaktiviert die Dialoge zur Einrichtung von E-Mail-Konten früherer Outlook-Versionen. Diese Dialoge erlauben u.a. die manuelle Konfiguration der E-Mail-Konten. Implizit sorgt dieser Patch auch dafür, dass jüngere Outlook-Versionen, die über klassisches Autodiscover (XML-basiert) bereitgestellten Konfigurationsoptionen korrekt verarbeitet. In unseren Tests zeigte sich, dass jüngere Outlook-Versionen ohne diesen Patch nicht alle per Autodiscover bereitgestellten Informationen zur Anwendung bringen. Das neue Protokoll Autodiscover V2 (JSON-basiert) bietet - nach unserem Kenntnisstand - hingegen keine Möglichkeit, Konfigurationen für die Zugriffsprotokolle POP3, IMAP und SMTP zu übermitteln.&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5178</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5178"/>
		<updated>2020-04-25T11:39:52Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Outlook 2016, Outlook 2019, Outlook für Office 365 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/users/administration/email/index.html}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
Hostsharing unterscheidet zwischen E-Mail-Adresse und Mailbox.&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse gibt an, wie eine eingehende Nachricht auszuliefern ist.&lt;br /&gt;
&lt;br /&gt;
Eine Mailbox ist ein Ort, wo erhaltene E-Mails lagern, bis ein User sie lesen will,&lt;br /&gt;
typischerweise indem er mittels seiner Client-Software die Mails mit IMAP oder POP3&lt;br /&gt;
abholt und anzeigt.&lt;br /&gt;
&lt;br /&gt;
In Hostsharing hat jeder User, ob Paketadmin oder Paketuser, eine Mailbox. E-Mail-Adressen&lt;br /&gt;
können unabhängig von tatsächlichen Usern eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist in Hostsharing eine&lt;br /&gt;
Kennung der üblichen Form &amp;lt;code&amp;gt;userimbreitestensinn@domain&amp;lt;/code&amp;gt;,&lt;br /&gt;
zusammen mit einer Zielangabe, das heißt, mit der Angabe, wohin eine mit dieser&lt;br /&gt;
Kennung adressierten E-Mail geliefert&lt;br /&gt;
werden soll. Bei Einrichtung einer E-Mail-Adresse in Hostsharing kann ein Ziel eine Mailbox&lt;br /&gt;
sein, oder aber eine andere E-Mail-Adresse (mit einer beliebigen Domain, ob bei Hostsharing&lt;br /&gt;
gehostet oder extern). Eine E-Mail-Adresse kann mehrere Ziele haben: dann wird die&lt;br /&gt;
eingehende Mail zur Auslieferung vervielfacht.&lt;br /&gt;
&lt;br /&gt;
Es werden n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht. Das heißt,&lt;br /&gt;
mehrere E-Mail-Adressen können dieselbe Mailbox als Ziel haben, und eine E-Mail-Adresse&lt;br /&gt;
kann mehrere Mailboxen als Ziele haben.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist, ähnlich wie eine E-Mail-Adresse, mit einer Angabe verbunden, wie&lt;br /&gt;
mit einer entsprechend adressierten E-Mail bei Eingang zu verfahren ist. Ein E-Mail-Alias&lt;br /&gt;
in Hostsharing ist nicht an eine bestimmte Domain gebunden, wohl aber an ein bestimmtes&lt;br /&gt;
Paket. Daher beginnen alle Aliase mit einem Pakennamen (plus Bindestrich) in der Form xyz00-... (Damit kann ein Alias gleichlautend mit der Mailbox eines Paketusers sein: in diesem Fall hat der Alias&lt;br /&gt;
Vorrang; eine so geleitete Mail wird nicht in die Mailbox geliefert, sondern entsprechend dem zum Alias gehörenden Ziel.)&lt;br /&gt;
&lt;br /&gt;
Das Ziel eines E-Mail-Alias ist &lt;br /&gt;
allerdings flexibler als das Ziel einer E-Mail-Adresse, und erlaubt beispielsweise, eingehende&lt;br /&gt;
Mails durch Programme verarbeiten zu lassen. Damit kann man unter anderem Mailverteiler flexibel definieren.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. E-Mail-Aliases werden deshalb als&lt;br /&gt;
Werkzeug für Administratoren angeboten; der Endverbraucher wird in der Regel keine Aliases benötigen.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;localpart@domainpart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Beispiel = username@example.com&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierter Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-username&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
:*kann durch .forward-Datei(en) umgelenkt werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
&lt;br /&gt;
Wenn E-Mail-Alias gleich wie eine Mailbox-Bezeichnung lautet,&lt;br /&gt;
hat der Alias Vorrang. Um ankommende E-Mails dennoch in die Mailbox liefern zu lassen, &lt;br /&gt;
kann als Ziel eines Aliases die Mailbox-Bezeichnung mit vorangestelltem Backslash&lt;br /&gt;
angegeben werden (z. B. &amp;quot;\xyz00-username&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Outlook 2016, Outlook 2019, Outlook für Office 365 ===&lt;br /&gt;
&lt;br /&gt;
Outlook 2016, Outlook 2019, Outlook für Office 365 erfordern folgenden Registry-Patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
&lt;br /&gt;
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Setup]&lt;br /&gt;
&amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;=dword:00000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der &amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;-Patch reaktiviert die Dialog zur Einrichtung von E-Mail-Konten früherer Outlook-Versionen. Diese Dialoge erlauben u.a. die manuelle Konfiguration der E-Mail-Konten. Implizit sorgt dieser Patch auch dafür, dass jüngere Outlook-Versionen, die über klassisches Autodiscover (XML-basiert) bereitgestellten Konfigurationsoptionen korrekt verarbeitet. In unseren Tests zeigte sich, dass jüngere Outlook-Versionen ohne diesen Patch nicht alle per Autodiscover bereitgestellten Informationen zur Anwendung bringen. Das neue Protokoll Autodiscover V2 (JSON-basiert) bietet - nach unserem Kenntnisstand - hingegen keine Möglichkeit, Konfigurationen für die Zugriffsprotokolle POP3, IMAP und SMTP zu übermitteln.&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5177</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5177"/>
		<updated>2020-04-25T11:38:11Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Outlook 2016, Outlook 2019, Outlook für Office 365 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/users/administration/email/index.html}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
Hostsharing unterscheidet zwischen E-Mail-Adresse und Mailbox.&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse gibt an, wie eine eingehende Nachricht auszuliefern ist.&lt;br /&gt;
&lt;br /&gt;
Eine Mailbox ist ein Ort, wo erhaltene E-Mails lagern, bis ein User sie lesen will,&lt;br /&gt;
typischerweise indem er mittels seiner Client-Software die Mails mit IMAP oder POP3&lt;br /&gt;
abholt und anzeigt.&lt;br /&gt;
&lt;br /&gt;
In Hostsharing hat jeder User, ob Paketadmin oder Paketuser, eine Mailbox. E-Mail-Adressen&lt;br /&gt;
können unabhängig von tatsächlichen Usern eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist in Hostsharing eine&lt;br /&gt;
Kennung der üblichen Form &amp;lt;code&amp;gt;userimbreitestensinn@domain&amp;lt;/code&amp;gt;,&lt;br /&gt;
zusammen mit einer Zielangabe, das heißt, mit der Angabe, wohin eine mit dieser&lt;br /&gt;
Kennung adressierten E-Mail geliefert&lt;br /&gt;
werden soll. Bei Einrichtung einer E-Mail-Adresse in Hostsharing kann ein Ziel eine Mailbox&lt;br /&gt;
sein, oder aber eine andere E-Mail-Adresse (mit einer beliebigen Domain, ob bei Hostsharing&lt;br /&gt;
gehostet oder extern). Eine E-Mail-Adresse kann mehrere Ziele haben: dann wird die&lt;br /&gt;
eingehende Mail zur Auslieferung vervielfacht.&lt;br /&gt;
&lt;br /&gt;
Es werden n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht. Das heißt,&lt;br /&gt;
mehrere E-Mail-Adressen können dieselbe Mailbox als Ziel haben, und eine E-Mail-Adresse&lt;br /&gt;
kann mehrere Mailboxen als Ziele haben.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist, ähnlich wie eine E-Mail-Adresse, mit einer Angabe verbunden, wie&lt;br /&gt;
mit einer entsprechend adressierten E-Mail bei Eingang zu verfahren ist. Ein E-Mail-Alias&lt;br /&gt;
in Hostsharing ist nicht an eine bestimmte Domain gebunden, wohl aber an ein bestimmtes&lt;br /&gt;
Paket. Daher beginnen alle Aliase mit einem Pakennamen (plus Bindestrich) in der Form xyz00-... (Damit kann ein Alias gleichlautend mit der Mailbox eines Paketusers sein: in diesem Fall hat der Alias&lt;br /&gt;
Vorrang; eine so geleitete Mail wird nicht in die Mailbox geliefert, sondern entsprechend dem zum Alias gehörenden Ziel.)&lt;br /&gt;
&lt;br /&gt;
Das Ziel eines E-Mail-Alias ist &lt;br /&gt;
allerdings flexibler als das Ziel einer E-Mail-Adresse, und erlaubt beispielsweise, eingehende&lt;br /&gt;
Mails durch Programme verarbeiten zu lassen. Damit kann man unter anderem Mailverteiler flexibel definieren.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. E-Mail-Aliases werden deshalb als&lt;br /&gt;
Werkzeug für Administratoren angeboten; der Endverbraucher wird in der Regel keine Aliases benötigen.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;localpart@domainpart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Beispiel = username@example.com&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierter Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-username&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
:*kann durch .forward-Datei(en) umgelenkt werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
&lt;br /&gt;
Wenn E-Mail-Alias gleich wie eine Mailbox-Bezeichnung lautet,&lt;br /&gt;
hat der Alias Vorrang. Um ankommende E-Mails dennoch in die Mailbox liefern zu lassen, &lt;br /&gt;
kann als Ziel eines Aliases die Mailbox-Bezeichnung mit vorangestelltem Backslash&lt;br /&gt;
angegeben werden (z. B. &amp;quot;\xyz00-username&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Outlook 2016, Outlook 2019, Outlook für Office 365 ===&lt;br /&gt;
&lt;br /&gt;
Outlook 2016, Outlook 2019, Outlook für Office 365 erfordern folgenden Registry-Patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
&lt;br /&gt;
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Setup]&lt;br /&gt;
&amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;=dword:00000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Patch reaktivierte die Dialog zur Einrichtung von E-Mail-Konten früherer Outlook-Versionen. Diese Dialoge erlauben u.a. die manuelle Konfiguration der E-Mail-Konten. Implizit sorgt dieser Patch auch dafür, dass jüngere Outlook-Versionen, die über klassisches Autodiscover (XML-basiert) bereitgestellten Konfigurationsoptionen korrekt verarbeitet. In unseren Tests zeigte sich, dass jüngere Outlook-Versionen ohne diesen Patch nicht alle per Autodiscover bereitgestellten Informationen zur Anwendung bringen. Das neue Protokoll Autodiscover V2 (JSON-basiert) bietet - nach unserem Kenntnisstand - hingegen keine Möglichkeit, Konfigurationen für die Zugriffsprotokolle POP3, IMAP und SMTP zu übermitteln.&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5176</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5176"/>
		<updated>2020-04-25T11:37:49Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Outlook 2016, Outlook 2019, Outlook für Office 365 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/users/administration/email/index.html}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
Hostsharing unterscheidet zwischen E-Mail-Adresse und Mailbox.&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse gibt an, wie eine eingehende Nachricht auszuliefern ist.&lt;br /&gt;
&lt;br /&gt;
Eine Mailbox ist ein Ort, wo erhaltene E-Mails lagern, bis ein User sie lesen will,&lt;br /&gt;
typischerweise indem er mittels seiner Client-Software die Mails mit IMAP oder POP3&lt;br /&gt;
abholt und anzeigt.&lt;br /&gt;
&lt;br /&gt;
In Hostsharing hat jeder User, ob Paketadmin oder Paketuser, eine Mailbox. E-Mail-Adressen&lt;br /&gt;
können unabhängig von tatsächlichen Usern eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist in Hostsharing eine&lt;br /&gt;
Kennung der üblichen Form &amp;lt;code&amp;gt;userimbreitestensinn@domain&amp;lt;/code&amp;gt;,&lt;br /&gt;
zusammen mit einer Zielangabe, das heißt, mit der Angabe, wohin eine mit dieser&lt;br /&gt;
Kennung adressierten E-Mail geliefert&lt;br /&gt;
werden soll. Bei Einrichtung einer E-Mail-Adresse in Hostsharing kann ein Ziel eine Mailbox&lt;br /&gt;
sein, oder aber eine andere E-Mail-Adresse (mit einer beliebigen Domain, ob bei Hostsharing&lt;br /&gt;
gehostet oder extern). Eine E-Mail-Adresse kann mehrere Ziele haben: dann wird die&lt;br /&gt;
eingehende Mail zur Auslieferung vervielfacht.&lt;br /&gt;
&lt;br /&gt;
Es werden n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht. Das heißt,&lt;br /&gt;
mehrere E-Mail-Adressen können dieselbe Mailbox als Ziel haben, und eine E-Mail-Adresse&lt;br /&gt;
kann mehrere Mailboxen als Ziele haben.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist, ähnlich wie eine E-Mail-Adresse, mit einer Angabe verbunden, wie&lt;br /&gt;
mit einer entsprechend adressierten E-Mail bei Eingang zu verfahren ist. Ein E-Mail-Alias&lt;br /&gt;
in Hostsharing ist nicht an eine bestimmte Domain gebunden, wohl aber an ein bestimmtes&lt;br /&gt;
Paket. Daher beginnen alle Aliase mit einem Pakennamen (plus Bindestrich) in der Form xyz00-... (Damit kann ein Alias gleichlautend mit der Mailbox eines Paketusers sein: in diesem Fall hat der Alias&lt;br /&gt;
Vorrang; eine so geleitete Mail wird nicht in die Mailbox geliefert, sondern entsprechend dem zum Alias gehörenden Ziel.)&lt;br /&gt;
&lt;br /&gt;
Das Ziel eines E-Mail-Alias ist &lt;br /&gt;
allerdings flexibler als das Ziel einer E-Mail-Adresse, und erlaubt beispielsweise, eingehende&lt;br /&gt;
Mails durch Programme verarbeiten zu lassen. Damit kann man unter anderem Mailverteiler flexibel definieren.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. E-Mail-Aliases werden deshalb als&lt;br /&gt;
Werkzeug für Administratoren angeboten; der Endverbraucher wird in der Regel keine Aliases benötigen.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;localpart@domainpart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Beispiel = username@example.com&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierter Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-username&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
:*kann durch .forward-Datei(en) umgelenkt werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
&lt;br /&gt;
Wenn E-Mail-Alias gleich wie eine Mailbox-Bezeichnung lautet,&lt;br /&gt;
hat der Alias Vorrang. Um ankommende E-Mails dennoch in die Mailbox liefern zu lassen, &lt;br /&gt;
kann als Ziel eines Aliases die Mailbox-Bezeichnung mit vorangestelltem Backslash&lt;br /&gt;
angegeben werden (z. B. &amp;quot;\xyz00-username&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Outlook 2016, Outlook 2019, Outlook für Office 365 ===&lt;br /&gt;
&lt;br /&gt;
Outlook 2016, Outlook 2019, Outlook für Office 365 erfordern folgenden Registry-Patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
&lt;br /&gt;
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Setup]&lt;br /&gt;
&amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;=dword:00000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Patch reaktiviert die Dialog zur Einrichtung von E-Mail-Konten früherer Outlook-Versionen. Diese Dialoge erlauben u.a. die manuelle Konfiguration der E-Mail-Konten. Implizit sorgt dieser Patch auch dafür, dass jüngere Outlook-Versionen, die über klassisches Autodiscover (XML-basiert) bereitgestellten Konfigurationsoptionen korrekt verarbeitet. In unseren Tests zeigte sich, dass jüngere Outlook-Versionen ohne diesen Patch nicht alle per Autodiscover bereitgestellten Informationen zur Anwendung bringen. Das neue Protokoll Autodiscover V2 (JSON-basiert) bietet - nach unserem Kenntnisstand - hingegen keine Möglichkeit, Konfigurationen für die Zugriffsprotokolle POP3, IMAP und SMTP zu übermitteln.&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5175</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5175"/>
		<updated>2020-04-25T11:36:16Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Outlook 2016, Outlook 2019, Outlook für Office 365 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/users/administration/email/index.html}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
Hostsharing unterscheidet zwischen E-Mail-Adresse und Mailbox.&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse gibt an, wie eine eingehende Nachricht auszuliefern ist.&lt;br /&gt;
&lt;br /&gt;
Eine Mailbox ist ein Ort, wo erhaltene E-Mails lagern, bis ein User sie lesen will,&lt;br /&gt;
typischerweise indem er mittels seiner Client-Software die Mails mit IMAP oder POP3&lt;br /&gt;
abholt und anzeigt.&lt;br /&gt;
&lt;br /&gt;
In Hostsharing hat jeder User, ob Paketadmin oder Paketuser, eine Mailbox. E-Mail-Adressen&lt;br /&gt;
können unabhängig von tatsächlichen Usern eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist in Hostsharing eine&lt;br /&gt;
Kennung der üblichen Form &amp;lt;code&amp;gt;userimbreitestensinn@domain&amp;lt;/code&amp;gt;,&lt;br /&gt;
zusammen mit einer Zielangabe, das heißt, mit der Angabe, wohin eine mit dieser&lt;br /&gt;
Kennung adressierten E-Mail geliefert&lt;br /&gt;
werden soll. Bei Einrichtung einer E-Mail-Adresse in Hostsharing kann ein Ziel eine Mailbox&lt;br /&gt;
sein, oder aber eine andere E-Mail-Adresse (mit einer beliebigen Domain, ob bei Hostsharing&lt;br /&gt;
gehostet oder extern). Eine E-Mail-Adresse kann mehrere Ziele haben: dann wird die&lt;br /&gt;
eingehende Mail zur Auslieferung vervielfacht.&lt;br /&gt;
&lt;br /&gt;
Es werden n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht. Das heißt,&lt;br /&gt;
mehrere E-Mail-Adressen können dieselbe Mailbox als Ziel haben, und eine E-Mail-Adresse&lt;br /&gt;
kann mehrere Mailboxen als Ziele haben.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist, ähnlich wie eine E-Mail-Adresse, mit einer Angabe verbunden, wie&lt;br /&gt;
mit einer entsprechend adressierten E-Mail bei Eingang zu verfahren ist. Ein E-Mail-Alias&lt;br /&gt;
in Hostsharing ist nicht an eine bestimmte Domain gebunden, wohl aber an ein bestimmtes&lt;br /&gt;
Paket. Daher beginnen alle Aliase mit einem Pakennamen (plus Bindestrich) in der Form xyz00-... (Damit kann ein Alias gleichlautend mit der Mailbox eines Paketusers sein: in diesem Fall hat der Alias&lt;br /&gt;
Vorrang; eine so geleitete Mail wird nicht in die Mailbox geliefert, sondern entsprechend dem zum Alias gehörenden Ziel.)&lt;br /&gt;
&lt;br /&gt;
Das Ziel eines E-Mail-Alias ist &lt;br /&gt;
allerdings flexibler als das Ziel einer E-Mail-Adresse, und erlaubt beispielsweise, eingehende&lt;br /&gt;
Mails durch Programme verarbeiten zu lassen. Damit kann man unter anderem Mailverteiler flexibel definieren.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. E-Mail-Aliases werden deshalb als&lt;br /&gt;
Werkzeug für Administratoren angeboten; der Endverbraucher wird in der Regel keine Aliases benötigen.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;localpart@domainpart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Beispiel = username@example.com&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierter Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-username&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
:*kann durch .forward-Datei(en) umgelenkt werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
&lt;br /&gt;
Wenn E-Mail-Alias gleich wie eine Mailbox-Bezeichnung lautet,&lt;br /&gt;
hat der Alias Vorrang. Um ankommende E-Mails dennoch in die Mailbox liefern zu lassen, &lt;br /&gt;
kann als Ziel eines Aliases die Mailbox-Bezeichnung mit vorangestelltem Backslash&lt;br /&gt;
angegeben werden (z. B. &amp;quot;\xyz00-username&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Outlook 2016, Outlook 2019, Outlook für Office 365 ===&lt;br /&gt;
&lt;br /&gt;
Outlook 2016, Outlook 2019, Outlook für Office 365 erfordern folgenden Registry-Patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
&lt;br /&gt;
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Setup]&lt;br /&gt;
&amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;=dword:00000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Patch reaktiviert die Dialog zur Einrichtung von E-Mail-Konten früherer Outlook-Versionen. Diese Dialog erlauben auch die manuelle Konfiguration der E-Mail-Knoten. Implizit sorgt diese Patch auch dafür, dass jüngere Outlook-Versionen, die über klassisches Autodiscover bereitgestellten Konfigurationsoptionen verarbeitet. In unseren Tests zeigte sich, dass jüngere Outlook-Version ohne diesen Patch nicht alle per Autodiscover bereitgestellten Informationen zur Anwendung bringt. Das neue Protokoll Autodiscover V2 bietet - nach unserem Kenntnisstand - hingegen keine Möglichkeit, Konfigurationen für die Zugriffsprotokolle POP3, IMAP und SMTP zu übermitteln.&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5173</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5173"/>
		<updated>2020-04-25T09:57:13Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Outlook 2016, Outlook 2019, Outlook für Office 365 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/users/administration/email/index.html}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
Hostsharing unterscheidet zwischen E-Mail-Adresse und Mailbox.&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse gibt an, wie eine eingehende Nachricht auszuliefern ist.&lt;br /&gt;
&lt;br /&gt;
Eine Mailbox ist ein Ort, wo erhaltene E-Mails lagern, bis ein User sie lesen will,&lt;br /&gt;
typischerweise indem er mittels seiner Client-Software die Mails mit IMAP oder POP3&lt;br /&gt;
abholt und anzeigt.&lt;br /&gt;
&lt;br /&gt;
In Hostsharing hat jeder User, ob Paketadmin oder Paketuser, eine Mailbox. E-Mail-Adressen&lt;br /&gt;
können unabhängig von tatsächlichen Usern eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist in Hostsharing eine&lt;br /&gt;
Kennung der üblichen Form &amp;lt;code&amp;gt;userimbreitestensinn@domain&amp;lt;/code&amp;gt;,&lt;br /&gt;
zusammen mit einer Zielangabe, das heißt, mit der Angabe, wohin eine mit dieser&lt;br /&gt;
Kennung adressierten E-Mail geliefert&lt;br /&gt;
werden soll. Bei Einrichtung einer E-Mail-Adresse in Hostsharing kann ein Ziel eine Mailbox&lt;br /&gt;
sein, oder aber eine andere E-Mail-Adresse (mit einer beliebigen Domain, ob bei Hostsharing&lt;br /&gt;
gehostet oder extern). Eine E-Mail-Adresse kann mehrere Ziele haben: dann wird die&lt;br /&gt;
eingehende Mail zur Auslieferung vervielfacht.&lt;br /&gt;
&lt;br /&gt;
Es werden n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht. Das heißt,&lt;br /&gt;
mehrere E-Mail-Adressen können dieselbe Mailbox als Ziel haben, und eine E-Mail-Adresse&lt;br /&gt;
kann mehrere Mailboxen als Ziele haben.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist, ähnlich wie eine E-Mail-Adresse, mit einer Angabe verbunden, wie&lt;br /&gt;
mit einer entsprechend adressierten E-Mail bei Eingang zu verfahren ist. Ein E-Mail-Alias&lt;br /&gt;
in Hostsharing ist nicht an eine bestimmte Domain gebunden, wohl aber an ein bestimmtes&lt;br /&gt;
Paket. Daher beginnen alle Aliase mit einem Pakennamen (plus Bindestrich) in der Form xyz00-... (Damit kann ein Alias gleichlautend mit der Mailbox eines Paketusers sein: in diesem Fall hat der Alias&lt;br /&gt;
Vorrang; eine so geleitete Mail wird nicht in die Mailbox geliefert, sondern entsprechend dem zum Alias gehörenden Ziel.)&lt;br /&gt;
&lt;br /&gt;
Das Ziel eines E-Mail-Alias ist &lt;br /&gt;
allerdings flexibler als das Ziel einer E-Mail-Adresse, und erlaubt beispielsweise, eingehende&lt;br /&gt;
Mails durch Programme verarbeiten zu lassen. Damit kann man unter anderem Mailverteiler flexibel definieren.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. E-Mail-Aliases werden deshalb als&lt;br /&gt;
Werkzeug für Administratoren angeboten; der Endverbraucher wird in der Regel keine Aliases benötigen.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;localpart@domainpart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Beispiel = username@example.com&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierter Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-username&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
:*kann durch .forward-Datei(en) umgelenkt werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
&lt;br /&gt;
Wenn E-Mail-Alias gleich wie eine Mailbox-Bezeichnung lautet,&lt;br /&gt;
hat der Alias Vorrang. Um ankommende E-Mails dennoch in die Mailbox liefern zu lassen, &lt;br /&gt;
kann als Ziel eines Aliases die Mailbox-Bezeichnung mit vorangestelltem Backslash&lt;br /&gt;
angegeben werden (z. B. &amp;quot;\xyz00-username&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Outlook 2016, Outlook 2019, Outlook für Office 365 ===&lt;br /&gt;
&lt;br /&gt;
Outlook 2016, Outlook 2019, Outlook für Office 365 erfordern folgenden Registry-Patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows Registry Editor Version 5.00&lt;br /&gt;
&lt;br /&gt;
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Setup]&lt;br /&gt;
&amp;quot;DisableOffice365SimplifiedAccountCreation&amp;quot;=dword:00000001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5172</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=5172"/>
		<updated>2020-04-25T09:51:13Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/users/administration/email/index.html}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
Hostsharing unterscheidet zwischen E-Mail-Adresse und Mailbox.&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse gibt an, wie eine eingehende Nachricht auszuliefern ist.&lt;br /&gt;
&lt;br /&gt;
Eine Mailbox ist ein Ort, wo erhaltene E-Mails lagern, bis ein User sie lesen will,&lt;br /&gt;
typischerweise indem er mittels seiner Client-Software die Mails mit IMAP oder POP3&lt;br /&gt;
abholt und anzeigt.&lt;br /&gt;
&lt;br /&gt;
In Hostsharing hat jeder User, ob Paketadmin oder Paketuser, eine Mailbox. E-Mail-Adressen&lt;br /&gt;
können unabhängig von tatsächlichen Usern eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist in Hostsharing eine&lt;br /&gt;
Kennung der üblichen Form &amp;lt;code&amp;gt;userimbreitestensinn@domain&amp;lt;/code&amp;gt;,&lt;br /&gt;
zusammen mit einer Zielangabe, das heißt, mit der Angabe, wohin eine mit dieser&lt;br /&gt;
Kennung adressierten E-Mail geliefert&lt;br /&gt;
werden soll. Bei Einrichtung einer E-Mail-Adresse in Hostsharing kann ein Ziel eine Mailbox&lt;br /&gt;
sein, oder aber eine andere E-Mail-Adresse (mit einer beliebigen Domain, ob bei Hostsharing&lt;br /&gt;
gehostet oder extern). Eine E-Mail-Adresse kann mehrere Ziele haben: dann wird die&lt;br /&gt;
eingehende Mail zur Auslieferung vervielfacht.&lt;br /&gt;
&lt;br /&gt;
Es werden n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht. Das heißt,&lt;br /&gt;
mehrere E-Mail-Adressen können dieselbe Mailbox als Ziel haben, und eine E-Mail-Adresse&lt;br /&gt;
kann mehrere Mailboxen als Ziele haben.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist, ähnlich wie eine E-Mail-Adresse, mit einer Angabe verbunden, wie&lt;br /&gt;
mit einer entsprechend adressierten E-Mail bei Eingang zu verfahren ist. Ein E-Mail-Alias&lt;br /&gt;
in Hostsharing ist nicht an eine bestimmte Domain gebunden, wohl aber an ein bestimmtes&lt;br /&gt;
Paket. Daher beginnen alle Aliase mit einem Pakennamen (plus Bindestrich) in der Form xyz00-... (Damit kann ein Alias gleichlautend mit der Mailbox eines Paketusers sein: in diesem Fall hat der Alias&lt;br /&gt;
Vorrang; eine so geleitete Mail wird nicht in die Mailbox geliefert, sondern entsprechend dem zum Alias gehörenden Ziel.)&lt;br /&gt;
&lt;br /&gt;
Das Ziel eines E-Mail-Alias ist &lt;br /&gt;
allerdings flexibler als das Ziel einer E-Mail-Adresse, und erlaubt beispielsweise, eingehende&lt;br /&gt;
Mails durch Programme verarbeiten zu lassen. Damit kann man unter anderem Mailverteiler flexibel definieren.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. E-Mail-Aliases werden deshalb als&lt;br /&gt;
Werkzeug für Administratoren angeboten; der Endverbraucher wird in der Regel keine Aliases benötigen.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;localpart@domainpart&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Beispiel = username@example.com&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierter Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-username&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
:*kann durch .forward-Datei(en) umgelenkt werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
&lt;br /&gt;
Wenn E-Mail-Alias gleich wie eine Mailbox-Bezeichnung lautet,&lt;br /&gt;
hat der Alias Vorrang. Um ankommende E-Mails dennoch in die Mailbox liefern zu lassen, &lt;br /&gt;
kann als Ziel eines Aliases die Mailbox-Bezeichnung mit vorangestelltem Backslash&lt;br /&gt;
angegeben werden (z. B. &amp;quot;\xyz00-username&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Outlook 2016, Outlook 2019, Outlook für Office 365 ===&lt;br /&gt;
&lt;br /&gt;
Patch: [[Datei:DisableOffice365SimplifiedAccountCreation.reg]]&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Coturn_Installieren&amp;diff=5108</id>
		<title>Coturn Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Coturn_Installieren&amp;diff=5108"/>
		<updated>2020-03-24T10:24:49Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coturn STUN- und TURN-Server installieren&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/coturn/coturn Coturn] ist ein STUN- und TURN-Server, der die Steuerung von VoIP-, Video- und Audio-Verbindungen unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Spezielle Installation bei Hostsharing ==&lt;br /&gt;
&lt;br /&gt;
In jedem dynamischen Webhosting-Paket der Hostsharing eG kann ein Coturn-Server betrieben werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss für jede Coturn-Instanz die Option &amp;quot;Betrieb eines eigenen Serverdienstes&amp;quot; gebucht werden. Im Bereich des Shared Hosting ist die Option kostenpflichtig. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung dokumentiert die Installation des Coturn-Servers als Service-User in einem WEB-Paket bei Hostsharing.  Mit der Einrichtung der Option &amp;quot;eigener Serverdienst&amp;quot; werden für die Paket-IP-Adresse einer oder mehrere IP-Ports reserviert. An diese Ports wird der eigene Serverdienst (also der Coturn-Server) auf der paketeigenen IP-Adresse gebunden.&lt;br /&gt;
&lt;br /&gt;
Geben Sie bei der Bestellung der Option &amp;quot;Eigener Serverdienst&amp;quot; an:&lt;br /&gt;
&lt;br /&gt;
# den Service User, mit dessen Rechten der Coturn-Dienst laufen soll (also zum Beispiel &amp;quot;xyz00-coturn&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Coturn ist bereits vorinstalliert. Die STUN-Funktion wenigstens zwei IP-Adressen benötigt, darf als zweite IP-Adresse in diesem Szenario IP-Adresse des Hives bzw. der VM verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listening-ip=&amp;lt;IP-Adresse-des-Pakets&amp;gt;&lt;br /&gt;
listening-ip=&amp;lt;IP-Adresse-des-Hives/der-VM&amp;gt;&lt;br /&gt;
relay-ip=&amp;lt;IP-Adresse-des-Pakets&amp;gt;&lt;br /&gt;
listening-port=&amp;lt;zugewiesener-Port&amp;gt;&lt;br /&gt;
fingerprint&lt;br /&gt;
lt-cred-mech&lt;br /&gt;
use-auth-secret&lt;br /&gt;
static-auth-secret=&amp;lt;shared-secret&amp;gt;&lt;br /&gt;
realm=&amp;lt;xyz00.hostsharing.net&amp;gt;&lt;br /&gt;
total-quota=100&lt;br /&gt;
bps-capacity=0&lt;br /&gt;
stale-nonce&lt;br /&gt;
no-loopback-peers&lt;br /&gt;
no-multicast-peers&lt;br /&gt;
log-file=&amp;lt;pfad&amp;gt;/turnserver.log&lt;br /&gt;
userdb=&amp;lt;pfad&amp;gt;/turnserver.db&lt;br /&gt;
no-tls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start mit turnserver -c &amp;lt;pfad&amp;gt;/turnserver.conf&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:Eigene Daemons]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Coturn_Installieren&amp;diff=5107</id>
		<title>Coturn Installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Coturn_Installieren&amp;diff=5107"/>
		<updated>2020-03-24T10:22:34Z</updated>

		<summary type="html">&lt;p&gt;Web: Die Seite wurde neu angelegt: „Coturn STUN- und TURN-Server installieren  == Allgemein ==  [https://github.com/coturn/coturn Coturn] ist ein STUN- und TURN-Server, der die Steuerung von VoIP…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coturn STUN- und TURN-Server installieren&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/coturn/coturn Coturn] ist ein STUN- und TURN-Server, der die Steuerung von VoIP-, Video- und Audio-Verbindungen unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Spezielle Installation bei Hostsharing ==&lt;br /&gt;
&lt;br /&gt;
In jedem dynamischen Webhosting-Paket der Hostsharing eG kann ein Coturn-Server betrieben werden.&lt;br /&gt;
&lt;br /&gt;
Dazu muss für jede Coturn-Instanz die Option &amp;quot;Betrieb eines eigenen Serverdienstes&amp;quot; gebucht werden. Im Bereich des Shared Hosting ist die Option kostenpflichtig. &lt;br /&gt;
&lt;br /&gt;
Diese Anleitung dokumentiert die Installation des Coturn-Servers als Service-User in einem WEB-Paket bei Hostsharing.  Mit der Einrichtung der Option &amp;quot;eigener Serverdienst&amp;quot; werden für die Paket-IP-Adresse einer oder mehrere IP-Ports reserviert. An diese Ports wird der eigene Serverdienst (also der Coturn-Server) auf der paketeigenen IP-Adresse gebunden.&lt;br /&gt;
&lt;br /&gt;
Geben Sie bei der Bestellung der Option &amp;quot;Eigener Serverdienst&amp;quot; an:&lt;br /&gt;
&lt;br /&gt;
# den Service User, mit dessen Rechten der Coturn-Dienst laufen soll (also zum Beispiel &amp;quot;xyz00-coturn&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Installation == &lt;br /&gt;
&lt;br /&gt;
Coturn ist bereits vorinstalliert. Die STUN-Funktion wenigstens zwei IP-Adressen benötigt, darf als zweite IP-Adresse in diesem Szenario IP-Adresse des Hives bzw. der VM verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listening-ip=&amp;lt;IP-Adresse-des-Pakets&amp;gt;&lt;br /&gt;
listening-ip=&amp;lt;IP-Adresse-des-Hives/der-VM&amp;gt;&lt;br /&gt;
relay-ip=&amp;lt;IP-Adresse-des-Pakets&amp;gt;&lt;br /&gt;
listening-port=&amp;lt;zugewiesener-Port&amp;gt;&lt;br /&gt;
fingerprint&lt;br /&gt;
lt-cred-mech&lt;br /&gt;
use-auth-secret&lt;br /&gt;
static-auth-secret=&amp;lt;shared-secret&amp;gt;&lt;br /&gt;
realm=&amp;lt;xyz00.hostsharing.net&amp;gt;&lt;br /&gt;
total-quota=100&lt;br /&gt;
bps-capacity=0&lt;br /&gt;
stale-nonce&lt;br /&gt;
no-loopback-peers&lt;br /&gt;
no-multicast-peers&lt;br /&gt;
log-file=&amp;lt;pfad&amp;gt;/turnserver.log&lt;br /&gt;
userdb=&amp;lt;pfad&amp;gt;/turnserver.db&lt;br /&gt;
no-tls&lt;br /&gt;
&amp;lt;/pre&amp;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:Eigene Daemons]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=ImapCopy&amp;diff=5010</id>
		<title>ImapCopy</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=ImapCopy&amp;diff=5010"/>
		<updated>2019-11-15T14:28:13Z</updated>

		<summary type="html">&lt;p&gt;Web: /* ssl via stunnel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ImapCopy ==&lt;br /&gt;
&lt;br /&gt;
ImapCopy ist auf den HS Hive schon installiert&lt;br /&gt;
&lt;br /&gt;
== Einrichtung allgemein ==&lt;br /&gt;
&lt;br /&gt;
Anmelden per ssh als ein Benutzer in einem HS-Paket.&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~$&lt;br /&gt;
&lt;br /&gt;
Dort wird ein Arbeitsverzeichnis erstellt&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~$mkdir imapcopy&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~$cd imapcopy&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration wird in einer Datei ImapCopy.cfg gespeichert&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~/imapcopy$vi ImapCopy.cfg&lt;br /&gt;
&lt;br /&gt;
=== Config Web.de -&amp;gt; HS Benutzer ===&lt;br /&gt;
&lt;br /&gt;
Muster Inhalt der Datei ImapCopy.cfg&lt;br /&gt;
&lt;br /&gt;
 #############################################################&lt;br /&gt;
 # imapcopy config&lt;br /&gt;
 # all lines beginning with # are comments and will be ignored&lt;br /&gt;
 #############################################################&lt;br /&gt;
 &lt;br /&gt;
 ##############&lt;br /&gt;
 # Sourceserver&lt;br /&gt;
 ##############&lt;br /&gt;
 SourceServer imap.web.de&lt;br /&gt;
 SourcePort 143&lt;br /&gt;
 &lt;br /&gt;
 ###################&lt;br /&gt;
 # Destinationserver&lt;br /&gt;
 ###################&lt;br /&gt;
 DestServer xyz00.hostsharing.net&lt;br /&gt;
 DestPort 143&lt;br /&gt;
 &lt;br /&gt;
 #########&lt;br /&gt;
 # Options&lt;br /&gt;
 #########&lt;br /&gt;
 #&lt;br /&gt;
 # DebugSrc and DebugDest will show all traffic between IMAPCopy and Server&lt;br /&gt;
 #&lt;br /&gt;
 #DebugSrc&lt;br /&gt;
 #DebugDst&lt;br /&gt;
  &lt;br /&gt;
 #################&lt;br /&gt;
 # Folders to skip&lt;br /&gt;
 #################&lt;br /&gt;
 #skipfolder INBOX.Trash&lt;br /&gt;
 #skipfolder INBOX.Sent&lt;br /&gt;
 #skipfolder &amp;quot;INBOX.Sent Objects&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #################&lt;br /&gt;
 # Folders to copy&lt;br /&gt;
 #################&lt;br /&gt;
 #copyfolder INBOX&lt;br /&gt;
 #copyfolder &amp;quot;INBOX.My personal files&amp;quot;&lt;br /&gt;
 #copyfolder INBOX.Net-Connection.dy&lt;br /&gt;
 #copyfolder INBOX.test&lt;br /&gt;
 &lt;br /&gt;
 ####################################################### &lt;br /&gt;
 # Rootfolder&lt;br /&gt;
 # Can be specified to copy the Folder-Structure under&lt;br /&gt;
 # a separate folder instead of inbox&lt;br /&gt;
 #######################################################&lt;br /&gt;
 #DstRootFolder &amp;quot;Your old Mails&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ###############################################################&lt;br /&gt;
 # Specify Flags that are supported on the destination server&lt;br /&gt;
 # (AllowFlags) or flags that should be filtered out (DenyFlags)&lt;br /&gt;
 # If not specified, all Flags are copyied 1:1&lt;br /&gt;
 # If AllowFlags is specified, all not specified Flags will be&lt;br /&gt;
 # removed and  not copied to the destination&lt;br /&gt;
 # If DenyFlags is specified, those flags will be removed and&lt;br /&gt;
 # the remaining ones will be copied&lt;br /&gt;
 # Both (AllowFlags and DenyFlags) could be specified but&lt;br /&gt;
 # would (in most cases) make no sense&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 #AllowFlags &amp;quot;\Seen\Answered\Flagged\Deleted\Draft Junk NonJunk $MDNSent $Forwared&amp;quot;&lt;br /&gt;
 DenyFlags &amp;quot;\Recent&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Timezone conversion&lt;br /&gt;
 # The imap rfc is not clear on what kind of time offsets&lt;br /&gt;
 # can be used. +XXXX -XXXX will be supported on all servers&lt;br /&gt;
 # You can add as many entries as needed in the form&lt;br /&gt;
 # converttimezone SRC DST&lt;br /&gt;
 # to convert zones that your target server rejects&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 converttimezone &amp;quot;UTC&amp;quot; &amp;quot;+0000&amp;quot;&lt;br /&gt;
 converttimezone &amp;quot;UT&amp;quot;  &amp;quot;+0000&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # List of users and passwords&lt;br /&gt;
 #############################&lt;br /&gt;
 #       SourceUser           SourcePassword        DestinationUser        DestinationPassword&lt;br /&gt;
 Copy    &amp;quot;xyz@web.de&amp;quot;         &amp;quot;Euer-Passwort&amp;quot;       &amp;quot;xyz00-imap&amp;quot;           &amp;quot;Benuzter-Passwort&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Config gmail.com -&amp;gt; HS Benutzer ===&lt;br /&gt;
&lt;br /&gt;
Da ImapCopy nicht direkt SSL unterstützt benötigt z.b. gmail und ggf einige andere die weiter unten beschrieben Lösung mit einem stunnel.&lt;br /&gt;
&lt;br /&gt;
== Testen einer Verbindung ==&lt;br /&gt;
&lt;br /&gt;
Zum testen ob die Daten alle OK sind auf der shell einfach:&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~/imapcopy$imapcopy -t&lt;br /&gt;
&lt;br /&gt;
eingeben.&lt;br /&gt;
&lt;br /&gt;
== Daten austauschen ==&lt;br /&gt;
&lt;br /&gt;
  xyz00-imapcopy@h01:~/imapcopy$imapcopy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hilfe ==&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~/imapcopy$imapcopy -h&lt;br /&gt;
 xyz00-imapcopy@h01:~/imapcopy$man imapcopy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ssl via stunnel ==&lt;br /&gt;
&lt;br /&gt;
Es wird eine Konfuguration Datei , hier stunnel-to-gmail.conf, benötigt.&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~/imapcopy$vi stunnel-to-gmail.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Datei stunnel-to-gmail.conf:&lt;br /&gt;
&lt;br /&gt;
 foreground=yes&lt;br /&gt;
 &lt;br /&gt;
 ; Some performance tunings&lt;br /&gt;
 socket = l:TCP_NODELAY=1&lt;br /&gt;
 socket = r:TCP_NODELAY=1&lt;br /&gt;
 &lt;br /&gt;
 ; Some debugging stuff useful for troubleshooting&lt;br /&gt;
 debug = 7&lt;br /&gt;
 &lt;br /&gt;
 ; Pfad for pid file&lt;br /&gt;
 pid = /tmp/stunnel4-xyz00.pid&lt;br /&gt;
 &lt;br /&gt;
 ; Use it for client mode&lt;br /&gt;
 client = yes&lt;br /&gt;
 &lt;br /&gt;
 ; Service-level configuration&lt;br /&gt;
 &lt;br /&gt;
 [imap]&lt;br /&gt;
 accept = 127.0.0.1:10143&lt;br /&gt;
 connect = imap.gmail.com:993&lt;br /&gt;
 retry = yes&lt;br /&gt;
&lt;br /&gt;
 [imap]&lt;br /&gt;
 accept = 127.0.0.1:20143&lt;br /&gt;
 connect = xyz00.hostsharing.net:993&lt;br /&gt;
 retry = yes&lt;br /&gt;
&lt;br /&gt;
=== Änderung in der ImapCopy.cfg ===&lt;br /&gt;
&lt;br /&gt;
 ##############&lt;br /&gt;
 # Sourceserver&lt;br /&gt;
 ##############&lt;br /&gt;
 SourceServer 127.0.0.1&lt;br /&gt;
 SourcePort 10143&lt;br /&gt;
&lt;br /&gt;
 ###################&lt;br /&gt;
 # Destinationserver&lt;br /&gt;
 ###################&lt;br /&gt;
 DestServer 127.0.0.1&lt;br /&gt;
 DestPort 20143&lt;br /&gt;
&lt;br /&gt;
 #############################&lt;br /&gt;
 # List of users and passwords&lt;br /&gt;
 #############################&lt;br /&gt;
 #     SourceUser       SourcePassword  DestinationUser  DestinationPassword&lt;br /&gt;
 Copy  &amp;quot;xyz@gmail.com&amp;quot;  &amp;quot;passwort&amp;quot;      &amp;quot;xyz00-imap&amp;quot;     &amp;quot;passwort&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== stunnel aufbauen ===&lt;br /&gt;
&lt;br /&gt;
Wir öffnen eine zweite shell.&lt;br /&gt;
&lt;br /&gt;
 xyz00-imapcopy@h01:~/imapcopy$stunnel4 stunnel-to-gmail.conf&lt;br /&gt;
&lt;br /&gt;
=== Verbindung prüfen und herstellen ===&lt;br /&gt;
&lt;br /&gt;
Siehe -&amp;gt; Testen einer Verbindung&lt;br /&gt;
und   -&amp;gt; Daten austauschen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Zammad&amp;diff=5003</id>
		<title>Zammad</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Zammad&amp;diff=5003"/>
		<updated>2019-11-14T11:55:23Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
killall -u $USER&lt;br /&gt;
killall -u $USER 9&lt;br /&gt;
&lt;br /&gt;
cp -a zammad zammad-old&lt;br /&gt;
cd zammad&lt;br /&gt;
wget -O - https://ftp.zammad.com/zammad-latest.tar.gz |tar -xvvz&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
&lt;br /&gt;
	Geht nicht, Ruby 2.2.5 fehlt!&lt;br /&gt;
&lt;br /&gt;
cd&lt;br /&gt;
rbenv install 2.5.5&lt;br /&gt;
&lt;br /&gt;
	Geht nicht, Rbenv ist zu alt!&lt;br /&gt;
&lt;br /&gt;
cd ~/.rbenv/plugins/ruby-build&lt;br /&gt;
git pull&lt;br /&gt;
cd&lt;br /&gt;
rbenv install 2.5.5&lt;br /&gt;
rbenv global 2.5.5&lt;br /&gt;
rbenv local 2.5.5&lt;br /&gt;
&lt;br /&gt;
cd zammad&lt;br /&gt;
gem install bundle&lt;br /&gt;
gem install bundler&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
&lt;br /&gt;
Geht nicht, Bundler 1.17.x wird gebraucht.&lt;br /&gt;
&lt;br /&gt;
gem install bundler==1.17.3&lt;br /&gt;
&lt;br /&gt;
	Geht auch nicht.&lt;br /&gt;
	Dann hacken wir das mal versuchsweise ins Lock.&lt;br /&gt;
&lt;br /&gt;
vim Gemfile.lock&lt;br /&gt;
&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
&lt;br /&gt;
	Es fehlen Libs.&lt;br /&gt;
	HS bitte installieren...&lt;br /&gt;
	[...]&lt;br /&gt;
	Danke!&lt;br /&gt;
&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
export RAILS_ENV=production&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rake assets:precompile&lt;br /&gt;
&lt;br /&gt;
/usr/bin/supervisord -c $HOME/supervisor/etc/supervisord.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Zammad&amp;diff=5002</id>
		<title>Zammad</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Zammad&amp;diff=5002"/>
		<updated>2019-11-14T11:54:58Z</updated>

		<summary type="html">&lt;p&gt;Web: Die Seite wurde neu angelegt: „&amp;lt;nowiki&amp;gt; killall -u $USER killall -u $USER 9  cp -a zammad zammad-old cd zammad wget -O - https://ftp.zammad.com/zammad-latest.tar.gz |tar -xvvz bundle install…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
killall -u $USER&lt;br /&gt;
killall -u $USER 9&lt;br /&gt;
&lt;br /&gt;
cp -a zammad zammad-old&lt;br /&gt;
cd zammad&lt;br /&gt;
wget -O - https://ftp.zammad.com/zammad-latest.tar.gz |tar -xvvz&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
&lt;br /&gt;
	Geht nicht, Ruby 2.2.5 fehlt!&lt;br /&gt;
&lt;br /&gt;
cd&lt;br /&gt;
rbenv install 2.5.5&lt;br /&gt;
&lt;br /&gt;
	Geht nicht, Rbenv ist zu alt!&lt;br /&gt;
&lt;br /&gt;
cd ~/.rbenv/plugins/ruby-build&lt;br /&gt;
git pull&lt;br /&gt;
cd&lt;br /&gt;
rbenv install 2.5.5&lt;br /&gt;
rbenv global 2.5.5&lt;br /&gt;
rbenv local 2.5.5&lt;br /&gt;
&lt;br /&gt;
cd zammad&lt;br /&gt;
gem install bundle&lt;br /&gt;
gem install bundler&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
&lt;br /&gt;
Geht nicht, Bundler 1.17.x wird gebraucht.&lt;br /&gt;
&lt;br /&gt;
gem install bundler==1.17.3&lt;br /&gt;
&lt;br /&gt;
	Geht auch nicht.&lt;br /&gt;
	Dann hacken wir das mal versuchsweise ins Lock.&lt;br /&gt;
&lt;br /&gt;
vim Gemfile.lock&lt;br /&gt;
&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
&lt;br /&gt;
	Es fehlen Libs.&lt;br /&gt;
	HS bitte installieren...&lt;br /&gt;
	[...]&lt;br /&gt;
	Danke!&lt;br /&gt;
&lt;br /&gt;
bundle install --without test development mysql&lt;br /&gt;
export RAILS_ENV=production&lt;br /&gt;
rake db:migrate&lt;br /&gt;
rake assets:precompile&lt;br /&gt;
&lt;br /&gt;
/usr/bin/supervisord -c $HOME/supervisor/etc/supervisord.conf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4862</id>
		<title>Simple Zonefile Howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4862"/>
		<updated>2019-04-13T11:21:02Z</updated>

		<summary type="html">&lt;p&gt;Web: /* alle Web-Inhalte soll auf externe IP-Adresse verweisen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In diesem Howto werden einfachere Standardanwendungen für eigene Zonefiles behandelt. Tiefer gehende Erläuterungen finden sich in [[Verwalten der Zonendaten]].&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird von Hostsharing die Konfiguration der Nameserver automatisch erledigt. Das ist einer angepassten Lösung grundsätzlich vorzuziehen. Es entlastet den Anwender von der Pflicht, sein Zonefile bei technischen Änderungen zu überprüfen. Sollte dennoch ein benutzerspezifisches Zonefile erforderlich sein, so verringert der Einsatz möglichst mächtiger Platzhalter den späteren Anpassungsbedarf. In vielen Fällen genügt es, den Platzhalter für das Standardzonefile um eigene Einträge zu ergänzen.&lt;br /&gt;
&lt;br /&gt;
Ist die Verwendung eines angepassten Zonefiles erforderlich, z.B. zur Realisation von DNS-Verweisen auf extern gelagerte Subdomains, der Anbindung externer Server oder der Verwendung eigener Mailserver, kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellt werden. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;[[~/]]doms/example.com/etc&#039;&#039;&#039; und trägt den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Das Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen! &#039;&#039;&#039;Insbesondere sei auf die Fehlerquelle gesetzter bzw. nicht gesetzter abschließender Punkte hingewiesen&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
== alle Web-Inhalte soll auf externe IP-Adresse verweisen ==&lt;br /&gt;
&lt;br /&gt;
Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{MX_RR}&lt;br /&gt;
{SPF_RR}&lt;br /&gt;
{WILDCARD_MX_RR}&lt;br /&gt;
{WILDCARD_SPF_RR}&lt;br /&gt;
{DOM_HOSTNAME}.    IN  A  1.2.3.4&lt;br /&gt;
{DOM_HOSTNAME}.    IN  AAAA  1.2.3.4.....&lt;br /&gt;
*.{DOM_HOSTNAME}.  IN  A  1.2.3.4&lt;br /&gt;
*.{DOM_HOSTNAME}.    IN  AAAA  1.2.3.4.....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.2.3.4 ist durch die externe IPV4-Adresse zu ersetzten, 1.2.3.4... durch die externe IPv6-Adresse.&lt;br /&gt;
&lt;br /&gt;
== Subdomain zuhause.example.com über Anbieter wie dyndns ==&lt;br /&gt;
&lt;br /&gt;
Die Subdomain zuhause.example.com soll über einen Anbieter à la dyndns laufen. Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE}&lt;br /&gt;
zuhause.{DOM_HOSTNAME}.	IN	CNAME	example.dyndns.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Externer Mailserver ==&lt;br /&gt;
&lt;br /&gt;
Wir wollen einen Mailserver extern betreiben, z.B. bei einem Cloud-Anbieter (Mails, Kontakte und Termine schon gecloudt?) oder im Büro. Wir übernehmen also erstmal alles, was {DEFAULT_ZONFILE} liefern würde, außer den MX Resource Records:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{A_RR}&lt;br /&gt;
{AAAA_RR}&lt;br /&gt;
{SPF_RR} &lt;br /&gt;
{WILDCARD_A_RR}&lt;br /&gt;
{WILDCARD_AAAA_RR}&lt;br /&gt;
{WILDCARD_SPF_RR}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun definieren wir den Mailserver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	MX 30 my.cloud.provider.example.com.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder per fester IP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	A	1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann legen wir die MX-Konfiguration fest, die besagt, welcher Mailserver für diese Domain zuständig ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn wir Mails auch für Subdomains wollen, brauchen wir zusätzlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Achtung&lt;br /&gt;
Damit das interne {{lang|en|mailrouting}} innerhalb des Pakets für die Domain so funktioniert, daß keine lokal eingelieferten {{lang|en|e-mails}} an Mailboxen im Paket zugestellt werden, muß darauf geachtet werden, daß im Paket selber keine {{lang|en|e-mail}}-Adressen für die Domain defniert sind. Standardmäßig werden beim Einrichten einer Domain die Adressen:&lt;br /&gt;
 abuse@...&lt;br /&gt;
 postmaster@...&lt;br /&gt;
 webmaster@...&lt;br /&gt;
[https://doc.hostsharing.net/users/administration/domain/index.html Domain]. Bei der oben angeführten MX-Konfiguration müssen diese mit [https://doc.hostsharing.net/users/administration/hsadmin/index.html hsadmin] wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4861</id>
		<title>Simple Zonefile Howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4861"/>
		<updated>2019-04-13T11:19:50Z</updated>

		<summary type="html">&lt;p&gt;Web: IPv6 und SPF aktiviert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In diesem Howto werden einfachere Standardanwendungen für eigene Zonefiles behandelt. Tiefer gehende Erläuterungen finden sich in [[Verwalten der Zonendaten]].&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird von Hostsharing die Konfiguration der Nameserver automatisch erledigt. Das ist einer angepassten Lösung grundsätzlich vorzuziehen. Es entlastet den Anwender von der Pflicht, sein Zonefile bei technischen Änderungen zu überprüfen. Sollte dennoch ein benutzerspezifisches Zonefile erforderlich sein, so verringert der Einsatz möglichst mächtiger Platzhalter den späteren Anpassungsbedarf. In vielen Fällen genügt es, den Platzhalter für das Standardzonefile um eigene Einträge zu ergänzen.&lt;br /&gt;
&lt;br /&gt;
Ist die Verwendung eines angepassten Zonefiles erforderlich, z.B. zur Realisation von DNS-Verweisen auf extern gelagerte Subdomains, der Anbindung externer Server oder der Verwendung eigener Mailserver, kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellt werden. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;[[~/]]doms/example.com/etc&#039;&#039;&#039; und trägt den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Das Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen! &#039;&#039;&#039;Insbesondere sei auf die Fehlerquelle gesetzter bzw. nicht gesetzter abschließender Punkte hingewiesen&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
== alle Web-Inhalte soll auf externe IP-Adresse verweisen ==&lt;br /&gt;
&lt;br /&gt;
Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{MX_RR}&lt;br /&gt;
{SPF_RR}&lt;br /&gt;
{WILDCARD_MX_RR}&lt;br /&gt;
{WILDCARD_SPF_RR}&lt;br /&gt;
{DOM_HOSTNAME}.    IN  A  1.2.3.4&lt;br /&gt;
*.{DOM_HOSTNAME}.  IN  A  1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.2.3.4 ist durch die externe IP zu ersetzten.&lt;br /&gt;
&lt;br /&gt;
== Subdomain zuhause.example.com über Anbieter wie dyndns ==&lt;br /&gt;
&lt;br /&gt;
Die Subdomain zuhause.example.com soll über einen Anbieter à la dyndns laufen. Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE}&lt;br /&gt;
zuhause.{DOM_HOSTNAME}.	IN	CNAME	example.dyndns.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Externer Mailserver ==&lt;br /&gt;
&lt;br /&gt;
Wir wollen einen Mailserver extern betreiben, z.B. bei einem Cloud-Anbieter (Mails, Kontakte und Termine schon gecloudt?) oder im Büro. Wir übernehmen also erstmal alles, was {DEFAULT_ZONFILE} liefern würde, außer den MX Resource Records:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{A_RR}&lt;br /&gt;
{AAAA_RR}&lt;br /&gt;
{SPF_RR} &lt;br /&gt;
{WILDCARD_A_RR}&lt;br /&gt;
{WILDCARD_AAAA_RR}&lt;br /&gt;
{WILDCARD_SPF_RR}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun definieren wir den Mailserver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	MX 30 my.cloud.provider.example.com.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder per fester IP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	A	1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann legen wir die MX-Konfiguration fest, die besagt, welcher Mailserver für diese Domain zuständig ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn wir Mails auch für Subdomains wollen, brauchen wir zusätzlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Achtung&lt;br /&gt;
Damit das interne {{lang|en|mailrouting}} innerhalb des Pakets für die Domain so funktioniert, daß keine lokal eingelieferten {{lang|en|e-mails}} an Mailboxen im Paket zugestellt werden, muß darauf geachtet werden, daß im Paket selber keine {{lang|en|e-mail}}-Adressen für die Domain defniert sind. Standardmäßig werden beim Einrichten einer Domain die Adressen:&lt;br /&gt;
 abuse@...&lt;br /&gt;
 postmaster@...&lt;br /&gt;
 webmaster@...&lt;br /&gt;
[https://doc.hostsharing.net/users/administration/domain/index.html Domain]. Bei der oben angeführten MX-Konfiguration müssen diese mit [https://doc.hostsharing.net/users/administration/hsadmin/index.html hsadmin] wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=4860</id>
		<title>Verwalten der Zonendaten</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=4860"/>
		<updated>2019-04-13T11:19:05Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Kerndoku|https://doc.hostsharing.net/users/administration/zonefile/index.html}}&lt;br /&gt;
&lt;br /&gt;
Das Zonenfile für eine Domain enthält die Konfiguration des Domain Name Service ([[DNS]]), d.h. der [[Nameserver]] der Domain. Es wird hinterlegt, welche Hostnamen innerhalb der Domain existieren und auf welche IP-Adressen diese zeigen. Außerdem wird hierüber auch gesteuert, an welches System Mails für die Domain geliefert werden sollen. Für einfache und unkomplizierte Änderungen bitte in [[Simple Zonefile Howto]] schauen.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Achtung|Aufgrund der zentralen Bedeutung sollten Änderungen nur mit Vorsicht vorgenommen werden, da eine fehlerhafte Einstellung dazu führen kann, dass die Webseite nicht mehr im Internet abgerufen werden kann oder Mails verloren gehen!}}&lt;br /&gt;
&lt;br /&gt;
== Aktives Zonefile ==&lt;br /&gt;
&lt;br /&gt;
Die gerade aktive Konfiguration einer Domain example.com ist in /etc/bind/pri.example.com zu finden ([[Zonefile]]).&lt;br /&gt;
&lt;br /&gt;
Im Standardfall sieht es vollständig expandiert wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;example.com. IN SOA h00.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
                1303649373      ; serial secs since Jan 1 1970&lt;br /&gt;
                6H              ; refresh (&amp;gt;=10000)&lt;br /&gt;
                1H              ; retry (&amp;gt;=1800)&lt;br /&gt;
                1W              ; expire&lt;br /&gt;
                1H              ; minimum&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      NS      dns1.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns2.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      A       83.223.95.160&lt;br /&gt;
example.com.    IN      AAAA    2a01:37:1000::53df:5fa0:0&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      A       83.223.95.160&lt;br /&gt;
*.example.com.  IN      AAAA    2a01:37:1000::53df:5fa0:0&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logfile und Kontrolle==&lt;br /&gt;
&lt;br /&gt;
Die Logfiles des Nameservers sind im Verzeichnis /var/log/named einsehbar. Das aktuelle Log wird unter dem Namen named.log angelegt. Dieses wird beim Neustart des DNS-Servers immer neu angelegt und zeigt bei einer erfolgreichen Änderung etwa folgenden Inhalt:&lt;br /&gt;
&lt;br /&gt;
  Oct 11 18:32:21.400 info: zone example.org/IN: loaded serial 1065889567&lt;br /&gt;
  Oct 11 18:32:21.435 info: zone example.org/IN: sending notifies (serial 1065889567)&lt;br /&gt;
  Oct 11 18:32:21.755 info: client 213.133.116.2#57100: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
  Oct 11 18:32:22.264 info: client 62.75.149.27#45282: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
&lt;br /&gt;
Die Zeilen bedeuten jeweils:&lt;br /&gt;
&lt;br /&gt;
* Das geänderte Zonefile wurde vom DNS-Server erfolgreich geladen&lt;br /&gt;
* Der lokale Server sendet eine Benachrichtigung an die Secondaries, damit diese die Änderung ebenfalls übernehmen können.&lt;br /&gt;
&lt;br /&gt;
Tippfehler oder falsche Angaben im Zonefile werden hier ebenfalls gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  -------- Original-Nachricht --------&lt;br /&gt;
  Betreff: [Global] DNS Zonenfile Änderungen&lt;br /&gt;
  Datum: Thu, 4 Mar 2010 08:30:34 +0100&lt;br /&gt;
  &lt;br /&gt;
  Moin Moin,&lt;br /&gt;
  &lt;br /&gt;
  aus gegebenem Anlass: Immer wieder kommt es vor, dass jemand sein&lt;br /&gt;
  Zonenfile ändert, und es (scheinbar) funktioniert. Tage oder Wochen&lt;br /&gt;
  später dann sind die Domains nicht mehr erreichbar und es heißt &amp;quot;in den&lt;br /&gt;
  letzten ... Tagen/Wochen habe ich aber gar nichts mehr geändert&amp;quot;. Das mag&lt;br /&gt;
  auch gut sein - ist mir auch selbst schon passiert, gerade wenn es um&lt;br /&gt;
  &amp;quot;mal eben schnell noch ... &amp;quot; ging.&lt;br /&gt;
  &lt;br /&gt;
  Nur ist der Fehler dann aber schon vor Tagen/Wochen passiert, und solange&lt;br /&gt;
  die Datensätze nicht abgelaufen (expired) sind, sind sie - die alten -&lt;br /&gt;
  noch im DNS System vorhanden. Die neuen aber, die aus der o.g. Änderung,&lt;br /&gt;
  sind bei einem Fehler im Zonenfile nie ins DNS System hinein gekommen!&lt;br /&gt;
  &lt;br /&gt;
  Was also tun? Zunächst kann man nach einer Änderung in einer&lt;br /&gt;
  Shell beobachten, ob es zu Fehlermeldungen kommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log &lt;br /&gt;
  &lt;br /&gt;
  oder ggf nur Zeilen, in denen die eigene Domain (z.B. example.com)&lt;br /&gt;
  vorkommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log | grep example.com&lt;br /&gt;
  &lt;br /&gt;
  Diese Log-Datei ist daher genau aus diese Grunde auch auf dem&lt;br /&gt;
  Server lesbar.&lt;br /&gt;
  &lt;br /&gt;
  Auch sollte die in den DNS-Servern befindliche Seriennummer mit der&lt;br /&gt;
  aktuellen in der Zonendatei verglichen werden:&lt;br /&gt;
  &lt;br /&gt;
  dig -t SOA @dns1 example.com | grep &#039;^example.com.*SOA&#039; | awk &#039;{ print $7 }&#039;&lt;br /&gt;
  &lt;br /&gt;
  grep serial /etc/bind/pri.example.com | awk &#039;{ print $1 }&#039;  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenes Zonenfile ==&lt;br /&gt;
&lt;br /&gt;
Wer ein eigenes Zonefile installieren möchte, um diverse Anwendungsfälle zu realisieren (Verweise auf extern gelagerte Subdomains, Anbindung externer Server, Verwendung eigener Mailserver), kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellen. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;~/doms/example.com/etc&#039;&#039;&#039; mit den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Ein Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen!}}&lt;br /&gt;
&lt;br /&gt;
Eine Anleitung für die eher einfachen und oft gewünschten Änderungen findet sich in [[Simple Zonefile Howto]].&lt;br /&gt;
&lt;br /&gt;
Folgende Platzhalter können und sollten in eigenen Zonenfiles verwendet werden. Sie ermöglichen uns das Ändern der DNS-Konfiguration, ohne dass der Domain-Admin sein Zonefile anpassen muss.&lt;br /&gt;
&lt;br /&gt;
=== Komplexe Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE} :=&lt;br /&gt;
	{HEADER}&lt;br /&gt;
	{SOA_RR}&lt;br /&gt;
	{NS_RR}&lt;br /&gt;
	{MX_RR}	&lt;br /&gt;
	{A_RR}&lt;br /&gt;
	{WILDCARD_MX_RR}&lt;br /&gt;
	{WILDCARD_A_RR}&lt;br /&gt;
&lt;br /&gt;
{HEADER} :=&lt;br /&gt;
	$TTL {TTL}&lt;br /&gt;
&lt;br /&gt;
{SOA_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
		{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
		{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
		{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
		{EXPIRE}	; expire&lt;br /&gt;
		{MINIMUM}	; minimum&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
{NS_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{MX_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{A_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_MX_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_A_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Atomare Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{TTL} :=		6H&lt;br /&gt;
{SOA_HOSTNAME} :=	&amp;lt;HIVE&amp;gt;.hostsharing.net&lt;br /&gt;
{SOA_EMAIL}:=		hostmaster.hostsharing.net&lt;br /&gt;
{SIO} :=		&amp;lt;SEKUNDEN&amp;gt;&lt;br /&gt;
{REFRESH} :=		6H&lt;br /&gt;
{RETRY} :=		1H&lt;br /&gt;
{EXPIRE} :=		1W&lt;br /&gt;
{MINIMUM} :=		1H&lt;br /&gt;
&lt;br /&gt;
{DNS1_HOSTNAME} :=	dns1.hostsharing.net&lt;br /&gt;
{DNS2_HOSTNAME} :=	dns2.hostsharing.net&lt;br /&gt;
{DNS3_HOSTNAME} :=	dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{MX1_HOSTNAME} :=	mailin1.hostsharing.net&lt;br /&gt;
{MX2_HOSTNAME} :=	mailin2.hostsharing.net&lt;br /&gt;
{MX3_HOSTNAME} :=	mailin3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME} :=	&amp;lt;FQDN&amp;gt;&lt;br /&gt;
{DOM_IPNUMBER} := 	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei stehen&lt;br /&gt;
* &amp;lt;Sekunden&amp;gt; für die Anzahl der Sekunden, welche seit dem 01.01.1970 vergangen sind&lt;br /&gt;
* &amp;lt;FQDN&amp;gt; für den vollständigen, qualifizierten Domainnamen der Domain&lt;br /&gt;
* &amp;lt;IP&amp;gt; für die der Domain zugewiesene IP-Adresse&lt;br /&gt;
&lt;br /&gt;
Diese Werte werden von Hostsharing verwaltet.&lt;br /&gt;
&lt;br /&gt;
=== Expansion der Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter für das Gesamtzonefile {DEFAULT_ZONFILE} wird folgermaßen expandiert.&lt;br /&gt;
&lt;br /&gt;
Zunächst werden die komplexen Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
	{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
	{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
	{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
	{EXPIRE}	; expire&lt;br /&gt;
	{MINIMUM}	; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die atomaren Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL 6H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;. IN SOA &amp;lt;HIVE&amp;gt;.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
	&amp;lt;SEKUNDEN&amp;gt;	; serial secs since Jan 1 1970&lt;br /&gt;
	6H		; refresh (&amp;gt;=10000)&lt;br /&gt;
	1H		; retry (&amp;gt;=1800)&lt;br /&gt;
	1W		; expire&lt;br /&gt;
	1H		; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Das Zonefile deaktivieren/zurücksetzen ==&lt;br /&gt;
&lt;br /&gt;
In ~/doms/example.com/etc das vorhandene Zonefile (pri.example.com) komplett leeren (ist dann 0 Bytes groß). Dann kommt der Robot vorbei, löscht pri.example.com und setzt alles auf Standardwerte zurück.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=4859</id>
		<title>Verwalten der Zonendaten</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=4859"/>
		<updated>2019-04-13T11:17:55Z</updated>

		<summary type="html">&lt;p&gt;Web: IPv6 und SPF aktiviert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Kerndoku|https://doc.hostsharing.net/users/administration/zonefile/index.html}}&lt;br /&gt;
&lt;br /&gt;
Das Zonenfile für eine Domain enthält die Konfiguration des Domain Name Service ([[DNS]]), d.h. der [[Nameserver]] der Domain. Es wird hinterlegt, welche Hostnamen innerhalb der Domain existieren und auf welche IP-Adressen diese zeigen. Außerdem wird hierüber auch gesteuert, an welches System Mails für die Domain geliefert werden sollen. Für einfache und unkomplizierte Änderungen bitte in [[Simple Zonefile Howto]] schauen.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Achtung|Aufgrund der zentralen Bedeutung sollten Änderungen nur mit Vorsicht vorgenommen werden, da eine fehlerhafte Einstellung dazu führen kann, dass die Webseite nicht mehr im Internet abgerufen werden kann oder Mails verloren gehen!}}&lt;br /&gt;
&lt;br /&gt;
== Aktives Zonefile ==&lt;br /&gt;
&lt;br /&gt;
Die gerade aktive Konfiguration einer Domain example.com ist in /etc/bind/pri.example.com zu finden ([[Zonefile]]).&lt;br /&gt;
&lt;br /&gt;
Im Standardfall sieht es vollständig expandiert wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$TTL 6H&lt;br /&gt;
example.com. IN SOA h00.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
                1303649373     ; serial secs since Jan 1 1970&lt;br /&gt;
                6H             ; refresh (&amp;gt;=10000)&lt;br /&gt;
                1H             ; retry (&amp;gt;=1800)&lt;br /&gt;
                1W             ; expire&lt;br /&gt;
                1H             ; minimum&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      NS      dns1.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns2.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      A             83.223.95.160&lt;br /&gt;
example.com.    IN      AAAA      2a01:37:1000::53df:5fa0:0&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      A             83.223.95.160&lt;br /&gt;
*.example.com.  IN      AAAA      2a01:37:1000::53df:5fa0:0&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logfile und Kontrolle==&lt;br /&gt;
&lt;br /&gt;
Die Logfiles des Nameservers sind im Verzeichnis /var/log/named einsehbar. Das aktuelle Log wird unter dem Namen named.log angelegt. Dieses wird beim Neustart des DNS-Servers immer neu angelegt und zeigt bei einer erfolgreichen Änderung etwa folgenden Inhalt:&lt;br /&gt;
&lt;br /&gt;
  Oct 11 18:32:21.400 info: zone example.org/IN: loaded serial 1065889567&lt;br /&gt;
  Oct 11 18:32:21.435 info: zone example.org/IN: sending notifies (serial 1065889567)&lt;br /&gt;
  Oct 11 18:32:21.755 info: client 213.133.116.2#57100: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
  Oct 11 18:32:22.264 info: client 62.75.149.27#45282: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
&lt;br /&gt;
Die Zeilen bedeuten jeweils:&lt;br /&gt;
&lt;br /&gt;
* Das geänderte Zonefile wurde vom DNS-Server erfolgreich geladen&lt;br /&gt;
* Der lokale Server sendet eine Benachrichtigung an die Secondaries, damit diese die Änderung ebenfalls übernehmen können.&lt;br /&gt;
&lt;br /&gt;
Tippfehler oder falsche Angaben im Zonefile werden hier ebenfalls gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  -------- Original-Nachricht --------&lt;br /&gt;
  Betreff: [Global] DNS Zonenfile Änderungen&lt;br /&gt;
  Datum: Thu, 4 Mar 2010 08:30:34 +0100&lt;br /&gt;
  &lt;br /&gt;
  Moin Moin,&lt;br /&gt;
  &lt;br /&gt;
  aus gegebenem Anlass: Immer wieder kommt es vor, dass jemand sein&lt;br /&gt;
  Zonenfile ändert, und es (scheinbar) funktioniert. Tage oder Wochen&lt;br /&gt;
  später dann sind die Domains nicht mehr erreichbar und es heißt &amp;quot;in den&lt;br /&gt;
  letzten ... Tagen/Wochen habe ich aber gar nichts mehr geändert&amp;quot;. Das mag&lt;br /&gt;
  auch gut sein - ist mir auch selbst schon passiert, gerade wenn es um&lt;br /&gt;
  &amp;quot;mal eben schnell noch ... &amp;quot; ging.&lt;br /&gt;
  &lt;br /&gt;
  Nur ist der Fehler dann aber schon vor Tagen/Wochen passiert, und solange&lt;br /&gt;
  die Datensätze nicht abgelaufen (expired) sind, sind sie - die alten -&lt;br /&gt;
  noch im DNS System vorhanden. Die neuen aber, die aus der o.g. Änderung,&lt;br /&gt;
  sind bei einem Fehler im Zonenfile nie ins DNS System hinein gekommen!&lt;br /&gt;
  &lt;br /&gt;
  Was also tun? Zunächst kann man nach einer Änderung in einer&lt;br /&gt;
  Shell beobachten, ob es zu Fehlermeldungen kommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log &lt;br /&gt;
  &lt;br /&gt;
  oder ggf nur Zeilen, in denen die eigene Domain (z.B. example.com)&lt;br /&gt;
  vorkommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log | grep example.com&lt;br /&gt;
  &lt;br /&gt;
  Diese Log-Datei ist daher genau aus diese Grunde auch auf dem&lt;br /&gt;
  Server lesbar.&lt;br /&gt;
  &lt;br /&gt;
  Auch sollte die in den DNS-Servern befindliche Seriennummer mit der&lt;br /&gt;
  aktuellen in der Zonendatei verglichen werden:&lt;br /&gt;
  &lt;br /&gt;
  dig -t SOA @dns1 example.com | grep &#039;^example.com.*SOA&#039; | awk &#039;{ print $7 }&#039;&lt;br /&gt;
  &lt;br /&gt;
  grep serial /etc/bind/pri.example.com | awk &#039;{ print $1 }&#039;  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenes Zonenfile ==&lt;br /&gt;
&lt;br /&gt;
Wer ein eigenes Zonefile installieren möchte, um diverse Anwendungsfälle zu realisieren (Verweise auf extern gelagerte Subdomains, Anbindung externer Server, Verwendung eigener Mailserver), kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellen. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;~/doms/example.com/etc&#039;&#039;&#039; mit den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Ein Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen!}}&lt;br /&gt;
&lt;br /&gt;
Eine Anleitung für die eher einfachen und oft gewünschten Änderungen findet sich in [[Simple Zonefile Howto]].&lt;br /&gt;
&lt;br /&gt;
Folgende Platzhalter können und sollten in eigenen Zonenfiles verwendet werden. Sie ermöglichen uns das Ändern der DNS-Konfiguration, ohne dass der Domain-Admin sein Zonefile anpassen muss.&lt;br /&gt;
&lt;br /&gt;
=== Komplexe Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE} :=&lt;br /&gt;
	{HEADER}&lt;br /&gt;
	{SOA_RR}&lt;br /&gt;
	{NS_RR}&lt;br /&gt;
	{MX_RR}	&lt;br /&gt;
	{A_RR}&lt;br /&gt;
	{WILDCARD_MX_RR}&lt;br /&gt;
	{WILDCARD_A_RR}&lt;br /&gt;
&lt;br /&gt;
{HEADER} :=&lt;br /&gt;
	$TTL {TTL}&lt;br /&gt;
&lt;br /&gt;
{SOA_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
		{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
		{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
		{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
		{EXPIRE}	; expire&lt;br /&gt;
		{MINIMUM}	; minimum&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
{NS_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{MX_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{A_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_MX_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_A_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Atomare Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{TTL} :=		6H&lt;br /&gt;
{SOA_HOSTNAME} :=	&amp;lt;HIVE&amp;gt;.hostsharing.net&lt;br /&gt;
{SOA_EMAIL}:=		hostmaster.hostsharing.net&lt;br /&gt;
{SIO} :=		&amp;lt;SEKUNDEN&amp;gt;&lt;br /&gt;
{REFRESH} :=		6H&lt;br /&gt;
{RETRY} :=		1H&lt;br /&gt;
{EXPIRE} :=		1W&lt;br /&gt;
{MINIMUM} :=		1H&lt;br /&gt;
&lt;br /&gt;
{DNS1_HOSTNAME} :=	dns1.hostsharing.net&lt;br /&gt;
{DNS2_HOSTNAME} :=	dns2.hostsharing.net&lt;br /&gt;
{DNS3_HOSTNAME} :=	dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{MX1_HOSTNAME} :=	mailin1.hostsharing.net&lt;br /&gt;
{MX2_HOSTNAME} :=	mailin2.hostsharing.net&lt;br /&gt;
{MX3_HOSTNAME} :=	mailin3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME} :=	&amp;lt;FQDN&amp;gt;&lt;br /&gt;
{DOM_IPNUMBER} := 	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei stehen&lt;br /&gt;
* &amp;lt;Sekunden&amp;gt; für die Anzahl der Sekunden, welche seit dem 01.01.1970 vergangen sind&lt;br /&gt;
* &amp;lt;FQDN&amp;gt; für den vollständigen, qualifizierten Domainnamen der Domain&lt;br /&gt;
* &amp;lt;IP&amp;gt; für die der Domain zugewiesene IP-Adresse&lt;br /&gt;
&lt;br /&gt;
Diese Werte werden von Hostsharing verwaltet.&lt;br /&gt;
&lt;br /&gt;
=== Expansion der Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter für das Gesamtzonefile {DEFAULT_ZONFILE} wird folgermaßen expandiert.&lt;br /&gt;
&lt;br /&gt;
Zunächst werden die komplexen Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
	{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
	{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
	{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
	{EXPIRE}	; expire&lt;br /&gt;
	{MINIMUM}	; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die atomaren Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL 6H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;. IN SOA &amp;lt;HIVE&amp;gt;.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
	&amp;lt;SEKUNDEN&amp;gt;	; serial secs since Jan 1 1970&lt;br /&gt;
	6H		; refresh (&amp;gt;=10000)&lt;br /&gt;
	1H		; retry (&amp;gt;=1800)&lt;br /&gt;
	1W		; expire&lt;br /&gt;
	1H		; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Das Zonefile deaktivieren/zurücksetzen ==&lt;br /&gt;
&lt;br /&gt;
In ~/doms/example.com/etc das vorhandene Zonefile (pri.example.com) komplett leeren (ist dann 0 Bytes groß). Dann kommt der Robot vorbei, löscht pri.example.com und setzt alles auf Standardwerte zurück.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=4858</id>
		<title>Verwalten der Zonendaten</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=4858"/>
		<updated>2019-04-06T11:59:18Z</updated>

		<summary type="html">&lt;p&gt;Web: SPF und IPv6 in Kürze&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Kerndoku|https://doc.hostsharing.net/users/administration/zonefile/index.html}}&lt;br /&gt;
&lt;br /&gt;
Das Zonenfile für eine Domain enthält die Konfiguration des Domain Name Service ([[DNS]]), d.h. der [[Nameserver]] der Domain. Es wird hinterlegt, welche Hostnamen innerhalb der Domain existieren und auf welche IP-Adressen diese zeigen. Außerdem wird hierüber auch gesteuert, an welches System Mails für die Domain geliefert werden sollen. Für einfache und unkomplizierte Änderungen bitte in [[Simple Zonefile Howto]] schauen.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Achtung|Aufgrund der zentralen Bedeutung sollten Änderungen nur mit Vorsicht vorgenommen werden, da eine fehlerhafte Einstellung dazu führen kann, dass die Webseite nicht mehr im Internet abgerufen werden kann oder Mails verloren gehen!}}&lt;br /&gt;
&lt;br /&gt;
== Aktives Zonefile ==&lt;br /&gt;
&lt;br /&gt;
Die gerade aktive Konfiguration einer Domain example.com ist in /etc/bind/pri.example.com zu finden ([[Zonefile]]).&lt;br /&gt;
&lt;br /&gt;
Im Standardfall sieht es vollständig expandiert wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$TTL 6H&lt;br /&gt;
example.com. IN SOA h00.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
                1303649373      ; serial secs since Jan 1 1970&lt;br /&gt;
                6H              ; refresh (&amp;gt;=10000)&lt;br /&gt;
                1H              ; retry (&amp;gt;=1800)&lt;br /&gt;
                1W              ; expire&lt;br /&gt;
                1H              ; minimum&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      NS      dns1.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns2.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      A             83.223.95.160&lt;br /&gt;
example.com.    IN      AAAA      2a01:37:1000::53df:5fa0:0 ; in Kürze&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot; ; in Kürze&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      A             83.223.95.160&lt;br /&gt;
*.example.com.  IN      AAAA      2a01:37:1000::53df:5fa0:0 ; in Kürze&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot; ; in Kürze&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logfile und Kontrolle==&lt;br /&gt;
&lt;br /&gt;
Die Logfiles des Nameservers sind im Verzeichnis /var/log/named einsehbar. Das aktuelle Log wird unter dem Namen named.log angelegt. Dieses wird beim Neustart des DNS-Servers immer neu angelegt und zeigt bei einer erfolgreichen Änderung etwa folgenden Inhalt:&lt;br /&gt;
&lt;br /&gt;
  Oct 11 18:32:21.400 info: zone example.org/IN: loaded serial 1065889567&lt;br /&gt;
  Oct 11 18:32:21.435 info: zone example.org/IN: sending notifies (serial 1065889567)&lt;br /&gt;
  Oct 11 18:32:21.755 info: client 213.133.116.2#57100: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
  Oct 11 18:32:22.264 info: client 62.75.149.27#45282: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
&lt;br /&gt;
Die Zeilen bedeuten jeweils:&lt;br /&gt;
&lt;br /&gt;
* Das geänderte Zonefile wurde vom DNS-Server erfolgreich geladen&lt;br /&gt;
* Der lokale Server sendet eine Benachrichtigung an die Secondaries, damit diese die Änderung ebenfalls übernehmen können.&lt;br /&gt;
&lt;br /&gt;
Tippfehler oder falsche Angaben im Zonefile werden hier ebenfalls gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  -------- Original-Nachricht --------&lt;br /&gt;
  Betreff: [Global] DNS Zonenfile Änderungen&lt;br /&gt;
  Datum: Thu, 4 Mar 2010 08:30:34 +0100&lt;br /&gt;
  &lt;br /&gt;
  Moin Moin,&lt;br /&gt;
  &lt;br /&gt;
  aus gegebenem Anlass: Immer wieder kommt es vor, dass jemand sein&lt;br /&gt;
  Zonenfile ändert, und es (scheinbar) funktioniert. Tage oder Wochen&lt;br /&gt;
  später dann sind die Domains nicht mehr erreichbar und es heißt &amp;quot;in den&lt;br /&gt;
  letzten ... Tagen/Wochen habe ich aber gar nichts mehr geändert&amp;quot;. Das mag&lt;br /&gt;
  auch gut sein - ist mir auch selbst schon passiert, gerade wenn es um&lt;br /&gt;
  &amp;quot;mal eben schnell noch ... &amp;quot; ging.&lt;br /&gt;
  &lt;br /&gt;
  Nur ist der Fehler dann aber schon vor Tagen/Wochen passiert, und solange&lt;br /&gt;
  die Datensätze nicht abgelaufen (expired) sind, sind sie - die alten -&lt;br /&gt;
  noch im DNS System vorhanden. Die neuen aber, die aus der o.g. Änderung,&lt;br /&gt;
  sind bei einem Fehler im Zonenfile nie ins DNS System hinein gekommen!&lt;br /&gt;
  &lt;br /&gt;
  Was also tun? Zunächst kann man nach einer Änderung in einer&lt;br /&gt;
  Shell beobachten, ob es zu Fehlermeldungen kommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log &lt;br /&gt;
  &lt;br /&gt;
  oder ggf nur Zeilen, in denen die eigene Domain (z.B. example.com)&lt;br /&gt;
  vorkommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log | grep example.com&lt;br /&gt;
  &lt;br /&gt;
  Diese Log-Datei ist daher genau aus diese Grunde auch auf dem&lt;br /&gt;
  Server lesbar.&lt;br /&gt;
  &lt;br /&gt;
  Auch sollte die in den DNS-Servern befindliche Seriennummer mit der&lt;br /&gt;
  aktuellen in der Zonendatei verglichen werden:&lt;br /&gt;
  &lt;br /&gt;
  dig -t SOA @dns1 example.com | grep &#039;^example.com.*SOA&#039; | awk &#039;{ print $7 }&#039;&lt;br /&gt;
  &lt;br /&gt;
  grep serial /etc/bind/pri.example.com | awk &#039;{ print $1 }&#039;  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenes Zonenfile ==&lt;br /&gt;
&lt;br /&gt;
Wer ein eigenes Zonefile installieren möchte, um diverse Anwendungsfälle zu realisieren (Verweise auf extern gelagerte Subdomains, Anbindung externer Server, Verwendung eigener Mailserver), kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellen. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;~/doms/example.com/etc&#039;&#039;&#039; mit den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Ein Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen!}}&lt;br /&gt;
&lt;br /&gt;
Eine Anleitung für die eher einfachen und oft gewünschten Änderungen findet sich in [[Simple Zonefile Howto]].&lt;br /&gt;
&lt;br /&gt;
Folgende Platzhalter können und sollten in eigenen Zonenfiles verwendet werden. Sie ermöglichen uns das Ändern der DNS-Konfiguration, ohne dass der Domain-Admin sein Zonefile anpassen muss.&lt;br /&gt;
&lt;br /&gt;
=== Komplexe Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE} :=&lt;br /&gt;
	{HEADER}&lt;br /&gt;
	{SOA_RR}&lt;br /&gt;
	{NS_RR}&lt;br /&gt;
	{MX_RR}	&lt;br /&gt;
	{A_RR}&lt;br /&gt;
	{WILDCARD_MX_RR}&lt;br /&gt;
	{WILDCARD_A_RR}&lt;br /&gt;
&lt;br /&gt;
{HEADER} :=&lt;br /&gt;
	$TTL {TTL}&lt;br /&gt;
&lt;br /&gt;
{SOA_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
		{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
		{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
		{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
		{EXPIRE}	; expire&lt;br /&gt;
		{MINIMUM}	; minimum&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
{NS_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{MX_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{A_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_MX_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_A_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Atomare Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{TTL} :=		6H&lt;br /&gt;
{SOA_HOSTNAME} :=	&amp;lt;HIVE&amp;gt;.hostsharing.net&lt;br /&gt;
{SOA_EMAIL}:=		hostmaster.hostsharing.net&lt;br /&gt;
{SIO} :=		&amp;lt;SEKUNDEN&amp;gt;&lt;br /&gt;
{REFRESH} :=		6H&lt;br /&gt;
{RETRY} :=		1H&lt;br /&gt;
{EXPIRE} :=		1W&lt;br /&gt;
{MINIMUM} :=		1H&lt;br /&gt;
&lt;br /&gt;
{DNS1_HOSTNAME} :=	dns1.hostsharing.net&lt;br /&gt;
{DNS2_HOSTNAME} :=	dns2.hostsharing.net&lt;br /&gt;
{DNS3_HOSTNAME} :=	dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{MX1_HOSTNAME} :=	mailin1.hostsharing.net&lt;br /&gt;
{MX2_HOSTNAME} :=	mailin2.hostsharing.net&lt;br /&gt;
{MX3_HOSTNAME} :=	mailin3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME} :=	&amp;lt;FQDN&amp;gt;&lt;br /&gt;
{DOM_IPNUMBER} := 	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei stehen&lt;br /&gt;
* &amp;lt;Sekunden&amp;gt; für die Anzahl der Sekunden, welche seit dem 01.01.1970 vergangen sind&lt;br /&gt;
* &amp;lt;FQDN&amp;gt; für den vollständigen, qualifizierten Domainnamen der Domain&lt;br /&gt;
* &amp;lt;IP&amp;gt; für die der Domain zugewiesene IP-Adresse&lt;br /&gt;
&lt;br /&gt;
Diese Werte werden von Hostsharing verwaltet.&lt;br /&gt;
&lt;br /&gt;
=== Expansion der Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter für das Gesamtzonefile {DEFAULT_ZONFILE} wird folgermaßen expandiert.&lt;br /&gt;
&lt;br /&gt;
Zunächst werden die komplexen Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
	{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
	{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
	{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
	{EXPIRE}	; expire&lt;br /&gt;
	{MINIMUM}	; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die atomaren Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL 6H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;. IN SOA &amp;lt;HIVE&amp;gt;.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
	&amp;lt;SEKUNDEN&amp;gt;	; serial secs since Jan 1 1970&lt;br /&gt;
	6H		; refresh (&amp;gt;=10000)&lt;br /&gt;
	1H		; retry (&amp;gt;=1800)&lt;br /&gt;
	1W		; expire&lt;br /&gt;
	1H		; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Das Zonefile deaktivieren/zurücksetzen ==&lt;br /&gt;
&lt;br /&gt;
In ~/doms/example.com/etc das vorhandene Zonefile (pri.example.com) komplett leeren (ist dann 0 Bytes groß). Dann kommt der Robot vorbei, löscht pri.example.com und setzt alles auf Standardwerte zurück.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4857</id>
		<title>Simple Zonefile Howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4857"/>
		<updated>2019-04-06T11:55:54Z</updated>

		<summary type="html">&lt;p&gt;Web: SPF und AAAA in Kürze&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In diesem Howto werden einfachere Standardanwendungen für eigene Zonefiles behandelt. Tiefer gehende Erläuterungen finden sich in [[Verwalten der Zonendaten]].&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird von Hostsharing die Konfiguration der Nameserver automatisch erledigt. Das ist einer angepassten Lösung grundsätzlich vorzuziehen. Es entlastet den Anwender von der Pflicht, sein Zonefile bei technischen Änderungen zu überprüfen. Sollte dennoch ein benutzerspezifisches Zonefile erforderlich sein, so verringert der Einsatz möglichst mächtiger Platzhalter den späteren Anpassungsbedarf. In vielen Fällen genügt es, den Platzhalter für das Standardzonefile um eigene Einträge zu ergänzen.&lt;br /&gt;
&lt;br /&gt;
Ist die Verwendung eines angepassten Zonefiles erforderlich, z.B. zur Realisation von DNS-Verweisen auf extern gelagerte Subdomains, der Anbindung externer Server oder der Verwendung eigener Mailserver, kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellt werden. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;[[~/]]doms/example.com/etc&#039;&#039;&#039; und trägt den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Das Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen! &#039;&#039;&#039;Insbesondere sei auf die Fehlerquelle gesetzter bzw. nicht gesetzter abschließender Punkte hingewiesen&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
== alle Web-Inhalte soll auf externe IP-Adresse verweisen ==&lt;br /&gt;
&lt;br /&gt;
Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{MX_RR}&lt;br /&gt;
{SPF_RR} ; in Kürze&lt;br /&gt;
{WILDCARD_MX_RR}&lt;br /&gt;
{WILDCARD_SPF_RR} ; in Kürze&lt;br /&gt;
{DOM_HOSTNAME}.    IN  A  1.2.3.4&lt;br /&gt;
*.{DOM_HOSTNAME}.  IN  A  1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.2.3.4 ist durch die externe IP zu ersetzten.&lt;br /&gt;
&lt;br /&gt;
== Subdomain zuhause.example.com über Anbieter wie dyndns ==&lt;br /&gt;
&lt;br /&gt;
Die Subdomain zuhause.example.com soll über einen Anbieter à la dyndns laufen. Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE}&lt;br /&gt;
zuhause.{DOM_HOSTNAME}.	IN	CNAME	example.dyndns.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Externer Mailserver ==&lt;br /&gt;
&lt;br /&gt;
Wir wollen einen Mailserver extern betreiben, z.B. bei einem Cloud-Anbieter (Mails, Kontakte und Termine schon gecloudt?) oder im Büro. Wir übernehmen also erstmal alles, was {DEFAULT_ZONFILE} liefern würde, außer den MX Resource Records:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{A_RR}&lt;br /&gt;
{AAAA_RR} ; in Kürze&lt;br /&gt;
{SPF_RR} ; in Kürze&lt;br /&gt;
{WILDCARD_A_RR}&lt;br /&gt;
{WILDCARD_AAAA_RR} ; in Kürze&lt;br /&gt;
{WILDCARD_SPF_RR} ; in Kürze&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun definieren wir den Mailserver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	MX 30 my.cloud.provider.example.com.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder per fester IP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	A	1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann legen wir die MX-Konfiguration fest, die besagt, welcher Mailserver für diese Domain zuständig ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn wir Mails auch für Subdomains wollen, brauchen wir zusätzlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Achtung&lt;br /&gt;
Damit das interne {{lang|en|mailrouting}} innerhalb des Pakets für die Domain so funktioniert, daß keine lokal eingelieferten {{lang|en|e-mails}} an Mailboxen im Paket zugestellt werden, muß darauf geachtet werden, daß im Paket selber keine {{lang|en|e-mail}}-Adressen für die Domain defniert sind. Standardmäßig werden beim Einrichten einer Domain die Adressen:&lt;br /&gt;
 abuse@...&lt;br /&gt;
 postmaster@...&lt;br /&gt;
 webmaster@...&lt;br /&gt;
[https://doc.hostsharing.net/users/administration/domain/index.html Domain]. Bei der oben angeführten MX-Konfiguration müssen diese mit [https://doc.hostsharing.net/users/administration/hsadmin/index.html hsadmin] wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4856</id>
		<title>Simple Zonefile Howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Simple_Zonefile_Howto&amp;diff=4856"/>
		<updated>2019-04-06T11:54:58Z</updated>

		<summary type="html">&lt;p&gt;Web: SPF in Kürze&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In diesem Howto werden einfachere Standardanwendungen für eigene Zonefiles behandelt. Tiefer gehende Erläuterungen finden sich in [[Verwalten der Zonendaten]].&lt;br /&gt;
&lt;br /&gt;
Normalerweise wird von Hostsharing die Konfiguration der Nameserver automatisch erledigt. Das ist einer angepassten Lösung grundsätzlich vorzuziehen. Es entlastet den Anwender von der Pflicht, sein Zonefile bei technischen Änderungen zu überprüfen. Sollte dennoch ein benutzerspezifisches Zonefile erforderlich sein, so verringert der Einsatz möglichst mächtiger Platzhalter den späteren Anpassungsbedarf. In vielen Fällen genügt es, den Platzhalter für das Standardzonefile um eigene Einträge zu ergänzen.&lt;br /&gt;
&lt;br /&gt;
Ist die Verwendung eines angepassten Zonefiles erforderlich, z.B. zur Realisation von DNS-Verweisen auf extern gelagerte Subdomains, der Anbindung externer Server oder der Verwendung eigener Mailserver, kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellt werden. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;[[~/]]doms/example.com/etc&#039;&#039;&#039; und trägt den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Das Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen! &#039;&#039;&#039;Insbesondere sei auf die Fehlerquelle gesetzter bzw. nicht gesetzter abschließender Punkte hingewiesen&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
== alle Web-Inhalte soll auf externe IP-Adresse verweisen ==&lt;br /&gt;
&lt;br /&gt;
Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{MX_RR}&lt;br /&gt;
{SPF_RR} ; in Kürze&lt;br /&gt;
{WILDCARD_MX_RR}&lt;br /&gt;
{WILDCARD_SPF_RR} ; in Kürze&lt;br /&gt;
{DOM_HOSTNAME}.    IN  A  1.2.3.4&lt;br /&gt;
*.{DOM_HOSTNAME}.  IN  A  1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.2.3.4 ist durch die externe IP zu ersetzten.&lt;br /&gt;
&lt;br /&gt;
== Subdomain zuhause.example.com über Anbieter wie dyndns ==&lt;br /&gt;
&lt;br /&gt;
Die Subdomain zuhause.example.com soll über einen Anbieter à la dyndns laufen. Das komplette Zonefile sieht so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE}&lt;br /&gt;
zuhause.{DOM_HOSTNAME}.	IN	CNAME	example.dyndns.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Externer Mailserver ==&lt;br /&gt;
&lt;br /&gt;
Wir wollen einen Mailserver extern betreiben, z.B. bei einem Cloud-Anbieter (Mails, Kontakte und Termine schon gecloudt?) oder im Büro. Wir übernehmen also erstmal alles, was {DEFAULT_ZONFILE} liefern würde, außer den MX Resource Records:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{HEADER}&lt;br /&gt;
{SOA_RR}&lt;br /&gt;
{NS_RR}&lt;br /&gt;
{A_RR}&lt;br /&gt;
{WILDCARD_A_RR}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun definieren wir den Mailserver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	MX 30 my.cloud.provider.example.com.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder per fester IP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail.{DOM_HOSTNAME}.	IN	A	1.2.3.4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann legen wir die MX-Konfiguration fest, die besagt, welcher Mailserver für diese Domain zuständig ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn wir Mails auch für Subdomains wollen, brauchen wir zusätzlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 mail.{DOM_HOSTNAME}.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Achtung&lt;br /&gt;
Damit das interne {{lang|en|mailrouting}} innerhalb des Pakets für die Domain so funktioniert, daß keine lokal eingelieferten {{lang|en|e-mails}} an Mailboxen im Paket zugestellt werden, muß darauf geachtet werden, daß im Paket selber keine {{lang|en|e-mail}}-Adressen für die Domain defniert sind. Standardmäßig werden beim Einrichten einer Domain die Adressen:&lt;br /&gt;
 abuse@...&lt;br /&gt;
 postmaster@...&lt;br /&gt;
 webmaster@...&lt;br /&gt;
[https://doc.hostsharing.net/users/administration/domain/index.html Domain]. Bei der oben angeführten MX-Konfiguration müssen diese mit [https://doc.hostsharing.net/users/administration/hsadmin/index.html hsadmin] wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=4658</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=4658"/>
		<updated>2018-08-27T07:49:42Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Nextcloud installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
  hsscript -u xyz00 -i&lt;br /&gt;
  Password: ********&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;
  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;
&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;
  ssh -l xyz00-cloud xyz00.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;htdocs&#039;&#039; Verzeichnis vorbereiten&lt;br /&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;
&lt;br /&gt;
Nextcloud downloaden (heute am 02.08.2018 aktuell Version 13.0.5) &amp;amp; entpacken &lt;br /&gt;
&lt;br /&gt;
   cd &lt;br /&gt;
   wget https://download.nextcloud.com/server/releases/nextcloud-13.0.5.zip &lt;br /&gt;
   unzip nextcloud-13.0.5.zip &lt;br /&gt;
   rm nextcloud-13.0.5.zip&lt;br /&gt;
   mkdir data tmp&lt;br /&gt;
   chmod 700 data tmp&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;
   upload_max_filesize 511M&lt;br /&gt;
   post_max_size 511M&lt;br /&gt;
   memory_limit 512M&lt;br /&gt;
   mbstring.func_overload 0&lt;br /&gt;
   default_charset &#039;UTF-8&#039;&lt;br /&gt;
   output_buffering 0&lt;br /&gt;
   session.save_path = /home/pacs/xyz00/users/cloud/tmp&lt;br /&gt;
   opcache.enable=1&lt;br /&gt;
   opcache.enable_cli=1&lt;br /&gt;
   opcache.interned_strings_buffer=8&lt;br /&gt;
   opcache.max_accelerated_files=10000&lt;br /&gt;
   opcache.memory_consumption=128&lt;br /&gt;
   opcache.save_comments=1&lt;br /&gt;
   opcache.revalidate_freq=1&lt;br /&gt;
   opcache.lockfile_path=/home/pacs/xyz00/users/cloud/tmp&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&lt;br /&gt;
* Das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/data/&amp;quot; als Daten-Verzeichnis&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:Stretch&amp;diff=4625</id>
		<title>Diskussion:Stretch</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:Stretch&amp;diff=4625"/>
		<updated>2018-06-24T18:22:58Z</updated>

		<summary type="html">&lt;p&gt;Web: Die Seite wurde neu angelegt: „ssh: rsa(4096) oder ed25519?“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ssh: rsa(4096) oder ed25519?&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Wagtail_installieren&amp;diff=4597</id>
		<title>Wagtail installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Wagtail_installieren&amp;diff=4597"/>
		<updated>2018-05-30T20:02:30Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Am Beispiel der Domain xyz00.hostsharing.net des Users xyz00.&lt;br /&gt;
Die Installation in diesem Beispiel wird mit dem Paketadmin xyz00 durchgeführt&lt;br /&gt;
&lt;br /&gt;
xyz00 ist durch das tatsächliche Paketkürzel zu ersetzen.&lt;br /&gt;
&lt;br /&gt;
Installation einer eigenen Pythonumgebung und Installation von wagtail:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir wagtail&lt;br /&gt;
cd wagtail/&lt;br /&gt;
virtualenv -p python3 virtualenv&lt;br /&gt;
virtualenv/bin/pip install wagtail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anlegen des Projekts &amp;quot;mysite&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virtualenv/bin/wagtail start mysite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich sind individuelle Settings in der Anwendungskonfiguration&lt;br /&gt;
(z.B. production.py) zu hinterlegen, z.B. die zu verwendende Datenbank.&lt;br /&gt;
&lt;br /&gt;
Aufruf von migrate und collectstatic, um die Datenbank zu initialisieren und die statischen Dateien bereitzustellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd mysite&lt;br /&gt;
../virtualenv/bin/python3 ./manage.py migrate&lt;br /&gt;
../virtualenv/bin/python3 ./manage.py collectstatic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anlegen eines symbolischen Links zur Auslieferung der statischen Inhalte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/doms/xyz00.hostsharing.net/&lt;br /&gt;
rm -rf htdocs-ssl&lt;br /&gt;
ln -f /home/pacs/xyz00/wagtail/mysite/mysite/static htdocs-ssl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dem Ordner /home/doms/xyz00.hostsharing.net/ eine .htaccess mit folgendem Inhalt anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PassengerPython /home/pacs/xyz00/wagtail/virtualenv/bin/python3&lt;br /&gt;
SetEnv DJANGO_SETTINGS_MODULE mysite.settings.production&lt;br /&gt;
SetEnv PYTHONPATH /home/pacs/xyz00/wagtail/mysite/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter dem Ordner app-ssl die Datei passenger_wsgi.py anlegen und mit folgendem Inhalt&lt;br /&gt;
füllen, um Passenger mit der Anwendung zu verdrahten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from mysite.wsgi import application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter dem Ordner ein Verzeichnis &amp;quot;tmp&amp;quot; anlegen und eine leere Datei &amp;quot;restart.txt&amp;quot; anlgen.&lt;br /&gt;
Ein &amp;quot;touch&amp;quot; startet die Applikation neu: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir app-ssl/tmp&lt;br /&gt;
touch app-ssl/tmp/restart.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Wagtail_installieren&amp;diff=4596</id>
		<title>Wagtail installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Wagtail_installieren&amp;diff=4596"/>
		<updated>2018-05-30T20:01:18Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Am Beispiel der Domain xyz00.hostsharing.net des Users xyz00.&lt;br /&gt;
Die Installation in diesem Beispiel wird mit dem Paketadmin xyz00 durchgeführt&lt;br /&gt;
&lt;br /&gt;
xyz00 ist durch das tatsächliche Paketkürzel zu ersetzen.&lt;br /&gt;
&lt;br /&gt;
Installation einer eigenen Pythonumgebung und Installation von wagtail:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  mkdir wagtail&lt;br /&gt;
  cd wagtail/&lt;br /&gt;
  virtualenv -p python3 virtualenv&lt;br /&gt;
  virtualenv/bin/pip install wagtail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anlegen des Projekts &amp;quot;mysite&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  virtualenv/bin/wagtail start mysite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich sind individuelle Settings in der Anwendungskonfiguration&lt;br /&gt;
(z.B. production.py) zu hinterlegen, z.B. die zu verwendende Datenbank.&lt;br /&gt;
&lt;br /&gt;
Aufruf von migrate und collectstatic, um die Datenbank zu initialisieren und die statischen Dateien bereitzustellen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  cd mysite&lt;br /&gt;
  ../virtualenv/bin/python3 ./manage.py migrate&lt;br /&gt;
  ../virtualenv/bin/python3 ./manage.py collectstatic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anlegen eines symbolischen Links zur Auslieferung der statischen Inhalte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  cd /home/doms/xyz00.hostsharing.net/&lt;br /&gt;
  rm -rf htdocs-ssl&lt;br /&gt;
  ln -f /home/pacs/xyz00/wagtail/mysite/mysite/static htdocs-ssl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dem Ordner /home/doms/xyz00.hostsharing.net/ eine .htaccess mit folgendem Inhalt anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  	PassengerPython /home/pacs/xyz00/wagtail/virtualenv/bin/python3&lt;br /&gt;
	SetEnv DJANGO_SETTINGS_MODULE mysite.settings.production&lt;br /&gt;
	SetEnv PYTHONPATH /home/pacs/xyz00/wagtail/mysite/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter dem Ordner app-ssl die Datei passenger_wsgi.py anlegen und mit folgendem Inhalt&lt;br /&gt;
füllen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	from mysite.wsgi import application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter dem Ordner ein Verzeichnis &amp;quot;tmp&amp;quot; anlegen und eine leere Datei &amp;quot;restart.txt&amp;quot; anlgen.&lt;br /&gt;
Ein &amp;quot;touch&amp;quot; startet die Applikation neu: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  mkdir app-ssl/tmp&lt;br /&gt;
  touch app-ssl/tmp/restart.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Support&amp;diff=4556</id>
		<title>Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Support&amp;diff=4556"/>
		<updated>2017-12-31T10:05:32Z</updated>

		<summary type="html">&lt;p&gt;Web: Postanschrift&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kontakt:&amp;lt;br&amp;gt;&lt;br /&gt;
Hostsharing eG&amp;lt;br&amp;gt;&lt;br /&gt;
Flughafenstraße 52a&amp;lt;br&amp;gt;&lt;br /&gt;
22335 Hamburg&amp;lt;br&amp;gt;&lt;br /&gt;
Germany&amp;lt;br&amp;gt;&lt;br /&gt;
phone: +49 40 209331311&amp;lt;br&amp;gt;&lt;br /&gt;
fax: +49 40 209331312&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wer sein Problem nicht mit dieser Doku hier lösen konnte stellt bitte unter folgenden Möglichkeiten eine Anfrage:&amp;lt;br&amp;gt;&lt;br /&gt;
support@hostsharing.net öffentliche Liste&amp;lt;br&amp;gt;&lt;br /&gt;
https://lists.hostsharing.net/mailman/listinfo/support&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
service@hostsharing.net &amp;lt;br&amp;gt;&lt;br /&gt;
(Für private Daten die nicht in die Öffentlichkeit dürfen.&amp;lt;br&amp;gt;&lt;br /&gt;
ACHTUNG: Anfragen sind hier ggf. kostenpflichtig. Auf den Übergang zur kostenpflichtigen Beratung wird explizit hingewiesen.)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[FAQ]] bitte erst lesen :-)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Benutzer:Web&amp;diff=4555</id>
		<title>Benutzer:Web</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Benutzer:Web&amp;diff=4555"/>
		<updated>2017-12-29T13:28:50Z</updated>

		<summary type="html">&lt;p&gt;Web: Leere Seite erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=4105</id>
		<title>E-Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=E-Mail&amp;diff=4105"/>
		<updated>2016-04-25T09:50:22Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Mailbox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Hinweis:| Der weitere Inhalt ist in der Hostsharing Dokumentation unter &lt;br /&gt;
https://doc.hostsharing.net/users/administration/email/index.html&lt;br /&gt;
zu finden.}}&lt;br /&gt;
&lt;br /&gt;
Die (auch das) &#039;&#039;&#039;E-Mail&#039;&#039;&#039; (kurz &#039;&#039;Mail&#039;&#039;, von englisch &#039;&#039;electronic mail&#039;&#039;: „elektronische Post“ oder „elektronischer Brief“), manchmal als &#039;&#039;&#039;E-Post&#039;&#039;&#039; oder &#039;&#039;&#039;E-Brief&#039;&#039;&#039; bezeichnet, ist eine auf elektronischem Weg in [[Rechnernetz|Computernetzwerken]] übertragene [[Nachricht]].&lt;br /&gt;
&lt;br /&gt;
E-Mail wird – noch vor dem [[World Wide Web]] – als wichtigster und meistgenutzter Dienst des [[Internet]]s angesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitergehende Konfigurationsmöglichkeiten ==&lt;br /&gt;
&lt;br /&gt;
* Es können [[Mailinglisten]] eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
* IMAP Konten lassen sich mit [[ImapCopy]] zu HS kopieren.&lt;br /&gt;
&lt;br /&gt;
== E-Mail-Infrastruktur ==&lt;br /&gt;
&lt;br /&gt;
Wir nutzen [http://www.postfix.org/ Postfix] als [[Mail Transfer Agent]](MTA) bzw. Mailserver. Diese Software dient dazu, eingehende Mails den lokalen Usern des Servers zuzuordnen, an interne oder externe Server zuzustellen.&lt;br /&gt;
&lt;br /&gt;
E-Mails werden vom Mailsystem im Verzeichnis Maildir des jeweiligen User-Accounts abgelegt (der Name ist systemweit eingestellt und kann nicht verändert werden). &lt;br /&gt;
&lt;br /&gt;
Damit sind die Mails im normalen Backup enthalten und gehen auch in die Quota des Paketes ein. Das Verzeichnis wird automatisch angelegt, wenn die erste E-Mail dort abgelegt wird. &lt;br /&gt;
&lt;br /&gt;
Ist das Verzeichnis Maildir nicht angelegt, liefern E-Mail-Clients oder Webmail-Clients aufgrund des fehlenden Verzeichnisses eine Fehlermeldung. &lt;br /&gt;
Dies kann verhindert werden, indem  auf der Shell in dem entsprechenden User-Account folgender Befehl ausführt wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; maildirmake Maildir&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aressierung und Weiterleitungen ==&lt;br /&gt;
&lt;br /&gt;
=== e-mail-Adressen ===&lt;br /&gt;
&lt;br /&gt;
Eine E-Mail-Adresse ist genau das, was man sich meist vorstellst, nämlich eine&lt;br /&gt;
Kennung der Form &amp;lt;code&amp;gt;irgendwas@domain&amp;lt;/code&amp;gt; (historisch: &amp;lt;code&amp;gt;user-name@system-name&amp;lt;/code&amp;gt;),&lt;br /&gt;
versehen mit dem Hinweis, wohin an diese Kennung eingehende E-Mail&lt;br /&gt;
geleitet werden sollen. Die Ziele, mehrere sind erlaubt, können andere&lt;br /&gt;
E-Mail-Adressen sein (interne oder externe) oder Mailboxen/Postfächer.&lt;br /&gt;
&lt;br /&gt;
Dabei unterscheidet Hostsharing zwischen E-Mail-Adresse und Mailbox,&lt;br /&gt;
weil das (eigentlich) verschiedene Paar Schuhe sind. Es werden&lt;br /&gt;
n:m-Verknüpfungen zwischen E-Mail-Adressen und Mailboxen ermöglicht.&lt;br /&gt;
&lt;br /&gt;
=== e-mail-Aliases ===&lt;br /&gt;
&lt;br /&gt;
Ein E-Mail-Alias ist ein ganz anderer Begriff aus der&lt;br /&gt;
Mailserver-Technik, für den wir auch keine sprechende Bezeichnung (hat&lt;br /&gt;
jemand eine?) gefunden haben. Auf der einen Seite stellt er sich wie&lt;br /&gt;
eine &amp;quot;virtuelle&amp;quot; Mailbox dar - also ein Objekt, welches sich als Ziel&lt;br /&gt;
von Mailzustellungen wie eine Mailbox verhält - aber keinen&lt;br /&gt;
Speicherplatz mitbringt, sondern stattdessen eine Regel aufnimmt, was&lt;br /&gt;
mit E-Mails, die diese virtuelle Mailbox erreichen, geschehen soll. Die&lt;br /&gt;
Regeln, die dort hinterlegt werden können, bieten gegenüber den Regeln,&lt;br /&gt;
die bei E-Mail-Adressen als Ziele dienen können, erweiterte&lt;br /&gt;
Möglichkeiten. Unter anderem, Mailverteiler flexibel&lt;br /&gt;
zu definieren, aber auch die Möglichkeit, den Mailserver anzuweisen, die&lt;br /&gt;
eingehende E-Mail an mailverarbeitende Programme weiter zu reichen - ohne&lt;br /&gt;
dass diese Mailboxen per POP oder IMAP aktiv pollen müssten.&lt;br /&gt;
&lt;br /&gt;
=== Formal ===&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Adresse ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;email@example.com&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*    E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*    E-Mail-Alias&lt;br /&gt;
:*    Mailbox&lt;br /&gt;
&lt;br /&gt;
==== E-Mail-Alias ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-aliasname&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Ziel = Liste von (mehreren):&lt;br /&gt;
:*   E-Mail-Adresse (intern oder extern)&lt;br /&gt;
:*   E-Mail-Alias&lt;br /&gt;
:*   Mailbox&lt;br /&gt;
:*   spezielle Funktion (Pipe, dateibasierte Verteiler, ...)&lt;br /&gt;
&lt;br /&gt;
==== Mailbox ====&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:Form = &amp;lt;code&amp;gt;xyz00-mailbox&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
:*kann per [[POP3]] und/oder [[IMAP]] abgerufen werden&lt;br /&gt;
:*kann per [[Sieve]] gefiltert werden&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
Wenn es einen gleichlautenden Mailbox-Bezeichner wie einen E-Mail-Alias&lt;br /&gt;
gibt, &amp;quot;gewinnt&amp;quot; der Alias. Diese Wirkung kann aufgehoben werden, wenn&lt;br /&gt;
der Mailbox=Alias-Name im Ziel eines Aliases mit Backslash &amp;quot;\&amp;quot; maskiert&lt;br /&gt;
wird.&lt;br /&gt;
&lt;br /&gt;
Insgesamt kann man damit komplex E-Mail-Setups konfigurieren. Der Durchschnittsbenutzer wird jedoch Aliases nicht benötigen.&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
[[HS-Mailrouting]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Missverst%C3%A4ndnisse_%C3%BCber_dedizierte_root-Server&amp;diff=4101</id>
		<title>Missverständnisse über dedizierte root-Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Missverst%C3%A4ndnisse_%C3%BCber_dedizierte_root-Server&amp;diff=4101"/>
		<updated>2016-04-22T10:40:35Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Für (z.B.) **,99 Euro im Monat habe ich alles was ich brauche. ==&lt;br /&gt;
&lt;br /&gt;
Leider nicht: Administration, Security-Überwachung, Dienste-Monitoring, Backups, Standby-Server, um nur einige Beispiele zu nennen, sind in dem o.g. Preis nicht enthalten.&lt;br /&gt;
&lt;br /&gt;
== Mein Root-Server-Provider garantiert mir 99,9% Uptime. ==&lt;br /&gt;
&lt;br /&gt;
Nicht wirklich: Die Garantie gilt nur für die Internet-Anbindung, für den Server-Betrieb bist du bei einem dedizierten root-Server selbst verantwortlich. Und für Hardware-Ausfälle erhältst du für den Preis auch keine Garantie.&lt;br /&gt;
&lt;br /&gt;
== Über meinen Root-Server habe ich die volle Macht. ==&lt;br /&gt;
&lt;br /&gt;
Nicht wirklich: Wenn es Hardware-Probleme oder bestimmte Software-Probleme gibt, wirst du auf den Support deines Providers angewiesen sein. Hier zeigt sich dann der Gegenwert für den billigen Preis, Warten auf das Beheben von Hardware-Problemen oder gar einen Hardware-Austausch sind bei Billinganbietern eher die Regel als die Ausnahme. Downtime inklusive.&lt;br /&gt;
&lt;br /&gt;
== Auf meinem Root-Server kann ich installieren was ich will ==&lt;br /&gt;
&lt;br /&gt;
FALSCH: Du kannst installieren, was du willst und vom KnowHow her kannst. Dass für die volle Breitseite eines Internet-Servers auch sehr breites KnowHow nötig ist, vergessen die meisten. Viele laufen nach einem Vorfall in ernste Probleme, weil sie das alte System nicht wieder installiert bekommen. Der Teufel steckt im Detail, das man nur mit ausreichender Erfahrung kennt. Selbst wenn man sich mit der Kernanwendung &amp;quot;X&amp;quot; auskennt, braucht man wenigstens Kenntnisse zu DNS, Mail, Domain-Verwaltung, Logauswertung, Monitoring, Intrusion Detection, Backup, Dateisystemen, Datenbank-Managementsystemen...&lt;br /&gt;
&lt;br /&gt;
== Meinen Root-Server kann ich per Web-Interface voll konfigurieren. ==&lt;br /&gt;
&lt;br /&gt;
Leider nicht: Zunächst einmal ist nur das einstellbar, was im Web-Interface vorgesehen ist. Und das ist meist nur ein Bruchteil dessen, was man einstellen können müsste. Und je tiefer ein Webinterface (Confixx oder Plesk) ins System eingreift, umso schwieriger wird es selber in die Konfiguration einzugreifen.&lt;br /&gt;
&lt;br /&gt;
== Ich mache viel Traffic, also brauche ich einen dedizierten Server. ==&lt;br /&gt;
&lt;br /&gt;
Nicht wirklich: Ein leistungsstarker Server (oder gar Cluster) kann locker mehrere Sites verkraften, die jede einzeln einen preiswerten Root-Server deutlich überlasten würden. Ob man einen dedizierten Server braucht oder nicht, hat eher mit anderen Kriterien zu tun als mit Traffic.&lt;br /&gt;
&lt;br /&gt;
== Auf meinem Root-Server bin ich alleine, also ist der auch sicher. ==&lt;br /&gt;
&lt;br /&gt;
Leider nein: Für einen sicheren Server ist tägliche Verfolgung diverser Security-Mailinglisten notwendig. Es ist zu überprüfen, ob die jeweiligen Security-Probleme einen betreffen oder nicht und ggf. sind Updates einzuspielen. Web-Interfacs helfen hier kaum.&lt;br /&gt;
&lt;br /&gt;
== Für meinen Root-Server bin ich ganz alleine zuständig, das finde ich toll, ich brauche keine Partner. ==&lt;br /&gt;
&lt;br /&gt;
Nicht wirklich: Willst du 365 Tage a 24 Stunden in Bereitschaft stehen? Was ist wenn du in den Urlaub fahren willst, krank bist oder nach einem mehrstündigen Notfalleinsatz am Server einfach schlafen musst? Wer betreut dann sicher deinen Root-Server? Keiner!&lt;br /&gt;
&lt;br /&gt;
== Ich brauche unbedingt einen Root-Server für meine Anwendungen. ==&lt;br /&gt;
&lt;br /&gt;
Vermutlich nicht: Für die wenigsten Anwendungen benötigt man wirklich einen eigenen Root-Server. Durch eine eigenen virtuellen Webserver (mit eigener Konfiguration) auf eieiner gemanagdten Plattform kannst du sehr viele Dinge machen, die du auch auf einem Root-Server machen kannst. Ähnliches gilt auch für andere Dienste, wenn der Plattform-Provider nur flexibel genug ist.&lt;br /&gt;
&lt;br /&gt;
== Die meisten Dinge über Server-Administration kenne ich, den Rest besorge ich mir im Internet ==&lt;br /&gt;
&lt;br /&gt;
Vermutlich funktioniert das nicht: Davon abgesehen, dass man manchmal sehr spezielle Dinge wissen muss, deren Recherche im Internet leicht mehrere Tage dauern kann, übersieht man leicht all die Dinge, nach denen man gar nicht erst fragt, weil man nicht dran denkt. In einer Gemeinschaft kommt man schneller an die gewünschte Information, weil jeder motiviert ist, und es passen auch viele auf, dass man nichts übersieht.&lt;br /&gt;
&lt;br /&gt;
== Schlusswort ==&lt;br /&gt;
&lt;br /&gt;
Sicherlich gibt es Anwendungen, für die ein eigener Root-Server notwendig ist. Für die allermeisten Anwendungen ist ein gemanagedter Server die bessere Alternative, jedenfalls wenn das Hosting-Projekt nicht just for fun gemacht wird.&lt;br /&gt;
&lt;br /&gt;
Die Überlegungen gelten übrigens gleichermaßen für physikalische dedizierte Systeme wie auch für Cloud-Anbieter, bei denen man Ressourcen wie Disk, CPU, RAM und Traffic mieten kann.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich gilt: Hardware ist günstig - die laufenden Kosten werden durch Personal- bzw. Arbeitseinsatz hochqualifizierter Kräfte bestimmt. Es empfiehlt sich daher oftmals, möglichst viele Komponenten professionell gemanagedt zu beziehen.&lt;br /&gt;
&lt;br /&gt;
Für viele unserer Mitglieder, auch für Mitglieder das Admin-Teams, wäre bei oberflächlicher Betrachtung ein dedizierter Root-Server finanziell günstiger. Es spricht sicher für sich, dass gerade Leute mit Know-How dennoch die Stärke der Gemeinschaft (und die Aufteilung der Bereitschaftszeiten) bevorzugen.&lt;br /&gt;
&lt;br /&gt;
Wer sich doch einen eigenen Root-Server anschaffen möchte, sollte diese [[Rootserver_Checkliste|Check-Liste]] beachten.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Rootserver_Checkliste&amp;diff=4100</id>
		<title>Rootserver Checkliste</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Rootserver_Checkliste&amp;diff=4100"/>
		<updated>2016-04-22T10:30:22Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wenn es denn unbedingt ein dedizierter Root-Server sein muss, empfehlen wir, die folgende Checkliste zu beachten: &lt;br /&gt;
&lt;br /&gt;
# Woher und wie schnell kommt im Falle eines Unfalls ggf. neue Hardware her? Steht ggf. ein Standby-System zur Verfügung?&lt;br /&gt;
# Wie schnell und von wem kann das System nach einen Unfall wieder komplett neu installiert werden?&lt;br /&gt;
# Wie und vor allem wohin wird das Backup gemacht? (Bitte dabei auch beachten, dass der DSL Upstream bschränkt ist und daher für ein Restore i.d.R. nicht in Frage kommt.&lt;br /&gt;
# Die Daten welchen Zeitraumes dürfen verloren gehen (Zeitraum zwischen zwei Backups)?&lt;br /&gt;
# Wer administriert das System und kann auch ohne Web-Interfaces (Confixx, Plesk etc.) mit sämtlichen Diensten umgehen? Web-Interfaces helfen immer nur für das Tagesgeschäft, im Notfall fast nie.&lt;br /&gt;
# Wie werden die auf dem Server laufenden Dienste überwacht, wer wird bei Ausfall benachrichtigt? Insbesondere: Wer macht 24h am Tag und 365 Tage im Jahr Bereitschaftsdienst?&lt;br /&gt;
# Wer kümmert sich um die Security des Systems? Wer kennt also die möglichen Probleme, beobachtet täglich Security-Mailingliste und testet und spielt Updates ein?&lt;br /&gt;
# Wer kann im Falle eines Systemwechsels (z.B. Upgrade) die Dienste mit kürzestmöglicher Ausfallzeit auf einem neuen Server aktivieren?&lt;br /&gt;
# Was kostet Arbeitseinsatz des Providers (z.B. Remote-Hands), falls solcher benötigt wird?&lt;br /&gt;
# Wer kann das System auf eine neuere Betriebssystem-Version upgraden, falls dies nötig wird? &lt;br /&gt;
&lt;br /&gt;
Das ist sicherlich nicht alles, was vor der Entscheidung zum Betrieb eines Root-Servers zu bedenken ist, und vermutlich gilt der eine oder andere Punkt in einzelnen Anwendungsfällen nicht. Dennoch sollte jeder dieser Punkte gründlich überlegt werden, denn es gibt doch etliche [[Missverständnisse_über_dedizierte_root-Server|Missverständnisse]] im Bezug auf Root-Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typische Fehlschlüsse?&lt;br /&gt;
&lt;br /&gt;
* Einen Root-Server kann ich über eine Weboberfläche prima verwalten. Dafür brauche ich keine Linux-Kenntnisse.&lt;br /&gt;
&lt;br /&gt;
* Wenn mein Server einmal läuft, brauche ich mir keine Gedanken mehr zu machen. Linux ist ja sehr stabil.&lt;br /&gt;
&lt;br /&gt;
* Ich habe zuhause schon genügend experimentiert und kenne mich mit den meisten Diensten (Apache, FTP, EmailServer) aus und kann diese ohne Weboberfläche bestens über die Konsole bedienen. Der sichere Betrieb im offenem Internet wird ja wohl nicht schwieriger sein.&lt;br /&gt;
&lt;br /&gt;
* Im Vordergrund steht für mich der Kostenvorteil. Ein Root-Server ist viel billiger - ohne Folgekosten und Aufwand.&lt;br /&gt;
&lt;br /&gt;
* Ich habe immer genügend Zeit um mich in die Materie einzuarbeiten.&lt;br /&gt;
&lt;br /&gt;
* Ich brauche einen Root-Server, weil ich besondere Programme und Dienste (Chat, Gameserver, IRCServer) Laufen lassen möchte.&lt;br /&gt;
&lt;br /&gt;
* Ich habe mir genügend Strategien bzgl. Webserver-Sicherheit, Datensicherung und Wiederherstellung überlegt und durchdacht.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4050</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4050"/>
		<updated>2015-08-11T19:38:47Z</updated>

		<summary type="html">&lt;p&gt;Web: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
Hostsharing befürwortet und unterstützt den Einsatz von TLS, erzwingt ihn aber nicht. Der besseren Lesbarkeit halber wiederholen wir auch nicht bei jeder Erwähnung einer Installationsoption eine Belehrung über die Risiken der Wahl.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4049</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4049"/>
		<updated>2015-08-11T19:31:43Z</updated>

		<summary type="html">&lt;p&gt;Web: /* TLS oder Nicht-TLS - beides ist möglich */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4048</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4048"/>
		<updated>2015-08-11T19:31:29Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Grundsätzliches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4047</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4047"/>
		<updated>2015-08-11T19:31:02Z</updated>

		<summary type="html">&lt;p&gt;Web: /* Beschwerdeführer droht mit Blacklisting der Anleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4046</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4046"/>
		<updated>2015-08-11T19:26:03Z</updated>

		<summary type="html">&lt;p&gt;Web: Beschwerdeführer droht mit Blacklisting der Anleitung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>Web</name></author>
	</entry>
</feed>