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.
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).

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.

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).

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.

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.

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

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).

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
.

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
.

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:
- Die Domain im Web-Paket aufschalten
- 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.

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).

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).

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 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.
- Die Domain im Domainbestellsystem löschen
- 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 aufhttps://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 alsDocumentRoot
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 aufhttp://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

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

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
.

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.

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).

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).

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 abuse@hs-example.de
- 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.

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.

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 peter@mustermann.de, eingetragen.

Liste der angelegten E-Mail-Adressen:

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).

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.

Sie können eine E-Mail-Adresse angeben (siehe Abb. 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.

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).

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:
- Zunächst den Datenbanknutzer anlegen, den Verwalter der jeweiligen Datenbank
- 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.

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

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
.

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.

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).

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: pm@hs-example.de
- 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.

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.

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‹

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

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.

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

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.

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.

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ü.

- /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 mitssh
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
undsftp
. 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:
- Leistungsumfang Managed Webspace
- 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:
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:
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:
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:
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.
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.
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:
- Sichern aller Daten im Ordner
doms/example.de
des alten Domain-Admin - Löschen der Domain in HSAdmin
- Neuanlage eines neuen Domain-Admin in HSAdmin
- Neuanlage der Domain in HSAdmin
- 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.
- Sichern aller Daten im Ordner
doms/example.de
des alten Domain-Admin im alten Web-Paket - Löschen der Domain
example.de
in HSAdmin im alten Web-Paket - Neuanlage eines neuen Domain-Admin im neuen Web-Paket
- Neuanlage der Domain
example.de
im neuen Web-Paket - 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 service@hostsharing.net. 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:
- Leichtgewichtige Subdomains
- 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 anhs-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.
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:
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:
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:
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
undAUTODISCOVER_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:
Datenbank | Hostnamen | Port |
---|---|---|
MySQL | localhost | 3306 |
PostgreSQL | localhost | 5432 |
Datenbank-Webfrontend
Für angelegte Datenbanken stehen folgende Webfrontends zur Verfügung:
Für MySQL: phpMyAdmin.
Für PostgreSQL: phpPgAdmin.
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 service@hostsharing.net 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:

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
.

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.
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.
Starten wir mit cgi-bin?
Ja: Das Verzeichnis
cgi-bin
wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.Nein: Weiter zu Frage 2
Starten wir mit fastcgi?
Ja: Das Verzeichnis
fastcgi
wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.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.
Gibt es eine passende Sub-Domain?
Ja: Das Verzeichnis
subs
wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.Nein: Weiter zu Frage 4
Ist das Verzeichnis
htdocs
als Fallback konfiguriert?Ja: Das Verzeichnis
htdocs
wird zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.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.
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.
Starten wir mit cgi-ssl?
Ja: Das Verzeichnis
cgi-ssl
wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.Nein: Weiter zu Frage 2
Starten wir mit fastcgi-ssl?
Ja: Das Verzeichnis
fastcgi-ssl
wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.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.
Gibt es eine passende Sub-Domain?
Ja: Das Verzeichnis
subs-ssl
wird zum Wurzelverzeichnis und eine passende Datei daraus wird ausgeliefert.Nein: Weiter zu Frage 4
Ist das Verzeichnis
htdocs-ssl
als Fallback konfiguriert?Ja: Das Verzeichnis
htdocs-ssl
wird zum Wurzelverzeichnis und eine passende Datei daraus ausgeliefert.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:
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:
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',...}})
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.
- Es existiert ein Domain-Admin bzw. es wird ein neuer Domain-Admin angelegt.
- Es wird eine Domain erstellt und dem Domain-Admin zugewiesen.
- Es wird ein Datenbank-Nutzer angelegt.
- 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(cas=dict(
api ='https://login.hostsharing.net/cas/v1/tickets',
uri='https://config.hostsharing.net:443/hsar/backend'),
service=dict(username='xyz00', password='sehr-geheim'),
credentials=[
backends'https://config.hostsharing.net:443/hsar/xmlrpc/hsadmin',
'https://config2.hostsharing.net:443/hsar/xmlrpc/hsadmin'])
set={'name': 'xyz00-domain.de', 'password': 'geheim', 'shell': '/bin/bash'})
api.user.add(set={'name': 'domain.de', 'user': 'xyz00-domain.de'}) api.domain.add(
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.
set={'name': 'xyz00-domain.de', 'password': 'geheim', 'shell': '/bin/bash'})
api.user.add(set={'name': 'domain.de', 'user': 'xyz00-domain.de'}) api.domain.add(
Eine Datenbank lässt sich folgendermaßen anlegen.
from hs.admin.api import API
= API(cas=dict(
api ='https://login.hostsharing.net/cas/v1/tickets',
uri='https://config.hostsharing.net:443/hsar/backend'),
service=dict(username='xyz00', password='sehr-geheim'),
credentials=[
backends'https://config.hostsharing.net:443/hsar/xmlrpc/hsadmin',
'https://config2.hostsharing.net:443/hsar/xmlrpc/hsadmin'])
set={'name': 'xyz00_domain_de', 'password': 'geheim'})
api.mysqluser.add(set={'name': 'xyz00_domain_de', 'owner': 'xyz00_domain_de'}) api.mysqldb.add(
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:
- das Kürzel für das Paket
- den Domainnamen
- 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
= sys.argv[1]
paketadmin = sys.argv[2]
domainname = sys.argv[3]
projektid
= check_output(["pass", "hostsharing/"+paketadmin]).decode("utf-8").strip("\n")
pw
= API(cas=dict(
api ='https://login.hostsharing.net/cas/v1/tickets',
uri='https://config.hostsharing.net:443/hsar/backend'),
service=dict(username=paketadmin, password=pw),
credentials=[
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 """
= string.ascii_letters + string.digits
password_characters return ''.join(random.choice(password_characters) for i in range(stringLength))
= pwGen()
pw_dadmin = pwGen()
pw_dbuser = paketadmin+'-'+domainname.replace("-", "_")
dadmin = paketadmin+'_'+projektid
dbuser = paketadmin+'_'+projektid
dbname
set={'name': dadmin, 'password': pw_dadmin, 'shell': '/bin/bash'})
api.user.add(set={'name': domainname, 'user': dadmin})
api.domain.add(set={'name': dbuser, 'password': pw_dbuser})
api.mysqluser.add(set={'name': dbname, 'owner': dbuser})
api.mysqldb.add(
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 service@hostsharing.net 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.

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.