Dienste

Aus CEPHALIX/CRANIX

Dienste

Im CRANIX 4 hat Systemd das alte SysVinit abgelöst. Zwar gibt es noch einige Dienste, welche auf die altbekannten rc-Befehle hören, die meisten Diensten kann man jedoch nur noch über den systemctl-Befehl steuern.
Die wichtigsten systemctl Befehle sind:

Befehl Beschreibung
systemctl status <Dienst> Status eines Dienstes abfragen.
systemctl stop <Dienst> Dienst stoppen.
systemctl start <Dienst> Dienst starten.
systemctl enable <Dienst> Dienst bei Systemstart automatisch starten.
systemctl disable <Dienst> Dienst bei Systemstart nicht startet.

Logfiles


Im CRANIX werden die Systemlogs nicht mehr in die gewohnten Dateien im /var/log/ Verzeichnis, sondern in das Systemd-Journal-System, geschrieben. Die Logmeldungen können mit dem journalctl-Befehl gelesen werden.
Hier einige nützliche Optionen des journalctl-Befehls:

Befehl Beschreibung
journalctl Listet alle Systemlogs auf.
journalctl -f Liest live die aktuelle Meldungen
journalctl -fu <Dienst> Liest live die aktuelle Meldungen eines Dienstes.
journalctl -u <Dienst> -S "<YYYY-MM-DD[ HH:MM:SS]>" -U -S "<YYYY-MM-DD[ HH:MM:SS]>" Liest die Meldungen eines Dienstes im angegebenen Zeitraum.

Wie und wann systemd die Logfiles löscht ist in /etc/systemd/journald.conf festgelegt. Für den CRANIX sind folgende Parameter (mit den Standardeinstellungen) relevant:

  • SystemMaxUse=10% Anteil am Filesystem was systemd für logs benutzen darf.
  • SystemKeepFree=15% Anteil am Filesystem was systemd für andere unbedingt frei lassen muss auch wenn SystemMaxUse noch nicht erreicht wurde.
  • MaxRetentionSec=0 Wie lange sollen Logfiles gespeichert werden. 0 bedeutet für immer.

Ändert man diese Wert, muss anschließend "systemctl daemon-reload" ausgeführt werden.

Verbotene Dienste im CRANIX

Im CRANIX 4.0 übernimmt samba wesentlich mehr Dienste als im OSS 3.4.x. Das führt auch dazu, dass einige Dienste auf CRANIX weder installiert noch gestartet werden dürfen:

  • nscd
  • named

Die wichtigsten Dienste am CRANIX

  • cups: ist der Printserver auf dem CRANIX. Cups ist in erster Linie so konfiguriert, dass dieser nur vom CRANIX aus verwaltet werden kann. Da der CRANIX die Printerintegration eigenständig erledigt, ist eine Administration über die CUPS-Weboberfläche nicht erforderlich. Cups logt in /var/log/cups in drei Dateien "access_log","error_log" und "page_log".
  • dhcpd: sorgt für die IP-Adressenvergabe. Dieser Dienst logt ausschließlich in Systemd-Journal-System. Die Konfigurationsdatei /etc/dhcpd.conf wird aus einer Templatedatei /usr/share/oss/templates/dhcpd.conf und aus den Daten der Datenbank erstellt.
 WICHTIG /usr/share/oss/templates/dhcpd.conf darf angepasst werden. Diese Datei wird bei der Installation erstellt und wird durch Updates nie verändert.

Die dhcpd-Templatedatei darf nur globale Konfigurationen erhalten. Vor allem hosts Deklarationen dürfen hier nicht vorkommen.

  • mysql: hier werden alle Daten (Benutzer Räume Geräte ...) gespeichert. Dieser Dienst muss laufen. Das Passwort für root ist in /root/.my.conf gespeichert. Der oss-api Dienst greift mit dem Benutzer claxx auf die Datenbank OSS zu. Sein Passwort ist in /opt/oss-java/conf/oss-api.properties gespeichert.
  • oss-api: ist das Backend für die Administrationsobefläche. Dieser Dienst logt in /var/log/oss-api.log. Der log-level kann in /opt/oss-java/conf/oss-api.properties eingestellt werden.
  • oss_get_screen_shots: Dieser Dienst sorgt dafür, dass regelmäßig Screenshots von den Clients erstellt werden, damit diese unter Pädagogik -> Unterricht angezeigt werden können. Dieser Dienst ist Teil vom UltraVnc Paket, was man mit der Softwareverteilung von OSS auf den Clients installieren kann.
  • oss_salt_event_watcher: ist ein Dienst welcher nach salt-Events lauscht und je nach Event, Plugin-Scripte in /usr/share/oss/plugins/clients/ startet. Die wichtigsten Events sind die Start-Events. Dadurch werden die Softwareinstallationen getriggert.
  • salt-master: ist der Dienst für die Verwaltung der Clients. Dieser logt ausschließlich in das Systemd-Journal-System.
 WICHTIG Startet man salt-master neu, muss auch oss_salt_event_watcher neu gestartet werden.
  • samba: Das ist unser zentraler Anmelde- und Fileserverdienst. Weiterhin dient dieser auch als DNS und Zeitserver und über Winbind sorgt er auch für die Zuordnung, von Samba-SID zu UNIX-uidNumber. Samba schreibt seine Logs in /var/log/samba/ bzw. einige Meldungen (Start und Stop und Fehler) auch in das Systemd-Journal-System.
 WICHTIG nmbd und smbd dürfen NIE manuell gestartet werden. Der Dienst samba sorgt dafür,dass alle nötige Prozesse gestartet werden.
  systemctl start samba
  • samba-printserver: ist die Printserver Instanz des Samba-Servers (CRANIX spezifisch). Stellt die registrierten Drucker und deren Treiber, über das samba-Protokoll zur Verfügung.

