Open Source im professionellen Einsatz

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:
»cfservd.conf«

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:
»update.conf«

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

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook