Einfach viele
Seine wahre Stärke entfaltet Cfengine, wenn es als Policy-Host, also als Server, im Netzwerk zum Einsatz kommt, die Master-Konfiguration verteilt und Sorge trägt, dass die Clients sie auch umsetzen. Der Admin richtet dafür den »cfservd« ein und konfiguriert dazu »/etc/cfengine/cfservd.conf« (siehe Listing 2). Ist der Dienst eingerichtet und neu gestartet, dürfen sich die Clients die Master-Policy, aber auch zusätzliche Dateien, etwa Antiviren-Patterns oder Regeln für den Spamfilter, dort abholen.
Der obligatorische »control«-Block erlaubt den Zugriff aus dem Netzsegment 192.168.1.0/24 heraus (Zeile 3). Das fehlende Oktett im Listing ist kein Schreibfehler, sondern eine erlaubte Notation von Cfengine, die so das 24-Bit-Subnetz anzeigt. Zusätzlich zur IP-Adresse müssen sich Clients mit ihrem RSA-Schlüssel authentifizieren. Zeile 4 hebelt diese Vorsichtsmaßnahme aus. Sie sollte nur so lange aktiviert bleiben, bis alle Clients den öffentlichen Schlüssel des Servers gesammelt haben.
Die Anweisungen in den Zeilen 7 bis 10 zügeln allzu eifrige Clients, indem sie die maximale Anzahl gleichzeitiger Verbindungen beschränken. Die Option »SplayTime« verhindert, dass alle Clients wiederkehrend zur selben Zeit ihre Anfrage stellen. Dazu lässt sie jeden einzelnen Client eine bis zu einer Minute andauernde Pause einlegen, bevor sie erneut den Zugriff auf die im »grant«-Block (Zeile 12) freigegeben Ressourcen gewährt. Das ist im Beispiel-Listing die Master-Konfiguration.
|
Listing 2: |
|---|
01 control: 02 domain = ( linux-magazin.com ) 03 AllowConnectionsFrom = ( 192.168.1 ) 04 TrustKeysFrom = ( 192.168.1 ) 05 AllowUsers = ( root ) 06 LogAllConnections = ( true ) 07 MaxConnections = ( 50 ) 08 MultipleConnections = ( true ) 09 SplayTime = ( 1 ) 10 IfElapsed = ( 15 ) 11 12 grant: /var/lib/cfengine2/masterfiles/inputs 13 *.linux-magazin.com |
Config, du sollst wandern
Um stets mit der aktuellen Konfiguration zu arbeiten, führt der Cfengine-Client vor allen anderen Aktionen zunächst die Anweisungen aus der Datei »/etc/cfengine/update.conf« aus (siehe Listing 3). Üblicherweise richtet der Admin hier die Übertragung vom Policy-Server (Zeile 3) ein. Das hat den Vorteil, dass jeder Client mit einer lokalen Kopie arbeitet, also auch seine Arbeit verrichtet, wenn der Master einmal ausfällt. Hat sich in die Konfiguration ein Syntaxfehler eingeschlichen, bleiben die Clients trotzdem handlungsfähig, da der Admin seinen Fehler nur in der Masterkonfiguration korrigieren und erneut verteilen muss.
Cfengine bewahrt sicherheitshalber Logfiles sowie Kopien geänderter Dateien im Repository-Verzeichnis (Zeile 5) auf. Der Block »tidy« (Zeile 12) erledigt die Aufräumarbeiten und löscht dort alle Dateien, die älter als eine Woche sind.
|
Listing 3: |
|---|
01 control: 02 domain = ( linux-magazin.com) 03 policyhost = ( 192.168.1.1 ) 04 workdir = ( /etc/cfengine ) 05 repository = ( /var/cfengine2/outputs ) 06 masterfiles = ( /var/cfengine2/masterfiles/inputs ) 07 actionsequence = ( copy tidy ) 08 09 copy: 10 $(masterfiles) dest=$(workdir) server=$(policyhost) 11 mode=0600 r=inf 12 tidy: 13 $(repository) pattern=* age=7 |
Diesen Artikel als PDF kaufen
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





