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 geändert werden. Unter Standard-System-Sprachdefinition wird die Standard-Locale festgelegt.
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.
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. Mitcron/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:
Variable |
Standardgröße der Hash-Tabelle |
---|---|
|
|
|
|
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
aufwithout-password
gesetzt, so wird für denroot
-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 Variableauth/sshd/user/root
aufno
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 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.