8.4. Basis-Systemdienste#

Dieser Abschnitt beschreibt grundlegende System-Dienste einer UCS-Installation, wie etwa die Konfiguration der Authentifizierungsschnittstelle PAM, des System-Loggings und des NSCD.

8.4.1. Administrativer Zugriff mit dem Root-Konto#

Für den administrativen Vollzugriff existiert auf jedem UCS-System das root-Konto. Das Passwort wird beim Installieren des Systems festgelegt. Der root-Benutzer wird nicht im LDAP-Verzeichnis gespeichert, sondern in den lokalen Benutzerkonten.

Das Passwort für den lokalen root-Nutzer kann über die Kommandozeile mit dem Befehl passwd geändert werden. Es ist zu beachten, dass hierbei keine Prüfungen hinsichtlich der Passwortlänge/-Stärke und bereits verwendeter Passwörter durchgeführt wird.

8.4.2. Konfiguration der Sprach- und Tastatureinstellungen#

Unter Linux werden Lokalisierungseigenschaften für Software in sogenannten Locales definiert. Konfiguriert werden u.a. Einstellungen wie Datums- sowie zu nutzende Währungsformate, verwendete Zeichensätze und die Sprachauswahl für internationalisierte Programme. Die installierten Locales können im UMC-Modul Sprach-Einstellungen unter Spracheinstellungen ‣ Verfügbare Systemsprache geändert werden. Unter Standard-System-Sprachdefinition wird die Standard-Locale festgelegt.

Konfiguration der Spracheinstellungen

Abb. 8.7 Konfiguration der Spracheinstellungen#

Das Tastaturlayout im Menüpunkt Zeitzonen- und Tastatureinstellungen greift bei lokalen Anmeldungen an dem Rechner.

8.4.3. Starten/Stoppen von Systemdiensten / Konfiguration des automatischen Starts#

Mit dem UMC-Modul Systemdienste kann der aktuelle Status eines Systemdienstes geprüft und dieser gegebenenfalls gestartet oder gestoppt werden.

Übersicht der Systemdienste

Abb. 8.8 Übersicht der Systemdienste#

In der Liste aller auf dem System installierten Dienste ist unter Status der aktuelle Laufzeitstatus und eine Beschreibung aufgeführt. Unter mehr kann der Dienst gestartet, gestoppt oder neu gestartet werden.

In der Grundeinstellung wird jeder Dienst automatisch beim Systemstart gestartet. In einigen Fällen kann es sinnvoll sein, den Dienst nicht direkt zu starten, sondern z.B. erst nach Konfiguration weiterer Einstellungen. Mit der Aktion Manuell starten wird der Dienst nicht beim Systemstart automatisch gestartet, kann aber nachträglich gestartet werden. Mit der Aktion Niemals starten wird auch der nachträgliche Start unterbunden.

8.4.4. Authentifizierung / PAM#

Authentifizierungsdienste werden in Univention Corporate Server durch Pluggable Authentication Modules (PAM) realisiert. Dabei werden unterschiedliche Anmeldeverfahren auf eine gemeinsame Schnittstelle abgebildet, so dass eine neue Anmeldemethode keine Anpassungen an bestehenden Applikationen benötigt.

8.4.4.1. Anmeldebeschränkungen für ausgewählte Benutzer#

In der Grundeinstellung können sich nur der root-Benutzer und Mitglieder der Gruppe Domain Admins remote über SSH und lokal auf einem tty anmelden.

Diese Einschränkung kann mit der Univention Configuration Registry Variable auth/DIENST/restrict konfiguriert werden. Der Zugriff auf diesen Dienst kann durch Setzen der Variablen auth/DIENST/user/BENUTZERNAME und auth/DIENST/group/GRUPPENNAME auf yes freigegeben werden.

Anmeldebeschränkungen werden unterstützt für SSH (sshd), Anmeldung an einem tty (login), rlogin (rlogin), PPP (ppp) und andere Dienste (other). Ein Beispiel für SSH:

