Webbasierte Administration mit Webmin

Viele Administratoren sind der Meinung, daß das Programm der Wahl zur Konfiguration des Systems der Editor vi ist. Dem soll hier auf keinen Fall widersprochen werden. Vielmehr soll eine Alternative aufgezeigt werden, die es erlaubt, sich im Dschungel der Konfigurationsdateien etwas besser zurecht zu finden.

Webmin ist ein von Jamie Cameron in Perl geschriebenes Administrations-Werkzeug, welches über Module erweiterbar ist. Webmin ist mittlerweile in 14 Sprachen übersetzt worden und wird von einigen Distributionsherstellern bereits mitgeliefert. Webmin ist seit der Debian Version 3.0 Bestandteil der Distribution. Webmin ist für verschiedene Unix Varianten verfügbar, natürlich auch für GNU/Linux. Neue Funktionen können leicht über Module hinzugefügt werden, dies wird durch eine gut dokumentierte API erleichtert.

Webmin ist ein in der Unix-Welt einmaliges Werkzeug. Für nahezu jede Funktion des Systems wird eine einheitliche Benutzeroberfläche geboten, für deren Benutzung lediglich ein Webbrowser benötigt wird. Hierbei werden keine speziellen Konfigurationsdateien verwendet, alle Änderungen werden in den bisher verwendeten Konfigurationsdateien gespeichert. Natürlich können weiterhin Änderungen wie bisher mit einem Editor vorgenommen werden.

Installation

Die Installation erfolgt wie üblich über die vom Debian-Projekt zur Verfügung gestellten Pakete. Neben dem eigentlichen Basispaket webmin gibt es eine Reihe weiterer Pakete, die sich zum Teil auch im Bereich non-free finden. Diese sind im einzelnen:


webmin - Web-based administration toolkit
webmin-apache - apache control module for webmin
webmin-bind8 - bind8 control module for webmin
webmin-core - core modules for webmin
webmin-cpan - CPAN module for webmin
webmin-dhcpd - dhcpd control module for webmin
webmin-exports - NFS exports control module for webmin
webmin-fetchmail - fetchmail mail retrieval module for webmin
webmin-grub - grub control module for webmin
webmin-inetd - inetd control module for webmin
webmin-lpadmin - printer control module for webmin
webmin-mysql - mysql-server control module for webmin
webmin-nis - NIS clients/servers control module for webmin
webmin-postfix - postfix control module for webmin
webmin-postgresql - postgresql control module for webmin
webmin-ppp - PPP configuration module for webmin
webmin-quota - disk quota control module for webmin
webmin-raid - raid control module for webmin
webmin-samba - samba control module for webmin
webmin-sendmail - sendmail control module for webmin
webmin-software - software control module for webmin
webmin-squid - squid control module for webmin
webmin-status - server and system status control module for webmin
webmin-wuftpd - wu-ftpd control module for webmin
webmin-xinetd - xinetd control module for webmin
webmin-ssl - Web-based administration toolkit


Alle Module können beispielsweise mit apt-get installiert werden. Minimal sollten die Pakete webmin und webmin-status sowie die Module für die auf dem Zielsystem verwendeten Dienste installiert werden.

Während der Installation des Basispaketes von Webmin wird der Benutzer „root“ angelegt, das Passwort wird aus der Datei /etc/shadow kopiert. Bitte beachten Sie, daß Übertragungen über das Protokoll HTTP unverschlüsselt erfolgen. Webmin kann auch über HTTPS mitttels einer verschlüsselten Kommunikation angesprochen werden. Hierzu ist das Paket webmin-ssl zu installieren.

Zugriff auf Webmin

Der Zugriff auf Webmin erfolgt über einen beliebigen Webbrowser von einem Rechner aus, der über das Netzwerk Zugriff auf das zu administrierende System hat. Zusätzlich zu dem Rechnernamen ist der Port, auf dem Webmin läuft (10000), anzugeben. Wenn beispielsweise der Rechner webmin.openoffice.de administriert werden soll, so ist als URL anzugeben: http://webmin.openoffice.de:10000/. Wenn Sie Webmin auf einem System mit grafischer Benutzeroberfläche einsetzen, so kann die Administration natürlich auch lokal erfolgen, die URL lautet dann http://localhost:10000/. Wenn auf dem System nur eine verschlüsselte Kommunikation möglich ist, so ist http durch https zu ersetzen.

Nach erfolgreicher Anmeldung (als Benutzer „root“ mit dem entsprechenden Passwort) gelangt man zur Startseite von Webmin.

Webmin unterteilt die verschiedenen Module in sogenannte Kategorien. Jede Kategorie wird durch einen „Reiter“ wie bei einer Karteikarte dargestellt. Beachten Sie, daß jede dieser Kategorien eigene, spezielle Funktionen darstellt. Beispielsweise können mit „Webmin Users“ aus der Kategorie „Webmin“ keine Benutzer für das darunterliegende GNU/Linux System angelegt werden, diese Funktion dient dazu Webmin Benutzer einzurichten.

Bevor wir detailliert auf die einzelnen Module eingehen, verändern Sie bitte die Konfiguration so daß Webmin Ihnen eine deutschsprachige Oberfläche bietet. Somit sollten Sie die gleiche Konfiguration vorfinden, wie hier beschrieben. Sie finden die Einstellung in der Kategorie „Webmin“ unter „Webmin Configuration“, „Language“.

Kategorie Webmin

Diese Kategorie dient zur generellen Konfiguration von Webmin. Webmin kann unterschiedlichen Benutzer administrativen Zugriff auf das System gewähren. Speziell unter „Webmin Konfiguration“ finden sich sher viele Einstellungsmöglichkeiten. Weiterhin ist ein Einblick in die Logfiles von Webmin über diese Kategorie möglich.

Webmin Konfiguration

Hier finden sich verschiedene Einstellungen zur Netzwerkkonfiguration von Webmin. Es können Zugriffsbeschränkungen von bestimmten Rechnern aus vergeben werden, bei mehreren Netzwerkkarten kann der Zugriff auf bestimmte Interfaces beschränkt werden. Es können Module gelöscht oder hinzugefügt werden, (dies sollte allerdings besser über die Paketverwaltung von Debian erfolgen) und die Sprache kann hier gewählt werden.

Webmin Konfiguration - Webmin aktualisieren

Dieses Formular erlaubt Ihnen, Ihre gesamte Webmin-Installation zu einer neuen Version zu aktualisieren. Sie können einfach aus einer lokalen Datei, aus einer hochgeladenen Datei oder einfach von der letzten Version von www.webmin.com installieren. Wie bei einer manuellen Aktualisierung werden alle Einstellungen und Module Dritter behalten.

Im Interesse eines konsistenten Systems sollten Sie auf einem Debian GNU System allerdings die Installation und die Updates für Webmin über das Debian GNU Paketsystem vornehmen.

Kategorie System

In dieser Kategorie finden Sie Konfigurationsmöglichkeiten die das System betreffen. Die sind beispielsweise die Benutzer- und Gruppenverwaltung, die verwendeten lokalen und über das Netzwerk gemounteten Dateisysteme und die Verwaltung des Init-Vorgangs. Interessant ist auch der Link ganz unten rechts auf der Seite. Über diesen Link kann der Benutzer gewechselt werden, dies ist sonst bei Authentifizierungen übers Web nur durch einen Neustart des Browsers zu erreichen.

Kategorie Server

Hier finden sich die verschiedenen Einträge für die installierten Server auf dem System. Je nach Anzahl, der auf Ihrem System installierten Dienste, können hier unterschiedlich viele Server aufgeführt sein.

Apache Webserver

Die Konfiguration des Apache Webservers ist in verschiedene Bereiche aufgeteilt, die entsprechende Abschnitte in der/den Konfigurationsdatei/en darstellen. Die Startseite dieser Serverkonfiguration gliedert sich in die Globale Konfiguration, in der Einstellungen zu den Systemresourcen, zu den Adressen, Modulen usw. gemacht werden können und in die Konfiguration der virtuellen Server. Mit virtuellen Servern können mehrere Server unter eine IP-Nummer betrieben werden.

Apache Webserver - Prozesse und Grenzwerte

