Linux-Server-Hosting

Das ZDV ermöglicht den Betrieb eigener und selbst-verwalteter vir­tueller Server. Es berät bei der Auswahl der für den jeweiligen Server benötigten Ressourcen, um einen sicheren und effizienten Betrieb zu gewährleisten.
Dieses Angebot gilt für Fachbereiche, Institute, Arbeitsgruppen und andere Einrichtungen der Universität.

Voraussetzungen

Es muss mindestens eine Person benannt werden, die über ausreichende Kenntnisse in der Administration eines Linux-Servers verfügt.

Dienstleistungen des ZDV

  • Erstellen des virtuellen Servers.
  • Zuweisung der benötigten Ressourcen.
  • Installation des Betriebssystems (Debian).
  • Eintrag in das DNS.
  • Das Verteilen von öffentlichen SSH Schlüsseln.
  • Einbinden des Servers in die Infrastruktur des ZDV (Backup, Systemüberwachung, Mail).
  • Automatische Installation von Sicherheitsupdates für das Betriebssystems.
    (❗❗Dies beinhaltet keine Updates für Programme die von Administrator installiert worden sind.❗❗).
  • Beratung und Hilfe bei Problemen.

Verantwortlichkeit der betreibenden Einrichtung

Da die betreibende Einrichtung bzw. die von ihr dafür benannte Administration uneingeschränkten Zugriff auf das System hat, ist sie für den sicheren Betrieb des Systems verantwortlich. Hierzu gehört, dass sie sich regelmäßig über Sicherheitslücken informiert und bei deren Auftreten entsprechende Maßnahmen ergreift.

Im Falle nicht geschlossener kritischer Sicherheitslücken, einer Kompromittierung des Systems oder einer Gefährdung weiterer Systeme behält sich das ZDV das Recht vor, das System umgehend zu sperren, bzw. herunterzufahren.

Einschränkungen

Die virtuellen Server sind nicht geeignet für dauerhaft rechenintensive Aufgaben, wie Simulationen oder Auswertungen.

Ansprechpartner für die Einrichtung eines Linux-Servers

Wenn Sie einen Linux-Server eingerichtet bekommen möchten, wenden Sie sich bitte per Mail an: linux@zdv.uni-mainz.de.
Zur schnelleren und einfacheren Bearbeitung versuchen Sie bitte, folgende Fragen bereits zu beantworten:

  • Gewünschter Hostname
  • Hardware-Anforderungen:
    • 2 CPUs, 2 GB RAM, 40 GB Speicherplatz
    • Wird zusätzlicher Speicherplatz für Daten benötigt?
  • Netzwerk-Anforderungen:
    • Erreichbarkeit aus dem Internet benötigt?
    • E-Mail-Versand an beliebige Adressen nötig?

Anhang: Öffentlicher Teil des SSH-Schlüssels des Ansprechpartners

Weitere Informationen

Um einen Missbrauch des Mailsystems der Universität zu verhindern, ist der Versand von Mailnachrichten an der Universität Mainz üblicherweise nur nach einer vorherigen Anmeldung möglich, wie es bei einem Mailprogramm wie Outlook oder Thunderbird der Fall ist.

Hierdurch kann das Mailsystem des ZDV zuverlässig zwischen einer berechtigten Nutzung und einem Missbrauch unterscheiden und z.B. dafür sorgen, dass niemand außer Ihnen Nachrichten mit Ihrer Mailadresse versendet.

Erfolgt der Mailversand aber direkt aus einer Fachanwendung auf ihrem Server, besteht diese Möglichkeit häufig nicht. Um dennoch Mailnachrichten aus Anwendungen versenden zu können, wurde ein Mailproxy eingerichtet.

Tragen Sie bitte folgende Angaben in Ihre Fachanwendung oder Ihr Mailprogramm ein:
Mail- oder SMTP-Server: mailproxy.zdv.uni-mainz.de
Port: 25
Verschlüsselung: Optional
Authentifizierung (Name und Passwort): Nicht notwendig