auth/sshd/group/Administrators: yes
auth/sshd/group/Computers: yes
auth/sshd/group/DC Backup Hosts: yes
auth/sshd/group/DC Slave Hosts: yes
auth/sshd/group/Domain Admins: yes
auth/sshd/restrict: yes

8.4.5. Konfiguration des verwendeten LDAP-Servers#

In einer UCS-Domäne können mehrere LDAP-Server betrieben werden. Der primär verwendete wird mit der Univention Configuration Registry Variable ldap/server/name festgelegt, weitere Server können über die Univention Configuration Registry Variable ldap/server/addition angegeben werden.

Alternativ können die LDAP-Server auch über die Richtlinie LDAP-Server festgelegt werden. Die Reihenfolge der Server bestimmt die Reihenfolge der Anfragen des Rechners an die Server, falls ein LDAP-Server nicht erreichbar sein sollte.

In der Grundeinstellung ist nach Installation/Domänenbeitritt nur ldap/server/name gesetzt. Ist mehr als ein LDAP-Server vorhanden, ist es empfehlenswert zur Verbesserung der Ausfallsicherung mindestens zwei LDAP-Server über die LDAP-Server-Richtlinie zuzuweisen. Bei einer auf mehrere Standorte verteilten Umgebung sollte darauf geachtet werden, möglichst LDAP-Server aus dem lokalen Netz vorzugeben.

8.4.6. Konfiguration des verwendeten Druckservers#

Der zu verwendende Druckserver kann mit der Univention Configuration Registry Variable cups/server festgelegt werden.

Alternativ kann der Server auch über die Richtlinie Druckserver im UMC-Modul Rechner festgelegt werden.

8.4.7. Protokollierung/Abfrage von Systemmeldungen und -zuständen#

8.4.7.1. Logdateien#

Alle UCS-spezifischen Logdateien (z.B. für die Listener/Notifier-Replikation) werden im Verzeichnis /var/log/univention/ abgelegt. Serverdienste protokollieren in ihre jeweilige Standard-Logdateien; Apache beispielsweise in die Datei /var/log/apache2/error.log.

Die Logdateien werden durch logrotate verwaltet. Es sorgt dafür, dass Logdateien in einem Intervall (konfigurierbar in Wochen über die Univention Configuration Registry Variable log/rotate/weeks, standardmäßig 12) fortlaufend benannt werden und ältere Logdateien anschließend gelöscht werden. Die aktuelle Logdatei für den Univention Directory Listener findet sich beispielsweise in der Datei listener.log, die der Vorwoche in listener.log.1 und so weiter.

Alternativ können Logdateien auch erst beim Erreichen einer bestimmten Größe rotiert werden. Soll beispielsweise erst ab einer Größe von 50 MB rotiert werden, kann dazu die Univention Configuration Registry Variable logrotate/rotates auf size 50M gesetzt werden.

Über die Univention Configuration Registry Variable logrotate/compress kann konfiguriert werden, ob die älteren Logdateien zusätzlich mit gzip komprimiert werden sollen.

Logdateien, welche im Pfad /var/log/univention/listener_modules liegen, verfügen jeweils über eine eigene Konfiguration für Logrotate. Diese Logdateien haben globale und spezifische Einstellungen für Logrotate. Die Univention Configuration Registry Variable logrotate/listener-modules/<directive> konfiguriert die globalen Einstellungen. Die logrotate(8) Dokumentation beschreibt die Funktionalität im Detail. UCS unterstützt folgende Direktiven:

logrotate/listener-modules/rotate#

Standardwert: weekly

logrotate/listener-modules/rotate/count#

Standardwert: 12

logrotate/listener-modules/create#

Standardwert: 640 listener adm

logrotate/listener-modules/missingok#

Standardwert: missingok

logrotate/listener-modules/compress#

Standardwert: compress

logrotate/listener-modules/notifempty#

Standardwert: notifempty

Wenn eine Konfiguration nur für eine spezifische Logdatei gelten soll, muss die Univention Configuration Registry Variable wie folgt zusammengesetzt werden: logrotate/listener-modules/<logfile-name>/<directive>. Geben Sie den Dateinamen für logfile-name ohne die Dateiendung .log an.

