Managed Operations Platform

Handbuch für Anwender

Dieses Handbuch richtet sich an Anwender, welche ihre Internetprojekte bei der Hostsharing eG betreiben möchten. Es bietet einen Überblick über die Infrastruktur, eine Einführung in deren Nutzung sowie eine Beschreibung typischer Prozesse.

Unser Dank gilt allen, die zu diesem Handbuch beigetragen haben, insbesondere: Purodha Blissenbach, Christian Günter, Michael Hierweck, Peter Hormanns, Uwe Müller, Veit Schiele, Dominic Schlegel, Lars Trebing, Jan Ulrich Hasecke.

Einleitung

Hostsharing betreibt seine Cooperative Community Cloud auf Basis einer hochverfügbaren und redundant ausgelegten Cloud Infrastructure. Auf dieser Infrastruktur baut die Managed Operations Platform auf, die den Betrieb von Webanwendungen durch zahlreiche Features unterstützt. Das Handbuch erklärt die Nutzung dieser Features.

Schematische Darstellung der Architektur und Leistungen

Die gesamte bereitgestellte Infrastruktur – von der Hardware über Netze bis zur Softwareumgebung mit ihren administrativen Tools – wird von der Hostsharing eG bereitgestellt, gewartet, aktualisiert und überwacht, sodass sich die Mitglieder auf den Betrieb ihrer indviduellen Internetangebote konzentrieren können. Das Angebot wird durch Videokonferenzdienste ergänzt und durch passende Beratungs- und Unterstützungsleistungen abgerundet.

Web-Pakete

Die Mitglieder nutzen die Managed Operations Platform in Form von Web-Paketen.

Ein Web-Paket stellt einen Verbund von Benutzerkennungen, Domains, E-Mail-Adressen, Postfächern, Datenbanken und weiteren Funktionen dar, welchem Ressourcen wie Speicherplatz und Datentransfervolumen zugeordnet sind.

Ein Web-Paket ermöglicht die Nutzung von:

  • Web-Anwendungen
  • Daemons
  • E-Mail-Infrastruktur
  • Domains und Subdomains
  • TLS-Verschlüsselung
  • Datenbanken
  • verschiedenen Programmiersprachen

Web-Pakete eignen sich zum Betrieb eines oder mehrerer Internetangebote. Jedes Mitglied kann beliebig viele Web-Pakete bestellen und verwalten.

Ein Web-Paket kann einzeln als Managed Webspace gebucht werden. Auf einem Managed Server können ein oder mehrere Web-Pakete betrieben werden.

Managed Webspace

Mit der Buchung eines Managed Webspace erhält das Mitglied ein Webpaket, welches auf einem Server untergebracht ist, dessen Ressourcen sich die Mitglieder teilen (Shared Hosting). Mitglieder können mehrere Managed Webspaces buchen und erhalten mit jeder Buchung ein weiteres Web-Paket.

Mit der Buchung von Managed Webspace erhält das Mitglied Speicherplatz zugewiesen, ein Traffic-Kontingent und ein Kontingent von Benutzerkonten, Datenbanken und E-Mail-Adressen. Diese Ressourcen sind modular zubuchbar. CPU und RAM werden gemeinsam genutzt.

Managed Server

Mit der Buchung eines Managed Servers erhält das Mitglied Speicherplatz, CPU und RAM dediziert zugewiesen sowie ein Traffic-Kontingent. Diese Ressourcen sind modular zubuchbar. Das Mitglied kann beliebig viele Benutzerkonten, Datenbanken und E-Mail-Adressen einrichten und sie in Form von Web-Paketen mandantenfähig gruppieren. Um einen Managed Server nutzen zu können, werden also auf diesem wenigstens ein, bei Bedarf auch mehrere Web-Pakete eingerichtet.

Verschiedene Managed Server eines Mitglieds können auf Wunsch über interne Netze miteinander verbunden werden, um sichere Kommunikation zwischen Komponenten eines verteilten Deployments zu realisieren.

Mehrere Mitglieder können sich einen Managed Server teilen. Ein Reselling an Endkunden ist möglich.

Best Practice

Mitglieder von Hostsharing können den Aufbau ihrer Webanwendungen sehr frei gestalten, denn Hostsharing bietet ein hohes Maß an Flexibilität. Dennoch ist es sinnvoll, bei der Organisation seiner Webanwendungen bestimmte Verfahrensweisen zu beachten, die erfahrungsgemäß die Sicherheit erhöhen. Dazu gehört vor allem die Nutzung der Vorteile, die das Linux-Betriebssystem aufgrund seiner Mehrbenutzerfähigkeit bietet.

Pro Anwendung ein Benutzer

Wenn auf einem Linux-Betriebssystem zwei Anwendungen (A und B) unter verschiedenen Benutzern (xyz00-a und xyz00-b) laufen, sind sie in gewisser Hinsicht gegeneinander abgeschottet. Wenn es einem Angreifer gelingt, durch eine Sicherheitslücke in Anwendung A die Benutzerrechte von xyz00-a zu erlangen, kann er mit diesen Rechten im Heimverzeichnis von xyz00-a jeden beliebigen Schaden anrichten. Im Heimverzeichnis von xyz00-b besitzt er jedoch keine Lese- und Schreibrechte, sodass er dort auch keine Schäden verursachen kann.

Deshalb gilt es bei Hostsharing als Best Practice für jede Domain und jede Anwendung einen eigenen Benutzer anzulegen. Hostsharing hat verschiedene Benutzerrollen vorgesehen, die jeweils spezifische Aufgaben übernehmen. Die Rollen werden im Abschnitt Benutzerrollen ausführlich erklärt.

Weitere Informationsquellen

Wenn Ihnen dieses Handbuch nicht weiterhilft, können Sie die folgenden Informationsquellen nutzen.

Das Hostsharing Wiki

Das Hostsharing Wiki wird von den Mitgliedern der Hostsharing eG gepflegt. Es enthält vor allem Installationsanleitungen für die diversen Webanwendungen, die unsere Mitglieder auf der Managed Operations Platform betreiben.

Die Support-Mailingliste

Die Mitglieder der Hostsharing eG helfen sich gegenseitig auf der Support-Mailingliste. Sie müssen die Mailingliste abonnieren, um Fragen zu stellen. Werfen Sie einen Blick in das Mailinglisten-Archiv, bevor Sie Ihre Frage stellen. Unter Umständen wurde sie schon beantwortet.

Der Hostsharing-Service

Falls Sie ein besonderes Problem mit Ihrem Web-Paket haben, können Sie per E-Mail den Hostsharing-Service direkt fragen. In dringenden Fällen können Sie den Service auch telefonisch unter der Nummer +49 40 2093313-11 erreichen.

Einführung in HSAdmin

Für einen erfolgreichen Start mit Hostsharing wird hier schrittweise gezeigt, wie ein Benutzer eine Domain mit E-Mail-Adresse und eine Datenbank in einem neuen Web-Paket angelegt wird. Die Einrichtung erfolgt mit dem Webfrontend von HSAdmin. Freunde der Konsole können alle Schritte mit der CLI-Variante hsscript erledigen.

Rundgang durch HSAdmin

Erstes Einloggen und Änderung des Passworts

Wir gehen im Folgenden davon aus, dass der Service für Sie ein Web-Paket eingerichtet hat und Sie per E-Mail die Zugangsdaten bekommen haben. In der Regel wird der Service Ihnen den Benutzernamen des Paket-Admin zusenden. Sie erkennen dies daran, dass der Benutzername sich aus der Mitgliederkennung und einer Zahl zusammensetzt. In unserem Beispiel ist das xyz00.

Sie werden auf der Hostsharing-Plattform mit verschiedenen Benutzernamen arbeiten, von denen einige genau definierte Rollen auf der Plattform ausüben. Ausführlich werden die Benutzerrollen im Abschnitt Benutzerrollen beschrieben.

Änderung des Passworts

Zunächst sollten Sie das Passwort, das Sie vom Service erhalten haben, ändern. Rufen Sie in Ihrem Browser https://admin.hostsharing.net auf, um sich in HSAdmin einzuloggen (siehe Abbildung Das Login-Fenster von HSADmin).

Das Login-Fenster von HSAdmin

Loggen Sie sich mit den Zugangsdaten ein, die Sie vom Service erhalten haben.