Die e-Mail wird an den Proxy-Mailserver der Uni gesendet, dieser entscheidet dann, ob eine Berechtigung besteht, dass Ihr Server eine solche e-Mail versenden darf.
Um einen Mailversand zu erlauben, muss eine Regel für Ihre Fachanwendung erstellt werden.

Dabei ist es wichtig, an welche Empfänger eine e-Mail versendet werden soll.

Prinzipiell ist der Versand an beliebige Adressen möglich, aber es gibt folgende Einschränkungen:

  • Ein Versand mit einer persönlichen Absenderadresse ist nicht möglich.
  • Wenn auf die Mailnachrichten geantwortet werden soll, muss die Absenderadresse eine gültige Funktionsadresse, wie z.B. info@uni-mainz.de sein.
  • Wenn nicht auf die Mailnachrichten geantwortet werden soll, kann die Absenderadresse auch die Form noreply@uni-mainz.de haben.
  • Sollen Nachrichten an Adressen außerhalb der Universität Mainz versandt werden, *muss* der globale Teil der Adresse (d.h. »uni-mainz.de‹ für die Adresse ›info@uni-mainz.de‹) auch außerhalb der Universität bekannt sein, da sonst die Nachricht von den externen Mailservern nicht angenommen wird. Aus diesem Grund können nur universitätsintern bekannte Adressen, wie info@server.fachbereich.uni-mainz.de i.d.R. nicht verwendet werden.

Es ist möglich, für jeden Server beliebig viele Regeln zu erstellen. Wenn Sie dem ZDV die entsprechenden Angaben mitteilen, erstellen wir gerne die für Ihr System notwendigen Regeln.
Wir benötigen dafür:

  • Den Namen ihres Servers
  • Die Absenderadresse
  • Die Empfangsadresse

Hier einige Beispiele:

System: interner-server.zdv.uni-mainz.de

Absenderadresse: info@uni-mainz.de
Emmpfangsadressen: Beliebig, weltweit

Absendeadresse: news@zdv.uni-mainz.de
Empfangsdadressen: nur Uni Mainz

Absendeadresse: status@zdv.uni-mainz.de
Empfangsdadressen: postmaster@uni-mainz.de

Um eine Regel für ihren Server zu erstellen senden Sie eine eMail mit dem Betreff "Mailproxy" an: linux@uni-mainz.de

Um die Sicherheit der Server an der Server der Universität zu erhöhen, ist es den Servern in der Standardeinstellung nicht möglich, eine Verbindung zum Internet aufzubauen.

Falls Ihr Server die Eigenschaft benötigt, eine Verbindung zum Internet aufzubauen, muss eine Regel für Ihren Server angelegt werden. Diese Regeln werden auf dem Webproxy der Universität eingerichtet.
Ihr Server sendet dann eine Anfrage an den Proxy. Dieser prüft dann anhand der eingestellten Regeln, ob diese Anfrage zulässig ist oder nicht.

Einrichten des Proxy auf dem Server

Um den Proxy in Ihrem System einzurichten fügen sie Folgende Zeilen in die /etc/enviroments ein.

http_proxy=http://webproxy.zdv.uni-mainz.de:3128
https_proxy=http://webproxy.zdv.uni-mainz.de:3128
no_proxy=localhost,0.0.0.0,127.0.0.1,127.0.0.0/12,.zdv.uni-mainz.de,.uni-mainz.de,zdv.net,rlp.net,*.zdv.uni-mainz.de,*.uni-mainz.de,*.zdv.net,*.rlp.net,10.94.0.0/12,10.96.0.0/12
HTTP_PROXY=http://webproxy.zdv.uni-mainz.de:3128
HTTPS_PROXY=http://webproxy.zdv.uni-mainz.de:3128
NO_PROXY=localhost,0.0.0.0,127.0.0.1,127.0.0.0/12,.zdv.uni-mainz.de,.uni-mainz.de,zdv.net,rlp.net,*.zdv.uni-mainz.de,*.uni-mainz.de,*.zdv.net,*.rlp.net,10.94.0.0/12,10.96.0.0/12

Hinzufügen von Regeln

