Re: Daily mails

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Tue, 30 Nov 2010 09:59:44 +0100 (CET)

Steffen Beyer <steffen(at)beyer.io> wrote:
> wie handhabt ihr den typischen FreeBSD Mail-Output, die taeglichen Reports?
>
> Bei vielen Jails laeppert sich das Aufkommen da langsam. Gibt es da
> Helfer, die das zusammenfassen? Oder kann man guten Gewissens die Reports
> auf das Host-System beschraenken?

Das kommt darauf an, was in den Jails läuft. In dem Fall,
wenn darin (mehr oder weniger) ein vollständiges System
läuft, z.B. für User-Login-Shells, dann lasse ich auch die
periodic-Scripte darin laufen. Im Falle von Minimal-Jails
dagegen (z.B. wenn nur ein BIND darin läuft), verzichte ich
darauf; in dem Fall läuft nicht einmal ein cron(8) oder ein
syslog darin (Log-Meldungen lasse ich dann per local-UDP an
den Host-syslog auf 127.0.0.2 laufen, was eine Alias-IP
auf lo0 ist).

Mittels /etc/periodic.conf kann man das Verhalten bzw. die
Anzahl der Checks weitgehend konfigurieren; siehe die Kom-
mentare in /etc/defaults/periodic.conf und die Manual-page
periodic.conf(5). Beispielsweise kann man in allen Jails
die "chksetuid"-Checks ausschalten, da die Dateisysteme in
der Regel bereits vom periodic-Check erfasst werden, der
auf dem Host-System läuft. Würde man diese in den Jails
nochmals prüfen, wäre das doppelt gemoppelt und unnötige
I/O-Belastung.

Bleibt noch die Frage, was man am besten mit den Periodic-
Mails macht, die dann noch übrig bleiben. Zunächst mal
würde ich empfehlen, sie zu archivieren, damit man nötigen-
falls nachschauen und vergleichen kann, was vor ein paar
Tagen (oder Wochen) losgewesen ist. Ich persönlich mache
es so, dass ich die Mails an einen Alias schicken lasse,
der eine Kopie unter /var/log ablegt, welche ich dann per
/etc/newsyslog.conf rotieren lasse. (Man kann auch in
/etc/periodic.conf anstelle einer E-Mail-Adresse eine Datei
angeben, wo der periodic-Output hingeschrieben werden soll,
allerdings erhält man dann keine Mail mehr. Da ich gerne
beides möchte, verwende ich den Trick mit dem Alias.)

Schließlich muss man sich noch überlegen, ob man die ganzen
periodic-Outputs tatsächlich jeden Tag liest. Das muss man
im Einzelfall entscheiden, je nachdem, wie man die zur Ver-
fügung stehende Zeit und seine Paranoia gewichtet, und wie
wichtig bzw. gefährdet ein System sein mag. Man sollte
aber bei aller Paranoia auch bedenken, dass es gefährlich
sein kann, die kompletten Mails tatsächlich jeden Tag zu
lesen, da dies dazu führen kann, dass man mit der Zeit im-
mer schneller darüberfliegt und irgendwann die erwarteten
Ausgaben "sieht", auch wenn etwas anderes dort steht.

Es gibt in der Ports-Collection etliche Tools, die automa-
tisch Log-Dateien parsen, mit konfigurierten Mustern ver-
gleichen und Alarm schlagen (z.B. E-Mail oder SNMP-Trap),
wenn Abweichungen festgestellt werden. Die meisten dieser
Tools kann man auch für die periodic-Outputs verwenden.
Das hat zwei Vorteile: Erstenst spart es Zeit, da man die
Sachen nicht mehr selbst durchlesen muss (jedenfalls nicht
alles), und zweitens tritt kein Gewöhnungseffekt ein, da
das Tool immer akribisch sein Regelwerk abarbeitet (das man
vorher natürlich geeignet erstellt haben muss). Ich habe
z.B. gute Erfahrungen mit misc/logsurfer gemacht, der sich
sehr flexibel konfigurieren lässt (man sollte aber Ahnung
von regulären Ausdrücken haben).

Für mich persönlich habe ich mal ein kleines Tool speziell
für die periodic-Outputs geschrieben, das die Ausgaben
zeilen- und blockweise mit Templates vergleicht. Gibt es
eine Abweichung, wird der ganze zugehörige Block ausgegeben
(z.B. das setuid-diff oder die Kernel-Messages), anderen-
falls gar nichts. Ist die Ausgabe komplett leer (d.h. al-
les war konform mit dem Template), wird auch keine E-Mail
verschickt. Das sorgt für erhöhte Aufmerksamkeit: Wenn
eine periodic-Mail kommt, weiß man, dass irgendetwas nicht
stimmt: Entweder gab es einen echten Incident, oder etwas
Harmloses (z.B. wurde ein Port aktualisiert, der setuid-
Binaries mitbringt), oder es gab eine irrelevante Änderung,
die man in die Templates einarbeiten muss, um nicht wieder
damit belästigt zu werden.

Evtl. schreibe ich gelegentlich mal etwas Doku zu meinem
Tool und setze es ebenfalls in die Ports-Collection. Aber
wie gesagt, man kann auch einen der generischen Log-Parser
wie etwa misc/logsurfer verwenden. Am Anfang muss man
etwas Aufwand in die Konfiguration investieren, aber mit
der Zeit rentiert es sich, und zwar umso mehr, je mehr
Hosts und/oder Jails man hat, um deren periodic-Outputs
man sich dann nicht mehr regelmäßig kümmern muss.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
PI:
int f[9814],b,c=9814,g,i;long a=1e4,d,e,h;
main(){for(;b=c,c-=14;i=printf("%04d",e+d/a),e=d%a)
while(g=--b*2)d=h*b+a*(i?f[b]:a/5),h=d/--g,f[b]=d%g;}
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 30 Nov 2010 - 10:00:16 CET

search this site