8.4.7.2. Protokollierung des Systemzustands#

Mit univention-system-stats kann der aktuelle Systemzustand in die Datei /var/log/univention/system-stats.log protokolliert werden. Protokolliert werden dabei folgende Werte:

  • Der freie Speicherplatz auf den Systempartitionen (df -lhT)

  • Die aktuelle Prozessliste (ps auxf)

  • Zwei top-Aufstellungen der aktuellen Prozesse und Auslastung (top -b -n2)

  • Den aktuell freien Arbeitsspeicher (free)

  • Die Zeit, die seit dem Start des Systems vergangen ist (uptime)

  • Temperatur-, Lüfter- und Spannungskennzahlen aus lm-sensors (sensors)

  • Eine Aufstellung der aktuellen Samba-Verbindungen (smbstatus)

Die Laufzeiten in denen der Systemzustand protokolliert werden soll, können durch die Univention Configuration Registry Variable system/stats/cron in Cron-Syntax definiert werden, z.B. 0,30 * * * * für eine Protokollierung jeweils zu jeder vollen und halben Stunde. Die Protokollierung wird durch Setzen der Univention Configuration Registry Variable system/stats auf yes aktiviert und ist bei Neuinstallationen ab UCS 3.0 die Grundeinstellung.

8.4.7.3. Prozessübersicht über Univention Management Console Modul#

Das UMC-Modul Prozessübersicht zeigt eine Tabelle der aktuellen Prozesse auf dem System an. Die Prozesse können nach den folgenden Eigenschaften sortiert werden, in dem auf den entsprechenden Tabellenkopf geklickt wird:

  • Die CPU-Nutzung in Prozent

  • Der Benutzername, unter dem der Prozess läuft

  • Speicherverbrauch in Prozent

  • Die Prozess-ID

Unter dem Menüpunkt mehr können Prozesse beendet werden. Hierbei werden zwei Arten der Terminierung unterschieden:

Beenden

Die Aktion Beenden schickt dem Prozess eine Benachrichtigung vom Typ SIGTERM, dies ist der Regelfall bei der kontrollierten Beendigung von Programmen.

Beenden erzwingen

In Einzelfällen kann es vorkommen, dass sich ein Programm - z.B. nach einem Absturz - nicht mehr über dieses Verfahren beenden lässt. In diesem Fall kann mit der Aktion Beenden erzwingen das Signal SIGKILL geschickt werden, um den Prozess forciert zu beenden.

Das Beenden über SIGTERM ist in der Regel vorzuziehen, da viele Programme dann einen kontrollierten Programmabbruch einleiten und z.B. ein Speichern von Dateien o.ä. durchführen.

8.4.7.4. Systemdiagnose über Univention Management Console Modul#

Um ein UCS-System auf verschiedene bekannte Probleme hin zu analysieren bietet das UMC-Modul Systemdiagnose eine entsprechende Benutzerschnittstelle.

Das Modul wertet eine Reihe ihm bekannter Problemszenarien aus und bietet Lösungsvorschläge an, wenn es in der Lage ist, gefundene Probleme automatisch zu beheben. Diese Funktion wird durch zusätzliche Schaltflächen dargestellt. Darüber hinaus werden Links zu weiterführenden Artikeln und zu entsprechenden UMC-Modulen angezeigt.

8.4.8. Ausführen von wiederkehrenden Aktionen mit Cron#

Regelmäßig wiederkehrende Aktionen (wie z.B. das Verarbeiten von Logdateien) können mit dem Cron-Dienst zu einem definierten Zeitpunkt gestartet werden. Eine solche Aktion bezeichnet man auch als Cron-Job.

8.4.8.1. Stündliches/tägliches/wöchentliches/monatliches Ausführen von Skripten#

Auf jedem UCS-System sind vier Verzeichnisse vordefiniert, /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ und /etc/cron.monthly/. Shell-Skripte, die in diesen Verzeichnissen abgelegt werden und als ausführbar markiert sind, werden automatisch stündlich, täglich, wöchentlich oder monatlich ausgeführt.

8.4.8.2. Definition eigener Cron-Jobs in /etc/cron.d/#

Ein Cron-Job wird in einer Zeile definiert, die aus insgesamt sieben Spalten aufgebaut ist:

  • Minute (0-59)

  • Stunde (0-23)

  • Tag (1-31)

  • Monat (1-12)

  • Wochentag (0-7) (0 und 7 stehen beide für Sonntag)

  • Name des ausführenden Benutzers (z.B. root)

  • Der auszuführende Befehl

Die Zeitangaben können dabei in verschiedenen Formaten vorgenommen werden. Es kann entweder eine konkrete Minute oder Stunde vorgegeben werden oder mit einem * eine Aktion zu jeder Minute oder Stunde ausgeführt werden. Es können auch Intervalle definiert werden, */2 führt als Minutenangabe beispielsweise dazu, dass eine Aktion jede zweite Minute ausgeführt wird.

Beispiel:

30 * * * * root /usr/sbin/jitter 600 /usr/share/univention-samba/slave-sync

8.4.8.3. Definition eigener Cron-Jobs in Univention Configuration Registry#

Cron-Jobs können auch in Univention Configuration Registry definiert werden. Das ist besonders nützlich, wenn sie über eine Univention Directory Manager-Richtlinie gesetzt und somit auf mehr als einen Rechner angewendet werden.

Jeder Cron-Job setzt sich dabei aus mindestens zwei Univention Configuration Registry-Variablen zusammen. JOBNAME ist dabei ein allgemeiner Bezeichner.

  • cron/JOBNAME/command legt den auszuführenden Befehl fest (Angabe erforderlich)

  • cron/JOBNAME/time setzt die Ausführungszeit fest (siehe Definition eigener Cron-Jobs in /etc/cron.d/) (Angabe erforderlich)

  • Standardmäßig wird der Cron-Job als Benutzer root ausgeführt. Mit cron/JOBNAME/user kann ein abweichender Benutzer angegeben werden.

  • Wird unter cron/JOBNAME/mailto eine E-Mail-Adresse hinterlegt, wird die Ausgabe des Cron-Jobs per E-Mail dorthin gesendet.

  • Mit cron/JOBNAME/description kann eine Beschreibung hinterlegt werden.

8.4.9. Name Service Cache Daemon#

Um häufige Anfragen unveränderter Daten zu beschleunigen, werden Namensauflösungen durch den Name Service Cache Daemon (NSCD) zwischengespeichert. Werden diese erneut angefragt, muss so nicht eine vollständige neue LDAP-Anfrage durchgeführt werden, sondern die Daten können direkt aus dem Cache bezogen werden.

Die Zwischenspeicherung der Gruppen erfolgt seit UCS 3.1 aus Performance- und Stabilitätsgründen nicht mehr über den NSCD, sondern durch einen lokalen Gruppencache, siehe Lokaler Gruppencache.

Die zentrale Konfigurations-Datei des NSCD (/etc/nscd.conf) wird durch Univention Configuration Registry verwaltet.

Der Zugriff auf den Cache erfolgt über eine Hash-Tabelle. Die Größe dieser Hash-Tabelle kann über Univention Configuration Registry konfiguriert werden und sollte größer sein als die Anzahl der gleichzeitig verwendeten Benutzer/Rechner. Aus technischen Gründen sollte als Größe der Tabelle eine Primzahl verwendet werden. Die folgende Tabelle führt die Standardwerte der Variablen auf:

Tab. 8.8 Standardgröße der Hash-Tabelle#

Variable

Standardgröße der Hash-Tabelle

nscd/hosts/size

6007

nscd/passwd/size

6007

Bei sehr großen Caches kann es nötig sein, die Größe der Cache-Datenbank im Arbeitsspeicher zu erhöhen. Dies kann mit den Univention Configuration Registry-Variablen nscd/hosts/maxdbsize, nscd/group/maxdbsize und nscd/passwd/maxdbsize konfiguriert werden.

Standardmäßig startet NSCD fünf Threads. In Umgebungen, in denen viele Zugriffe erfolgen, kann es erforderlich sein, die Anzahl durch die Univention Configuration Registry Variable nscd/threads zu erhöhen.

