Keine einfache Aufgabe
Um komplexe Aufgaben zu erledigen, stehen diverse Aktionen und Direktiven zur Verfügung, die Cfengine mitliefert [4]. Die Auswahl lässt sich zwar in puncto Vielfältigkeit und Abstraktion nicht mit den Möglichkeiten anderer Konfigurationstools wie Bcfg2 oder Puppet vergleichen, viele Hürden der täglichen Sysadmin-Arbeit sind damit aber gut und schnell zu meistern: Die Konfiguration eines Mailservers etwa erfordert es, mehrere Komponenten am System an dessen Erfordernisse anzupassen. Zusätzlich wollen der Spam- und Virenschutz auf dem neuesten Stand gehalten, regelmäßig Statistiken über die Nutzlast erstellt und sich anbahnende Mailprobleme frühzeitig erkannt sein.
Traditionell behilft sich der Admin nach der manuellen Grundkonfiguration mit Skripten, die er mit Cron ausführt. Anfallende Änderungen der Konfiguration sind jedoch mühsam, da der Systemverwalter so jeden einzelnen der betreuten Mailserver gleichermaßen anpasst.
Einfacher ist es, einmalig eine Policy für alle Mailserver zu konfigurieren und Cfengine die Arbeit erledigen zu lassen (siehe Listing 4). Soll ein zusätzlicher Mailserver zum Einsatz kommen, trägt ihn der Admin in die Gruppe »MailServers« ein (Zeile 9). Nach dem ersten Aufruf von »cfagent«, den »cfexecd« periodisch ungefähr alle 15 Minuten aufruft (Zeile 2), sind alle notwendigen Änderungen erfolgt: Der neue Mailserver nimmt die Arbeit auf. Übersicht bewahrt, wer die Konfigurationsdateien aufteilt und über die »import«-Anweisung einbindet.
|
Listing 4: Ausführliche |
|---|
01 control:
02 Schedule = ( Min00_05 Min15_20 Min30_35 Min45_50 )
03 AddInstallable = ( RELOAD_SPAMASSASSIN RELOAD_POSTFIX )
04 DefaultPkgMgr = ( dpkg )
05 DPKGInstallCommand = ( "/usr/bin/apt-get install -q -y %s" )
06 actionsequence = ( packages copy directories editfiles shellcommands )
07
08 groups:
09 MailServers = ( mail01 mail02 )
10
11 packages:
12 postfix action=install
13 ...
14
15 directories:
16 !debian.MailServers::
17 /var/spool/postfix/var/run/saslauthd m=710 o=root g=sasl
18
19 copy:
20 MailServers::
21 (masterfiles)/spamassassin/ dest=/etc/spamassassin/ mode=644
22 server=$(policyhost) recurse=inf
23 editfiles:
24 MailServers::
25 { /etc/postfix/main.cf
26 AppendIfNoSuchLine "smtpd_sasl_auth_enable = yes"
27 BeginGroupIfNoLineContaining "smtpd_recipient_restrictions"
28 Append "smtpd_recipient_restrictions = permit_sasl_authenticated, reject"
29 EndGroup
30 DefineClasses "RELOAD_POSTFIX"
31 }
32
33 { /etc/passwd
34 AppendIfNoSuchLine "spamd:x:108:65534::/home/spamd:/bin/false"
35 }
36
37 alerts:
38 MailServers.smtp_in_high_anomaly::
39 "High SMTP incoming rate at $(host) value: $(value_smtp_in) average: $(average_smtp_in)"
40 ShowState(incoming.smtp) ifelapsed=60
41
42 shellcommands:
43 MailServers.Hr03_Q1::
44 "/usr/bin/sa-update && /etc/init.d/spamassassin reload"
45 MailServers.RELOAD_SPAMASSASSIN::
46 "/etc/init.d/spamassassin restart" ifelapsed=10
47 MailServers.RELOAD_POSTFIX::
48 "/etc/init.d/postfix reload"
|
Pakete installieren
Das durch »DPKGInstallCommand« festgelege Kommando installiert die für einen Mailserver benötigen Pakete im Block »packages« (Zeile 11). Ähnliche Direktiven gibt es außerdem für Distributionen, die auf RPM basieren, Gentoos Portage Tree sowie für Open Solaris und FreeBSD. Über die Parameter »version« und »cmp« nimmt der Admin Einfluss auf die gewünschten Version der Pakete.
Sind alle Pakete installiert, kümmert sich der Block »editfiles« in Zeile 23 um die nötigen Änderungen an den Konfigurationsdateien. Die Befehle tragen in der Regel sprechende Namen und sind daher auch nach längerer Zeit noch leicht verständlich. So hängt »AppendIfNoSuchLine« sein Argument an eine Konfigurationsdatei an, wenn es noch nicht eingetragen ist. Zeile 34 legt damit einen Benutzer für den Antispam-Daemon an.
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...