Auf dieser Seite können Einstellungen zu den Grenzwerten von Apache vorgenommen werden. Normalerweise sind alle Werte sinnvoll eingestellt, es kann jedoch auf Systemen mit wenig Speicher oder mit sehr vielen Zugriffen sinnvoll sein, die Voreinstellungen zu verändern.

Apache Webserver - Netzwerk und Adressen

In diesem Abschnitt werden die Netzwerkadressen und Ports definiert auf denen der Apache Webserver laufen soll. Weiterhin können Zugriffsrechte, Timeouts usw. definiert werden.

Apache Webserver - Verschiedenes

Unter diesem Punkt finden sich, wie die Überschrift schon sagt, Einstellungsmöglichkeiten zu verschiedenen Funktionen. Die Seite bietet eine große Anzahl von Optionen, von denen im täglichen Gebrauch nur einige wenige von Bedeutung sind.

Apache Webserver - CGI

CGI, oder Common Gateway Interface dient zur Bereitstellung von dynamischen Inhalten auf einer Webseite. CGI Programme können in nahezu jeder Programmiersprache geschrieben werden, beispielsweise Perl, PHP, Python, Java, C und bash oder andere Shell-Skripte und alle anderen Skript-Sprachen. CGI Programme stellen den Zugriff auf die CGI Funktionen des Apache zur Verfügung.

Postfix

Die Konfiguration des Mailservers Postfix gliedert sich in verschiedene Bereiche, die wiederum die verschiedenen Aufgabenbereiche des Postfix Mailservers darstellen.

Machen Sie sich zunächst einmal mit den verschiedenen Bereichen der Konfiguration vertraut, bevor Sie beginnen, Veränderungen an der Konfiguration vorzunehmen.

DHCP

Mittels eines DHCP Servers können Netzwerkeinstellungen zentral verwaltet werden. Ein DHCP Server liefert dem Client auf Anfrage alle notwendigen Informationen zum Netzwerk wie beispielsweise IP-Nummer, Netzmaske, Gateway oder auch den Host- und Domainnamen. Diese Angaben können entweder dynamisch (also zufällig) vergeben werden, oder jeder MAC-Adresse eines Clients werden feste Werte zugeordnet.

Im oberen Bereich werden zunächst die gewünschten (Sub-) Netze definiert, im gezeigten Beispiel handelt es sich um ein internes, nicht geroutetes Netz (192.168.1.0). Im unteren Bereich werden dann die einzelnen Rechner definiert und den Netzen, bzw. IP-Adressen zugewiesen.

Ein Subnetz kann bearbeitet werden indem auf das entsprechenden Subnetz geklickt wird. Die Dialoge um ein neues Subnetz hinzuzufügen und um ein freigegebenes Subnetz hinzuzufügen sind ähnlich gestaltet, so das auf diese nicht weiter eingegangen wird.

In diesem Beispiel wird ein internes, nicht geroutetes, Netz verwenden. Der Adressbereich liegt zwischen 192.168.1.20 und 192.168.1.255, die ersten 20 Adressen in diesem Netz wurden für fest installierte Systeme vergeben. Die restlichen Optionen befassen sich größtenteils mit Parametern die im Zusammenhang mit bootp stehen.

In diesem Bereich können einzelne Hosts im Netz bearbeitet, gelöscht oder hinzugefügt werden. Neben dem Hostnamen müssen bei fest vergebenen IP-Adressen hier auch die Hardware Adresse der Netzwerkkarte angegeben werden. Die weiteren Einträge befassen sich wiederrum mit dem Protokol bootp.

Hier können allgemeine Einstellungen für alle Netzwerke, Hosts und Gruppen vorgenommen werden.

Hinter der Schaltfläche „Liste aktive Vergaben auf“, werden alle momentan vergebenen dynamischen und statischen IP-Nummer aufgelistet. Weiterhin findet sich dort eine Schaltfläche („List all active and expired leases“) mit der sich auch ältere Einträge über vergebene Adressen anzeigen lassen.

Die Schaltfläche „Änderungen anwenden“ kann zum Neustart des DHCP-Servers benutzt werden. Die getätigten Änderungen werden damit aktiv.