Um eine Regel hinzuzufügen, schicken Sie bitte eine e-Mail mit dem Betreff webproxy an: linux@uni-mainz.de.

Geben Sie an, welche Domains Ihr Server ansprechen soll z.B. "unterwebseite.webseite.de" oder "*webseite.de".

CFEngine ist ein Programm, um eine Vielzahl von Computern von einem zentralen Server aus zu verwalten. So muss nicht jeder Computer von Hand konfiguriert werden.
CFEngine ist auf dem ZDV Linux und auf einem virtuellen Server installiert und eingerichtet.
CFEngine besteht aus 2 Komponenten.

  1. Einem Client, der auf dem lokalen Computer läuft und Änderungen am System vornimmt.
  2. Einem Server, der dem lokalen Client vorgibt, was für Änderungen vorgenommen werden sollen.

Die Änderungen auf dem lokalen Computer bestehen aus dem Erstellen, Löschen oder Ändern von Dateien.

Da auf verschiedenen Computern unterschiedliche Änderungen vorgenommen werden müssen, z.B. verschiedene Distributionen, Server oder Desktop, werden jedem Computer verschiedene Klassen zugeordnet.
Der Server gibt dem Client die Anweisung, eine Änderung für eine bestimmte Klasse durchzuführen. Der Client überprüft die Klasse des Computers mit der Anweisung des Servers und nimmt bei einer Übereinstimmung eine Änderung vor.
Dabei kann es vorkommen, dass Einstellungen, die manuell am Computer durchgeführt worden sind, von CFEngine wieder überschrieben werden.


Von mir benötigte Einstellungen werden von CFEngine überschrieben

Wenn von Ihnen vorgenommene Änderungen von CFEngine überschrieben werden, können Ausnahmen für Ihre Computer hinzugefügt werden.
Wenn Sie eine Ausnahme benötigen, senden Sie eine e-Mail an unix@uni-mainz.de mit dem Betreff "CFEngine". Wir werden dann mit Ihnen zusammenarbeiten, um eine Ausnahme zu erstellen.

Welche Dateien werden von CFEngine geändert

Die benötigten Konfigurationen werden vom ZDV aktuell gehalten und an neue Anforderungen angepasst. Auch sind auf einem Desktop andere Konfigurationen notwendig, als auf einem Server.
Daher wird hier beschrieben, wie man die aktuellen Änderungen von CFEngine auslesen kann.
Dazu muss man wissen, in welcher Klasse sich der Computer befindet und welche Änderungen für diese Klasse vorgenommen werden.

In welchen Klassen ist mein Computer?

Um zu erfahren, in welchen Klassen sich der Computer befindet, geben Sie
cf-promises --show-classes
mit root Rechten in das Terminal ein.
Sie erhalten eine Liste mit allen Klassen des Computers.

Wo steht, welche Dateien geändert werden?

Alle möglichen Änderungen sind in .cf-Dateien gespeichert. Diese Dateien können unter /var/lib/cfengine3/inputs/local/ gefunden werden. Der Name der jeweiligen Datei gibt an, was konfiguriert wird.
Wenn Sie die Datei öffnen, können sie sehen, welche Veränderungen vorgenommen werden.

Lesen einer .cf Datei

.cf Dateien sind in Abschnitte unterteilt. Diese erkennt man daran, dass diese eingerückt sind.
Änderungen an Dateien findet man in dem Abschnitt files.
Hier ist ein Ausschnitt aus der backup.cf datei.

...
	files:

		burpclients.!backup_01::

		    "/etc/cron.d/burp"
                        copy_from	=> secure_cp_b("$(g.dir_masterfiles)/etc/cron.d/burp", $(sys.policy_hub));

		burpclients::

		    "/etc/burp/burp.conf"
                        copy_from	=> secure_cp_b("$(g.dir_masterfiles)/etc/burp/$(sys.host).conf", $(sys.policy_hub));

		    "/etc/burp/clientconfdir/incexc/zdv"
                        copy_from	=> secure_cp_b("$(g.dir_masterfiles)/server/backup-01/etc/burp/clientconfdir/incexc/zdv", $(sys.policy_hub));