Struktur der Webserverkonfiguration des CRANIX

Virtuelle Webserver

Der Webserver des CRANIX ist so konfiguriert, dass dieser zwei IP-Adress-basierte virtuelle Webserver anbietet. Auf welche IP-Adressen und Ports der Webserver hört wird in der Datei /etc/apache2/listen.conf definiert. Standardmäßig sind das die IP-Adressen von admin und schoolserver bzw. die Ports 80 und 443. Diese Aufteilung ist nötig, damit die Administrationswebseite immer erreichbar ist, auch wenn die Webseiten der anderen Dienste gesperrt sind.

Konfiguration der virtuellen Webserver

Bitte beachten: jede Änderung der Konfiguration in den entsprechenden Konfigurationsdateien wird erst wirksam, wenn der laufende Apache-Daemon dazu aufgefordert wurde die Konfiguration neu zu lesen. Auf der Kommandozeile führen Sie dazu den Befehl " rcapache2 reload " als Benutzer "root" aus.

Für beide virtuellen Webserver gibt es je eine Basiskonfigurationsdatei:

/etc/apache2/vhosts.d/admin_include.conf /etc/apache2/vhosts.d/oss_include.conf

Diese Dateien enthalten die Grundkonfigurationen Dokumentroot, Servername und die SSL-Konfigurationen (Zertifikaten usw.). In diesen Dateien werden andere Konfigurationen importiert, die die eigentliche Konfiguration der Webseiten enthalten. Diese Konfigurationsdateien liegen in 4 Verzeichnissen und haben die Endung .conf. Je nach dem unter welcher URL ein Webinhalt erreicht werden soll, muss die Konfigurationsdatei in das entsprechende Verzeichnis gelegt werden:

   /etc/apache2/vhosts.d/admin/ für http://admin/<Webinhalt>
   /etc/apache2/vhosts.d/admin-ssl/ für https://admin/<Webinhalt>
   /etc/apache2/vhosts.d/oss/ für http://schoolserver/<Webinhalt>
   /etc/apache2/vhosts.d/oss-ssl/ für https://schoolserver/<Webinhalt>

Das DocumentRoot von https://schoolserver bzw. http://schoolserver ist /srv/www/oss. Legt man also ein Verzeichnis /srv/www/oss/webseiten an, kann dessen Inhalt mit den URLs https://schoolserver/webseitenbzw. http://schoolserver/webseiten erreicht werden.

public_html Verzeichnisse

In den Verzeichnissen /etc/apache2/vhosts.d/oss/ und /etc/apache2/vhosts.d/oss-ssl/ liegen zBp. die zur Freigabe der public_html Verzeichnissen der Benutzer nötigen Konfigurationsdateien:

   public_html_administration.conf.in
   public_html_teachers.conf.in
   public_html_students.conf.in

Diese sind jedoch noch nicht aktiviert, da diese alle die Endung .in haben. Möchte man zBp die public_html Verzeichnisse der Lehrer unter der URL https://schoolserver/~<Benutzername>/ freigeben, muss man die Datei /etc/apache2/vhosts.d/oss-ssl/public_html_teachers.conf.in nach /etc/apache2/vhosts.d/oss-ssl/public_html_teachers.conf kopieren.

LDAP-Authorizierung

Man kann den CRANIX für LDAP-Authorisierung verwenden. Dazu müssen die apache2-Module authnz_ldap und ldap aktiviert werden. Tragen Sie diese in die Variable APACHE_MODULES in der Datei /etc/sysconfig/apache2 ein und starten Sie den Webserver neu. Für den entsprechenden Teil der Webserverkonfiguration müssen Sie nun folgende Einträge machen. Bitte vergessen Sie nicht die Texte zwischen <> auszutauschen!

 AuthType Basic
 AuthName "<Titel für den Authorisierungsbereich>"
 AuthBasicProvider ldap
 AuthLDAPURL ldap://localhost/<LDAP-BASE>?cn??(objectclass=organizationalPerson)
 AuthLDAPBindDN CN=ossreader,CN=Users,<LDAP-BASE>
 AuthLDAPBindPassword ossreader
 Require valid-user

Wenn Sie per ldap von einem entfernten Rechner auf den CRANIX-Server zugreifen haben Sie 2 Möglichkeiten:

  1. Unverschlüsselt: ldap://admin. In diesem Fall muss in der Dateie  /etc/samba/smb.conf in [global] Sektion ldap server require strong auth = no eingetragen werden. Das betrifft nur die Kommunikation zwischen LDAP-Server und Webserver.
  2. Verschlüsselt. In diesem Fall muss als LDAPUrl ldaps://admin... verwendet werden. Weiterhin muss LDAPVerifyServerCert = no eingetragen werden, da der Samba-Server mit einem selbstsigniertem Zertifikat arbeitet.