Kategorie Hardware

In dieser Kategorie können die verschiedensten Einstellungen vorgenommen werden, die in Zusammenhang mit der Hardware des Systems stehen. Es können beispielsweise neue Partitionen angelegt, die Mountpunkte bestimmt, der Bootloader (Lilo oder GRUB) konfiguriert, Einstellungen am Netzwerk oder der Systemzeit sowie RAID Systeme konfiguriert werden.

Festplatten Partitionen

Dieser Punkt stellt eine Schnittstelle zu fdisk und hdparm dar. Hier können (über „IDE-Parameter bearbeiten“) beispielsweise der DMA-Modus der Festplatte verändert werden, aber auch neue Partitionen angelegt oder bestehende Partitionen verändert werden. Ganz nebenbei stellt dieser Punkt auch noch einen Editor für die Datei /etc/fstab dar, hier können die Mount-Punkte der einzelnen Partitionen bestimmt werden.

Hinter „IDE-Parameter bearbeiten“ verbergen sich die verschiedensten Einstellen die auch über die Kommandozeile mit dem Programm hdparm vorgenommen werden können. Bei IDE-Platten ist es zumindest sinnvoll den DMA Modus zu aktivieren („DMA benutzen“), sowie 32Bit breite Zugriffe zuzulassen („32-bit I/O-Unterstützung“). Eine detailierte Beschreibung aller mögliche Parameter die von hdparm unterstützt werden findet sich im Abschnitt zu hdparm.

Über die Auswahl „Primäre Partition hinzufügen“ und „Logische Partition hinzufügen“, können neue Partitionen erstellt werden.

Durch anklicken eines Eintrages in der Spalte „Benutzen“ im Partitionsmanager gelangt man in die Bearbeitungsmaske des gewählten Mount-Punktes. Hier kann beispielsweise der Platz an dem diese Partition in das Dateisystem eingebunden werden soll, verändert werden. Weiterhin können hier die Überprüfungen des Dateisystems beim Systemstart aktiviert oder deaktiviert werden, auch die Reihenfolge kann verändert werden. Unter „Erweiterte Mount-Einstellungen“ finden sich Beschränkungen der Zugriffsrechte und es können Änderungen im Verhalten beim Auftreten von Fehlern vorgenommen werden.

GRUB

Hier kann der Bootloader GRUB konfiguriert werden. GRUB kann als leistungsfähige Alternative zu Lilo installiert werden. GRUB ist auch in der Lage, neben auf dem Linux Kernel basierenden Betriebssystemen beispielsweise GNU Hurd zu booten. Durch eine Mausklick auf einen bestehenden Eintrag kann dieser verändern werden. Mittels „Add a new boot option“ kann ein neuer Eintrag der Konfiguration hinzugefügt werden. Die Schaltfläche „Edit global options“ dient dazu allgemeine Konfigurationsparameter anzupassen. Mit der Schaltfläche „Install grub“ wird der Bootloader auf der Festplatte installiert.

Zu jedem Eintrag eines zu bootenden Betriebsystems in der GRUB Konfiguration gehört zunächst ein Titel („Option title“). Dieser kann frei gewählt werden. Weiterhin ist die Partition zu wählen, auf der sich der Kernel befindet. Dieser Wert kann auch aus einer Liste der verfügbaren Partitionen ausgewält werden.

Natürlich ist dann noch das zu bootende Betriebsystem zu wählen. Dieser wird zunächst einmal sicher Linux sein, hier ist dann noch der Name, und ggf. der Pfad, zum Kernel-Image anzugeben. In der nächsten Zeile können noch Optionen für den Kernel definiert werden, dies wird meistens die zu verwendende Root-Partition sein, aber auch Parameter wie IRQ oder IO Bereiche gehören hier hinein.

Wenn andere Betriebssysteme mit GRUB gebootet werden sollen, so kann gewählt werden, ob dies aus dem ersten Sector der Partition erfolgen soll, alternativ kann eine sogenannten „Chainloader“ Datei verwendet werden. Weiterhin kann diese Partition dann bootfähig gemacht werden.

