Eine einfache und effektive allgemeine Lösung ist die Verwendung von Logcheck .
sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
logcheck scannt regelmäßig alle Protokolle auf effiziente Weise (beginnend dort, wo es das letzte Mal aufgehört hat ), filtert, was es als normal ansieht, und sendet optional E-Mails mit Warnungen, die nicht den normalen / Routinemustern entsprechen.
Die Hauptidee ist es, auf das Auftreten schwerwiegender Einträge in Ihren Protokolldateien zu achten, alle, die ganze Zeit, damit Sie dies nicht tun müssen.
logcheck ist sehr konfigurierbar (man logcheck
). Sie können alles konfigurieren, einschließlich:
- Häufigkeit der Kontrollen
- Welche Protokolldateien werden überprüft?
- was als normal gilt vs nicht
- wohin sollen die Warnungen (ungewöhnliche Ereignisse) per E-Mail gesendet werden?
und mehr. Ihre Ignoriermuster (normal / routinemäßig) befinden sich in mehreren Dateien unter /etc/logcheck/ignore.d.*, und Sie können sie an Ihre Bedürfnisse anpassen. Hauptsächlich möchten Sie vielleicht Ihre eigenen Muster hinzufügen, um sie zu ignorieren. Das Ubuntu-Standardpaket enthält bereits einen umfangreichen Satz von Dateien mit Ignoriermustern für viele Dienste. Daher müssen Sie nicht viel hinzufügen, es sei denn, Ihr System ist in Bezug auf die Ausführung ungewöhnlich. Es gibt drei vorkonfigurierte Sätze von Ignorier- Dateiprofilen : ignore.d.workstation , ignore.d.server und ignore.d.paranoid, aus denen Sie auswählen können.
Die Hauptidee hinter logcheck ist, dass die verschiedenen Dienste, die auf einem System ausgeführt werden, bereits abnormale Ereignisse protokollieren. Beispiel: sshd oder pam protokollieren bereits Authentifizierungsfehler. Die wichtigsten fehlenden Komponenten sind also:
- Filtern, was normal ist
- Der Alarmierungsdienst
Beides wird von logcheck in einem praktischen Paket bereitgestellt. Sie können logcheck mit jeder anderen Protokollierung kombinieren . Zum Beispiel iptables kann so konfiguriert werden syslog alle Netzwerkverbindungsversuche , die durch Hinzufügen der Regeln nicht explizit zugelassen sind:
iptables -A input -j LOG
iptables -A input -j DROP
sofort nach all den Regeln erlauben.
Ich finde, dass Logcheck viel hilfreicher ist als Logwatch (wie in anderen Antworten vorgeschlagen), da es eine große Anzahl von Regeln enthält, mit denen ignoriert werden kann, was als normale Aktivität angesehen wird. Das Ergebnis ist ein viel höheres Signal / Rausch-Verhältnis in den per E-Mail versendeten Warnungen. YMMV.
Ein weiterer Vorteil von logcheck ist, dass es orthogonal zu jedem Dienst ist, der protokolliert, sodass keine Funktionsduplikationen auftreten. Wann immer Sie einen neuen Dienst hinzufügen, der verwendet wird syslog
, um abnormale oder nicht abnormale Ereignisse in einer Datei unter /var/log
Ihnen zu protokollieren, erhalten Sie automatisch Warnungen dafür.
WIE MAN:
Da dies logcheck
bereits vorkonfiguriert ist, decken zwei Zeilen oben in dieser Antwort im Wesentlichen alles ab, was Sie für den Einstieg benötigen. Installieren Sie es einfach und gehen Sie die oberste Konfigurationsdatei durch:
/etc/logcheck/logcheck.conf
Um Ihre E-Mail-Adresse zu ändern, damit Sie logcheck
per E- Mail benachrichtigt werden.
Hier finden Sie eine ausführliche Beschreibung des zweiten Schritts . Da Ubuntu auf Debian basiert, sollten diese Anweisungen auch auf Ubuntu funktionieren.
Hier ist eine weitere gute Referenz .
Nach der Installation wird der kontinuierliche Verbesserungsprozess gestartet. Mit der Zeit verfeinern Sie Ihre Regeln, um alles zu ignorieren, von dem Sie bereits wissen und das Sie nicht für wichtig halten sollten. Dieser Verfeinerungsprozess ist so einfach wie das Hinzufügen von Textzeilen zu einer Datei in Ihrem bevorzugten Texteditor.
Jede Zeile in einer Ignorierdatei ist ein erweiterter regulärer Ausdruck (siehe man 7 regex
). Sie können jedoch einfache Zeichenfolgen verwenden, solange sie mit der zu ignorierenden Protokollzeile übereinstimmen. Denken Sie daran , dass Charaktere wie *
, ?
, ‚+‘, []
, ()
sind besondere in einem regulären Ausdruck, so dass , wenn sie tatsächlich in den Log - Zeilen erscheinen, Sie müßten sie mit einem Backslash \
in den Dateien zu ignorieren.
Mit anderen Worten: Wenn Sie eine Warnung erhalten, die Sie nicht erhalten möchten, überprüfen Sie die Protokollzeile, die per E-Mail an Sie gesendet wurde, und fügen Sie ein Muster hinzu, das mit dieser übereinstimmt, als eine Zeile zu einer beliebigen Ignorierdatei Ihrer Wahl. Ich schlage vor,
/etc/logcheck/ignore.d.<yourloglevel>/my-ignores
als Ihre persönliche Ignorierdatei zu verwenden. Wo <yourloglevel>
ist einer von paranoid
, server
oder
workstation
(wie Sie bereits in der Hauptkonfigurationsdatei ausgewählt haben:) /etc/logcheck/logcheck.conf
. Schauen Sie sich die Beispiele in anderen Ignorierdateien an, um zu erfahren, wie sich ständig ändernder Text wie Prozess-IDs oder Zeitstempel berücksichtigt werden. Es gibt viele Beispiele, aus denen man lernen kann.
Ein letzter Tipp: Es logcheck
wird mit einem kleinen nützlichen Hilfsprogramm logcheck-test
geliefert, das zum Testen neuer Regeln sehr nützlich ist. man logcheck-test
für Details.