Zentral verwaltete Konfigurationsdateien
Der größte Aufwand beim Überführen von Konfigurationsdateien in eine zentrale Verwaltung besteht darin, eine gut pflegbare und redundanzfreie Meta-Datei zu erstellen. Um ein Chaos zu vermeiden, ist ein strukturiertes, zentral verwaltbares Datei-Synchronisationsprogramm erforderlich.

Die Meta-Datei ermöglicht die Erstellung von Konfigurationsdateien, indem sie die Konfigurationsdaten formal beschreibt.
Die Aufgabenstellung ist eigentlich ganz einfach: Der IT-Administrator betreut eine Unix-Systemlandschaft mit beliebigen Servern, beispielsweise für den Applikations-, E-Mail-, SAP-, Produktions- und Backup-Betrieb. Die darin enthaltenen Konfigurationsdateien zur Steuerung der Systeme sollen zentral verwaltet und über alle Systeme konsistent gehalten werden. Dabei gilt es für den System-Adiministrator, die Eigenheiten der jeweiligen Unix-Plattform zu beachten, da diese bei hohem Wachstum der Systemumgebung sehr schnell komplex werden können.
In der Praxis existieren zwei traditionelle Vorgehensweisen: Der System-Administrator kopiert eine Template-Datei auf die Systeme und nimmt die systemspezifischen Anpassungen von Hand vor. Dies ist nicht nur sehr mühsam und zeitaufwändig, sondern auch fehleranfällig, denn häufig wird die Template-Datei nicht sauber gepflegt und es schleichen sich systematische Fehler und Inkonsistenzen ein. Versierte System-Administratoren automatisieren diese Arbeiten mit Scripts. Die Scripts kopieren die Template-Dateien auf die Systeme und nehmen auch automatisch die nötigen Anpassungen vor. Dieser scriptbasierte Synchronisationsprozess läuft seriell ab, das heißt es wird System pro System synchronisiert beziehungsweise ein Update vorgenommen. Der Nachteil bei diesen Lösungen ist, dass sie meist schlecht skalieren und das Neueinpflegen oder das Löschen von Systemen sehr zeitaufwändig werden kann, da diese Änderungen oftmals in etlichen Dateien nachgeführt werden müssen. Ein weiteres Manko ist, dass die Entwicklung der Scripte oft von einer Person abhängig ist.
Beispiel File-Synchronisation
# Wo befindet sich das File auf dem System?
F * /etc/hosts
# Auf allen Systemen
A *
D {{IPADDR}} {{HOSTNAME}}
D 192.168.1.10 dns1.mydomain.ch
D 192.168.2.10 dns2.mydomain.ch
# Spezialfaelle
A —
A + Linux01
D 192.168.1.11 wins1.mydomain.ch
# Zuerst Original Datei auf alle Systemen sichern
A ++
S cp ${INPUT_OUT} ${INPUT_OUT}.sysgem_old
Erkennen von Sicherheit
Zusätzlich zur Pflege der Dateien ist es in einigen Fällen erforderlich, Scripte vor (Pre-Script) oder nach (Post-Script) dem Ändern der Dateien auszuführen. Als Beispiel dient hier die »/etc/inetd.conf«-Datei, die bei Unix-Systemen die Steuerung der Netzwerkdienste übernimmt. Ein Pre-Script könnte vor dem Abgleich eine Sicherheitskopie der Konfigurationsdatei erstellen. Das Post-Script sendet dem inetd-Prozess ein Signal und fordert damit den Prozess auf, seine Konfigurationsdatei neu einzulesen. Ein essentieller Bestandteil dieses Prozesses ist das Wissen um Veränderungen in den Konfigurationsdateien. Denn diese können leicht ohne Wissen des System-Administrators durch Hacking oder auch ganz legitim durch die Installation einer Software oder eines System-Upgrades beziehungsweise Patches erfolgen. In so einem Fall muss der System-Administrator unverzüglich alarmiert werden.
Um diese Sicherheitslücke zu schließen, muss als Basis eine vom System ausgelagerte sogenannte Meta-Datei bestehen. Sie liefert Angaben über den Sollzustand der veränderten Konfigurationsdatei und garantiert somit das Erkennen fremdmutierter Dateien. Konfigurationsdateien unterscheiden sich von System zu System in der Regel nur geringfügig. In vielen Fällen muss nur der eigene Hostname oder eine IP-Adresse eingetragen werden – beispielsweise /etc/hosts. Diese Parametrierbarkeit lässt sich durch Verwendung von Variablen erreichen. Die Meta-Datei ermöglicht die Erstellung von zentralen und redundanzfreien Konfigurationsdateien, indem sie die Konfigurationsdaten formal beschreibt.
Bevor jedoch mit der Datei-Synchronisation begonnen werden kann, gilt es für den IT-Administrator folgende Fragen zu klären:
- Welche Konfigurationsdateien sollen synchronisiert werden?
- Auf welchen Systemen sollen sie synchronisiert werden?
- Welche Unterschiede bestehen pro System?
- Welche Variablen müssen definiert werden?
- Wo soll die Meta-Datei angelegt werden?
Die Implementierung – und somit der Konsolidierung der Konfigurationsdateien – lässt sich recht einfach durchführen, wenn die Dateien schon in einem konsistenten Zustand sind. Ist dies nicht der Fall, beginnt hier die eigentliche Sisyphusarbeit, denn es muss pro Konfigurationsdatei und System entschieden werden, was in der bereinigten neuen Konfigurationsdatei eingetragen werden soll.
Tools für die Erstellung von strukturierten und bereinigten Konfigurationsdateien müssen eine Reihe von Anforderungen abdecken:
- Einfache Bedienbarkeit,
- Skalierbarkeit und Übersichtlichkeit bei hohem System-Wachstum,
- zentrale, redundanzfreie und parametrierbare Verwaltung der Konfigurationsdateien,
- Auslösen eines Alarms bei ungewollten Mutationen,
- übersichtliche Darstellung der Meta-Datei sowie
- Ausführen von Scripten vor oder nach der Mutation auf den Zielsystemen.
Doch es existieren kaum Produkte auf dem Markt, die dieses Segment im System-Management-Bereich zur Zufriedenheit des IT-Administrators abdecken. So gibt es mit rsync (Free and Open Source), unison (Free and Open Source)und robocopy, das mit dem Resource-Kit von Windows ausgeliefert wird, Lösungsansätze.
Mit diesen Tools kann der Administrator allerdings nur einzelne Files, Directories über mehrere Systeme synchron halten, das heißt hier fehlt die Möglichkeit, systemspezifische und parametrierbare Konfigurationen zu erstellen. Auch sind die Post- und Pre-Prozess-Funktionen nicht möglich.
Der optimale Weg besteht darin, dass sich alle Synchronisationsprozesse parallel auf den Systemen ausführen lassen. Das Beispiel auf Seite 20 (Meta-Datei /etc/hosts) zeigt einen Ausschnitt der Möglichkeiten, die beispielsweise das Modul »FileSynchronisation« des »SysGem Enterprise Managers« (SEM) bietet. Die Variabeln {{IPADDR}} und {{HOSTNAME}} werden bei der Konfiguration der Systeme definiert. Der Dateiname auf dem Zielsystem kann mit ${INPUT_OUT} angesprochen werden.
Anschließend wird die Syntax der Meta-Datei mit Hilfe des SysGem-GUI interpretiert und die so erzeugten systemspezifischen Konfigurationsdateien werden auf die Zielsysteme verteilt. Das Anlegen empfiehlt sich auf einem Share, auf das alle Mitarbeiter Zugriff haben.
Auf dem Display wird dargestellt welche Systeme bereits auf dem neuesten Stand sind und welche noch einen Update benötigen.
Beispiel File-Synchronisation
Field Description
T A title which is added to the top of this display
F The target file specification, for example /etc/services or /etc/hosts.
A An agent list. Format:
A = <name> = only this name
A+ <name> = add name
A++ = add all
A - <name> = remove name
A – = remove all - resets the list
G Agent group. Format:
G <group> agent,agent,…
Example:
G GRP001 SUN001,HP001
Group GRP001 contains SUN001 and HP001. GRP001 can be used in any subsequent A entry in
place of the agent name.
Groups defined in the SEM framework may also be used here.
D File data for the currently active agents.
S Optional pre-processing script for the currently active agents.
W Optional post-processing script for the currently active agents.
V Variable for currently active agents. Format:
V <name> <value>
Example:
V USER Albert Jones
V SID 1000
Replaces {{USER}} with Albert Jones and {{SID}} with 1000 in the file data.
Variables defined as part of the SEM agent definition can also be used here.
Fazit
Eine gut gepflegte Systemumgebung mit entsprechend leistungsfähigen Tools bietet in vielerlei Hinsicht Vorteile. Sie funktioniert zuverlässig, ist gut dokumentiert und für Audits und Reviews transparent. Anpassungen an den Systemen können unmittelbar und zentral ausgeführt werden. Gleichzeitig erhöht sich die Sicherheit der einzelnen Systeme sowie des gesamten Systemkomplexes massiv, da bei sicherheitsrelevanten Dateien sehr rasch Änderungen vorgenommen werden können. Jonas Furrer,Realstuff Informatik, Bern