Nach dem Einloggen werden Sie zum Startbildschirm von HSAdmin weitergeleitet (vgl. Abb. Der Startbildschirm von HSAdmin nach dem Einloggen als Paket-Admin. dargestellten weitergeleitet.

Der Startbildschirm von HSAdmin nach dem Einloggen als Paket-Admin.

In HSAdmin gibt es zwei Bereiche zwischen denen Sie hin- und hernavigieren können:

Web-Paket

Hinter diesem Menü finden Sie alle Ihre Web-Pakete. In unserem Beispiel ist dies nur ein Web-Paket mit dem Namen xyz00. In diesem Menü können Sie Benutzer, Domains, Datenbanken und Datenbank-Benutzer anlegen sowie E-Mail-Aliase vergeben.

Domain

Unter diesem Menü verwalten Sie die E-Mail-Adressen in Ihren Domains. Eventuell ist hier bereits eine Beispiel-Domain eingerichtet.

Rechts oben sehen Sie einen Link mit der Bezeichnung xyz00. Dies ist der Benutzername, mit dem Sie sich eingeloggt haben. Nach einem Klick auf den Link öffnet sich das Bearbeitungsmenü für den Benutzer (siehe Abb. Dialog zum Ändern des Passworts).

Dialog zum Ändern des Passworts

Geben Sie ein neues Passwort ein und bestätigen Sie die Änderung mit einem Klick auf OK.

Einloggen mit dem Mitglieds-Account

Eventuell hat Ihnen der Service auch die Zugangsdaten für einen Benutzernamen mitgeteilt hat, der nur aus drei Buchstaben besteht. Es handelt sich dabei um Ihren Mitglieds-Account. Ändern Sie auch in diesem Fall sofort das Passwort, indem Sie sich mit diesem Benutzer einloggen, auf die Benutzerkennung rechts oben klicken und wie im letzten Abschnitt beschrieben ein neues Passwort eingeben.

Der Begrüßungsbildschirm von HSAdmin, wenn Sie als Mitglied eingeloggt sind.

Wenn Sie als Mitglied eingeloggt sind, ist das linke Navigationsmenü um einen Eintrag erweitert:

Kunde/Mitglied

In diesem Menü finden Sie Ihre Mitgliedsdaten. Sie können hier zum Beispiel Ihre Anschrift oder Kontoverbindung ändern.

Wenn Sie als Mitglied eingeloggt sind, können Sie auch das Passwort des Paket-Admin verändern. Gehen Sie dazu in den Bereich Web-Paket, wählen Sie Ihr Web-Paket aus und gehen Sie im rechten Feld in das Menü Benutzer/Postfach. Wählen Sie dort den Paket-Admin xyz00 aus.

Der ausgewählte Paket-Admin ist farbig hinterlegt.

Klicken Sie in der Symbolleiste auf das Bearbeitungssymbol. Es öffnet sich ein Menü, in dem Sie ein neues Passwort eingeben können.

Das Menü zur Bearbeitung eines Benutzers.

Bestätigung mit dem OK-Button.

Domain-Benutzer anlegen

Bevor wir eine Domain aufschalten, müssen wir einen Benutzer mit der Rolle Domain-Admin anlegen. Rufen Sie dazu das Webfrontend von HSAdmin über den Link https://admin.hostsharing.net auf und loggen Sie sich mit der Benutzerkennung des Paket-Admin ein. In unserem Beispiel ist das xyz00.

Gehen Sie in den Bereich Web-Paket und dort in das Menü Benutzer/Postfach. Klicken Sie nun auf das Plus-Symbol Neuen Eintrag anlegen. Es öffnet sich das Menü zum Anlegen eines neuen Benutzers (siehe Abbildung Das Menü zum Anlegen eines neuen Benutzers).

Das Menü zum Anlegen eines neuen Benutzers.

Die Felder für den Benutzer und das Passwort sind rot umrandet. Das zeigt an, dass Sie diese Felder bearbeiten müssen. Das Kürzel für den Paket-Admin ist bereits eingetragen. Sie müssen lediglich nach dem Bindestrich eine Bezeichnung eingeben, die Ihnen sinnvoll erscheint. Während das Kürzel am Anfang (z.B. xyz00) zwingend vorgegeben ist, können Sie die Bezeichnung dahinter frei wählen. Denken Sie an den Zweck des Benutzers. Er verwaltet eine oder mehrere Domains. Wenn Sie in Ihrem Web-Paket nur eine Domain verwalten wollen, können Sie den Benutzer zum Beispiel xyz00-domain nennen. Wenn der Benutzer mehrere Domains verwalten soll, kann sein Name zur verständlichen Kennzeichung xyz00-doms lauten. Und wenn Sie mehrere Domains mit unterschiedlichen Domain-Admins in einem Paket verwalten wollen, können Sie in den Namen auch die jeweilige Domain einfügen, wie zum Beispiel xyz00-hs_example.de. Wir empfehlen aus Sicherheitsgründen für jede Domain einen eigenen Domain-Admin anzulegen. Im Abschnitt HSADmin über Skripte steuern erfahren Sie, wie Sie mit Hilfe eines Skripts die Anlage neuer Domains und neuer Domain-Admins vereinfachen können.

Beachten Sie die Namenskonvention

Alle Benutzernamen beginnen mit dem Kürzel für das Paket, in unserem Beispiel xyz00. Ergänzungen können mit einem Bindestrich abgetrennt werden wie zum Beispiel in dem Benutzernamen für den Domain-Admin xyz00-doms. Es ist nur ein Bindestrich zulässig. Weitere gültige Trennzeichen zur Verbesserung der Lesbarkeit sind ein Punkt und der Unterstrich. Es sind also folgende Benutzernamen für Domain-Benutzer möglich: xyz00-example_de, xyz00-example.de oder xyz00-hs_example.de.

Durch die Anlage eines Domain-Admins erzeugen Sie einen Unix-Benutzer mit einer eigenen Verzeichnisstruktur in Ihrem Webpaket. Die Arbeit mit verschiedenen Benutzern dient der Sicherheit. Falls durch eine Sicherheitslücke in einer Website jemand Zugang zum Verzeichnis des Domain-Admins erhält, kann er nur dort Schaden anrichten und nicht im gesamten Web-Paket, das von dem Paket-Admin verwaltet wird. Lesen Sie mehr dazu im Abschnitt Benutzerrollen.

Es ist möglich einem Domain-Admin mehrere Domains zuzuordnen. Die Ordner und Dateien für jede einzelne Domain befinden sich dann alle im Heimverzeichnis des Domain-Admins im Ordner /doms. Dieses Vorgehen, das der leichteren Übersicht dient, reduziert die Sicherheit, da mehrere Domains mit einem Unix-Benutzer betrieben werden. Wenn Sie unsicher sind, welches Vorgehen Sie bei der Organisation Ihrer Websites nutzen sollen, fragen Sie den Service.

In Abb. Das ausgefüllte Formular zur Anlage eines Benutzers. sehen Sie ein Beispiel mit dem Benutzernamen xyz00-doms.

Das ausgefüllte Formular zur Anlage eines Benutzers.

Bei der Anlage eines Benutzers müssen Sie folgendes berücksichtigen:

Benutzer/Postfach

Der Benutzername muss immer mit dem Kürzel des Paket-Admins beginnen. Wenn Sie als Paket-Admin in HSAdmin eingeloggt sind, ist das Kürzel schon im Formular eingetragen.

Passwort

HSAdmin erzwingt ein Passwort mit einer Mindestlänge von 6 Zeichen. Es muss aus Kleinbuchstaben, Großbuchstaben, Ziffern und Sonderzeichen bestehen, wobei Zeichen aus mindestens drei dieser Gruppen verwendet werden müssen.

Kurzbeschreibung

In der Kurzbeschreibung können Sie Informationen vermerken, die Ihnen helfen, den Benutzer zuzuordnen.

Shell-/Kommando-Interpreter

Domain-Admins benötigen eine Shell. Wählen Sie deshalb zum Beispiel /bin/bash aus.

Quota (Soft-Limit)

Hiermit können Sie dem Benutzer und seinen Daten ein Festplatten-Quota zuteilen. Man unterscheidet das Soft- und das Hard-Limit. Lesen Sie mehr dazu im Abschnitt Speicherbelegung. Wenn Sie nichts eintragen, wird kein gesondertes Quota für den Benutzer gesetzt. Lassen Sie die beiden Felder im Zweifelsfall leer.

Quota (Hard-Limit)

Das Hard-Limit des Quota.

Bestätigen Sie die Anlage mit OK.

Nach der Anlage erscheint der neue Benutzer in der Liste des Menüs Benutzer/Postfach.

Der neue Domain-Admin ist angelegt.

Legen Sie für jede Domain einen gesonderten Domain-Admin an. Nutzen Sie dabei zum Beispiel das Namensschema xyz00-hs_example.de.

Domain anlegen und bestellen

Eine Domain wird in zwei Schritten angelegt:

  1. Die Domain im Web-Paket aufschalten
  2. Die Domain im Domainbestellsystem bestellen

Aus technischen Gründen ist es sinnvoll, diese Reihenfolge einzuhalten. Die automatische Konnektierung einer neu bestellten Domain erfolgt nur, wenn sie in HSAdmin bereits angelegt ist.

Domain in HSAdmin anlegen

Melden Sie sich in HSAdmin als Paket-Admin (im Beispiel: xyz00) an. Wechseln Sie in den Bereich Web-Paket, wählen Sie Ihr Web-Paket aus und öffnen Sie das Menü Domain. Die Liste (siehe Abb. Das leere Menü mit den Domains ist leer, da noch keine Domain angelegt wurde.

Das leere Menü mit den Domains.

Klicken Sie auf das Plus-Symbol Neuen Eintrag anlegen. Es öffnet sich das Menü zum Aufschalten einer Domain (siehe Abb. Das Menü zur Aufschaltung einer Domain).

Das Menü zur Aufschaltung einer Domain bei Hostsharing.

Tragen Sie hier den Namen der Domain ein, die Sie anlegen wollen und wählen Sie den Domain-Admin aus, in dessen Benutzerverzeichnis die Verzeichnisse der Domain angelegt werden sollen.

In diesem Menü ist der Benutzer, mit dem Sie sich eingeloggt haben, vorausgewählt. Wenn dies der Paket-Admin (z.B. xyz00) ist, wählen Sie den gewünschten Domain-Admin aus.

Bestätigen Sie die Eingaben mit OK.

Damit ist die Domain in dem Web-Paket xyz00 technisch angelegt. Sie erscheint in der Liste im Menü Domain (siehe Abb. Die neu angelegte Domain erscheint in der Liste).

Die neu angelegte Domain erscheint in der Liste.

Wenn Sie die Domain auswählen und das Editier-Symbol Ausgewählten Eintrag bearbeiten anklicken, können Sie die eben erstellte Domain bearbeiten (siehe Abb. Das Bearbeitungsmenü einer Domain).

Das Bearbeitungsmenü einer Domain.

Das Menü zeigt den Domainnamen, den Domain-Admin, das Erstellungsdatum, die Domain-Optionen (siehe Abschnitt Domain-Optionen und die gültigen Subdomains (siehe Abschnitt Subdomains. Ändern Sie hier zunächst nichts.

Wenn Sie im Feld gültige Subdomains ein * als Wildcard eintragen, können Sie sehr einfach leichtgewichtige Subdomains erzeugen. Was innerhalb von HSAdmin als leichtgewichtige Subdomain bezeichnet wird, erfahren Sie im Abschnitt Subdomains.

Domain im Domainbestellsystem bestellen

Anschließend kann die Domain hs-example.de unter dem Link https://www.domain-bestellsystem.de bestellt werden. Die Login-Daten dafür wurden Ihnen auf einem separatem Weg mitgeteilt.

Domain löschen

Beim Löschen einer Domain gehen Sie am besten folgendermaßen vor.

  1. Die Domain im Domainbestellsystem löschen
  2. Die Domain in HSAdmin löschen

Es ist die umgekehrte Reihenfolge wie bei der Bestellung einer Domain.

Wenn Sie eine Domain an einen anderen Domainverwalter übertragen wollen, müssen Sie die Domain im Domainbestellsystem in den Transfer geben. Löschen Sie die Domain in HSAdmin erst, wenn die Löschung der Domain erfolgt ist beziehungsweise wenn die Domain transferiert und bei einem anderen Hoster aufgeschaltet wurde.

Webspace einrichten

Ihre Webanwendungen – im einfachsten Fall statische HTML-Seiten – richten Sie in dem Heimverzeichnis des jeweiligen Domain-Admin ein.

Loggen Sie sich dazu mit Hilfe von ssh ein:

$ ssh xyz00-doms@xyz00.hostsharing.net

Sie erreichen alle Benutzerverzeichnisse über die Adresse des jeweiligen Pakets. In unserem Beispiel ist das xyz00.hostsharing.net. Nach dem Einloggen finden Sie die im nächsten Abschnitt beschriebene Ordnerstruktur vor.

Ordnerstruktur

Die exemplarische Struktur des Home-Verzeichnisses eines Domain-Admins sieht folgendermaßen aus:

├── doms
│   ├── hs-example.de
│   │   ├── app
│   │   ├── app-ssl
│   │   ├── cgi
│   │   ├── cgi-ssl
│   │   ├── etc
│   │   │   └── pri.hs-example.de
│   │   ├── fastcgi
│   │   │   └── phpstub
│   │   ├── fastcgi-ssl
│   │   │   └── phpstub
│   │   ├── htdocs
│   │   │   └── .htaccess
│   │   ├── htdocs-ssl
│   │   │   └── .htaccess
│   │   ├── subs
│   │   │   ├── www
│   │   │   │   └── index.html
│   │   │   └── example
│   │   ├── subs-ssl
│   │   │   └── www
│   │   │       └── index.html
│   │   └── var
│   └── domain2.tld
│       ├── app
│       └── …
├── etc
│   └── config.ini
└── Maildir
~/doms

Alle dem Domain-Admin zugewiesenen Domains liegen im Verzeichnis ~/doms.

~/doms/hs-example.de

hs-example.de die Beispiel-Domain, für die die Verzeichnisse von HSAdmin automatisch angelegt wurden.

~/doms/hs-example.de/app

Dieses Verzeichnis ist als PassengerAppRoot des Apache-Webserver-Moduls Phusion Passenger konfiguriert.

~/doms/hs-example.de/app-ssl

Auch dieses Verzeichnis ist als PassengerAppRoot des Apache-Webserver-Moduls konfiguriert. Es wird für https-Zugriffe genutzt.

~/doms/hs-example.de/cgi

Dies ist das Basisverzeichnis für CGI-Skripte. Ein Alias bildet HTTP-Requests auf http://hs-example.de/cgi-bin/ auf dieses Verzeichnisses ab.

~/doms/hs-example.de/cgi-ssl

Analog zu ~/doms/hs-example.de/cgi ist dies das Basisverzeichnis für CGI-Skripte beim Zugriff via https.

~/doms/hs-example.de/etc

Dieses Verzeichnis enthält ggf. das Zonefile, mit dem sich der Nameserver BIND konfigurieren lässt

~/doms/hs-example.de/etc/pri.hs-example.de

Mit dieser Datei können Sie eine Zonendatei für Ihre Domain selbst verwalten. Damit können zum Beispiel einzelne Subdomains auf andere Server umgeleitet oder eigene Mailserver angesprochen werden.

~/doms/hs-example.de/fastcgi

Dies ist das Basisverzeichnis für FastCGI-Skripte. Ein Alias bildet HTTP-Requests auf http://hs-example.de/fastcgi-bin/ auf dieses Verzeichnis ab.

~/doms/hs-example.de/fastcgi-ssl

Analog zu ~/doms/hs-example.de/fastcgi ist dies das Basisverzeichnis für FastCGI-Skripte bei https-Zugriffen. Ein Alias bildet HTTP-Requests auf https://hs-example.de/fastcgi-bin/ auf dieses Verzeichnis ab.

~/doms/hs-example.de/htdocs

Dieses Verzeichnis ist als DocumentRoot des Apache Webserver konfiguriert. Es dient auch zur Aufnahme statischer Inhalte im Zusammenhang mit der Nutzung von Phusion Passenger zur Auslieferung der statischen Dateien.

~/doms/hs-example.de/htdocs/.htaccess

In der Standardkonfiguration enthält diese Datei die Weiterleitung auf die www-Subdomain:

Redirect permanent / http://www.hs-example.de/

Die verwendeten Regeln werden auf alle Subdomains von hs-example.de angewendet. In der .htaccess können

  • eigene Fehlerseiten definiert,
  • MIME-Typen zugewiesen,
  • Passwortschutz eingerichtet,
  • Weiterleitungen durchgeführt werden.
~/doms/hs-example.de/htdocs-ssl

Analog zu ~/doms/hs-example.de/htdocs ist dieses Verzeichnis als DocumentRoot des Apache Webserver für Zugriffe via https konfiguriert.

~/doms/hs-example.de/subs

Dieses Verzeichnis enthält alle Subdomains. Hier findet sich auch die Subdomain www.hs-example.de.

~/doms/hs-example.de/subs/example

Dies ist ein Beispiel für eine Subdomain, die Sie einfach selbst anlegen können. Sie müssen hierzu nur im Verzeichnis subs ein Verzeichnis mit dem Namen der gewünschten Subdomain anlegen und anschließend die Dateien in das Verzeichnis übertragen.

~/doms/hs-example.de/subs/www

Dieses Verzeichnis wird automatisch angelegt und üblicherweise vom Webserver angesprochen, wenn keine Subdomain explizit genannt wird. Die Adresse http://hs-example.de verweist üblicherweise auf http://www.hs-example.de.

~/doms/hs-example.de/subs-ssl

Analog zu ~/doms/hs-example.de/subs enthält dieses Verzeichnis alle Subdomains auf die via https zugegriffen wird.

~/doms/hs-example.de/var

In diesem Verzeichnis werden in der Nacht die Log-Dateien mit den Zugriffen auf die Domain in gepackter Form bereitgestellt, wenn dies in /home/pacs/xyz00/etc/config.ini entsprechend angegeben ist.

Zugangsdaten und Einstellungen

Sie können Dateien mit einem FTP-Programm wie FileZilla, WinSCP oder scp in das Web-Paket kopieren. Sie benötigen dazu die gleichen Zugangsdaten wie beim Einloggen via ssh.

Server:

xyz00.hostsharing.net

Benutzer:

xyz00-doms

Passwort:

PASSWORT

Eingabe der Zugangsdaten in Filezilla.

Wechseln Sie in den Ordner ~/doms/hs-example.de/subs/www, um zum Beispiel statische Webseiten hochzuladen.

Wechsel in das Verzeichnis www.

Auf der Kommandozeile geben Sie folgende Befehle ein:

$ cd ~/website-dateien
$ scp -r . xyz00-doms@xyz00.hostsharing.net:/doms/hs-example.de/subs-ssl/www

Die Dateien in dem lokalen Ordner website-dateien werden dadurch rekursiv in das Verzeichnis ~/doms/hs-example.de/subs-ssl/www des Domain-Admin kopiert.

Hochladen des SSH-Keys

Sie können sich ohne Eingabe eines Passworts als Domain-Admin einloggen, wenn Sie Ihren öffentlichen SSH-Key in das Benutzerverzeichnis des Domain-Admins hochladen.

Wenn Sie noch keinen SSH-Key haben, können Sie ihn unter Mac OS X und Linux mit diesem Befehl in Ihrem Heimverzeichnis erzeugen:

$ ssh-keygen -b 4096 

Der Befehl gibt eine Reihe von Meldungen aus. So werden Sie beispielsweise aufgefordert eine Passphrase einzugeben. Dies ist das Passwort, mit dem Sie Ihren SSH-Schlüssel beim Einsatz entsperren. Wählen Sie eine Phrase, die Sie sich gut merken können, da Sie sie häufig benötigen werden. Zur Sicherheit müssen Sie die Passphrase zweimal eingeben. Anschließend informiert Sie das Programm, dass Ihr geheimer Schlüssel in der Datei ~/.ssh/id_rsa und ihr öffentlicher Schlüssel in der Datei ~/.ssh/id_rsa.pub gespeichert wurden.

Nach der Erzeugung des Schlüssels können Sie sich das neue Verzeichnis anschauen.

$ ls .ssh/
id_rsa  id_rsa.pub 

Nun können Sie Ihren öffentlichen Schlüssel in das Heimverzeichnis des Domain-Admin kopieren. Unter Linux und anderen Unix-Systemen geht dies mit dem Befehl ssh-copy-id:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub xyz00-doms@xyz00.hostsharing.net

Um unter Windows einen SSH-Key zu erzeugen und hochzuladen, können Sie das Programm PuTTY nutzen.

E-Mail einrichten

In diesem Kapitel werden zwei E-Mail-Adressen für eine neue Domain angelegt:

  • Die erste E-Mail-Adresse wird einem Postfach im Webpaket zugeordnet
  • Die zweite E-Mail-Adresse wird einer externen E-Mail-Adresse zugeordnet.

E-Mail-Adresse für Postfach im Webpaket

Wir werden zunächst ein neues Postfach für Peter Mustermann anlegen und dieses Postfach danach einer neu eingerichteten E-Mail-Adresse zuordnen.

Neuen E-Mail-Benutzer anlegen

Melden Sie sich als Paket-Admin (in unserem Beispiel xyz00) bei HSAdmin an. Klicken Sie auf das Webpaket, in dem Sie einen neuen E-Mail-Benutzer anlegen möchten, in unserem Beispiel ist das xyz00, und gehen Sie dann in den Bereich Benutzer/Postfach. Klicken Sie auf das Plussymbol für Neuen Eintrag anlegen.

Tragen Sie anschließend die Zugangsdaten des neuen E-Mail-Benutzers ein. In Abb. Die Angaben für ein neues Postfach lautet der Benutzernamen xyz00-mail_pm.

Die Angaben für ein neues Postfach.

E-Mail-Benutzer bekommen keine Shell zugeordnet. Stattdessen wird beim Einloggen das Programm /usr/bin/passwd gestartet. Speichern Sie den neuen Eintrag mit OK. Das neue Konto erscheint nun in der Liste der Benutzer.

Das Postfach für Peter Mustermann erscheint in der Liste.

Neues Postfach einer neuen E-Mail-Adresse zuordnen

Wir werden nun für Peter Mustermann eine neue E-Mail-Adresse anlegen und das neue Postfach dieser Adresse zuordnen.

Melden Sie sich als Paket-Admin (in unserem Beispiel xyz00) bei HSAdmin an. Gehen Sie nach dem Einloggen in den Bereich Domain, in dem Ihre Domains aufgeführt sind.

Wählen Sie die Domain aus, für die Sie eine E-Mail-Adresse einrichten wollen. Im Hauptfenster werden die wesentlichen Informationen zur ausgewählten Domain angezeigt (siehe Abb. Die Informationen zur Domain).

Die Informationen zur Domain werden angezeigt

Klicken Sie auf das Menü E-Mail-Adresse, damit die E-Mail-Adressen angezeigt werden, die bereits für die Domain eingerichtet wurden (siehe Abb. Bereits angelegte E-Mail-Adressen).

Die bereits angelegten E-Mail-Adressen.

Drei E-Mail-Adressen werden automatisch angelegt, wenn Sie eine Domain eingerichtet haben:

abuse

Das ist die Adresse, an die Meldungen bei missbräuchlicher Verwendung der Domain versendet werden. Die vollständige Adresse lautet in unserem Beispiel

postmaster

Das ist die Adresse derjenigen Person, die für die E-Mail-Postfächer und das E-Mail-System der Domain verantwortlich ist.

webmaster

Das ist die Adresse des Webmasters, der für die Webauftritte unter der Domain technisch verantwortlich ist.

Alle E-Mails an diese Adressen werden in der Voreinstellung an das Postfach des zuständigen Domain-Admin ausgeliefert.

Klicken Sie nun auf das +-Symbol, damit sich das Menü zum Anlegen einer neuen E-Mail-Adresse öffnet.

Anlegen einer E-Mail-Adresse mit Postfach

Die Felder im Einzelnen:

lokaler Teil

der Teil der E-Mail-Adresse vor dem @-Zeichen, in unserem Beispiel pm.

Subdomain

bleibt hier leer, da eine E-Mail-Adresse für die Hauptdomain angelegt wird.

Domain

Hier erscheint die Domain, für die die Adresse eingerichtet wird. In unserem Fall: hs-example.de

Postfach/Weiterleitung

In den Auswahlmenüs können Sie E-Mail-Adresse oder Postfach auswählen. Im Beispiel leiten wir die E-Mails an das Postfach des Domain-Admin xyz00-mail_pm

Bestätigen mit dem Button OK.

Die neue E-Mail-Adresse wird nun in der Liste aufgeführt.

Die neue E-Mail-Adresse ist angelegt und erscheint in der Liste

Peter Mustermann ist nun unter der Adresse pm@hs-example.de erreichbar und kann die Mails mit seinem neuen E-Mail-Konto abrufen.

In Abschnitt E-Mails senden und empfangen wird beschrieben, wie Peter Mustermann seine Mails über ein Webinterface oder mit Hilfe eines E-Mail-Programms lesen kann.

E-Mail-Adresse mit Weiterleitung an externe Mail-Adresse

Um eine weitere E-Mail-Adresse anzulegen die E-Mails an eine externe E-Mail-Adresse leitet, wird in der Eingabemaske bei: Postfach/Weiterleitung: E-Mail-Adresse ausgewählt und dahinter dann die externe Mail-Adresse, hier , eingetragen.

Eingehende E-Mails sollen an eine externe E-Mail-Adresse weitergeleitet werden.

Liste der angelegten E-Mail-Adressen:

Auch die zweite neue E-Mail-Adresse erscheint in der Liste

E-Mail-Alias einrichten

Wenn Sie mehrere Domains mit jeweils einem Domain-Admin verwalten, so landen E-Mails an die zwingend vorgegebenen Systemempfänger abuse@, postmaster@ und webmaster@ in der Voreinstellung im Postfach des jeweiligen Domain-Admin. All diese Postfächer regelmäßig zu kontrollieren, ist aufwändig. Deshalb gibt es bei Hostsharing die Möglichkeit E-Mail-Aliase einzurichten. Da ein E-Mail-Alias bei der Mailzustellung bevorzugt behandelt wird, können Sie unter dem Namen der Domain-Admins ein E-Mail-Alias einrichten und zum Beispiel an das Postfach des Paket-Admins weiterleiten oder die E-Mail-Adresse des Verantwortlichen.

Rufen Sie dazu HSAdmin unter https://admin.hostsharing.net auf und gehen Sie in den Bereich Web-Paket. Wählen Sie das entsprechende Web-Paket aus und öffnen Sie den Reiter E-Mail-Alias (siehe Abb. Der Reiter E-Mail-Alias in HSAdmin).

Der Reiter E-Mail-Alias in HSAdmin

Klicken Sie auf das Pluszeichen, um ein neues E-Mail-Alias hinzuzufügen. Es öffnet sich das in Abb. Das Formular zum Hinzufügen eines neuen Alias gezeigte Formular. Das Kürzel für das Web-Paket ist bereits in das Formularfeld eingetragen.

Das Formular zum Hinzufügen eines neuen Alias. Das Paketkürzel ist bereits eingetragen.

Sie können eine E-Mail-Adresse angeben (siehe Abb. Umleitung an eine E-Mail-Adresse).

Umleitung an eine E-Mail-Adresse

Sie können aber auch das Postfach eines anderen Benutzers eintragen; in Abb. Umleitung an ein Postfach beispielsweise das Postfach des Paket-Admins. Das Formularfeld bietet Ihnen alle verfügbaren Postfächer zur Auswahl an.

Umleitung an ein Postfach

Und zu guter Letzt können Sie auch an ein anderes E-Mail-Alias umleiten. Bestätigen Sie Ihre Eingabe mit OK. Das neue Alias erscheint anschließend in der Liste (siehe Abb. Die Alias-Liste).

Die Alias-Liste

Gehen Sie beim Anlegen von E-Mail-Aliases systematisch vor, damit Sie in komplexen Situationen nicht den Überblick verlieren. Leiten Sie E-Mails an Domain-Admins beispielsweise immer an den Paket-Admin weiter oder an denjenigen, der für die Domain verantwortlich ist. Das System ist sehr flexibel, sodass Sie die Verantwortlichkeiten gut abbilden können und auch für spezielle Wünsche Ihrer Benutzer immer eine gute Lösung finden.

Nutzen Sie E-Mail-Aliases möglichst nicht, um E-Mails, die an eine Funktionsadresse wie sekretariat@ oder vertriebsteam@ geht, an einzelne Benutzer weiterzuleiten. In diesem Fall ist es übersichtlicher, wenn Sie bei der Einrichtung der E-Mail-Adresse gleich mehrere Postfächer als Ziel angeben. Alternativ können Sie auch einen Benutzer einrichten (zum Beispiel für das Sekretariat xyz00-sek) und im Heimverzeichnis des Benutzers eine .forward-Datei pflegen, die die E-Mail-Adresse aller Empfänger enthält.

Datenbank einrichten

Wenn Sie für eine Webanwendung eine MySQL- oder PostgreSQL-Datenbank benötigen, können Sie die Datenbank und den Datenbanknutzer in HSAdmin anlegen.

Aus Lizenzgründen pflegt Hostsharing die von MySQL abgespaltene Open-Source-Datenbank MariaDB. Das Benutzer-Interface von HSAdmin spricht noch von MySQL. Der Einfachheit halber sprechen wir in dieser Anleitung deshalb noch von MySQL.

Beim Anlegen einer Datenbank ist die Reihenfolge entscheidend:

  1. Zunächst den Datenbanknutzer anlegen, den Verwalter der jeweiligen Datenbank
  2. die Datenbank anlegen.

Datenbanknutzer anlegen

Melden Sie sich mit dem Paket-Admin (xyz00) bei HSAdmin unter https://admin.hostsharing.net an und gehen Sie in den Bereich Web-Paket.

Klicken Sie das Menü MySQL-Benutzer an. Es wird die Liste der MySQL-Benutzer angezeigt (siehe Abb. Das Menü MySQL-Benutzer). Es ist leer.

Das Menü MySQL-Benutzer mit der leeren Liste der Datenbanknutzer.

Klicken Sie auf das Plus-Icon Neuen Eintrag anlegen. Es erscheint folgende Eingabemaske:

Das Menü zum Anlegen eines Datenbanknutzers.

Die Felder werden wie folgt ausgefüllt:

MySQL-Benutzer:

xyz00_dbuser

Passwort:

****

Merken Sie sich den Benutzernamen und das Passwort, da Sie beides bei der Konfiguration Ihrer Webanwendung benötigen.

Mit dem Button OK wird der Eintrag gespeichert.

Der neue Datenbanknutzer erscheint nun in der Liste des Menüs MySQL-Benutzer.

Der neu angelegte Datenbanknutzer erscheint in der Liste.

Beachten Sie, dass der Name eines Datenbankbenutzers immer mit dem Paketnamen (in unserem Beispiel xyz00) gefolgt von einem Unterstrich beginnen muss. Es darf kein Minuszeichen nach dem Paketnamen benutzt werden. Zusammen mit den Zeichen danach darf der Name des Datenbankbenutzers höchstens 16 Zeichen lang sein, zum Beispiel xyz00_wordpress (15 Zeichen).

Datenbank anlegen

Nun können Sie die Datenbank für Ihre Webanwendung anlegen. Gehen Sie in das Menü MySQL-Datenbank. Die Liste der Datenbanken ist noch leer. Klicken Sie auf das Plus-Icon Neuen Eintrag anlegen.

Es öffnet sich das Menü zum Anlegen einer Datenbank.

Das Menü zum Anlegen einer Datenbank.

Die Felder hier:

MySQL-Datenbank

xyz00_dbmysql

MySQL-Benutzer

xyz00_dbuser

Zeichenkodierung

UTF8

Mit dem Button OK wird der Eintrag gespeichert. Die neue Datenbank erscheint in der Liste der Datenbanken.

Beachten Sie, dass der Name einer Datenbank immer mit dem Paketnamen (in unserem Beispiel xyz00) gefolgt von einem Unterstrich beginnen muss. Es darf kein Minuszeichen nach dem Paketnamen benutzt werden. Zusammen mit den Zeichen danach darf der Name der Datenbank höchstens 16 Zeichen lang sein, zum Beispiel xyz00_wpressdb (14 Zeichen).

Die neue Datenbank erscheint in der Liste.

E-Mails senden und empfangen

Wenn Sie bei Hostsharing ein E-Mail-Postfach haben, können Sie auf die Mailfunktionen entweder mit einem E-Mail-Programm wie Thunderbird zugreifen oder Sie lesen, schreiben und verwalten Ihre E-Mails im Webbrowser über das Webmail-Interface von Hostsharing. Wie Sie dabei jeweils vorgehen, wird in den folgenden beiden Abschnitten erklärt.

Wir benutzen dabei die folgenden Zugangsdaten.

  • E-Mail-Adresse:
  • Benutzername: xyz00-mail_pm
  • Passwort: ****
  • IMAP-Server: xyz00.hostsharing.net
  • SMTP-Server: xyz00.hostsharing.net
E-Mail-Adresse:

Das Anlegen einer E-Mail-Adresse und die Zuweisung zu einem Postfach wird im Abschnitt Postfach anlegen beschrieben.

Benutzername:

Das Anlegen eines E-Mail-Benutzers wird ebenfalls im Abschnitt Postfach anlegen erklärt.

Passwort:

Dies ist das Passwort, das dem E-Mail-Benutzer vergeben wird.

IMAP-Server:

Der Name des Mail-Eingangsservers ergibt sich aus dem Paketnamen. Es handelt sich immer um eine Subdomain der Domain hostsharing.net.

SMTP-Server:

Auch der Name des Ausgangsserver ergibt sich aus dem Paketnamen. Die Adresse ist mit der Adresse des IMAP-Servers identisch.

Webmail einrichten

Eine besonders bequeme Art, E-Mails zu lesen und zu schreiben, ist das Webinterface von Hostsharing. Hostsharing setzt dafür das Open-Source-Programm Roundcube Webmail ein. Sie benötigen zur Nutzung nur den Benutzernamen für das Postfach und das entsprechende Passwort. Geben Sie im Webbrowser die Adresse https://webmail.hostsharing.net ein. Wie in Abb. Login des Webmail-Interface gezeigt werden Sie aufgefordert Ihren Benutzernamen und Ihr Passwort einzugeben.

Login des Webmail-Interface

Wenn Sie sich das erste Mal mit dem Benutzernamen einloggen, werden Sie aufgefordert, Ihre Absenderkennung zu vervollständigen. Vorausgefüllt ist der Benutzername für das E-Mail-Konto (xyz00-mail_pm) sowie das Postfach des E-Mail-Benutzers (xyz00-mail_pm@xyz00.hostsharing.net). Beide Angaben werden Sie normalerweise so nicht nutzen wollen.

Individualisierung des Kontos

Tragen Sie deshalb hier zum Beispiel Ihren Namen und die E-Mail-Adresse ein, unter der Sie erreichbar sind. In unserem Beispiel sind dies, wie in der Abbildung Individualisierung des Kontos gezeigt, der Name ›Peter Mustermann‹ und die E-Mailadresse ›pm@hs-example.de‹

Individualisierung des Kontos

Nach der Vervollständigung steht Ihnen die Weboberfläche von Roundcube zur Verfügung.

Die Benutzeroberfläche von Webmail.

Hinweise zur Bedienung von Roundcube finden Sie im Hostsharing Wiki auf der Seite: https://wiki.hostsharing.net/index.php?title=Roundcube

Mail-Client einrichten

Hostsharing unterstützt die Auto-Konfiguration von E-Mail-Clients durch die Protokolle Autoconfig und Autodiscover. Um einen E-Mail-Client zu konfigurieren, ist daher oft nur die Eingabe der E-Mail-Adresse und des Passworts notwendig. Alles andere handelt Ihr E-Mail-Client automatisch mit der E-Mail-Infrastruktur von Hostsharing aus.

Falls dies nicht auf Anhieb funktioniert, finden Sie im Abschnitt E-Mail Auto-Konfigurationkap-ref-mailautoconfig) mögliche Ursachen. Eventuell wurde die Domain nicht so konfiguriert, dass sie die Funktion unterstützt.

Im Folgenden beschreiben wir, wie Sie in einem solchen Fall die notwendigen Informationen mit der Hand eingeben können.

E-Mails über IMAP abrufen

Um Mails mit Hilfe eines Desktop-Clients wie Thunderbird zu empfangen und um Mails zu versenden, benötigen Sie bei manueller Eingabe der Konfiguration auch die Angaben zum IMAP- und zum SMTP-Server.

Im Folgenden spielen wir das Anlegen eines neuen Kontos im Programm Thunderbird durch:

Gehen Sie in das Menü Bearbeiten --> Konto-Einstellungen, um zu den Konto-Einstellungen zu gelangen. Anschließend klicken Sie auf das Menü Konto-Aktionen --> E-Mail-Konto hinzufügen..., damit sich der in Abbildung Eingabe von E-Mail-Adresse und Passwort gezeigte Dialog zum Anlegen eines neuen E-Mail-Kontos öffnet.

Eingabe von E-Mail-Adresse und Passwort

Geben Sie dort Ihren Namen, die E-Mail-Adresse und das Passwort des E-Mail-Benutzers ein und klicken Sie auf Weiter.

Die automatisch ermittelten Zugangsdaten

Thunderbird und andere E-Mail-Clients schließen aus der E-Mail-Adresse auf die Zugangsdaten. Die ermittelten bzw. geratenen Zugangsdaten werden in Abbildung Die automatisch ermittelten Zugangsdaten angezeigt. Die automatische Konfiguration hat nur dann funktioniert, wenn als Posteingangs- und Postausgangsserver eine Adresse in der Form xyz00.hostsharing.net gefunden wurde. Wenn dies der Fall ist, können Sie auf Fertig klicken. Wenn Thunderbird einen anderen Servernamen, zum Beispiel wie in der Abbildung unter Verwendung Ihrer Domain, angibt, müssen Sie die richtigen Daten manuell eingeben.

Klicken Sie dazu auf Manuell bearbeiten, damit sich das Formular für die manuelle eingabe der Zugangsdaten öffnet.

Das Formular für die manuelle Eingabe der Zugangsdaten

Geben Sie in dieses Formular, wie in der Abbildung gezeigt, die richtigen Zugangsdaten für den IMAP-Server, den SMTP-Server und den Benutzernamen ein.

Geben Sie den Benutzernamen des E-Mail-Kontos und den richtigen Server an.

Bestätigen Sie die Eingabe mit einem Klick auf Fertig.

E-Mails über POP3 abrufen

Sie können E-Mails auch über POP3 abrufen. Benutzen Sie dazu den Port 110 für STARTTLS oder 995 für SSL/TLS. Die übrigen Zugangsdaten bleiben gleich. Folgen Sie den Anweisungen Ihrer E-Mail-Software.

Hostsharing unterstützt verschlüsselte Verbindungen über STARTTLS und SSL/TLS auf unterschiedlichen Ports. Lesen Sie dazu die Abschnitte Posteingangsserver und Postausgangsserver

E-Mail-Passwort ändern

E-Mail-Benutzer können ihr Passwort über HSAdmin und teilweise auch per SSH ändern. Falls dem E-Mail-Benutzer vom Paket-Admin als Shell das Programm /bin/false zugeteilt wurde, lässt sich das Passwort nur über HSAdmin ändern. Hat der E-Mail-Benutzer dagegen als Shell das Programm /usr/bin/passwd, so kann er sein Passwort auch per SSH ändern. Die Hintergründe werden im Abschnitt Benutzerrechte erklärt.

E-Mail-Passwort in HSAdmin ändern

Der Benutzer meldet sich mit seinem E-Mail-Benutzername in HSAdmin an. Anschließend klickt er oben rechts auf seinen Benutzernamen. Es öffnet sich ein Menü, in dem ein neues Passwort eingetragen werden kann. Die Prozedur wurde bereits im Abschnitt Erstes Einloggen und Änderung des Passworts beschrieben.

E-Mail-Passwort per SSH ändern

Der Benutzer meldet sich per SSH im Webpaket an und ändert mit dem Programm passwd sein Passwort. Falls der E-Mail-Benutzer eine interaktive Shell hat, muss er dazu das Programm eigens aufrufen. Wurde ihm jedoch lediglich das Programm /usr/bin/passwd zugewiesen, öffnet sich statt einer interaktiven Sitzung sofort das Programm passwd:

$ ssh xyz00-mail@xyz00.hostsharing.net
xyz00-mail@xyz00.hostsharing.net's password:

Nach Eingabe des aktuellen Passworts wird sofort passwd gestartet und erneut das aktuelle Passwort abgefragt:

Changing password for xyz00-mail.
Current password: 

Nach einer erneuten Eingabe des aktuellen Passworts kann der Benutzer zweimal ein neues eingeben. Anschließend erscheint eine Erfolgsmeldung und die Verbindung wird geschlossen:

New password: 
Retype new password: 
passwd: password updated successfully
Connection to xyz00.hostsharing.net closed.

Damit ist das neue Passwort gesetzt.

Bitte vergessen Sie nicht das neue Passwort in Ihr E-Mail-Programm einzutragen.

Referenz

In diesem Kapitel werden die Dienste und Funktionen der Managed Operations Platform von Hostsharing dokumentiert.

Benutzerrollen

Um Dienste, Programme und Dämonprozesse sicher voneinander zu trennen, laufen sie im Debian-Betriebssystem unter verschiedenen Benutzern mit jeweils klar definierten Rechten. Dies gilt auch für die Aufgaben, die man als Nutzer der Plattform in seinem Web-Paket erledigt. Wer mit der Managed Operations Platform Webanwendungen betreibt, muss im Laufe der Zeit zahlreiche Benutzer anlegen. Jeder Benutzer erfüllt eine spezielle Rolle. Die Rollen werden durch die Vergabe von Rechten auf Betriebssystemebene definiert. Für Personen, die bisher noch nicht mit Unix-Systemen und dem Konzept unterschiedlicher Benutzer gearbeitet haben, stellt dieses Mehrbenutzerkonzept am Anfang eine Hürde dar. Ausführliche Unix-Kenntnisse sind nicht erforderlich, um auf der Hostsharing-Plattform Benutzer anzulegen, da das Verwaltungswerkzeug HSAdmin diese Aufgabe vereinfacht. Da in diesem Handbuch die Kenntnis der Rollen an vielen Stellen vorausgesetzt wird, werden sie in diesem Kapitel ausführlich beschrieben.

Benutzerrechte

HSAdmin bietet uns die Möglichkeit, dem Benutzer eine Login-Shell für interaktive Sitzungen zuzuordnen oder genau dies zu verhindern. Wir haben die Wahl zwischen den Kommandointerpretern bash, csh, ksh, tcsh oder zsh und den Programmen false, passwd und scponly. Abb. Das Auswahlmenü mit den Shell- und Kommando-Interpretern. zeigt das entsprechende Menü.

Das Auswahlmenü mit den Shell- und Kommando-Interpretern.
/bin/false

Benutzer, denen das Programm /bin/false als Shell zugeordnet wird, können sich nicht in ihrem Account einloggen und eine interaktive Sitzung starten. Diese Einstellung eignet sich für Systembenutzer, die Programme im Webpaket ausführen. sich aber nicht von außen einloggen sollen. Dies können auch Mail-Benutzer sein.

/bin/bash

Die Bourne-Again-Shell. Auf vielen Linuxsystemen ist dies die Standard-Shell.

/bin/csh

Die C-Shell.

/bin/ksh

Die Korn-Shell.

/bin/tcsh

Eine erweiterte C-Shell.

/bin/zsh

Die Z-Shell.

/usr/bin/passwd

Benutzer, denen das Programm /usr/bin/passwd zugeordnet wird, können beim Versuch, sich mit ssh einzuloggen, ihr Passwort ändern. Eine interaktive Sitzung können sie jedoch nicht starten. Dies ist sinnvoll, um Benutzern ein größeres Maß an Vertraulichkeit ihrer Kommunikation zu ermöglichen. Der Paket-Admin setzt für den E-Mail-Benutzer zwar ein initiales Passwort, der Benutzer kann dies aber sogleich ändern, sodass der Paket-Admin den E-Mail-Verkehr des Benutzers nicht unbemerkt mitlesen kann.

/usr/bin/scponly

Diese Zuordnung ermöglicht dem Benutzer den Gebrauch der Programme scp und sftp. Eine interaktive Sitzung ist nicht möglich.

Web-Paket

Die Mitglieder von Hostsharing nutzen die Managed Operations Platform, indem sie ein oder mehrere Web-Pakete buchen. Technisch gesehen ist ein Web-Paket eine UNIX-Nutzer-Gruppe. Alle Web-Pakete sind damit durch gesonderte Zugriffsrechte gegeneinander abgeschottet. Mit seinem Mitglieds-Account hat das Mitglied Zugriff auf alle seine Web-Pakete und kann sie in HSAdmin verwalten. Der Paket-Admin hat nur Zugriff auf sein eigenes Web-Paket.

Ein Web-Paket hat einen definierten Leistungsumfang, der durch Optionen jederzeit erweitert werden kann. Die konkrete Staffelung der Optionen wird auf folgenden Webseiten beschrieben:

  1. Leistungsumfang Managed Webspace
  2. Leistungsumfang Managed Server

Die Web-Pakete werden nach einem einheitlichen Muster bezeichnet. Dieses besteht aus einem dreistelligen Präfix und einem zweistelligen Zähler (z.B xyz00). Das Präfix kann frei gewählt werden, falls es noch nicht vergeben ist. Mit ihm wird das Mitglied identifiziert. Es dient daher auch als Benutzername für den Mitglieds-Account (vgl. Abschnitt Benutzerrollten)

Aus der Paket-Bezeichnung (xyz00) ergeben sich weitere Benennungen:

  • der Name des Paket-Admins: Er lautet wie das Web-Paket, in diesem Beispiel xyz00.
  • das Paketverzeichnis /home/pacs/xyz00/; es ist daher auch das Benutzerverzeichnis des Paket-Admin.

Ein Web-Paket enthält in der Regel:

  • die Verzeichnisse von Benutzern, deren Struktur von der jeweiligen Rolle des Benutzers abhängig ist
  • die genutzten Datenbanken
  • die aufgeschalteten Domains

Jedes Web-Paket hat eine initial angelegte Verzeichnisstruktur. Die Verzeichnisstruktur entspricht der dem jeweiligen Nutzer zugesprochenen Rolle. Die Verzeichnisstrukturen von Paket-Admin, Domain-Admin und E-Mail-Benutzer werden im Folgenden beschrieben.

Verzeichnisebene Paket-Admin

Man kann sich als Paket-Admin in seinem Web-Paket per SSH folgendermaßen anmelden:

$ ssh xyz00@xyz00.hostsharing.net

Danach können die Verzeichnisse mit dem Befehl ls angezeigt werden.

xyz00@h05:~$ ls -a

Das Home-Verzeichnis des Paket-Admins umfasst initial folgende Verzeichnisse:

Verzeichnisstruktur des Paket-Admins
Rechte Nutzer Gruppe Ordner Erläuterung
drwx----- xyz00 xyz00 .bak Ablage komprimierter Backups der Datenbanken und Cronjobs.
dr-xr-x--T httpd xyz00 doms Ablage der Paketdomain xyz00.hostsharing.net.
drwx------ xyz00 xyz00 etc Ablage für eigene Konfigurationsdateien.
drwxr-xr-x xyz00 xyz00 users Ablage der angelegten Nutzer
drwxr-x--- xyz00 xyz00 var Ablage von Logfiles (z.B. Web-Logs, Traffic-Logs)
drwx------ xyz00 xyz00 Maildir Mailordner des Paket-Admins.

Verzeichnisebene Domain-Admin

Man kann sich als Domain-Admin in seinem Web-Paket per SSH folgendermaßen anmelden. Unter der Annahme, dass der Domain-Admin für die Domain hs-example.de angelegt wurde und sein Benutzername xyz00-hs_example.de ist, lautet der Befehl zum Anmelden folgendermaßen:

$ ssh xyz00-hs_example.des@xyz00.hostsharing.net

Danach können die Verzeichnisse mit dem Befehl ls angezeigt werden.

xyz00-doms@h05:~$ ls -a

Das Home-Verzeichnis des Domain-Admins umfasst folgende Verzeichnisse:

Verzeichnisstruktur des Domain-Admin
Rechte Nutzer Gruppe Ordner Erläuterung
dr-xr-x--T httpd xyz00 doms Ablage der Domains dieses Domain-Admins.
drwx------ xyz00-hs_example.de xyz00 Maildir Mailordner des Domain-Admins.

Unterhalb des Ordners doms findet sich für jede Domain ein weiterer Ordner mit dem Namen der Domain, zum Beispiel example.com, und darin befindet sich die Verzeichnisstruktur für die jeweilige Domain:

Verzeichnisstruktur einer Domain
Rechte Nutzer Gruppe Ordner Erläuterung
drwxr-xr-x xyz00-hs_example.de xyz00 cgi Ablage für CGI-Skripte zur Generierung dynamischer Webseiten in einem Webserver.
drwxr-xr-x xyz00-hs_example.de xyz00 cgi-ssl Ablage für CGI-Skripte zur Generierung dynamischer Webseiten, die verschlüsselt ausgeliefert werden
drwxr-xr-x xyz00-hs_example.de xyz00 fastcgi Ablage für Fast-CGI-Programme zur Generierung dynamischer Webseiten in einem Webserver.
drwxr-xr-x xyz00-hs_example.de xyz00 fastcgi-ssl Ablage für Fast-CGI-Programme zur Generierung dynamischer Webseiten, die verschlüsselt ausgeliefert werden
drwxr-xr-x xyz00-hs_example.de xyz00 htdocs Ablage für die Daten einer Webseite, wenn diese unverschlüsselt ausgeliefert werden soll.
drwxr-xr-x xyz00-hs_example.de xyz00 subs Ablage für Sub-Domain aus htdocs, wenn diese unverschlüsselt ausgeliefert werden soll.
drwxr-xr-x xyz00-hs_example.de xyz00 htdocs-ssl Ablage für die Daten einer Webseite, wenn diese verschlüsselt ausgeliefert werden soll.
drwxr-xr-x xyz00-hs_example.de xyz00 subs-ssl Ablage für Sub-Domain aus htdocs-ssl, wenn diese verschlüsselt ausgeliefert werden soll.
drwxr-xr-x xyz00-hs_example.de xyz00 etc Ablage für domaineigene Konfigurationsdateien (z.B. eigenes Zonefile.
drwxr-xr-x xyz00-hs_example.de xyz00 var Ablage für Logfiles.

Die Verzeichnisstruktur wird auch im Abschnitt Ordnerstruktur beschrieben.

Verzeichnisebene E-Mail-Nutzer

Das Home-Verzeichnis eines E-Mail-Benutzers umfasst nur sein Postfach:

Verzeichnisstruktur eines E-Mail-Benutzers
Rechte Nutzer Gruppe Ordner Erläuterung
drwxr----- xyz00-mail xyz00 Maildir Mailordner des E-Mail-Nutzers.

Speicherbelegung

Jedem Web-Paket steht nur ein begrenzter Speicher zur Verfügung. Der tatsächlich belegte Speicher darf den gebuchten nicht dauerhaft überschreiten.

Zum belegten Speicher zählen neben den sichtbaren Dateien in /home/pacs/xyz00, die Sicherungen der Datenbanken unter /home/pacs/xyz00/.bak/ sowie gegebenenfalls Dateien in /home/restore oder temporäre Daten im Verzeichnis /tmp.

Die Speicherbegrenzung für ein Web-Paket ist unter Linux durch ein Quota für die Gruppe xyz00 realisiert. Die aktuelle Belegung lässt sich mit dem Kommando

$ quota -gs

ermitteln. Die Ausgabe

Disk quotas for group xyz00 (gid 999999): 
   Filesystem   space   quota   limit   grace   files   quota   limit   grace
   /dev/vda2    5587M   6144M   9216M            103k   6292k   6292k     

bedeutet:

  • Es sind 5587 MB von 6144 MB belegt
  • Temporär dürfen bis zu 9216 MB in Anspruch genommen werden
  • Außerdem sind 103.000 Dateien angelegt worden
  • Die maximale Anzahl der Dateien ist auf 6.292.000 beschränkt
  • Sobald das Quota überschritten wird, würde unter grace die verbleibende Zeit angezeigt, innerhalb derer wieder das Quota unterschritten sein muss. Sonst wird das Paket gesperrt, das heißt es können keine Dateien mehr angelegt werden, E-Mails werden nicht mehr zugestellt.

Falls Sie dauerhaft mehr Speicherplatz benötigen, können Sie diesen jederzeit hinzubuchen. Wenden Sie sich dazu an den Service.

Domains

Die Domainverwaltung bei Hostsharing ist in zwei unabhängige Bereiche aufgeteilt.

  1. Die Domaineinrichtung in einem Web-Paket. Dies geschieht mit HSAdmin. Die Benutzung der Weboberfläche wird im Abschnitt Einstieg in HSAdmin, speziell im Abschnitt Domain in HSAdmin anlegen beschrieben. Die Nutzung des Kommandozeilen-Tools von HSAdmin erklärt Abschnitt HSAdmin.

  2. Die Domainregistrierung im Domainbestellsystems von Partnergate zur Konnektierung, also der eigentlichen Registrierung von Domains bei einem Registrar. Das Domainbestellsystem dient auch zur Vergabe weiterer Aufträgen an Registrierungstellen. Jedes Mitglied von Hostsharing erhält für dieses Domainbestellsystem Zugangsdaten. Sie bestehen aus der Reseller-ID und einem Passwort.

Hostsharing gibt seinen Mitgliedern bei der Verwaltung von Domains große Freiheiten, da beide Bereiche nicht zwingend zusammen genutzt werden müssen. Sie können Domains über das Domainbestellsystem registrieren und bei anderen Hostern betreiben. Sie können Domains, die Sie bei anderen Hostern registriert haben, bei Hostsharing betreiben.

Die Verwaltung einer Domain umfasst:

  • Domain aufschalten,
  • Domain-Registrierung,
  • Domain-Transfer zur Hostsharing eG,
  • Extern registrierte Domain aufschalten,
  • Extern registrierte Sub-Domain aufschalten,
  • Domain neu zuordnen (Domain-Admin neu zuordnen oder Zuordnung zu einem Web-Paket ändern),
  • Sub-Domain neu zuordnen (Domain-Admin neu zuordnen oder Zuordnung zu einem Web-Paket ändern),
  • Lokale Sub-Domain separat aufschalten,
  • Verwaltung des Zonefile,
  • Verwaltung der Domain-Daten (zum Beispiel Domain-Handle, Kontaktdaten),
  • Transfer zu einem anderen Provider,
  • Domain löschen/kündigen.

Domainverwaltung

Registrierung und Aufschaltung

Die Domainverwaltung ist in zwei voneinander unabhängige Aufgabenbereiche unterteilt:

Domaineinrichtung und -konfiguration in einem Web-Paket

Die Einrichtung und Konfiguration erfolgt mit dem Werkzeug HSAdmin. Die Benutzung von HSAdmin über das Webinterface unter admin.hostsharing.net wird im Abschnitt Einführung in HSAdmin beschrieben, die Syntax der Kommandozeilen-Variante hsscript im Abschnitt HSAdmin.

Aufgaben der Domainverwaltung werden vom Paket-Admin oder vom Mitglieds-Account wahrgenommen.

Vergabe von Aufträgen an eine Registrierungsstelle

Die Vergabe von Aufträgen (z.B. Registrierung, Transfer) an eine Registrierungsstelle ist nur über das Webfrontend des Domain-Bestell-System möglich und erfolgt mit Hilfe der Reseller-ID.

Die Anzahl der pro Tag möglichen Registrierungen ist beschränkt, um Missbrauch vorzubeugen. Nach Rücksprache kann das Limit erhöht werden.

Der Nutzer ist für sämtliche Aktivitäten im Domainbestellsystem juristisch eigenverantwortlich.

Wenn Sie eine Domain neu registrieren, schalten Sie diese erst in HSAdmin auf, bevor Sie sie im Domainbestellsystem registrieren. Die Konnektierung erfolgt dann in der Regel problemlos. Wenn Sie umgekehrt vorgehen, müssen Sie im Domainbestellsystem die Konnektierung neu anstoßen.

Bestehende Domain einem neuen Domain-Admin zuordnen

Um eine Domain einem anderen Domain-Admin zuzuordnen und damit im Dateisystem zu verschieben, wird sie über HSAdmin gelöscht und neu angelegt.

Beim Löschen einer Domain in HSAdmin werden alle Dateien im Webspace komplett gelöscht. Sichern Sie also vorher alle Daten in einem von der Löschung nicht betroffenen Verzeichnis (zum Beispiel mit tar). Es gehen auch die Mailadressen der betreffenden Domain verloren und müssen an neuer Stelle neu angelegt werden.

Der Prozess des Verschiebens läuft im Großen und Ganzen folgendermaßen ab:

  1. Sichern aller Daten im Ordner doms/example.de des alten Domain-Admin
  2. Löschen der Domain in HSAdmin
  3. Neuanlage eines neuen Domain-Admin in HSAdmin
  4. Neuanlage der Domain in HSAdmin
  5. Rückspielen der gesicherten Daten in den neu erstellen Ordner doms/example.de des neuen Domain-Admin

Bestehende Domain in ein anderes Web-Paket verschieben

Um eine Domain in ein anderes Web-Paket zu verschieben, wird sie im alten Web-Paket gelöscht und im neuen neu angelegt. Gehen Sie dabei im Prinzip genau so vor wie im Abschnitt zuvor.

  1. Sichern aller Daten im Ordner doms/example.de des alten Domain-Admin im alten Web-Paket
  2. Löschen der Domain example.de in HSAdmin im alten Web-Paket
  3. Neuanlage eines neuen Domain-Admin im neuen Web-Paket
  4. Neuanlage der Domain example.de im neuen Web-Paket
  5. Rückspielen der gesicherten Daten in den neu erstellen Ordner doms/example.de des neuen Domain-Admin im neuen Web-Paket

Wenn Sie unsicher sind, wenden Sie sich an den Service unter . Der Webmaster on Demand kann eine Domain mit minimalen Ausfallzeiten für Sie bei aufwandsabhängiger Abrechnung verschieben.

Subdomain

Subdomains sind Domains unterhalb der Hauptdomain. Auch www ist eine Subdomain. Als Subdomain der Hauptdomain hs-example.de wird eine Website unter dieser Subdomain im Browser über die Adresse www.hs-example.de aufgerufen. Die Subdomain test würde man über die Adresse test.hs-example.de erreichen.

Sie können bei Hostsharing beliebig viele Subdomains einrichten. Es gibt zwei Methoden Subdomains anzulegen:

  1. Leichtgewichtige Subdomains
  2. Aufgeschaltete Subdomains

Leichtgewichtige Subdomain

Eine Subdomains wird bei Hostsharing leichtgewichtig genannt, wenn sie durch ein Unterverzeichnis von ~/doms/example.com/subs/ definiert wurde. Dies ist die einfachste Art und Weise, um Subdomains zu erstellen. Für jede Subdomain wird ein Ordner im Verzeichnis subs erstellt.

Leichtgewichtige Subdomains sollten nur verwendet werden, wenn eine einzelne Anwendung zur Verwaltung aller dieser Subdomains verwendet wird. Das kann zum Beispiel ein CMS oder eine Multisite-Wordpress-Installation sein.

Wenn unterschiedliche Anwendungen unter Subdomains betrieben werden, sollte

  • für jede Subdomain ein eigener Domain-Admin angelegt
  • und jede Subdomain jeweils beim entsprechenden Domain-Admin aufgeschaltet werden.

Aufgeschaltete Subdomain

Eine Subdomain wird bei Hostsharing wie die Hauptdomain aufgeschaltet (siehe Abschnitt Domain in HSAdmin anlegen). Eine Subdomain wie blog.hs-example.de kann im gleichen Web-Paket aufgeschaltet werden wie die Hauptdomain oder in einem anderen. Es ist Best-Practice bei Hostsharing für jede aufgeschaltete Domain – also auch für jede aufgeschaltete Subdomain – einen Domain-Admin anzulegen und die Domain bzw. Subdomain diesem Domain-Admin zuzuordnen.

Domain-Optionen

Bei Aufschaltung einer Domain können verschiedene Optionen gesetzt werden.

Greylisting

Greylisting ist eine Form der Spam-Bekämpfung bei E-Mails. Nachrichten von unbekannten Absendern werden zunächst abgewiesen und erst nach einem weiteren Zustellversuch angenommen. Da viele Spammer nur einen Zustellversuch unternehmen, können Sie mit dieser Option das Spam-Aufkommen in den Postfächern der Domain spürbar reduzieren. Allerdings müssen Sie damit rechnen, Mails von unbekannten Absendern erst nach einer gewissen Wartezeit zu erhalten. Falls der Absender einen fehlerhaft konfigurierten Mailserver hat, kann es sein, dass er keinen zweiten Zustellversuch unternimmt, sodass Sie die E-Mail gar nicht bekommen.

Multiviews

Wenn diese Option eingeschaltet ist, berücksichtigt der Webserver Browsereinstellungen und kann je nachdem unterschiedliche Dateien ausliefern. Die Möglichkeiten sind in der Dokumentation zu mod_mime und mod_negotiation beschrieben.

Indexes

Wenn diese Option eingeschaltet ist, erzeugt der Webserver für Verzeichnisse, die keine Index-Datei (index.html) enthalten eine Liste mit den Inhalten des Verzeichnisses. Weitere Informationen zu dieser Funktion des Webservers finden Sie in der Dokumentation von mod_autoindex. Ist die Option nicht gesetzt, erhält der Browser stattdessen eine 404-Fehlermeldung. Sie können diese Einstellung durch eine .htaccess-Datei im Verzeichnis überschreiben. Lesen Sie dazu Abschnitt htaccess.

Fallback auf htdocs/htdocs-ssl

Wenn diese Option aktiviert ist, werden Browser-Anfragen an eine nicht aufgeschaltete Subdomain (blog.hs-example.de) an die Hauptdomain weitergeleitet. In diesem Fall an hs-example.de. Falls die Option nicht gesetzt ist, erhält der Browser stattdessen eine 404-Fehlermeldung.

Includes

Wenn diese Option gesetzt ist, unterstützt der Webserver SSI (Server Side Includes). Weitere Informationen dazu finden Sie in der Dokumentation von mod_includes

Backup-MX für externen Mailserver

Wenn diese Option eingeschaltet ist, nehmen die E-Mail-Server von Hostsharing als sogenannter Backup-MX E-Mails für einen SMTP-Server an, der unabhängig betrieben wird. Für diese Funktion muss die Zone-Datei angepasst werden. Lesen Sie dazu Abschnitt Zonefile.

Let's Encrypt-Zertifikat

Wenn diese Option aktiviert ist, wird automatisch ein kostenloses LE-Zertifikat generiert und regelmäßig verlängert. Sie können Ihre Website dann so konfigurieren, dass der Datentransfer zu den Browsern über eine verschlüsselte Verbindung (https) erfolgt.

E-Mail Auto-Konfiguration

Bei Aktivierung dieser Option reicht es bei den meisten E-Mail-Programmen (die ›autoconfig‹ oder ›autodiscover‹ unterstützen), E-Mail-Adresse und Passwort zur Konfiguration anzugeben. Dazu muss der E-Mail-Adresse ein eindeutiges E-Mail-Postfach bei Hostsharing zugeordnet sein.

Domain Keys (DKIM)

Durch das Aktiveren dieser Option werden DKIM-Signaturen für ausgehende E-Mails mit Absendern dieser E-Mail-Domain aktiviert. Vor der Aktivierung muss der öffentliche Schlüssel des Domain Key in der DNS Zone der Domain veröffentlicht werden. Das Zonefile muss dazu die Zeile {DKIM_RR} enthalten. Die Option ist (ab 1.9.2021) bei neu angelegten Domains in der Voreinstellung aktiviert und der öffentliche Schlüssel wird automatisch hinterlegt.

E-Mail

Jeder Benutzer im Web-Paket besitzt ein E-Mail-Konto und kann E-Mail senden und empfangen. E-Mails werden unterhalb des Verzeichnisses ~/Maildir abgelegt. Der Name des Ordners Maildir darf nicht verändert werden.

Jedes E-Mail-Konto ist POP3- und IMAP-fähig.

Hostsharing bietet folgende Konfigurationsmöglichkeiten:

  • Anlegen und Löschen von E-Mail-Adressen
  • Anlegen und Löschen von E-Mail-Aliasen
  • Einrichtung von E-Mail-Weiterleitungen
  • Automatisches Versenden einer E-Mail-Bestätigung (Vacation)
  • Automatisches Filtern und Bearbeiten von E-Mails über Managesieve oder Procmail
  • Mit E-Mail-Aliasen kann die Zustellung von Nachrichten in die Postfächer der Benutzer gesteuert werden.
  • E-Mail-Konten bei anderen Anbietern abfragen
  • Einrichtung von Mailinglisten

Der Zugriff auf das E-Mail-Konto erfolgt über einen beliebigen E-Mail-Client oder über Webmail.

Posteingangsserver

Angaben für den Posteingangsserver:

Konfiguration Eingangsserver
Posteingangsserver Postfach/Benutzer Protokoll STARTTLS SSL/TLS
xyz00.hostsharing.net xyz00-mailbox POP3 Port 110 Port 995
xyz00.hostsharing.net xyz00-mailbox IMAP Port 143 Port 993

Die Konfigurationsvariante IMAP über Port 143 mit STARTTLS wird empfohlen.

Postausgangsserver

Für jedes Webpaket steht ein Postausgangsserver für reguäre E-Mails und ein Postausgangsserver für den Massenversand von E-Mails bereit.

Unter Massenversand wird der Versand von Newslettern, Forenbenachrichtungen, der Betrieb von Mailinglisten und ähnliche Nutzungen im Rahmen des Zulässigen verstanden. Wählen Sie bei solchen Massenaussendungen bitte möglichst den Postausgangsserver für den Massenversand, da Sie so mithelfen, die Reputation unserer normalen Ausgangsserver hoch zu halten.

Angaben für den Postausgangsserver:

Konfiguration Ausgangsserver
Posteingangsserver Postfach/Benutzer Protokoll STARTTLS SSL/TLS
xyz00.hostsharing.net xyz00-mailbox SMTP Port 587 oder 25 Port 465

Die Konfigurationsvariante SMTP über Port 587 mit STARTTLS wird empfohlen.

Angaben für den Postausgangsserver für den Massenversand:

Konfiguration Ausgangsserver Massenversand
Posteingangsserver Postfach/Benutzer Protokoll STARTTLS SSL/TLS
xyz00.hostsharing.net xyz00-mailbox SMTP Port 4587 oder 4025 Port 1465

Die Konfigurationsvariante SMTP über Port 4587 mit STARTTLS wird empfohlen.

Größenbeschränkung einer E-Mail

Die E-Mail-Server akzeptieren E-Mails bis zu einer maximalen Größe von 128 MB. Dateianhänge sollten daher die Größe von ca. 90 MB nicht überschreiten. Allgemeine Informationen zur Größenbeschränkung von E-Mails im Wiki der Hostsharing-Mitglieder.

E-Mail-Alias und Paketnutzer

Ein E-Mail-Alias ist eine E-Mail-Adresse zur Weiterleitung von E-Mails.

Ein E-Mail-Alias in der E-Mail-Konfiguration hat Vorrang vor einem Paketnutzer gleichen Namens. Implementiert der E-Mail-Alias eine Weiterleitung, gehen in diesem Fall in der Mailbox des Paketnutzers keine E-Mails ein.

Webmail

Hostsharing betreibt eine zentrale Webmail-Installation. Informationen zur Einrichtung sind im Wiki der Mitglieder unter Webmail zu finden.

E-Mail Auto-Konfiguration

Die Domain-Option E-Mail Auto-Konfiguration ermöglicht das einfache Konfigurieren der E-Mail-Clients mit den Daten des Posteingangs- und Postausgangsservers. Wird diese Domain-Option für z.B. example.com aktiviert, und ist der E-Mail-Adresse fred@example.com (evtl. nach mehreren Weiterleitungen) bei Hostsharing genau ein Postfach zugeordnet, dann reicht es bei den gängigsten E-Mail-Clients aus, zur Einrichtung des Postfaches die E-Mail-Adresse und das jeweilige Passwort anzugeben. Die restlichen Einstellungen (Server, Postfach/Benutzername, Protokoll, Port etc.) werden automatisch durch den E-Mail-Client von Hostsharing abgerufen und sodann automatisch konfiguriert.

Dies vereinfacht aus Nutzersicht die Einrichtung eines Hostsharing-Postfaches im eigenen E-Mail-Client erheblich.

Das Verfahren kann aus mehreren Gründen scheitern:

  • Der E-Mail-Client des Nutzers unterstützt ›autoconfig‹ und ›autodiscover‹ nicht. Thunderbird ab Version 3.1 und Outlook ab Version 2007 sollten funktionieren.
  • Die Domain-Option E-Mail Auto-Konfiguration wurde erst nach einem gescheiterten Konfigurationsversuch gesetzt (sie sollte vorher gesetzt werden). Vor allem Microsoft-Produkte cachen das Abfrageergebnis für eine E-Mail-Adresse ca. zwei Wochen in einer Microsoft-Cloud, so dass weitere automatische Konfigurationsversuche erst nach Ablauf dieser (langen) Zeit erfolgreich sind. In diesem Fall hilft nur, die Einstellungen im E-Mail-Client per Hand vorzunehmen.
  • In der Domain wird ein eigenes Zonenfile verwendet, in dem die nötigen Einträge (MAILSERVICES_RR und AUTODISCOVER_RR, siehe Abschnitt Platzhalter fehlen. Dann müssen sie per Hand ergänzt werden.

Datenbanken

Jeder Hive hat einen eigenen MySQL- und PostgreSQL-Datenbankserver. Daraus ergibt sich, dass der jeweilige MySQL- und PostgreSQL-Server von allen auf einem Hive eingerichteten Web-Paketen gemeinsam genutzt wird.

Der externe Zugriff auf die Datenbanken ist über einen SSH-Tunnel möglich.

Datenbanken und Nutzer

Datenbanknutzer haben eine eigene Nutzerverwaltung und sind unabhängig von der Vergabe von Rechten auf Betriebsystemebene.

Verwaltung der Datenbanken und Datenbanknutzer

Die Verwaltung von Datenbanken und Nutzern erfolgt mit HSAdmin über ein Webfrontend oder über die shell.

Rechte

Datenbanknutzern müssen initial die gewünschten Rechte an den entsprechenden Datenbanken vergeben werden.

Name

  • Datenbanknutzer haben immer den Präfix xyz00_.
  • Datenbanken haben immer den Präfix xyz00_.

Datenbankzugriff

Der Zugriff erfolgt über folgende Hosts und Ports:

Konfiguration Datenbankzugriff
Datenbank Hostnamen Port
MySQL localhost 3306
PostgreSQL localhost 5432

Datenbank-Webfrontend

Für angelegte Datenbanken stehen folgende Webfrontends zur Verfügung:

TLS Zertifikate

Transport Layer Security (TLS) ist ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet. Die Vorgängerbezeichnung lautete Secure Sockets Layer (SSL).

Beim Anlegen einer Domain in HSAdmin kann als Domain-Option ein Let’s-Encrypt-Zertifikat erstellt werden (vgl. dazu die Abschnitte Domain in HSAdmin anlegen und Domain-Optionen. Daten können so ohne weitere Vorbereitung über HTTPS ausgeliefert werden.

Standardkonfiguration

Pro aufgeschalteter Domain ist ein Zertifikat möglich .

TLS-Inhalte werden durch die Verzeichnisse

  • cgi-ssl
  • fastcgi-ssl
  • htdocs-ssl

von Nicht-TLS-Inhalten getrennt. Die Ordnerstruktur im Verzeichnis eines Domain-Admin wird in Abschnitt Ordnerstruktur beschrieben.

Mögliche Varianten

TLS-Seiten und Nicht-TLS-Seiten in einem Verzeichnis

Sollen TLS- und Nicht-TLS-Seiten innerhalb eines Verzeichnis verwaltet werden, können die TLS-Verzeichnisse gelöscht und symbolische Links auf Nicht-TLS Verzeichnisse angelegt werden. Dies gilt selektiv auch für Unterverzeichnisse. Symbolische Links erlauben es, Seiten mit und ohne TLS abzurufen.

Automatisch auf TLS

Soll nur auf bestimmten Seiten der Zugriff mit TLS erlaubt und automatisch auf TLS umgeschaltet werden, muss dies in einer entsprechenden .htaccess-Datei für die betroffenen Verzeichnisse konfiguriert werden.

Zertifikate einer Zertifizierungsstelle

Für die Installation eines Zertifikate einer Zertifizierungsstelle muss der Paket-Admin einen ›Private Key‹ und einen CSR (Certificate Signing Request) erzeugen. Die Vorgehensweise ist in der Regel auf den Webseiten der Zertifizierungsstelle beschrieben. Weitere Hinweise sind im Hostsharing Wiki unter TLS/SSL beschrieben.

Für die Aktivierung des Zertifikates wird ein Auftrag an gesendet. Die Aktivierung des Zertifikats durch den Service ist kostenpflichtig.

Let´s Encrypt einrichten

Wenn Sie bei der Aufschaltung der Domain noch kein Let’s Encrypt Zertifikat eingerichtet haben, können Sie dies nachträglich erledigen.

Melden Sie sich mit dem Benutzernamen Ihres Paket-Admin beim Webfrontend von HSAdmin unter https://admin.hostsharing.net an. Wählen Sie im linken Feld den Eintrag Web-Paket aus. Im rechten Feld aktivieren Sie den Reiter Domain und wählen anschließend die Domain aus, für die Sie Let's Encrypt einrichten möchten.

Klicken Sie anschließend das Editier-Symbol Ausgewählten Eintrag bearbeiten, um das Bearbeitungsmenü zu öffnen:

Domain in HSAdmin auswählen

Setzen Sie anschließend im Feld Domain-Optionen das Häkchen bei Let's Encrypt-Zertifikat. Speichern Sie die Einstellung mit einem Klick auf den Button OK.

Das Bearbeitungsformular einer Domain

Sie können jede Subdomain, für die ein Let’s-Encrypt-Zertifikat erstellt werden soll, einzeln in der Liste gültige Subdomains eintragen. Alternativ können Sie das Wildcard-Symbol * benutzen; dann wird ein Wildcard-Zertifikat ausgestellt, das für jede leichtgewichtige Subdomain gültig ist. Für einzeln aufgeschaltete Subdomains müssen Sie Let’s Encrypt gesondert aktivieren.

Bis zur Zertifizierung vergehen normalerweise nur 2-3 Minuten, es kann jedoch auch bis zu 36 Std dauern.

Wenn die Domain oder Subdomain nicht bei Hostsharing verwaltet wird, muss beim Domainverwalter eine Nameserver-Delegation auf die drei DNS-Server von Hostsharing eingerichtet sein, damit Let’s-Encrypt-Zertifikate genutzt werden können. Die Nameserver, die an der entsprechenden Stelle eingetragen werden müssen, heißen dns1.hostsharing.net, dns2.hostsharing.net und dns3.hostsharing.net.

Filemapping ohne TLS

In der folgenden Grafik ist der Entscheidungsweg beschrieben, der durchlaufen wird, um einem anfragenden Browser die richtige Datei auszuliefern. TLS ist nicht aktiv.

Mapping ohne TLS

Zunächst wird für die Anfrage http://www.example.com/<path> der Virtual Host gesucht, der zum FQDN (Fully Qualified Domain Name) passt. Anschließend entscheiden folgende Fragen über den weiteren Verlauf des Entscheidungswegs.

  1. Starten wir mit cgi-bin?

    1. Ja: Das Verzeichnis cgi-bin wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.

    2. Nein: Weiter zu Frage 2

  2. Starten wir mit fastcgi?

    1. Ja: Das Verzeichnis fastcgi wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.

    2. Nein aber es gibt einen FQDN-Treffer, deshalb wird htdocs zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert. Ist das nicht der Fall geht es weiter zu Frage 3.

  3. Gibt es eine passende Sub-Domain?

    1. Ja: Das Verzeichnis subs wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.

    2. Nein: Weiter zu Frage 4

  4. Ist das Verzeichnis htdocs als Fallback konfiguriert?

    1. Ja: Das Verzeichnis htdocs wird zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.

    2. Nein: Es wurde nichts gefunden. Wir liefern die Fehlermeldung 404 aus.

Filemapping mit TLS

In der folgenden Grafik ist der Entscheidungsweg beschrieben, der durchlaufen wird, um einem anfragenden Browser die richtige Datei auszuliefern. Die Website wird über https aufgerufen, sodass TLS aktiv ist.

Mapping mit TLS

Zunächst wird für die Anfrage https://www.example.com/<path> der Virtual Host gesucht, der zum FQDN (Fully Qualified Domain Name) passt. Anschließend entscheiden folgende Fragen über den weiteren Verlauf des Entscheidungswegs.

  1. Starten wir mit cgi-ssl?

    1. Ja: Das Verzeichnis cgi-ssl wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.

    2. Nein: Weiter zu Frage 2

  2. Starten wir mit fastcgi-ssl?

    1. Ja: Das Verzeichnis fastcgi-ssl wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.

    2. Nein aber es gibt einen FQDN-Treffer, deshalb wird htdocs-ssl zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert. Ist das nicht der Fall geht es weiter zu Frage 3.

  3. Gibt es eine passende Sub-Domain?

    1. Ja: Das Verzeichnis subs-ssl wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.

    2. Nein: Weiter zu Frage 4

  4. Ist das Verzeichnis htdocs-ssl als Fallback konfiguriert?

    1. Ja: Das Verzeichnis htdocs-ssl wird zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.

    2. Nein: Es wurde nichts gefunden. Wir liefern die Fehlermeldung 404 aus.

Zonefile

Das Zonefile enthält die Konfiguration des Domain Name Service (DNS) einer Domain. Im Zonefile wird hinterlegt, welche Hostnamen innerhalb einer Domain existieren, auf welche IP-Adressen diese zeigen und welches Mailsystem für eine Domain zuständig ist. Das Standardzonefile ist für jede Domain unter /etc/bind/pri.example.com zu finden.

Es ist möglich, ein eigenes Zonefile für eine Domain einzusetzen. Dabei können und sollen Platzhalter verwendet werden, die es ermöglichen, einen jeweils spezifischen Teil eines Zonefile zu ändern.

Das expandierte Standardzonefile

$TTL 6H
example.com. IN SOA h00.hostsharing.net. hostmaster.hostsharing.net. (
        1303649373      ; serial secs since Jan 1 1970  
        6H              ; refresh (>=10000)
        1H              ; retry (>=1800)
        1W              ; expire
        1H              ; minimum
        )

example.com.    IN      NS      dns1.hostsharing.net.
example.com.    IN      NS      dns2.hostsharing.net.
example.com.    IN      NS      dns3.hostsharing.net.
example.com.    IN      MX      30 mailin1.hostsharing.net.
example.com.    IN      MX      30 mailin2.hostsharing.net.
example.com.    IN      MX      30 mailin3.hostsharing.net.
example.com.    IN      A       83.223.95.160
example.com.    IN      AAAA    2a01:37:1000::53df:5bfc:0
_imap._tcp.example.com.              IN      SRV     1 0 143 xyz00.hostsharing.net.
_imaps._tcp.example.com.             IN      SRV     2 0 993 xyz00.hostsharing.net.
_pop3._tcp.example.com.              IN      SRV     3 0 110 xyz00.hostsharing.net.
_pop3s._tcp.example.com.             IN      SRV     4 0 995 xyz00.hostsharing.net.
_submission._tcp.example.com.        IN      SRV     0 0 587 xyz00.hostsharing.net.
_autodiscover._tcp.example.com.      IN      SRV     0 0 443 example.com.
autodiscover.example.com.            IN      A       0.0.0.0
autodiscover.example.com.            IN      AAAA    ::
example.com.    IN      TXT     "v=spf1 include:spf.hostsharing.net ?all"
*.example.com.  IN      MX      30 mailin1.hostsharing.net.
*.example.com.  IN      MX      30 mailin2.hostsharing.net.
*.example.com.  IN      MX      30 mailin3.hostsharing.net.
*.example.com.  IN      A       83.223.95.160
*.example.com.  IN      AAAA    2a01:37:1000::53df:5bfc:0
*.example.com.  IN      TXT     "v=spf1 include:spf.hostsharing.net ?all"

Platzhalter

Platzhalter             expandiert zu

{DEFAULT_ZONEFILE}      {HEADER}
                        {SOA_RR}
                        {NS_RR}
                        {MX_RR} 
                        {A_RR}
                        {AAAA_RR}
                        {MAILSERVICES_RR}
                        {AUTODISCOVER_RR}
                        {SPF_RR}
                        {DKIM_RR}
                        {WILDCARD_MX_RR}
                        {WILDCARD_A_RR}
                        {WILDCARD_AAAA_RR}
                        {WILDCARD_SPF_RR}

{HEADER}                $TTL {TTL}

{SOA_RR}                {DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (
                                {SIO}       ; serial secs since Jan 1 1970
                                {REFRESH}   ; refresh (>=10000)
                                {RETRY}     ; retry (>=1800)
                                {EXPIRE}    ; expire
                                {MINIMUM}   ; minimum
                        )   

{NS_RR}                 {DOM_HOSTNAME}.     IN  NS  {DNS1_HOSTNAME}.
                        {DOM_HOSTNAME}.     IN  NS  {DNS2_HOSTNAME}.
                        {DOM_HOSTNAME}.     IN  NS  {DNS3_HOSTNAME}.

{MX_RR}                 {DOM_HOSTNAME}.     IN  MX  30 {MX1_HOSTNAME}.
                        {DOM_HOSTNAME}.     IN  MX  30 {MX2_HOSTNAME}.
                        {DOM_HOSTNAME}.     IN  MX  30 {MX3_HOSTNAME}.

{A_RR}                  {DOM_HOSTNAME}.     IN  A   {DOM_IP4NUMBER}

{AAAA_RR}               {DOM_HOSTNAME}.     IN  AAAA    {DOM_IP6NUMBER}


{MAILSERVICES_RR}       _imap._tcp.{DOM_HOSTNAME}.              IN      SRV     1 0 143 {PAC_HOSTNAME}.
                        _imaps._tcp.{DOM_HOSTNAME}.             IN      SRV     2 0 993 {PAC_HOSTNAME}.
                        _pop3._tcp.{DOM_HOSTNAME}.              IN      SRV     3 0 110 {PAC_HOSTNAME}.
                        _pop3s._tcp.{DOM_HOSTNAME}.             IN      SRV     4 0 995 {PAC_HOSTNAME}.
                        _submission._tcp.{DOM_HOSTNAME}.        IN      SRV     0 0 587 {PAC_HOSTNAME}.

{AUTODISCOVER_RR}       _autodiscover._tcp.{DOM_HOSTNAME}.      IN      SRV     0 0 443 {DOM_HOSTNAME}.
                        autodiscover.{DOM_HOSTNAME}.            IN      A       0.0.0.0
                        autodiscover.{DOM_HOSTNAME}.            IN      AAAA    ::

{SPF_RR}                {DOM_HOSTNAME}.     IN      TXT  "v=spf1 include:spf.hostsharing.net -all"

{WILDCARD_MX_RR}        *.{DOM_HOSTNAME}.   IN  MX  30 {MX1_HOSTNAME}.
                        *.{DOM_HOSTNAME}.   IN  MX  30 {MX2_HOSTNAME}.
                        *.{DOM_HOSTNAME}.   IN  MX  30 {MX3_HOSTNAME}.

{WILDCARD_A_RR}         *.{DOM_HOSTNAME}.   IN  A   {DOM_IP4NUMBER}

{WILDCARD_AAAA_RR}      *.{DOM_HOSTNAME}.   IN  AAAA    {DOM_IP6NUMBER}

{WILDCARD_SPF_RR}       *.{DOM_HOSTNAME}.   IN      TXT  "v=spf1 include:spf.hostsharing.net ?all"

{DKIM_RR}               default._domainkey  IN      TXT  "v=DKIM1; h=sha256; k=rsa; s=email; p=MIIB..."

{TTL}                   6H
{SOA_HOSTNAME}          <HIVE>.hostsharing.net
{SOA_EMAIL}             hostmaster.hostsharing.net
{SIO}                   <SEKUNDEN>
{REFRESH}               6H
{RETRY}                 1H
{EXPIRE}                1W
{MINIMUM}               1H

Folgende Werte werden von Hostsharing verwaltet:

<SEKUNDEN> für die Anzahl der Sekunden, welche seit dem 01.01.1970 vergangen sind

<FQDN> für den vollständigen, qualifizierten Domainnamen der Domain, z.B. example.com

<IPv4> für die der Domain zugewiesene IPv4-Adresse

<IPv6> für die der Domain zugewiesene IPv6-Adresse

<HIVE> für den Server, auf dem die Domain gehostet ist, z.B. h20

<PAC> für das Paket, dem die Domain zugeordnet ist, z.B. xyz00

Expansion der Platzhalter

Der Platzhalter für das Gesamtzonefile {DEFAULT_ZONEFILE} wird in drei Schritten folgendermaßen expandiert. Zunächst werden die komplexen Platzhalter ersetzt. :

{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (
        {SIO}           ; serial secs since Jan 1 1970
        {REFRESH}       ; refresh (>=10000)
        {RETRY}     ; retry (>=1800)
        {EXPIRE}    ; expire
    {MINIMUM}   ; minimum
    )
{DOM_HOSTNAME}.     IN  NS  {DNS1_HOSTNAME}.
{DOM_HOSTNAME}.     IN  NS  {DNS2_HOSTNAME}.
{DOM_HOSTNAME}.     IN  NS  {DNS3_HOSTNAME}.

{DOM_HOSTNAME}.     IN  MX  30 {MX1_HOSTNAME}.
{DOM_HOSTNAME}.     IN  MX  30 {MX2_HOSTNAME}.
{DOM_HOSTNAME}.     IN  MX  30 {MX3_HOSTNAME}.

{DOM_HOSTNAME}.     IN  A   {DOM_IP4NUMBER}
{DOM_HOSTNAME}.     IN  AAAA    {DOM_IP6NUMBER}

_imap._tcp.{DOM_HOSTNAME}.          IN  SRV 1 0 143 {PAC_HOSTNAME}.
_imaps._tcp.{DOM_HOSTNAME}.         IN  SRV 2 0 993 {PAC_HOSTNAME}.
_pop3._tcp.{DOM_HOSTNAME}.          IN  SRV 3 0 110 {PAC_HOSTNAME}.
_pop3s._tcp.{DOM_HOSTNAME}.         IN  SRV 4 0 995 {PAC_HOSTNAME}.
_submission._tcp.{DOM_HOSTNAME}.    IN  SRV 0 0 587 {PAC_HOSTNAME}.

_autodiscover._tcp.{DOM_HOSTNAME}.  IN  SRV 0 0 443 {DOM_HOSTNAME}.
autodiscover.{DOM_HOSTNAME}.        IN  A   0.0.0.0
autodiscover.{DOM_HOSTNAME}.        IN  AAAA    ::

{DOM_HOSTNAME}.     IN  TXT "v=spf1 include:spf.hostsharing.net ?all"

*.{DOM_HOSTNAME}.   IN  MX  30 {MX1_HOSTNAME}.
*.{DOM_HOSTNAME}.   IN  MX  30 {MX2_HOSTNAME}.
*.{DOM_HOSTNAME}.   IN  MX  30 {MX3_HOSTNAME}.

*.{DOM_HOSTNAME}.   IN  A   {DOM_IP4NUMBER}
*.{DOM_HOSTNAME}.   IN  AAAA    {DOM_IP6NUMBER}

*.{DOM_HOSTNAME}.   IN  TXT "v=spf1 include:spf.hostsharing.net ?all"

Anschließend werden die atomaren Platzhalter ersetzt. :

$TTL 6H

<FQDN>. IN SOA <HIVE>.hostsharing.net. hostmaster.hostsharing.net. (
        <SEKUNDEN>  ; serial secs since Jan 1 1970
        6H      ; refresh (>=10000)
        1H      ; retry (>=1800)
        1W      ; expire
        1H      ; minimum
        )

<FQDN>.     IN  NS  dns1.hostsharing.net.
<FQDN>.     IN  NS  dns2.hostsharing.net.
<FQDN>.     IN  NS  dns3.hostsharing.net.

<FQDN>.     IN  MX  30 mail1.hostsharing.net.
<FQDN>.     IN  MX  30 mail2.hostsharing.net.
<FQDN>.     IN  MX  30 mail3.hostsharing.net.

_imap._tcp.<FQDN>.          IN  SRV 1 0 143 <PAC>.hostsharing.net.
_imaps._tcp.<FQDN>.         IN  SRV 2 0 993 <PAC>.hostsharing.net.
_pop3._tcp.<FQDN>.          IN  SRV 3 0 110 <PAC>.hostsharing.net.
_pop3s._tcp.<FQDN>.         IN  SRV 4 0 995 <PAC>.hostsharing.net.
_submission._tcp.<FQDN>.    IN  SRV 0 0 587 <PAC>.hostsharing.net.

_autodiscover._tcp.<FQDN>.  IN  SRV 0 0 443 <FQDN>.
autodiscover.<FQDN>.        IN  A   0.0.0.0
autodiscover.<FQDN>.        IN  AAAA    \:\:

<FQDN>.     IN  A   <IPv4>
<FQDN>.     IN  AAAA    <IPv6>

<FQDN>.     IN  TXT "v=spf1 include:spf.hostsharing.net ?all"

*.<FQDN>.   IN  MX  30 mail1.hostsharing.net.
*.<FQDN>.   IN  MX  30 mail2.hostsharing.net.
*.<FQDN>.   IN  MX  30 mail3.hostsharing.net.

*.<FQDN>.   IN  A   <IPv4>
*.<FQDN>.   IN  AAAA    <IPv6>

*.<FQDN>.   IN  TXT "v=spf1 include:spf.hostsharing.net ?all"

Eigenes Zonefile

Es kann für jede aufgeschaltete Domain jeweils ein eigenes Zonefiles angelegt werden. In der Regel ist dies nur bei folgenden Anforderungen notwendig:

  • Webseiten zu einer Domain oder Sub-Domain bei einem anderen Hoster oder auf einem eigenen Server anbieten
  • Dienste (z.B. E-Mail) bei einem anderen Anbieter betreiben

In eigenen Zonefiles sollten Platzhalter verwendet werden. Diese Platzhalter ermöglichen das Ändern der DNS-Konfiguration seitens Hostsharing, ohne dass der Domain-Admin sein Zonefile anpassen muss. Das Zonefile für die Domain example.com wird als im Verzeichnis ~/doms/example.com/etc/ als Datei pri.example.com abgelegt und einige Minuten nach dem Speichern automatisch aktiv.

Das unsachgemäße Erstellen oder Fehler im eigenen Zonefile können zur Nichterreichbarkeit der Domain und zum Verlust von E-Mails führen!

Im Wiki der Mitglieder finden sich Beispiele für eigene Zonefiles.

Kontrolle der Änderungen

Durchgeführte Änderungen am Zonefile können mit Hilfe der Logdatei named.log überprüft werden:

$ tail -f /var/log/named/named.log 
$ tail -f /var/log/named/named.log | grep example.com

Nach einer erfolgreichen Übertragung der DNS Zone zu den drei DNS-Servern finden sich in der Log-Datei etwa die folgenden sechs Zeilen:

18-Dec-2019 12:06:27.997 info: client 83.223.95.201#53191 (example.com): transfer of 'example.com/IN': AXFR-style IXFR started (serial 1576667187)
18-Dec-2019 12:06:27.998 info: client 83.223.95.201#53191 (example.com): transfer of 'example.com/IN': AXFR-style IXFR ended
18-Dec-2019 12:06:28.517 info: client 83.223.78.230#37959 (example.com): transfer of 'example.com/IN': AXFR-style IXFR started (serial 1576667187)
18-Dec-2019 12:06:28.517 info: client 83.223.78.230#37959 (example.com): transfer of 'example.com/IN': AXFR-style IXFR ended
18-Dec-2019 12:06:28.568 info: client 176.9.242.51#40371 (example.com): transfer of 'example.com/IN': AXFR-style IXFR started (serial 1576667187)
18-Dec-2019 12:06:28.569 info: client 176.9.242.51#40371 (example.com): transfer of 'example.com/IN': AXFR-style IXFR ended

Zur Überprüfung von Änderungen am Zonefile kann zusätzlich die Seriennummer in den DNS-Servern mit der aktuellen Seriennummer im Zonefile verglichen werden:

$ dig -t SOA @dns1.hostsharing.net example.com 
$ cat /etc/bind/pri.example.com

Es findet sich jeweils die Seriennummer (im obigen Log-Auszug die '1576667187') im SOA Record.

Eigenes Zonefile deaktivieren

Im Verzeichnis ~/doms/example.com/etc/ das vorhandene Zonefile (pri.example.com) leeren (0 Bytes). Das leere Zonefile wird durch einen Robot gelöscht und es gilt das Standardzonefile.

HSAdmin

HSAdmin ist ein Werkzeug zur Verwaltung von Nutzern, E-Mail-Adressen, E-Mail-Aliases, Domains, Datenbanken und Datenbank-Nutzern. Die Bedienung erfolgt über ein Webfrontend, das im Abschnitt Einführung in HSAdmin vorgestellt wird.

In diesem Kapitel geht es um den HSAdmin-Client hsscript, der in der Konsole benutzt wird.

HSAdmin verfügt über folgende Module:

Die Module von HSAdmin
Modul Erläuterung
user Modul zur Nutzerverwaltung
mysqldb Modul zur Verwaltung von MySQL-Datenbanken
mysqluser Modul zur Verwaltung vom MySQL-Datenbanknutzern
postgresqldb Modul zur Verwaltung von PostgreSQL-Datenbanken
postgresqluser Modul zur Verwaltung von PostgreSQL-Datenbanknutzern
emailaddress Modul zur Verwaltung von E-Mail-Adressen
emailalias Modul zur Verwaltung von E-Mail-Aliasen
domain Modul zur Verwaltung von Domains in einem Web-Paket
q Modul zur Suche von Systemaufträgen von HSAdmin

Die HSAdmin-Module verfügen über folgenden Funktionen:

Die Funktionen von HSAdmin
Funktion Erläuterung
search suchen
add hinzufügen
update aktualisieren
remove löschen

Syntax

Die Funktionen von HSAdmin können über das Kommandozeilenprogramm hsscript aufgerufen werden, welches Befehle per Parameter, Dateiübergabe oder interaktiv entgegennimmt. Der Aufruf erfolgt nach folgender Syntax:

$ hsscript -u <Benutzer> -e <Befehl>...

Die folgenden Optionen können übergeben werden.

-u \--user

Benutzer, welcher zur Authentifizierung und Autorisierung verwendet werden soll, zum Beispiel xyz00.

-r \--runas

Benutzer, mit dessen Rechten der Befehl ausgeführt werden soll, zum Beispiel xzy00-doms.

-e \--expr

Der Befehl, der ausgeführt werden soll. Er setzt sich aus einer Reihe von Parametern zusammen.

Der Befehl hat folgende Syntax:

module.function({where:{field:'value',...}, set:{field:'value',...}}) 
Die Parameter
Parameter Erläuterung
module Modul, dessen Funktion aufgerufen werden soll (z.B. user oder mysqldb)
function Funktion, welche aufgerufen werden soll (search, add, update, remove)
where selektiert nach Wert eines oder mehrerer Felder
set setzt oder aktualisiert den Wert eines oder mehrerer Felder

Die Module und Funktionen werden in den folgenden Kapiteln erklärt.

-f \--file

Datei, aus welcher Befehle gelesen und ausgeführt werden sollen. Lesen Sie dazu den Abschnitt HSAdmin über Skripte steuern.

-i \--interactive

Das Programm startet im interaktiven Modus. Die Befehle können am Kommandozeilen-Prompt eingegeben werden.

Modul user

Funktionen

user.search

Suche Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten

user.add

Füge einen neuen Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

user.update

Aktualisiere einen Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.

user.remove

Lösche einen Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul user kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

user.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul user stehen folgende Felder zur Verfügung.

name

Benutzerkennung (z.B. xyz00-abc)

comment

Kommentar, in dem zum Beispiel die Funktion des Benutzers beschrieben werden kann

password

Das Passwort

shell

Die zugewiesene Shell (z.B. /bin/bash)

quota_softlimit

Das zugewiesene Quota in Megabyte

quote_hardlimit

Grenze der Grace Period, bis zu der Überschreitungen des Softlimit toleriert werden. Angabe in Megabyte

Beispiele

In einer interaktiven Sitzung wird mit folgendem Befehl der neue Benutzer xyz00-mustermann angelegt.

xyz00@hsadmin> user.add ({set:{name:'xyz00-mustermann',comment:'Max Mustermann',password:'!1?2-3aBc',shell:'/bin/bash'}})

Man kann alle Informationen zu einem Nutzer abfragen:

xyz00@hsadmin> user.search ({where:{name:'xyz00-mustermann'}})

Einstellungen können nachträglich verändert werden. Dafür wird der Befehl user.update benutzt. Im Befehlsausdruck wird zunächst mit where nach einem Datensatz gesucht, auf den mit set die Veränderung angewendet wird. Im ersten Beispiel wird für den Benutzer xyz00-mustermann ein neues Passwort gesetzt. Im zweiten Beispiel bekommt der Benutzer eine andere Shell zugewiesen und im dritten wird ein Quota gesetzt.

xyz00@hsadmin> user.update ({where:{name:'xyz00-mustermann'},set:{password:'neues-passwort'}})
xyz00@hsadmin> user.update ({where:{name:'xyz00-mustermann'},set:{shell:'/bin/zsh'}})
xyz00@hsadmin> user.update ({where:{name:'xyz00-mustermann'},set:{quota_softlimit:'50',quota_hardlimit:'75'}})

Natürlich können wir Benutzer mit Hilfe des Kommandozeilen-Tools auch wieder entfernen. Im folgenden Beispiel wird der Benutzer xyz00-mustermann mit dem Befehl user.remove gelöscht.

xyz00@hsadmin> user.remove ({where:{name:'xyz00-mustermann'}})

Modul domain

Funktionen

domain.search

Suche Domain nach den im Befehlsausdruck angegebenen Feldern und Werten

domain.add

Füge eine neue Domain nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

domain.update

Aktualisiere eine Domain nach den im Befehlsausdruck angegebenen Feldern und Werten.

domain.remove

Lösche eine Domain nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul domain kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

domain.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul domain stehen folgende Felder zur Verfügung.

name

Name einer Domain

user

Name des Domain-Admins

validsubdomainnames

leichtgewichtige Subdomains in diesem Virtual-Host des Webservers, gültige Werte: * für beliebige Subdomains oder eine kommaseparierte Liste: www,blog,other

greylisting

E-Mails werden verzögert durch den Mailserver angenommen, siehe Greylisting. Ist die Option deaktivert, werden E-Mails ohne Verzögerung angenommen.

multiviews

Der Webserver berücksichtigt Einstellungen im Browser beim Abruf einer Domain (z.B. eine bevorzugte Sprache). Die Option kann mit einer .htaccess-Datei für jedes Verzeichnis konfiguriert werden.

indexes

Der Webserver erzeugt für Verzeichnisse, die keine eigene Index-Datei enthalten, eine Liste mit den im Verzeichnis enthaltenen Dateien. Ist die Option deaktiviert, wird ein Fehler 303 ausgegeben. Die Option kann mit einer .htaccess-Datei für jedes Verzeichnis konfiguriert werden.

htdocsfallback

Der Webserver leitet auf die Hauptdomain, wenn keine Sub-Domain angelegt ist. Ist die Option deaktivert, wird ein Fehler 404 ausgegeben: Seite nicht gefunden.

includes

Der Webserver erkennt SSI-Komandos und -Dateien. Die Option kann mit einer .htaccess-Datei für jedes Verzeichnis konfiguriert werden.

backupmxforexternalmx

Der Paket-Hive wird als Weiterleitung (transport) beim Mail-In-Server eingetragen. Ist die Option aktiv, ist der Hostsharing-Mail-In-Server Backup-MX. Der eigentliche Mailserver befindet sich außerhalb der Infrastruktur von Hostsharing (z.B. anderer Provider, DSL-Anschluss mit fester IP)

letsencrypt

Es wird automatisch ein TLS Zertifikat für diese Domain und alle im Feld „validsubdomainnames” angegebenen Subdomains erzeugt

autoconfig

Eine Unterstützung für die Konfiguration von E-Mail-Programmen durch die Verfahren "Autoconfig" (Mozilla) und "Autodiscover" (Microsoft) wird für die Domain eingeschaltet

Die Option backupmxforexternalmx erfordert Änderungen am Zonefile einer Domain.

Beispiele

Mit dem folgenden Befehl schalten wir die Domain hs-example.de auf und ordnen Sie dem Domain-Admin xyz00-hsexample zu.

xyz00@hsadmin> domain.add({set:{name:'hs-example.de',user:'xyz00-hsexample'}})

Mit dem Befehl domain.search werden alle Informationen zu einer Domain angezeigt. Die gesuchte Domain wird mit dem Befehlsausdruck where ausgewählt.

xyz00@hsadmin> domain.search({where:{name:'hs-example.de'}})

Und mit dem Befehl domain.remove können wir eine Domain entfernen.

xyz00@hsadmin> domain.remove({where:{name:'hs-example.de'}})

Mit dem Befehl domain.update lassen sich die Einstellungen für eine Domain verändern. Bei einer Änderung der Domain-Optionen, wie im folgenden Beispiel, müssen immer alle Optionen angegeben werden, die gesetzt sein sollen, da der Befehl die bereits gesetzten Domain-Optionen komplett überschreibt.

xyz00@hsadmin> domain.update({where:{name:'hs-example.de'},set:{domainoptions:['htdocsfallback','indexes','greylisting','letsencrypt','autoconfig']}})

Modul mysqldb

Funktionen

mysqldb.search

Suche Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten

mysqldb.add

Füge eine neue Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

mysqldb.update

Aktualisiere eine Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten.

mysqldb.remove

Lösche eine Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul mysqldb kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

mysqldb.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul mysqldb stehen folgende Felder zur Verfügung.

name

Datenbankname (z.B. xyz00_abc)

owner

Datenbanknutzer (z.B. xyz00_owner)

encoding

Zeichensatz der Datenbank (Standard ist UTF-8)

Beispiele

Im ersten Beispiel erzeugen wir eine Datenbank mit dem Namen xyz00_abc und legen als Besitzer den Datenbanknutzer xyz00_owner fest.

xyz00@hsadmin> mysqldb.add ({set:{name:'xyz00_abc',owner:'xyz00_owner'}})

Bevor man Änderungen an einem Datensatz vornimmt, kann man sich alle Eigenschaften einer Datenbank mit dem Befehl mysqldb.search anzeigen lassen. Die gewünschte Datenbank wird mit dem Befehlsausdruck where ausgewählt.

xyz00@hsadmin> mysqldb.search ({where:{name:'xyz00_abc'}})

Und mit dem Befehl mysqldb.remove können Datenbanken gelöscht werden. Die gewünschte Datenbank wird erneut mit dem Befehlsausdruck where ausgewählt.

xyz00@hsadmin> mysqldb.remove ({where:{name:'xyz00_abc'}})

Modul mysqluser

Funktionen

mysqluser.search

Suche Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten

mysqluser.add

Füge einen neuen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

mysqluser.update

Aktualisiere einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.

`mysqluser.remove´

Lösche einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul mysqluser kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

mysqluser.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul mysqluser stehen folgende Felder zur Verfügung.

name

Name des Datenbank-Benutzers (z.B. xyz00_owner)

password

Passwort des Datenbank-Benutzers

Beispiele

Im ersten Beispiel fügen wir dem System den Datenbank-Benutzer xyz00_owner hinzu und geben ihm ein Passwort.

xyz00@hsadmin> mysqluser.add({set:{name:'xyz00_owner',password:'!1?2-3aBc'}})

In den folgenden beiden Beispielen lassen wir uns zunächst mit dem Befehl mysqluser.search die Informationen zu einem Benutzer anzeigen, den wir mit dem Befehlsausdruck where auswählen. Anschließend entfernen wir diesen Nutzer mit dem Befehl mysqluser.remove.

xyz00@hsadmin> mysqluser.search({where:{name:'xyz00_owner'}})
xyz00@hsadmin> mysqluser.remove({where:{name:'xyz00_owner'}})

Im letzten Beispiel aktualieren wir einen Benutzereintrag mit dem Befehl mysqluser.update. Der Benutzer wird mit where ausgesucht, anschließend bekommt er mit set ein neues Passwort.

xyz00@hsadmin> mysqluser.update({where:{name:'xyz00_owner'},set:{password:'neues-passwort'}})

Modul postgresqldb

Funktionen

postgresqldb.search

Suche Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten

postgresqldb.add

Füge eine neue Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

postgresqldb.update

Aktualisiere eine Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten.

postgresqldb.remove

Lösche eine Datenbank nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul postgresqldb kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

postgresqldb.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul postgresqldb stehen folgende Felder zur Verfügung.

name

Datenbankname (z.B. xyz00_abc)

owner

Datenbanknutzer (z.B. xyz00_owner)

encoding

Zeichensatz der Datenbank (Standard ist UTF-8)

Beispiele

Im ersten Beispiel erzeugen wir die Datenbank xyz00_abc und übergeben ihr als Besitzer den Datenbanknutzer xyz00_owner.

xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_abc',owner:'xyz00_owner'}})

Die den beiden folgenden Beispielen lassen wir uns zunächst mit postgresqldb.search Informationen zur Datenbank xyz00_abc anzeigen. Anschließend löschen wir sie mit postgresqldb.remove.

xyz00@hsadmin> postgresqldb.search({where:{name:'xyz00_abc'}})
xyz00@hsadmin> postgresqldb.remove({where:{name:'xyz00_abc'}})

Modul postgresqluser

Funktionen

postgresqluser.search

Suche Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten

postgresqluser.add

Füge einen neuen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

postgresqluser.update

Aktualisiere einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.

postgresqluser.remove

Lösche einen Datenbank-Benutzer nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul postgresqluser kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

postgresqluser.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul postgresqluser stehen folgende Felder zur Verfügung.

name

Name des Datenbank-Benutzers (z.B. xyz00_owner)

password

Passwort des Datenbank-Benutzers

Beispiele

Im ersten Beispiel fügen wir dem System den Datenbank-Benutzer xyz00_owner hinzu und geben ihm ein Passwort.

xyz00@hsadmin> postgresqluser.add ({set:{name:'xyz00_owner',password:'!1?2-3aBc'}})

Mit postgresqluser.search können wir die Eigenschaften eines Benutzers anzeigen. Der gewünschte Benutzer wird mit where ausgewählt.

xyz00@hsadmin> postgresqluser.search ({where:{name:'xyz00_owner'}})

Mit postgresqluser.update können Eigenschaften eines Benutzers verändert werden. Der gewünschte Benutzer wird mit where ausgewählt. Anschliend wird in unserem Beispiel mit set ein neues Passwort gesetzt.

xyz00@hsadmin> postgresqluser.update ({where:{name:'xyz00_owner'},set:{password:'neues-passwort'}})

Und zuletzt können Datenbank-Benutzer auch wieder gelöscht werden. Dazu benutzen wir den Befehl postgresqluser.remove. Der zu löschende Benutzer wird mit where ausgewählt.

xyz00@hsadmin> postgresqluser.remove ({where:{name:'xyz00_owner'}})

Modul emailaddress

Funktionen

emailaddress.search

Suche E-Mail-Adresse nach den im Befehlsausdruck angegebenen Feldern und Werten

emailaddress.add

Füge eine neue E-Mail-Adresse nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

emailaddress.update

Aktualisiere eine E-Mail-Adresse nach den im Befehlsausdruck angegebenen Feldern und Werten.

emailaddress.remove

Lösche eine E-Mail-Adresse nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul emailaddress kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

emailaddress.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul emailaddress stehen folgende Felder zur Verfügung.

domain

Name einer Domain

localpart

Bezeichnung für den lokalen Teil einer E-Mail-Adresse: der Teil vor @.

target

Ziel einer E-Mail-Adresse, mehrere Ziele werden durch Kommata getrennt

Beispiele

Mit dem folgenden Befehl erhalten Sie eine Liste aller E-Mail-Adressen der Domain hs-example.de.

xyz00@hsadmin> emailaddress.search({where:{domain:"hs-example.de"}})

Mit folgendem Befehl lässt sich eine neue E-Mail-Adresse einrichten und einem Postfach zuordnen:

xyz00@hsadmin> emailaddress.add ({set:{domain:'hs-example.de',localpart:'info',target:'xyz00-hs_example.de'}})

Das Programm gibt dann folgende Meldung als Quittierung des Befehls zurück:

[
   {
      admin:'xyz00-doms',
      domain:'hs-example.de',
      emailaddress:'info@hs-example.de',
      fulldomain:'hs-example.de',
      id:'88747',
      localpart:'info',
      pac:'xyz00',
      target:[
         'xyz00-hs_example.de'
      ]
   }
]

Wenn später einmal der Wunsch aufkommt, die eintreffenden E-Mails stattdessen an eine externe E-Mail-Adresse weiterzuleiten, kann man den Eintrag aktualisieren. Das Ziel (target) lässt sich entweder ändern:

xyz00@hsadmin> emailaddress.update ({where:{domain:'hs-example.de',localpart:'info'}, set:{target:'andere@mail.de'}})
[
   {
      admin:'xyz00-doms',
      domain:'hs-example.de',
      emailaddress:'info@hs-example.de',
      fulldomain:'hs-example.de',
      id:'88747',
      localpart:'info',
      pac:'xyz00',
      target:[
         'andere@mail.de'
      ]
   }
]

Oder man ergänzt die neue E-Mail-Adresse, indem man sie zusätzlich einfügt. Mehrere Ziele werden mit Kommata abgegrenzt.

xyz00@hsadmin> emailaddress.update ({where:{domain:'hs-example.de',localpart:'info'}, set:{target:'andere@mail.de,xzy00-hs_example.de'}})
[
   {
      admin:'xyz00-doms',
      domain:'hs-example.de',
      emailaddress:'info@hs-example.de',
      fulldomain:'hs-example.de',
      id:'88747',
      localpart:'info',
      pac:'xyz00',
      target:[
         'andere@mail.de',
         'xzy00-hs_example.de'
      ]
   }
]

Modul emailalias

Mit diesem Modul können Sie ein E-Mail-Alias setzen. Ein typischer Anwendungsfall wird im Abschnitt E-mail-Alias einrichten beschrieben.

Funktionen

emailalias.search

Suche E-Mail-Alias nach den im Befehlsausdruck angegebenen Feldern und Werten

emailalias.add

Füge eine neue E-Mail-Alias nach den im Befehlsausdruck angegebenen Feldern und Werten hinzu.

emailalias.update

Aktualisiere eine E-Mail-Alias nach den im Befehlsausdruck angegebenen Feldern und Werten.

emailalias.remove

Lösche eine E-Mail-Alias nach den im Befehlsausdruck angegebenen Feldern und Werten.

Editierbare Felder

Das HSAdmin-Modul emailalias kann entsprechend der folgenden Befehlssyntax von HSAdmin Felder setzen oder verändern:

emailalias.function({where:{field:'value',...}, set:{field:'value',...}})

Im Modul emailalias stehen folgende Felder zur Verfügung.

name

Name des E-Mail-Alias

target

Ziel einer E-Mail-Adresse; mehrere Ziele werden durch Kommata getrennt

Beispiele

Das folgende E-Mail-Alias überschreibt die Voreinstellung für den Paket-Admin xyz00. E-Mails an diesen Benutzer landen nicht mehr in seinem Postfach, sondern werden an die E-Mailadresse webmaster@hs-example.de weitergeleitet.

xyz00@hsadmin> emailalias.add ({set:{name:'xyz00',target:'webmaster@hs-example.de'}})

In dem nächsten beiden Beispielen wird zunächst nach der Konfiguration für das E-Mail-Alias xyz00 gesucht. Anschließend wird ein Postfach xyz00-mailbox zusätzlich zu der bereits eingetragenen E-Mail-Adresse hinzugefügt. Da das Programm die Felder komplett überschreibt, müssen alle Werte angegeben werden.

xyz00@hsadmin> emailalias.search ({where:{name:'xyz00'}})
xyz00@hsadmin> emailalias.update ({where:{name:'xyz00'},set:{target:'xyz00-mailbox,webmaster@hs-example.de'}})

Im letzten Beispiel wird das E-Mail-Alias wieder gelöscht, sodass E-Mails an den Paket-Admin wieder an sein Postfach ausgeliefert werden.

xyz00@hsadmin> emailalias.remove ({where:{name:'xyz00'}})

Modul q

Funktionen

q.search

Das HSAdmin-Modul hat nur die Funktion search. Hiermit ist die Ausgabe der bereits ausgeführten HSAdmin-Aktionen möglich. Die Ausgabe zeigt an, ob eine Aktion erfolgreich abgeschlossen werden konnte oder ob beim Ausrollen der Konfiguration auf den Server Fehler aufgetreten sind. Im Erfolgsfall wird als Status ›done‹ angezeigt. Wenn Fehler aufgetreten sind wird der Status ›error‹ ausgegeben. Daneben wird eine interne Fehlermeldung im Feld ›exception‹ angezeigt. Wenden Sie sich im Fehlerfall bitte an den Service.

Beispiele

$  q.search ({where:{user:'xyz00'}})

HSAdmin über Skripte steuern

Im Abschnitt Syntax wurde die Option -f erwähnt, die gesetzt werden kann, um HSAdmin eine Datei zu übergeben, in der sich die Befehle befinden. Die Option ermöglicht es, ohne großen Aufwand Skriptdateien zu pflegen, mit denen wiederkehrende Aufgaben bequem erledigt werden können. Dieses Kapitel zeigt, wie Sie die Anlage einer neuen Wordpress-Website mit Hilfe eines solchen Skripts vereinfachen können.

Bevor Sie die eigentliche Wordpress-Software installiert, müssen mehrere Schritte auf der Hostsharing-Plattform erledigt sein.

  1. Es existiert ein Domain-Admin bzw. es wird ein neuer Domain-Admin angelegt.
  2. Es wird eine Domain erstellt und dem Domain-Admin zugewiesen.
  3. Es wird ein Datenbank-Nutzer angelegt.
  4. Es wird eine Datenbank angelegt und dem Datenbank-Nutzer zugewiesen.

Mit der folgenden Skript-Datei kann man diese vier Schritte mit einem Befehl ausführen.

user.add ({set:{name:'xyz00-domains',comment:'Domain-Admin',password:'!1?2-3aBc',shell:'/bin/bash'}})
domain.add ({set:{name:'beispiel.de',user:'xyz00-domains'}})
mysqluser.add  ({set:{name:'xyz00_owner',password:'?2?3-4cVg'}})
mysqldb.add ({set:{name:'xyz00_abc',owner:'xyz00_owner'}})

In Zeile 1 wird der Domain-Admin erzeugt, in Zeile 2 die Domain beispiel.de angelegt, in Zeile 3 der Datenbank-Nutzer und in Zeile 4 die Datenbank. Es ist möglich, die Datei lesbarer zu formatieren, indem man jedem Key-Value-Paar eine eigene Zeile zuweist.

user.add ({set:{
name:'xyz00-domains',
comment:'Domain-Admin',
password:'!1?2-3aBc',
shell:'/bin/bash'
}})
domain.add ({set:{
name:'beispiel.de',
user:'xyz00-domains'
}})
mysqluser.add ({set:{
name:'xyz00_owner',
password:'?2?3-4cVg'
}})
mysqldb.add ({set:{
name:'xyz00_abc',
owner:'xyz00_owner'
}})

Wenn Sie die Datei unter dem Namen befehlsskript.txt im Verzeichnis des Paket-Admin speichern, können Sie alle Befehle mit einem HSAdmin-Aufruf abarbeiten:

xyz00@h50:~$ hsscript -f befehlsskript.txt

Wenn Sie beispielsweise häufig Wordpress-Websites installieren, können Sie für jede Website eine solche Befehlsdatei anlegen und unter einem sinnvollen Namen (z.B. wordpress-beispiel_de.txt) abspeichern.

Beachten Sie die richtige Reihenfolge

Bei der Anlage von Benutzern, Datenbanken und Domains ist die im Beispiel gezeigt Reihenfolge einzuhalten. Um eine Domain anzulegen, muss der Domain-Admin bereits existieren. Eine Datenbank kann nur erzeugt werden, wenn der Datenbank-Nutzer bereits angelegt ist.

Beim Löschen müssen Sie die Reihenfolge umkehren: Datenbank löschen, Datenbank-Nutzer löschen, Domain löschen, Domain-Admin löschen.

Noch bequemer ist es, die notwendigen Benutzer, Domains und Datenbanken mit Hilfe eines ausführlicheren JS-Skripts oder über die Python-API anzulegen.

HSAdmin mit Javascript ansprechen

Im Folgenden zeigen wir zwei JS-Skripts, die in der Regel im Verzeichnis des Paket-Admin mit dessen Benutzerrechten aufgerufen werden. Mit dem ersten Skript erstellen wir eine Domain und weisen ihr einen eigenen Domain-Admin zu, dessen Name aus dem Namen der Domain abgeleitet wird. Mit dem zweiten Skript erzeugen wir eine Datenbank und einen Datenbank-Nutzer, sodass wir unter der gewünschten Domain zum Beispiel eine PHP-Anwendung wie Wordpress einrichten können.

JS-Skript zur Anlage einer Domain

Ein Skript, um eine Domain mit einem gesonderten Domain-Admin anzulegen, könnte so aussehen:

#!/usr/local/bin/hsscript -f

createDomainAndDomainAdmin(arguments);

function pwGen() {
    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%&+!?=";
    var pwLength = 12;
    var randomstring = '';
    for (var i=0; i<pwLength; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        randomstring += chars.substring(rnum,rnum+1);
    }
    return randomstring;
}

function createDomainAndDomainAdmin(args) {
    var domainName = args[0];
    var userName = 'xyz00-' + args[0].replace("-","_");
    var randomPassword = pwGen();
    var createdUser = user.add({set:{name:userName,password:randomPassword,shell:'/bin/bash'}});
    var createdDomain = domain.add({set:{name:domainName,user:userName}});
    print("created domain " + createdDomain[0].name + " with domainadmin " + createdUser[0].name + " and password " + randomPassword);
}

Die Funktion pwGen() erzeugt ein achtstelliges Passwort aus einer Reihe von vorgegebenen Zeichen. Empfehlenswert sind längere Passworte. Die Funktion createDomainAndDomainAdmin(args) erzeugt die Domain und den Domain-Admin. Der Namen des Domain-Admin ergibt sich aus dem Namen der Domain. Bei einer Domain, die einen Bindestrich enthält, muss dieser durch einen Unterstrich ersetzt werden, da Benutzernamen nur einen Bindestrich enthalten dürfen.

Das Skript wird im Benutzerverzeichnis des Paket-Admin gespeichert und ausführbar gemacht:

xyz00@h50:~$ chmod u+x createdomainandadmin.js

Anschließend können Sie es folgendermaßen aufrufen:

xyz00@h50:~$ ./createdomainandadmin.js my-domain.de
created domain my-domain.de with domainadmin xyz00-my_domain.de and password slo%haY=

Wenn Sie alle Domains mit einem einzigen Domain-Admin verwalten, können Sie den Benutzernamen des Domain-Admin hart kodieren.

#!/usr/local/bin/hsscript -f

createDomainAndDomainAdmin(arguments);

function pwGen() {
       var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%&+!?=";
       var string_length = 12;
       var randomstring = '';
       for (var i=0; i<string_length; i++) {
                  var rnum = Math.floor(Math.random() * chars.length);
                  randomstring += chars.substring(rnum,rnum+1);
              }
       return randomstring;
}

function createDomainAndDomainAdmin(args) {
       var domainName = args[0];
       var userName = 'xyz00-doms';
       var randomPassword = pwGen();
       var createdUser = user.add({set:{name:userName,password:randomPassword,shell:'/bin/bash'}});
       var createdDomain = domain.add({set:{name:domainName,user:userName}});
       print("created domain " + createdDomain[0].name + " with domainadmin " + createdUser[0].name + " and password " + randomPassword);
JS-Skript zur Anlage einer Datenbank

Das Skript zur Anlage einer Datenbank und eines Datenbank-Nutzers sieht ähnlich aus.

#!/usr/local/bin/hsscript -f

createMySQLUserAndDB(arguments);

function pwGen() {
   var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%&+!?=";
   var pwLength = 18;
   var randomstring = '';
   for (var i=0; i<pwLength; i++) {
       var rnum = Math.floor(Math.random() * chars.length);
       randomstring += chars.substring(rnum,rnum+1);
   }
   return randomstring;
}

function createMySQLUserAndDB(args) {
   var userName = 'xyz00_' + args[0];
   var dbName = userName;
   var randomPassword = pwGen();
   var createdUser = mysqluser.add({set:{name:userName,password:randomPassword}});
   var createdDatabase = mysqldb.add({set:{name:dbName,owner:userName}});
   print("created user " + createdUser[0].name + " and database " + createdDatabase[0].name + " with password " + randomPassword);

Die Funktion createMySQLUserAndDB(args) erzeugt den Datenbank-Nutzer und die Datenbank. Da sich Datenbank und Datenbank-Nutzer nicht in die Quere kommen, haben sie der Einfachheit halber den gleichen Namen.

Beim Aufruf des Skripts muss eine Zeichenkette übergeben werden, die Bestandteil der Namen von Datenbank und Datenbank-Nutzer wird.

xyz00@h50:~$ ./createuseranddb.js my_domain_wordpress
created user and database xyz00_my_domain_wordpress with password 4fo=s3xY

Merken Sie sich die Passworte, da Sie diese später benötigen. Bei einer Datenbank-Anwendungen müssen Sie bei der Konfiguration den Datenbank-Benutzer und sein Passwort angeben.

Nutzung der Python-API

Sie können HSAdmin auch remote über die Python-API des Programms ansprechen. Das ermöglicht es Ihnen von einem entfernten Rechner aus HSAdmin zu bedienen. Um mit der Python-API zu arbeiten müssen Sie zunächst die Python-Bindings für HSAdmin installieren.

Installation von hs.admin.api

Wir installieren die Python-Bindings in einer virtuellen Python-Umgebung, sodass wir diese zunächst einrichten und aktivieren.

$ python3 -m venv /hsadmin
$ . /hsadmin/bin/activate

Anschließend klonen wir die Python-Bindings und installieren sie.

$ git clone https://dev.hostsharing.net//r/ansible/hs.admin.api.git
$ cd hs.admin.api
$ python setup.py install 

Nun steht uns das Modul mit dem Python-Bindings in der virtuellen Umgebung zur Verfügung, sodass wir es in einem Skript importieren können.

Python-Skript

Um die API in einem Skript nutzen zu können, müssen wir mit folgendem Code ein API-Objekt erzeugen.

from hs.admin.api import API

api = API(cas=dict(
    uri='https://login.hostsharing.net/cas/v1/tickets',
    service='https://config.hostsharing.net:443/hsar/backend'),
    credentials=dict(username='xyz00', password='sehr-geheim'),
    backends=[
        'https://config.hostsharing.net:443/hsar/xmlrpc/hsadmin',
        'https://config2.hostsharing.net:443/hsar/xmlrpc/hsadmin'])

api.user.add(set={'name': 'xyz00-domain.de', 'password': 'geheim', 'shell': '/bin/bash'})
api.domain.add(set={'name': 'domain.de', 'user': 'xyz00-domain.de'})

Nun ist es möglich, mit der üblichen Syntax HSAdmin im Skript anzusprechen.

Mit diesen beiden Befehlen legen wir beispielsweise einen Domain-Admin und eine neue Domain an.

api.user.add(set={'name': 'xyz00-domain.de', 'password': 'geheim', 'shell': '/bin/bash'})
api.domain.add(set={'name': 'domain.de', 'user': 'xyz00-domain.de'})

Eine Datenbank lässt sich folgendermaßen anlegen.

from hs.admin.api import API

api = API(cas=dict(
    uri='https://login.hostsharing.net/cas/v1/tickets',
    service='https://config.hostsharing.net:443/hsar/backend'),
    credentials=dict(username='xyz00', password='sehr-geheim'),
    backends=[
        'https://config.hostsharing.net:443/hsar/xmlrpc/hsadmin',
        'https://config2.hostsharing.net:443/hsar/xmlrpc/hsadmin'])

api.mysqluser.add(set={'name': 'xyz00_domain_de', 'password': 'geheim'})
api.mysqldb.add(set={'name': 'xyz00_domain_de', 'owner': 'xyz00_domain_de'})

Nun wollen wir diese Befehle in ein Skript einbauen, das noch einige andere nützliche Dinge für uns erledigt. Reseller und Webmaster, die viele Anwendungen betreuen, buchen häufig mehrere Pakete bei Hostsharing, sodass sie gerne ein Skript hätten, dem sie auch das Kürzel für das Paket übergeben können, in dem sie eine Domain mit Datenbank einrichten möchten. Außerdem wäre es hilfreich, wenn das Skript dafür sorgt, dass Benutzernamen und Datenbankenname immer nach einem einheitlichen Schema erzeugt werden, sodass die Orientierung leichter fällt. In unserem Beispielskript übergeben wir daher dem Skript drei Argumente:

  1. das Kürzel für das Paket
  2. den Domainnamen
  3. eine Projekt-ID

Die Projekt-ID darf nicht mehr als 10 Zeichen umfassen, da sie zusammen mit dem fünfstelligen Paketkürzel in den Namen für Datenbank und Datenbank-Nutzer verwendet wird. Diese dürfen aber nicht länger als 16 Zeichen sein. Als Schema für eine Projekt-ID kommt also beispielsweise eine Kombination aus einer Kundennummer und einer Abkürzung in Frage. Wir verwenden in unserem Beispiel dafür eine dreistellige Kundennummer und die Abkürzung wp für Wordpress. Die Elemente trennen wir mit dem Unterstrich, da nur dieser als Namensbestandteil erlaubt ist.

Wenn wir für den Kunden mit der Kundennummer 23 im Paket xyz00 eine Domain für einen Wordpress-Blog einrichten möchten, lautet der Aufruf des Skripts folgendermaßen:

$ python createall.py xyz00 hs-example.de 023_wp

Der Code des Skripts sieht so aus:

import random
import string
import sys
from hs.admin.api import API
from subprocess import check_output

paketadmin = sys.argv[1]
domainname = sys.argv[2]
projektid = sys.argv[3]

pw = check_output(["pass", "hostsharing/"+paketadmin]).decode("utf-8").strip("\n")

api = API(cas=dict(
    uri='https://login.hostsharing.net/cas/v1/tickets',
    service='https://config.hostsharing.net:443/hsar/backend'),
    credentials=dict(username=paketadmin, password=pw),
    backends=[
        'https://config.hostsharing.net:443/hsar/xmlrpc/hsadmin',
        'https://config2.hostsharing.net:443/hsar/xmlrpc/hsadmin'])

def pwGen(stringLength=12):
    """Function to generate a random password """

    password_characters = string.ascii_letters + string.digits
    return ''.join(random.choice(password_characters) for i in range(stringLength))

pw_dadmin = pwGen()
pw_dbuser = pwGen()
dadmin = paketadmin+'-'+domainname.replace("-", "_")
dbuser = paketadmin+'_'+projektid
dbname = paketadmin+'_'+projektid

api.user.add(set={'name': dadmin, 'password': pw_dadmin, 'shell': '/bin/bash'})
api.domain.add(set={'name': domainname, 'user': dadmin})
api.mysqluser.add(set={'name': dbuser, 'password': pw_dbuser})
api.mysqldb.add(set={'name': dbname, 'owner': dbuser})

print("Domainname:" +domainname)
print("Domain-Admin: " + dadmin + " mit dem Passwort:" +pw_dadmin)
print("Datenbank-Nutzer: " +dbuser + " Passwort:" +pw_dbuser)
print("Datenbankname: " +dbname)

In den ersten fünf Zeilen importieren wir einige Module bzw. Funktionen, die wir benötigen. In den Zeilen 7 bis 9 lesen wir die übergebenen Argumente aus und speichern die Werte in entsprechenden Variablen.

Um das API-Objekt zu erzeugen, benötigen wir das Passwort für den übergebenen Paket-Admin. Wir lesen in Zeile 11 das Passwort aus dem verschlüsselten Passwort-Tresor des Kommandozeilenprogramms pass aus und speichern es in der Variablen pw. Weitere Informationen zu dem Programm finden Sie auf der Website https://www.passwordstore.org/. Sie können natürlich andere Programme wählen, um ein Passwort aus einem Passwort-Tresor auszulesen. Falls Sie nur ein Paket bei Hostsharing verwalten, können Sie das Passwort auch direkt ins Skript eintragen. Aus Sicherheitsgründen sollten Sie dies möglichst vermeiden.

Anschließend erzeugt das Skript das API-Objekt, wobei es als Credentials den Namen des Paket-Admin und sein Passwort übergibt. Der Namen des Paket-Admin ist identisch mit dem Paket, in dem die Domain angelegt werden soll.

Danach wird ein Zufallsgenerator definiert, mit die Passworte erzeugt werden, die später benötigt werden. In Zeile 27 und 28 werden die Passworte für den Domain-Admin und den Datenbank-Nutzer erzeugt und in Variablen gespeichert. Direkt anschließend erzeugt das Skript aus den beim Aufruf übergebenen Werten die Namen für den Domain-Admin, den Datenbank-Nutzer und die Datenbank.

In den Zeilen 33 bis 36 werden der Domain-Admin, die Domain, den Datenbank-Nutzer und die Datenbank angelegt.

Und zum Schluss gibt das Skript alle Daten aus.

Idealerweise würde ein solches Skript die neuen Benutzernamen mit den jeweiligen Passworten in den Passwort-Tresor eintragen, sodass dies nicht mit der Hand erledigt werden muss.

HSAdmin-Webfrontend

HSAdmin verfügt über ein Webfrontend https://admin.hostsharing.net zur Verwaltung eines Web-Pakets.

Die Bedienung wurde im Abschnitt Einführung in HSAdmin beschrieben.

htaccess

Das Verhalten des Apache Webservers lässt sich durch .htaccess-Dateien im Verzeichnis einer Domain steuern. Die zentrale Konfiguration lässt sich damit für einzelne Verzeichnisse überschreiben. Eine .htaccess-Datei wirkt sich auf das Verzeichnis aus, in dem sie sich befindet, und auf alle Unterverzeichnisse. Konfigurationen, die es ermöglichen, dass der Webserver Rechte anderer User erhalten kann, sind dabei nicht erlaubt.

Bereiche einer Website mit Passwort schützen

Ein typischer Anwendungsfall ist der Schutz eines bestimmten Verzeichnisses mit einem Passwort. Dazu muss zunächst eine Passwort-Datei mit dem Namen .htpasswd im etc-Verzeichnis der Domain angelegt werden. Dies erfolgt mit dem Programm htpasswd.

xyz00-doms@h97:~$ cd ~/doms/hs-example.de/etc
xyz00-doms@h97:~$ htpasswd -c .htpasswd peter
New password: *****
Re-type new password: *****
xyz00-doms@h97:~$

Statt der Sternchen geben Sie das gewünschte Passwort ein. Es wird verschlüsselt gespeichert. Die Option -c wird nur bei der ersten Anlage der Passwort-Datei gesetzt. Wenn ein Passwort für einen zweiten Benutzer eingerichtet wird, muss htpasswd ohne die Option aufgerufen werden, da sonst die Datei komplett überschrieben würde und das Passwort für den ersten Benutzer verloren ginge.

xyz00-doms@h97:~$ cd ~/doms/hs-example.de/etc
xyz00-doms@h97:~$ htpasswd .htpasswd paula
New password: *****
Re-type new password: *****
xyz00-doms@h97:~$

Diese Passwort-Datei kann nun für beliebige Verzeichnisse der Domain genutzt werden. Um ein Verzeichnis mit einem Passwort zu schützen, legen Sie dazu einfach eine htaccess-Datei mit folgendem Inhalt in dem betreffenden Verzeichnis an.

order allow,deny
allow from all
require valid-user
Authname "Privater Bereich. Bitte melden Sie sich an."
Authtype Basic
AuthUserFile /home/doms/hs-example.de/etc/.htpasswd

Beim Aufruf des Bereichs im Webbrowser wird der Besucher aufgefordert, den Benutzernamen (in unserem Beispiel peter oder paula) sowie das jeweilige Passwort einzugeben.

Weiterleitungen (Redirects)

Ein anderer typischer Anwendungsfall sind Redirects. Weiterleitungen werden benötigt, wenn alte Inhalte verschoben werden, sodass sie unter einer neuen Webadresse erreichbar sind. Weiterleitungen verhindern, dass Links, die von anderen Webseiten auf den verschobenen Inhalt gesetzt wurden, ins Leere gehen. Dazu können Sie eine htaccess-Datei im obersten Verzeichnis anlegen, in dem Sie alle Weiterleitungen aufführen.

Redirect permanent /alte-url-1/ /neue-url-1/ 
Redirect permanent /alte-url-2/ /neue-url-2/
Redirect permanent /alte-url-3/ /neue-url-3/

Eigene 404-Datei festlegen

Wenn ein Benutzer auf Ihrer Website eine ungültige Webadresse aufruft, zeigt der Browser eine 404-Meldung an. Sie können diese Standardanzeige anpassen, indem Sie den Webserver anweisen, bei einem 404-Fehler eine besondere Webseite anzuzeigen.

ErrorDocument 403 /404.html

Weitere Möglichkeiten, das Verhalten des Webservers über htaccess-Dateien zu steuern, finden Sie in der Apache-Dokumentation. Eine deutschsprachige Anleitung und Beispielkonfigurationen finden Sie unter: https://wiki.selfhtml.org/wiki/Webserver/htaccess

PHP

PHP ist standardmäßig über FastCGI konfiguriert. In den Ordnern fastcgi und fastcgi-ssl unterhalb des Domainordners findet sich eine phpstub-Datei; der Webserver liefert php-Dateien mit den Rechten des Users aus.

Eigene PHP Konfiguration

Im Ordner fastcgi oder fastcgi-ssl wird die Datei php.ini angelegt. In dieser Datei werden die Änderungen gegenüber den Standardwerten eingetragen.

Eine Übersicht über die Standardwerte von PHP können unter /etc/php/7.4/cgi/php.ini eingesehen werden.

PHP Prozesse stoppen

Nach Änderungen an der php.ini müssen alle PHP-Prozesse gestoppt werden:

$ killall php -u $USER

phpstub

Die Datei phpstub ist standardmäßig vorhanden, alternativ kann sie aus dem Ordner /usr/local/src/phpstub wiederhergestellt werden.

Vorinstallierte PHP Version wechseln

Hostsharing bietet neben der vom Betriebssystem vorinstallierten Standardversion 7.4 auch PHP 7.0, 7.1, 7.2, und 7.3 an.

Um die Version zu wechseln, genügt es, den jeweiligen phpstub auszutauschen. Version 7.3 liegt unter /usr/local/src/phpstub/phpstub73; das Versionformat ist entsprechend /usr/local/src/phpstub/phpstubXX.

phpstub für PHP 7.3 kopieren

$ cp /usr/local/src/phpstub/phpstub73 ~/doms/example.com/fastcgi/
$ cp /usr/local/src/phpstub/phpstub73 ~/doms/example.com/fastcgi-ssl/

phpstub für PHP 7.3 aktivieren

In der jeweiligen .htaccess eines Ordners genügt es, die PHP Dateizuordnung zu überschreiben:

AddType application/x-httpd-php73 .php
Action application/x-httpd-php73 /fastcgi-bin/phpstub73

Damit wird für den aktuellen Ordner und alle Unterordner PHP 7.3 verwendet.

Auf die gleiche Weise können auch PHP 7.2, PHP 7.1 oder PHP 7.0 aktiviert werden.

Logging

Traffic

Im Web-Paket wird jeden Monat eine Traffic-Log-Datei für den erzeugten Traffic erzeugt, die den Verbrauch eines jeden Tages pro Zeile enthält. Der Traffic setzt sich aus HTTP-, FTP- und Mail-Traffic (POP3, IMAP) zusammen. Bei Überschreitung des gebuchten Traffics wird der Paket-Admin automatisch per E-Mail informiert.

Der Traffic für einzelne Benutzer innerhalb eines Pakets kann nicht beschränkt werden.

Traffic-Log-File

Der im Web-Paket erzeugte Traffic wird dem Paket-Admin unter /home/pacs/xyz00/var/traffic-iptables-YYYY-MM.log zugänglich gemacht. Das Logfile hat folgenden Aufbau:

Datum Paket Monatslimit Tageslimit Trafficsumme IP 1 Traffic 1 IP 2 Traffic 2
2020-01-01 xyz00 10240 341.333 89.367 83.223.79.125 89.367 0.000

Die Bedeutung der einzelnen Spalten:

Datum: Datum der Messung

Paket: Name des Web-Pakets

Monatslimit: Gebuchter Gesamttraffic pro Monat in Megabyte

Tageslimit: Tägliches Traffic-Kontingent bei gleichmäßigem Verbrauch in Megabyte

Trafficsumme: Gesamtsumme des angefallenen Traffics am angegebenen Tag in Megabyte

IP-Adresse 1: Primäre IP-Adresse des Web-Pakets

Traffic 1: Über die primäre IP-Adresse angefallener Traffic in Megabyte

IP-Adresse 2: Sekundäre IP-Adresse des Web-Pakets

Traffic 2: Über die sekundäre IP-Adresse angefallener Traffic in Megabyte

HTTP-Log

Das in kurzen Abständen aktualisierte Logfile web.log des Webservers steht im Paketverzeichnis /home/pacs/xyz00/var/ dem Paket-Admin zur Verfügung. Aus dem Logfile werden nach Ablauf des Tages einzelne Logfiles für alle abgerufenen Domains und Sub-Domains generiert und unter /home/pacs/xyz00/var/web-www.example.org-YYYYMMDD-HHMI.log.gz gespeichert. Diese Dateien werden 48 Tage archiviert und nach Ablauf dieser Frist automatisch gelöscht. Das Error-Logfile web.err des Webservers steht unter /home/pacs/xyz00/var dem Paket-Admin zur Verfügung.

Backup

Hostsharing führt nächtliche Sicherungen der Daten durch. In der Regel können jeweils mindestens die letzten 15 nächtlichen Datensicherungen wiederhergestellt werden.

In der Datensicherung enthalten sind:

  • die Paket-Konfiguration
  • die Dateien im Paket selbst, sofern diese nicht vom Paket-Admin explizit ausgeschlossen wurden
  • die zum Paket gehörigen Datenbanken
  • die zum Paket gehörigen eingegangenen E-Mails
  • die Logfiles

In der Datensicherung sind nicht enthalten:

  • ausgehende, aber noch nicht versandte E-Mails
  • eingehende, aber noch nicht im Postfach abgelegte E-Mails
  • Dateien in Verzeichnissen für temporäre Daten

Datenbanken

Unmittelbar vor Beginn der Sicherung der Daten des Dateisystems werden MySQL-, PostgreSQL-Datenbanken und crontab-Dateien in das Verzeichnis /home/pacs/xyz00/.bak/ gesichert. Diese Sicherungen fließen in die nachfolgende Dateisystemsicherung ein. Die Rücksicherung von Datenbanken erfolgt durch den Paket-Admin auf Basis der im Verzeichnis /home/pacs/xyz00/.bak/ abgelegten Datenbanksicherungen.

Rücksicherung

Für die Rücksicherung der Datenbestände ist ein Rücksicherungsauftrag für die betroffene Sicherungsdatei in Auftrag zu geben. Der Rücksicherungsauftrag erfolgt per E-Mail an und beinhaltet folgende Angaben:

  • das betreffende Webpaket,
  • den Pfad des rückzusichernden Verzeichnisses oder alternativ den Pfad und den Dateinamen der rückzusichernden Datei
  • sowie das Datum des angeforderten Sicherungslaufs.

Die Rücksicherung wird vom Service unter: /home/restore/YYY-MM-DD bereitgestellt.

Wartungsfenster

Es gibt Standard-Wartungsfenster von 1 bis 2 Uhr (früh) und von 4 bis 5 Uhr (spät). Hives/Server mit ungeraden Nummern (h01, h03, … h99) werden im Rahmen des frühen Wartungsfensters gewartet, Hives/Server mit geraden Nummern (h02, h04, … h98) werden im späten Wartungsfenster gewartet.

Im Fall von Managed Servern haben die Mitglieder folgende Wahlmöglichkeiten:

  • Tausch des Wartungsfensters früh gegen spät oder umgekehrt. Die Festlegung kann individuell je Managed Server getroffen werden. Dieser Service ist kostenfrei.

  • Vereinbarung individueller Wartungsfenster, Vorankündigungsfristen, Absprachen und Vorgehensweisen. Die Berechnung erfolgt dann abhängig vom konkreten Aufwand im Wartungsfall gemäß unseres gültigen Abrechnungssatzes.

    Mit dieser Änderung ermöglichen wir den Mitgliedern weitreichende Flexibilität und die Möglichkeit, individuelle Prozesse verbindlich festzulegen.

Selbstverständlich werden auch im Falle der kostenfreien Standardwartung angemessene Ankündigungsfristen eingehalten.

SSH-Hostkeys

Wenn Sie sich zum ersten Mal mit der Secure Shell (ssh) bei Hostsharing anmelden, fragt das Programm nach, ob Sie dem Hostkey des Servers vertrauen möchten. Das Hostsharing-System identifiziert sich Ihnen gegenüber mit dem Fingerabdruck des Hostkeys. Die Meldung sieht folgendermaßen aus:

$ ssh xyz00@xyz00.hostsharing.net
The authenticity of host 'xyz00.hostsharing.net (2a01:37:1000::53df:4fb1:0)' can't be established.
RSA key fingerprint is SHA256:rPqZO8FA+FQW/rQ1itbuNF9uWmBH82MSQp44fR1v6tQ.
Are you sure you want to continue connecting (yes/no)? 

In der zweiten Zeile der Meldung zeigt die Secure Shell den Fingerabdruck des Servers an: SHA256:rPqZO8FA+FQW/rQ1itbuNF9uWmBH82MSQp44fR1v6tQ Diesen können Sie mit dem in der folgenden Liste aufgeführten Fingerabdruck vergleichen, um sicherzugehen, dass Sie sich wirklich auf einem Server der Hostsharing eG anmelden. Wenn die Fingerabdrücke übereinstimmen, können Sie die Frage mit yes beantworten. Die Secure Shell setzt dann den Prozess des Einloggens fort und fragt nach dem Passwort für den angegebenen Benutzer.

SHA256:N1CtFnS1BwJrYoXUqZO61SM8RIpkfdhPOw+XVOaiYQo h01.hostsharing.net (RSA)
SHA256:HVgsVWEw6pxUFPGEIIuZOrd9bBiGQu0jVoq+sDFqpGk h02.hostsharing.net (RSA)
SHA256:bvMneyMq4dM0gCNtgVUfXAsh2JcWl0XXt4da6JI2wcI h03.hostsharing.net (RSA)
SHA256:SF8/6oeb6aNO0iOgfprrQ7E+IJaoEBw2nAArW9o1jF0 h04.hostsharing.net (RSA)
SHA256:oOarqh+jQBINNvFiFlg9Xvgf/kcT0LGfPvxnlZ685AA h05.hostsharing.net (RSA)
SHA256:r6gz+eduk6Fmj+UqCLbX8bN5VDZ6JZ8o9AXJsdOZBEQ h06.hostsharing.net (RSA)
SHA256:8/JolH0E37TGePP6vm92APo9klaXOBPkA1nM8C+SR+I h07.hostsharing.net (RSA)
SHA256:AOvcGrr+x496rN7GeKZUIBJdyhaCcWc8SoL0wBcHoR8 h08.hostsharing.net (RSA)

SHA256:YUntE5eqb6NSrZTY96i/B3C7dvWkoTyRjOdbonyXqKA h11.hostsharing.net (RSA)
SHA256:uADmSWGXZX0y+uUg/2UgMKgc9sOovg15KbZK2rAfnfY h12.hostsharing.net (RSA)
SHA256:YKe7xwXraKoUO5n+unZsMrbA4VlJX21tTaSq/1FenWc h13.hostsharing.net (RSA)
SHA256:QXVugsok7f+lz2p784LU4J/ad9/eTmxj2IyVAmPQ5f0 h14.hostsharing.net (RSA)
SHA256:zCth18agkjju4+qRsvJhOH2eYasjQsbrepTb6xUWNv4 h15.hostsharing.net (RSA)
SHA256:pDPLmEB7FZ2/diAVSW5Dyz4fDAk2ooht7lEojO0u6i8 h16.hostsharing.net (RSA)
SHA256:VmoYwYOovJfIaSCWAaw6ibvte69tZknzqwUCQbDtnbk h17.hostsharing.net (RSA)
SHA256:I3oYA4H8fobTTR4T8Td+3+uJXIZgfr9RNYzoRWsW3A8 h18.hostsharing.net (RSA)

SHA256:xh2Yy20Ksn4NaoE0c9qFQc7UffiFZwjE8LI2MqgCnu0 h20.hostsharing.net (RSA)
SHA256:fFpK8WhB4uT5kupdU3ZZzaedeUZUubReoEiZ1qTwib0 h21.hostsharing.net (RSA)
SHA256:bro6uRAAnLZnrvEr9D2Am7lnLChOsokACOHg+bL4wtg h22.hostsharing.net (RSA)
SHA256:pd3TSPdt/JJOEASMgqS09pOra7X4/W42so3MQ9DhLzY h23.hostsharing.net (RSA)
SHA256:0Xf3sWXjuNOsTmycGsnUOa6uDs6j2zg9bDVMKK4/K4k h24.hostsharing.net (RSA)

SHA256:gTLnnTDiiAPLzPZI8ZNQ8pwKBTqEkW2Hh7tS/UZgheE h30.hostsharing.net (RSA)
SHA256:g0aiLcfknMr+r1JsQj/A18odKbK3tZ8kN2YgkMdpU6g h31.hostsharing.net (RSA)
SHA256:Jsmjp/Pm/+2azIYhZddSJ9F5l8ROkMLSKadxtIF3ovs h32.hostsharing.net (RSA)
SHA256:t8dXxStA4IBaeeQLx/0RDWH2OdJGm0yjHyrZS8xGAzc h33.hostsharing.net (RSA)
SHA256:2KMOx41kEP1iVNQ7pjf9ff+CxQ3CnQ41bgb9tJIuuD4 h34.hostsharing.net (RSA)
SHA256:oD61B3ZGW+F776ppQy+GSKyAdYAdjqXo7aHPZZT+Cl4 h35.hostsharing.net (RSA)
SHA256:pcn07clyBQ93z4H9yyjpYVmcaP/tmL8dXXN8uUIxfZ0 h36.hostsharing.net (RSA)
SHA256:QJMaX7rUz+YHdjqutCP6LT/gWgPL14KtCHM47re5/As h37.hostsharing.net (RSA)
SHA256:gAW61QQv4dEyjY1V11YdWULD8tYOcRSOkxZbCNJJhU8 h38.hostsharing.net (RSA)
SHA256:z92YxH/cKI7+2yZnH1QH0b/wuaBOaVnUxlz2hsxZK0s h39.hostsharing.net (RSA)

SHA256:P24ABx/GFTMnYCUfzpnTRoObArjy13CT40o2e5/1tq8 h40.hostsharing.net (RSA)
SHA256:NDRW1c7gxS3GsGWkoSGd+g9ryu8atfYwYvvhbyetXj8 h41.hostsharing.net (RSA)
SHA256:IPbPxK+TDPhZKyNrmmQ4zuLA4SOwRh1Lqpbi74Lieg4 h42.hostsharing.net (RSA)
SHA256:xRAscjEwJd5fP3pW5yDh1FVhL5sAZYPCqdsdRzBjLQU h43.hostsharing.net (RSA)
SHA256:77phLJuhe7GQqFiZ9rRaAMABEPULJc7sr4efey+XIL8 h44.hostsharing.net (RSA)

SHA256:ues/X3zvkHY9D17zpcPyRiGyq/vmUhDJQK3ODqZj0hE h50.hostsharing.net (RSA)
SHA256:Z/jJ3t/ISdXmU7BCtxK+nXqYwVMK7GcuHrBaun9V83M h51.hostsharing.net (RSA)
SHA256:6OXalNTTqZ7RlStdoUx8WVWZuzHr46xbRX+XizsF9eM h52.hostsharing.net (RSA)
SHA256:E178kADy/6ef9l84goS+0XVNsyVp2XnHKBk/QjhiMms h54.hostsharing.net (RSA)
SHA256:YH4QNO7QLWKr3UTIX8A/5uZvI8zEPMTdoaok4QhtXCU h59.hostsharing.net (RSA)

SHA256:VQa9kcj80wxW/RyGkpAmjRKZU8IQzepNenGSkDOK4/o h60.hostsharing.net (RSA)
SHA256:VqzCGfUXG5PRoJztxla1NhQZo1Uo7osiwYQ37NvqfYk h61.hostsharing.net (RSA)
SHA256:OPfU11pHC3qtHyOegF4h3fvZNgI6wDhZQ5lQ3tZHWJg h62.hostsharing.net (RSA)
SHA256:k5m0KARxN1Xmf0NnV1h9ztWKzVBs7N7/dzgV75+sqRM h63.hostsharing.net (RSA)
SHA256:vA65yRKft1a6doum6jdLm+Up5u9YHlMmmFnZ4mSw4TU h64.hostsharing.net (RSA)
SHA256:fvpgXIQCYMk9RQaXcEvjUKf+EbSIMXu/rNm7DrDJP8E h67.hostsharing.net (RSA)
SHA256:2V1PLyWI8hGTtlODD33I2G4342Vw1pBwYuBSCiHkVv4 h68.hostsharing.net (RSA)

SHA256:qs/SSkPIH4WZak1/sFSD5XWrk+fJLQSBAz+mbbjp0Yg h70.hostsharing.net (RSA)
SHA256:b158PhXSeEPoVNTS9ifEjfs3ZU6FjksWLOQyBf+4vmA h71.hostsharing.net (RSA)
SHA256:LBc6PBLyz4Q20J7I8tzz1Vb7rcUhRr1Cm9pM+ru2D3E h72.hostsharing.net (RSA)
SHA256:5xMCpXiFyhP7SuqDqDRy9hm0Vw9usqH6f/5GkNA6SiA h73.hostsharing.net (RSA)
SHA256:c6ciBK7eciSilcs1e7tNMUA6xLiXiedRcV78brB6/hI h74.hostsharing.net (RSA)
SHA256:Qwix7tr1RcK8yppfG58KM9DMZO+LS+uZbKl2GSCob1I h75.hostsharing.net (RSA)
SHA256:JLo/6ezAxCmouKmtTu9vsZ276TjvotcYje9uwaKnNFU h76.hostsharing.net (RSA)
SHA256:tSg96I1l6JUP8yUPIzsy3bbMWvfNwwBGUaNf5vNGV0I h79.hostsharing.net (RSA)

SHA256:eVyAJ/wA/goxwNrwhbS8Qw0mAaj0X/+dx3k5TL6hSYU h80.hostsharing.net (RSA)
SHA256:JqpaMMumkFdqQF3YYdqPbnkXReBralBNzr2DcokPmec h81.hostsharing.net (RSA)
SHA256:C1niDEd/8JyaDoLBA3Ak34o7xce6o4lfuk+X6H0IAfE h82.hostsharing.net (RSA)
SHA256:JHPJTq4mqdzXktiE7aopf4PM0Ve4y2mDE0ReEDiTFkI h83.hostsharing.net (RSA)
SHA256:bNR5bPNQ7mMQ+uD+yRakH7pML5m6xf0yB8nVodPzA2Y h84.hostsharing.net (RSA)
SHA256:3LGhMnZNFP+ClkqsG8X1X7r149Rq9hK06d5GyN2i6WE h85.hostsharing.net (RSA)
SHA256:TXEFHfmEAkwQ+8H7BAYes+cVk7hiVL9wO4prQgO7Lg0 h86.hostsharing.net (RSA)
SHA256:1Cl+C6nVzg8kGjZYHJQJR0zJ4skjWbhywwbfBzb4/+A h87.hostsharing.net (RSA)
SHA256:OHAYV/r5EMdEEsO7n9ZfKq0To/kZ6g9IxQ17TI58yIE h88.hostsharing.net (RSA)
SHA256:buSwCu/6FDbEJfQfrvjKcDZGT+gZYMgg6THI7e26sPo h89.hostsharing.net (RSA)

SHA256:QZ6sHxJMueXFOYwbN/r4Awnx+Nl/VCJddZnlckFAJ+M h90.hostsharing.net (RSA)
SHA256:MnnyrqLYnY04iyM930hFSMDHP6+9pzcZOa4cQTtTCi0 h91.hostsharing.net (RSA)
SHA256:7QZ54GTzdmOBZ9Uhc09ljjPyhLIB3udUSkjtoTnGaEI h92.hostsharing.net (RSA)
SHA256:ifHlyDjiJ2OTJq5+M3YnP/nlXIQcKlQbRs51okAfWHI h93.hostsharing.net (RSA)
SHA256:8NFXZyUVkEgCQZV7+LV8m3HI5aOqwi7zdbg+2aHtnUQ h95.hostsharing.net (RSA)
SHA256:rPqZO8FA+FQW/rQ1itbuNF9uWmBH82MSQp44fR1v6tQ h97.hostsharing.net (RSA)
SHA256:N0iSQTm3AFAhdgQ4OhSptQ0vhuURPUyAt33L72ZeLM8 h98.hostsharing.net (RSA)

Den Namen des Servers, auf dem Ihr Web-Paket liegt, erfahren Sie in HSAdmin. Gehen Sie dazu in den Bereich Web-Paket, wählen Sie Ihr Web-Paket aus (in unserem Beispiel xyz00). Es öffnet sich rechts der Reiter Web-Paket und es werden Informationen zu Ihrem Paket angezeigt. In der Zeile Server/Hive finden Sie die Bezeichnung des Servers, auf dem Ihr Webpaket sich befindet.

Informationen über das Web-Paket.

In unserem Beispiel müssten Sie den Fingerabdruck von h97.hostsharing.net mit dem von der Secure Shell angezeigten vergleichen.

Managed Operations Platform

In diesem Kapitel beschreiben wir Komponenten der Managed Operations Platform.

Rechenzentren

Berlin, primärer Standort

Die Hostsharing eG betreibt ihre Community Cloud im Berlin 1 Data Center von NTT Global Data Centers. Das Rechenzentrum ist nach ISO 9001, ISO 27001 und ISO 50001 zertifiziert.

Wachschutz

Das Rechenzentrum wird durch ein 7-stufiges Sicherheitssystem vor unbefugtem Zutritt geschützt. Wachschutz und Sicherheitspersonal sind 24 Stunden am Tag anwesend, an 365 Tagen im Jahr.

Betriebssicherheit

Ebenfalls rund um die Uhr an sieben Tagen in der Woche vor Ort ist kompetentes Betriebspersonal, das die ausfallkritische Infrastruktur überwacht. Bei einer Störung kann es sofort eingreifen, sodass Ausfälle verhindert und maximale Verfügbarkeit gewährleistet ist.

Das Rechenzentrum bietet standardmäßig Tier 3. Auf Anfrage kann Hostsharing Tier 4 gewährleisten.

Georedundanz

Das Berlin 1 Data Center ist eins von 160 Rechenzentren von NTT in über 20 Ländern. Auf Anfrage können mit dem Rechenzentrumsbetreiber georedundante Lösungen realisiert werden.

Berlin, sekundärer Standort

Hostsharing erstellt jeden Tag eine Datensicherung (Backup) in einem zweiten, entfernten Rechenzentrum. Es ist nach ISO/IEC 27001:2013 zertifiziert und wird von der Firma I/P/B Internet Provider in Berlin GmbH betrieben.

Netze

Separierte Netzwerke

Die Aufteilung in private, abgeschottete Netze (VLANs) zwischen den Managed Servern eines Nutzers erlaubt effiziente und sichere Verbindungen.

Dabei wird zwischen den folgenden Netzen unterschieden, die nicht nur durch VLANs, sondern zusätzlich durch Verkabelung und separate Switches oder Router getrennt sind:

Frontend-Netzwerk

Dieses Netzwerk ist für allgemeine Anfragen gedacht. Die Firewall erlaubt aktuell den Zugang zu allen Adressen in diesem Netzwerk. Mittelfristig ist geplant, nur beabsichtigt belegte Ports freizugeben.

Server-Netzwerk

Physikalisch getrenntes Netzwerk zur Kommunikation der Anwendungen untereinander. In diesem Netzwerk lassen sich VLANs aufschalten, um den Traffic zwischen verschiedenen Anwendungskomponenten sicher übertragen zu können. Darüberhinaus können auch verschiedene Traffic-Arten einer Anwendung separiert werden, so z.B. die Verbindung einer Anwendung zur Datenbank von derjenigen zu einem Cache oder Load-Balancer.

Speichernetzwerk

Dieses Netzwerk wird verwendet für Storage-Traffic. Es basiert auf dedizierten Punkt-zu-Punkt-Verkabelungen, die von außen nicht erreichbar sind. Das Netzwerk nutzt private IPv4-Adressen und ist nicht nur von außen nicht erreichbar, sondern auch nur zugänglich für die Backup-Server, nicht jedoch für die Managed Server.

Management-Netzwerk

Dieses physikalische Netzwerk wird verwendet für den Zugang zu IPMI-Controllern (Intelligent Platform Management Interface Controller), RAC (Remote Access Controller), Switches und Routern. Es verwendet private IPv4-Adressen, die von außen nicht erreichbar sind. Es wird auch noch verfügbar sein, wenn Probleme in den anderen Netzen auftauchen.

Redundanz

Hostsharing hält Hardware und aktive Netzwerkkomponenten, welche für den Produktiv-Betrieb erforderlich sind, redundant vor. Entsprechendes gilt für die Netzwerk- und Stromverkabelung.

Auch die Stromversorgung und Peerings mit den Carrieren sind redundant ausgelegt, letztere sogar mehrfach. So hat das Versagen einer einzelnen Komponente – abgesehen von Umschaltzeiten – keine Auswirkungen auf den Produktivbetrieb.

Replikation

Hostsharing repliziert mit Hilfe der Software DRBD die Festplatteninhalte aller Produktivsysteme in Echtzeit auf ein Standby-System (RAID 1 über das Netzwerk).

Auf diese Weise stellt Hostsharing sicher, dass im Fall eines Hardwareschadens der Betrieb mit allen persistent gespeicherten Daten unverzüglich fortgesetzt werden kann, ohne dass durch das Einspielen des Backups Datenänderungen, die sich in der Zwischenzeit ergeben haben - etwa eingegangene E-Mails oder Datenbanktransaktionen - verloren gehen.

Monitoring

Es werden folgende Dienste/Services/Kenngrößen überwacht:

  • HTTP (Webserver)
  • Mailsystem (SMTP, POP3, IMAP)
  • Datenbanken (MySQL, PostgreSQL)
  • Serverlast
  • Festplatten (Speicherplatzauslastung)

Unter https://status.hostsharing.net können der Status und evtl. Meldungen der Hostmaster nachgelesen werden.

Backup

Hostsharing führt täglich Sicherungen der Daten der Produktivsysteme durch. Die Datensicherungen werden in einem vom Produktivrechenzentrum rund 5 km entfernten Rechenzentrum aufbewahrt. Die Datenübertragung zwischen den Standorten erfolgt ssh-verschlüsselt über eigene Leitungen. Die Backups jedes Produktivsystems werden separat archiviert und können nur von diesem System zur Rücksicherung angefordert werden. Ferner wird gewährleistet, dass Backups nicht nachträglich kompromittiert werden können.

In der Regel werden mindestens 15 Backups vorgehalten.

Entdecken Sie die Cooperative Community Cloud

Hochverfügbarkeit, Datenschutz, Mitbestimmung: Seit über 20 Jahren verschafft die Hostsharing eG ihren Mitgliedern einzigartige Vorteile. Profitieren auch Sie!

Beratungstermin vereinbaren Factsheet herunterladen