...

Zeile 2: Ab hier beginnt der Abschnitt "files:" Alles, was hinter files: eingerückt ist, gehört zu diesem Abschnitt.

Zeile 4: Hier wird festgelegt, für welche Klassen eine Änderung vorgenommen werden soll. Alles, was eingerückt ist, wird für die festgelegten Klassen ausgeführt.
Bei der Zuordnung der Klassen gibt es verschiedene Möglichkeiten:

  • Klasse1: Hier wird nur eine Klasse abgefragt.
  • Klasse1.Klasse2:: Der Punkt heißt, dass sich der Computer in beiden Klassen befinden muss.
  • Klasse1|Klasse2:: Das | heißt, dass sich der Computer in Klasse1 oder in Klasse2 befinden muss.
  • Klasse1.!Klasse2:: Das ! steht für ein nicht. Der Computer muss sich in Klasse1, aber nicht in Klasse 2 befinden.

In diesem Fall wird, aufgrund des !, der Befehl aus Zeile 6 und 7 nur ausgeführt, wenn der Computer in der Klasse burbclients und nicht in der Class backup_01 ist.

Zeile 6: Hier wird festgelegt, welche Datei geändert werden soll.

Zeile 7: Hier wird festgelegt, wie die Datei geändert werden soll. In diesem Fall wird die Datei durch eine auf dem Server gespeicherte Datei ersetzt.

Zeile 9: Hier wird ein neuer Abschnitt festgelegt, der ausgeführt wird, wenn der Computer in der Klasse burbclients ist.
Zeilen 11, 14: Welche Dateien geändert werden sollen, wie Zeile 6.
Zeilen 12, 15: Was für Änderungen vorgenommen werden, wie Zeile 7.

So lässt sich herausfinden, welche Dateien auf dem Computer verändert werden.


Einrichten von CFEngine auf meinem Server

Wenn Sie eine Linux Version des ZDV Installieren oder einen virtuellen Server des ZDV betreiben, wird CFEngine automatisch installiert und eingerichtet.
Falls Sie Ihre Linux Distribution selbst installiert haben, müssen Sie, um CFEngine nutzen zu können, dies installieren und einrichten.

Dabei ist zu beachten, dass das ZDV nicht für alle Distributionen eine zentrale Konfiguration vornimmt. Wenn die von Ihnen benutze Distribution sich in keiner von ZDV bearbeiteten Klasse befindet, werden keine Änderungen vorgenommen.

Installation
Installieren Sie das CFEngine Paket für Ihre verwendete Distribution z.B. cfengine3(Debian, Ubuntu), cfengine(Suse, Fedora).

Einrichten
Geben Sie nach der Installation cf-agent -B config-01 mit root Rechten in das Terminal ein.
Damit weisen Sie Ihren Client an, auf dem ZDV Server nach möglichen Änderungen zu schauen.

Die Universität betreibt einen OpenID Connect Server. Damit ist es möglich, einen Benutzer vom ZDV authentifizieren zu lassen und Daten über diesen Benutzer abzurufen.

Wie OpenId Connect in einen Client implementiert wird, kann hier nachgelesen werden.

Die aktuelle Konfiguration des Servers des ZDV kann unter openid.uni-mainz.de/.well-known/openid-configuration eingesehen werden.

Eine Implementierung von OpenID Connect kann nur nach vorheriger Absprache mit dem ZDV erfolgen. Dafür senden Sie bitte eine e-Mail mit dem Betreff OpenId Connect an hotline@uni-mainz.de.
Für die Einrichtung benötigen wir die folgenden Informationen.

  • Welche Claims benötigt werden
  • Eine gültige Redirect_URL für Ihre Webseite.
    Wenn sie eine Applikation entwickeln wollen, wird dies individuell abgestimmt.
  • Welcher Flow benutzt werden soll:
    • Authorization Code Flow (es wird empfohlen diesen Flow zu verwenden).
    • Implicit Flow
    • Hybrid Flow

Vom ZDV werden die folgenden Parameter festgelegt:

  • client_id
  • client_secret (Falls dies erforderlich ist.)