Als dritte Möglichkeit kann auch ein Eintrag erzeugt werden, der nicht zum Booten eines Betriebsystems dient. Dies kann beispielsweise ein Eintrag zum verändern der Farben des GRUB-Menüs sein, oder ein Eintrag um GRUB zu installieren.

Dieser Eintrag ist mit dem vorhergehenden identisch, lediglich sind die Felder nicht mit Werte vorbelegt und müssen erst ausgefüllt werden.

Als „Globale Optionen“ werden Parameter, die generell Auswirkungen auf die Konfiguration haben und nicht einem einzelnen Eintrag zuzuordnen sind, bezeichnet. Dies sind: Ein Default-Booteintrag und ein Fallback-Eintrag, das Timeout in Sekunden bis der Default-Eintrag gestartet, wird sowie die gewünschte Festplatte oder Partition auf der GRUB installiert werden soll.

Ein Mausklick auf diese Schaltfläche installiert GRUB sofort auf der Festplatte, es gibt keine weitere Abfrage. Die Ausgabe des Programmes wird angezeigt, überprüfen Sie genau ob es während der Installation zu Problemen gekommen ist.

Lilo

Wenn Lilo auf dem System als Booloader verwendet wird, so kann dieser hier konfiguriert werden. Auch dieses Menü ist in zwei Bereiche geteilt, im oberen Bereich können bestehende Einträge in der Konfiguration verändert oder neue hinzugefügt werden. Darunter finden sich Einstellmöglichkeiten für globale Parameter die nicht direkt in Zusammenhang mit einem Eintrag für einen bestimmten Kernel stehen.

Durch einen Mausklick auf einen bestehenden Eintrag kann dieser verändert werden. Hinter dem Link „Einen neuen Boot-Kernel erstellen“, verbirgt sich das gleiche Menü, jedoch ohne Vorgabewerte.

Zunächst ist im Feld „Name“ ein Titel für diesen Eintrag zu vergeben. Im Feld „Zu bootender Kernel“ ist der Pfad und der Dateiname des gewünschten Kernels anzu geben, dieser kann aber auch über die Schaltfläche ... direkt ausgewählt werden. Weiterhin können Kernel-Parameter die bei Booten des Systems aktiviert werden sollen im Feld „Kernel-Parameter“ angegeben werden.

Als „Root-Gerät“ wird hier die Root-Partition bezeichnet. Weitere Parameter beeinflussen die Auflösung der Text-Konsole („VGA-Textmodus“), den Modus in dem das Root-Dateisystem gemountet werden soll(„Root-Mount-Modus“) und das Passwort welches bei der Benutzung von Lilo generell oder nur bei der Angabe von Optionen verwendet werden soll („Boot-Kennwort“ und „Kennwort benötigt für“). Natürlich kann an dieser Stelle auch eine eventuell zu verwendende RAM Disk konfiguriert werden.

Wenn die gewünschten Einstellungen vorgenommen wurden, kann der Eintrag durch einen Mausklick auf „Speichern“ auf die Platte geschrieben werden. Dies schreibt lediglich die Veränderungen in die Datei /etc/lilo.conf, der Aufruf von lilo um den MBR neu zu schreiben wird dabei nicht ausgeführt.

Hier werden allgemein gültige Einstellungen vorgenommen, dies sind beispielsweise die Auswahl wohin der Bootloader geschrieben werden soll („Schreibe Bootlader auf“) und verschiedene Wartezeiten sowie auch hier wieder ein allgemeines Kennwort für die gesammte Lilo-Konfiguration.

Über die Schaltfläche „Konfiguration anwenden“ wird der Aufruf von lilo mit der neu erstellten Konfiguration durchgeführt. Eventuell aufgetretene Fehlermeldungen oder auch Statusmeldungen werden angezeigt.

Netzwerk

Der Bereich Netzwerk gliedert sich in verschiedene Themen. Hier finde sich Einstellungen zu IP-Adressen, Routing und Namesauflösung.

Die Konfiguration der Netzwerkschnittstellen zeigt zunächst eine Übersicht der bereits konfigurierten Interfaces an. Hier können über den Link „Eine neue Schnittstelle hinzufügen“ weitere Interfaces hinzugefügt werden.