In der Grundeinstellung wird ein aufgelöster Gruppen- oder Rechnername eine Stunde im Cache vorgehalten und ein Benutzername zehn Minuten. Durch die Univention Configuration Registry-Variablen nscd/group/positive_time_to_live, nscd/hosts/positive_time_to_live und nscd/passwd/positive_time_to_live können diese Zeiträume erweitert oder verringert werden (die Angabe erfolgt in Sekunden).

Gelegentlich kann es nötig sein, den Cache des NSCD manuell zu invalidieren. Dies kann individuell pro Cache-Tabelle durch folgende Befehle geschehen:

$ nscd -i passwd
$ nscd -i hosts

Der Detailgrad der Logmeldungen kann mit der Univention Configuration Registry Variable nscd/debug/level konfiguriert werden.

8.4.10. SSH-Zugriff auf Systeme#

Bei der Installation eines UCS-Systems wird in der Vorauswahl ein SSH-Server mitinstalliert. Über SSH können verschlüsselte Verbindungen zu Rechnern aufgebaut werden, wobei auch die Identität eines Rechners über eine Prüfsumme sichergestellt werden kann. Wesentliche Aspekte der Konfiguration des SSH-Servers lassen sich über Univention Configuration Registry anpassen.

Standardmäßig ist der Login des privilegierten root-Benutzers per SSH erlaubt (etwa um ein neu installiertes System an einem entfernten Standort zu konfigurieren, auf dem noch keine weiteren Benutzer angelegt wurden).

  • Wird die Univention Configuration Registry Variable sshd/permitroot auf without-password gesetzt, so wird für den root-Benutzer keine interaktive Passwort-Abfrage mehr durchgeführt, sondern beispielsweise nur eine Public-Key-basierte Anmeldung, was Brute-Force-Attacken auf Passwörter vermeidet.

  • Soll für den root-Benutzer überhaupt keine SSH-Anmeldung mehr möglich sein, kann dies durch Setzen der Univention Configuration Registry Variable auth/sshd/user/root auf no deaktiviert werden.

Mit der Univention Configuration Registry Variable sshd/xforwarding kann konfiguriert werden, ob eine X11-Ausgabe über SSH weitergeleitet werden soll. Dies ist u.a. nötig, um einem Benutzer die Möglichkeit zu geben durch einen Login mit ssh -X ZIELRECHNER ein Programm mit grafischer Ausgabe auf einem entfernten Rechner zu starten. Die möglichen Einstellungen sind yes und no.

Der Standard-Port für SSH-Verbindungen ist Port 22 über TCP. Wenn ein abweichender Port verwendet werden soll, kann dies über die Univention Configuration Registry-Variable sshd/port konfiguriert werden.

8.4.11. Konfiguration der Zeitzone / Zeitsynchronisation#

Die Zeitzone, in der ein System angesiedelt ist, kann im UMC-Modul Sprach-Einstellungen unter Zeitzonen- und Tastatureinstellungen ‣ Zeitzone geändert werden.

Asynchrone Systemzeiten zwischen den einzelnen Rechnern einer Domäne können die Quelle vielfältiger Fehler bedeuten, zum Beispiel:

  • Sie verringern beispielsweise die Verlässlichkeit von Log-Dateien.

  • Der Kerberos-Betrieb ist gestört.

  • Die korrekte Auswertung von Passwortablaufintervallen kann gestört sein.

In einer Domäne dient standardmäßig der Primary Directory Node als Zeitserver. Über die Univention Configuration Registry-Variablen timeserver, timeserver2 und timeserver3 können externe NTP-Server als Zeitquelle eingebunden werden.

Eine manuelle Zeitsynchronisation kann durch den Befehl ntpdate gestartet werden.

Windows-Clients, die in eine Samba/AD-Domäne gejoint wurden, akzeptieren nur signierte NTP-Zeitanfragen. Wird die Univention Configuration Registry Variable ntp/signed auf yes gesetzt, werden die NTP-Pakete durch Samba/AD signiert.