Durch eine Mausklick auf eine der Schnittstellen können Veränderungen an dieser vorgenommen werden. Hier können neben der IP-Adresse, Broadcast und Netmask auch Werte wie MTU und sogar die Hardwareadresse (natürlich wird dies nicht auf der Karte gespeichert sondern nur für den Betrieb überschrieben) verändert werden. Weiterhin können hier einer Karte virtuelle Schnittstellen hinzugefügt werden.

Hier kann konfiguriert werden welcher Router, bzw. welches Gateway für das System verwendet werden soll.

In diesem Dialog können Einstellungen zum Hostnamen, den zu verwendenden Nameservern, der Reihenfolge der Möglichkeiten für Nameserverabfragen und den Suchdomänen gemacht werden.

Die hier getätigten Einstellungen finden sich in der Datei /etc/hosts wieder. Hier können, falls kein eigener Nameserver für das interne Netz verfügbar ist, lokale Systeme eingetragen werden für die normalerweise keine sinnvolle Namensauflösung verfügbar ist.

Andere

In dieser Kategorie finden sich einige Tools die in keine andere Kategorie passen.

Mit der Command Shell können Shell Kommandos aus Webmin heraus ausgeführt werden, die Standardausgabe des Kommandos wird im Browser ausgegeben. Das Kommando cd kann dazu benutzt werden, nachfolgenden Programmen das gewünschte Startverzeichnis zu geben.

Mit „Eigene Befehle“ können Kommandos definiert die auch unter anderen Benutzerkennungen ausgeführt werden können. Beispielsweise können hier regelmäßige Arbeiten wie das löschen von Core-Dateien von Hand angestoßen werden.

Wenn auf dem System ein Telnet-Server installiert ist (was normalerweise nicht zu empfehlen ist) kann hierüber ein Login auf das System erfolgen.

Hier kann der Zustand von verschiedenen Diensten überwacht werden.

Themes

Webmin läßt sich mit angepassten Themes versehen, mit denen sich das Aussehen der Seiten beeinflussen läßt.

Um ein neues Theme zu erzeugen, muß im Verzeichnis /usr/share/webmin/ ein Unterverzeichnis erzeugt werden. In diesem Verzeichnis muß zumindest die Datei theme.info vorhanden sein. In dieser Datei ist mindestens der Eintrag desc zwingend erforderlich. Dieser Eintrag beschreibt das Theme kurz und wird als Text in der Themenauswahl angezeigt.

Die Syntax für alle Einträge in den Konfigurationsdateien lautet: name=wert.

Die meisten Einstellungen werden in der Konfigurationsdatei config vorgenommen. Auch hier entspricht die Syntax der Einträge der oben beschriebenen (name=wert). Die hier definierten Werte überschreiben einige der voreingestellten Werte in der globalen Webmin Konfigurationsdatei /etc/webmin/config. Werte die überschrieben werden können sind:

Um weitere Veränderungen vorzunehmen, müssen keine Änderungen an der Webmin-Konfigurationsdatei vorgenommen werden. Wenn ein Theme gewählt wird, so wird das Verzeichnis dieses Themes mit allen Inhalten dem Wurzelverzeichnis des Webmin Servers überlagert. Dateien die im Theme-Verzeichnis enthalten sind haben somit eine höhere Wertigkeit und werden bevorzugt geladen.

Auf diesem Wege können auch die Icons oder die Grafiken, die die Seitenüberschriften erzeugen, ausgetauscht werden. Aber auch die verwendeten CGI-Programme können auf diesem Wege ausgetauscht werden. Dies kann beispielsweise dazu verwendet werden, um ein neues Hauptmenü zu erzeugen. Hierzu ist eine Datei index.cgi zu erzeugen und im Theme-Verzeichnis abzulegen. Hierbei ist darauf zu achten, daß die tatsächlich benutzten Scripte im Hauptverzeichnis (nicht im Themeverzeichns) von Webmin liegen, die Pfade sind entsprechend zu setzen.

Wenn das neue Theme vollendet ist kann es mit tar gepackt werden. Webmin Themes haben normalerweise die Endung .wbt.