Logwatch: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Hier ist eine klare, einfache und vollständige Erklärung zu '''Logwatch''' im MediaWiki-Format, mit Fokus auf das Wesentliche und darauf, was genau wie ausgewertet wird:
```
= Logwatch unter Debian 12 mit Postfix, Dovecot, Rspamd, ClamAV und Apache =


==== Was ist Logwatch? ====
Logwatch wertet standardmäßig klassische Logdateien unter '''/var/log''' aus. Debian 12 (Bookworm) verwendet jedoch '''journald''', welches keine Text-Logs erzeugt.
Logwatch ist ein Logfile-Analyse-Tool, das automatisch Systemprotokolle (Logs) auswertet und daraus einen übersichtlichen Bericht erzeugt.  


==== Welche Logs werden ausgewertet? ====
Damit Logwatch alle gewünschten Dienste auswerten kann, ist es nötig, '''rsyslog''' zusätzlich zu installieren.
Standardmäßig analysiert Logwatch folgende Protokolle:


;Systemprotokolle
= rsyslog installieren =
* '''auth.log''' – Anmeldungen, fehlerhafte Logins, sudo-Zugriffe
* '''syslog''' – Allgemeine Systemmeldungen, Fehler, Warnungen
* '''kern.log''' – Kernelmeldungen, Hardwareprobleme, Fehler bei Geräten
* '''daemon.log''' – Meldungen von Diensten wie SSH, Cron, Postfix, etc.


;Anwendungsprotokolle (falls installiert)
'''rsyslog''' schreibt wieder klassische Logdateien.
* '''Apache''' – Zugriffe, Fehler, Attacken
* '''Postfix''' – E-Mail-Versand, Empfang, Spam-Warnungen
* '''SSH''' – Zugriffe, fehlgeschlagene Anmeldeversuche
* '''Cron''' – Ausführung und Fehler von Cronjobs
* '''Fail2Ban''' – IP-Blockaden, Sicherheitswarnungen
* '''MySQL/MariaDB''' – Fehler und Warnungen in der Datenbank


==== Wie wird ausgewertet? ====
* apt install rsyslog
Logwatch wertet die Logs '''regelmäßig''' (standardmäßig täglich) per Cronjob aus. Es sucht nach:


;Wichtigen Ereignissen
Nach der Installation werden automatisch die üblichen Logs wie '''/var/log/syslog''' und '''/var/log/mail.log''' erzeugt.
* Kritischen Fehlern (CRITICAL)
* Fehlgeschlagenen Anmeldungen (Login Failures)
* Sicherheitsrelevanten Warnungen (SECURITY)
* Abweichungen im normalen Betrieb (z.B. ungewöhnlich viele Zugriffe)


;Gruppierung und Zusammenfassung
= Logdateien prüfen =
* Häufig wiederkehrende Meldungen werden '''zusammengefasst''' dargestellt, um den Bericht übersichtlich zu halten.
* Einzelne Meldungen werden nach '''Typ und Dienst''' (z.B. SSH, Cron, Apache) sortiert.


==== Berichtsausgabe ====
Prüfen, ob folgende Logdateien existieren und beschrieben werden:
Logwatch fasst alle relevanten Einträge in einem Bericht zusammen, der entweder:


* Per Mail versendet wird (Standard)
* ls -l /var/log/mail.log /var/log/syslog /var/log/rspamd/rspamd.log /var/log/clamav/clamav.log /var/log/apache2/access.log /var/log/apache2/error.log
* Auf der Konsole ausgegeben wird


Die Detailtiefe kannst du selbst bestimmen:
Falls '''rspamd''' und '''clamav''' keine Logs in '''/var/log''' erstellen, Konfiguration anpassen:
* '''Low''' – Nur kritische und wichtige Meldungen (Standard)
* '''Med''' – Erweiterte Meldungen und Warnungen
* '''High''' – Ausführliche Detailmeldungen (für Troubleshooting)


==== Wichtige Optionen in logwatch.conf ====
== Rspamd-Logging aktivieren (falls nicht aktiv) ==
Die Hauptkonfiguration erfolgt in '''/usr/share/logwatch/default.conf/logwatch.conf'''. 
Änderungen sollten immer in '''/etc/logwatch/conf/logwatch.conf''' vorgenommen werden.


;Wichtige Parameter:
Datei '''/etc/rspamd/local.d/logging.inc''' erstellen oder ergänzen:
* '''MailTo = admin@beispiel.de''' – Wohin der Bericht gesendet wird.
* '''Detail = Low|Med|High''' – Wie detailliert der Bericht ausfällt.
* '''Range = yesterday|today|All''' – Welcher Zeitraum ausgewertet wird.
* '''Output = mail|stdout''' – Wie die Ausgabe erfolgen soll.
* '''Format = html|text''' – Ausgabeformat des Berichts.


==== Eigene Logs einbinden ====
type = "file";
Um eigene Logs auszuwerten, kannst du in:
filename = "/var/log/rspamd/rspamd.log";
level = "info";


'''/etc/logwatch/conf/services/'''
Rspamd danach neu starten:


eigene Konfigurationsdateien hinterlegen. Beispiel:
* systemctl restart rspamd


Datei: /etc/logwatch/conf/services/meinlog.conf
== ClamAV-Logging aktivieren (falls nicht aktiv) ==
Title = "Mein Dienst"
LogFile = /var/log/meindienst.log


==== Automatische Ausführung ====
Datei '''/etc/clamav/clamd.conf''' ergänzen/anpassen:
Logwatch läuft standardmäßig einmal täglich über Cron. Du musst keine zusätzlichen Schritte vornehmen.


==== Manueller Test ====
LogFile /var/log/clamav/clamav.log
So kannst du sofort sehen, was Logwatch macht:
LogTime yes


Ausgabe auf der Konsole:
ClamAV neu starten:
'''logwatch --output stdout --detail High'''


Ausgabe per Mail testen:
* systemctl restart clamav-daemon
'''logwatch --mailto admin@beispiel.de --detail Med'''


Standardmäßig liefert Logwatch gute Berichte zu '''Postfix''' und '''Dovecot'''. Bei '''Rspamd''' und '''ClamAV''' musst du kleine Anpassungen machen, weil diese Logs nicht automatisch detailliert analysiert werden.
= Logwatch konfigurieren =


Hier ist genau, was du tun musst:
Logwatch benötigt für '''Rspamd''' und '''ClamAV''' zusätzliche Konfigurationsdateien. '''Postfix''', '''Dovecot''' und '''Apache''' funktionieren automatisch.


==== Postfix und Dovecot ====
== Rspamd in Logwatch integrieren ==
Logwatch wertet '''Postfix''' und '''Dovecot''' standardmäßig automatisch und umfassend aus.


;Es werden erfasst:
Konfigurationsdatei '''/etc/logwatch/conf/services/rspamd.conf''' erstellen:
* Empfangene und gesendete Mails
* Zustellfehler und Warnungen
* Logins und fehlgeschlagene Authentifizierungen (Dovecot)
* Temporär und permanent abgelehnte Nachrichten (Postfix)


Du musst nichts tun, wenn du die Standard-Logpfade (z.B. '''/var/log/mail.log''') verwendest.
==== Rspamd und ClamAV ====
Standardmäßig wertet Logwatch Rspamd und ClamAV '''nicht detailliert''' aus. Du bekommst höchstens sehr oberflächliche oder gar keine Meldungen dazu.
==== Rspamd in Logwatch integrieren ====
Erstelle zuerst eine neue Service-Konfiguration:
Datei '''/etc/logwatch/conf/services/rspamd.conf''':
  Title = "Rspamd"
  Title = "Rspamd"
  LogFile = /var/log/rspamd/rspamd.log
  LogFile = /var/log/rspamd/rspamd.log


Um Meldungen besser zusammenzufassen, ergänze ein einfaches Filter-Skript:
Skript '''/etc/logwatch/scripts/services/rspamd''' erstellen und ausführbar machen:


Datei '''/etc/logwatch/scripts/services/rspamd''':
  #!/bin/bash
  #!/bin/bash
  grep -E "(reject|spam|greylist|action)" | sort | uniq -c | sort -nr
  grep -E "(reject|spam|greylist|action)" | sort | uniq -c | sort -nr


Mach es ausführbar:
Ausführbar setzen:
'''chmod +x /etc/logwatch/scripts/services/rspamd'''


Damit erhältst du eine übersichtliche Zusammenfassung, wie viele Mails Spam, Greylisting oder andere Aktionen verursacht haben.
* chmod +x /etc/logwatch/scripts/services/rspamd


==== ClamAV in Logwatch integrieren ====
== ClamAV in Logwatch integrieren ==
Standardmäßig sind ClamAV-Meldungen in Logwatch wenig aussagekräftig.


Erstelle folgende Service-Konfiguration:
Konfigurationsdatei '''/etc/logwatch/conf/services/clamav.conf''' erstellen:


Datei '''/etc/logwatch/conf/services/clamav.conf''':
  Title = "ClamAV"
  Title = "ClamAV"
  LogFile = /var/log/clamav/clamav.log
  LogFile = /var/log/clamav/clamav.log


Und ein einfaches Filter-Skript:
Skript '''/etc/logwatch/scripts/services/clamav''' erstellen und ausführbar machen:


Datei '''/etc/logwatch/scripts/services/clamav''':
  #!/bin/bash
  #!/bin/bash
  grep -E "(FOUND|Infected)" | sort | uniq -c | sort -nr
  grep -E "(FOUND|Infected)" | sort | uniq -c | sort -nr


Mach es ausführbar:
Ausführbar setzen:
'''chmod +x /etc/logwatch/scripts/services/clamav'''
 
* chmod +x /etc/logwatch/scripts/services/clamav
 
== Apache in Logwatch prüfen ==
 
Apache wird automatisch von Logwatch ausgewertet, sofern Standardpfade verwendet werden:
 
* /var/log/apache2/access.log
* /var/log/apache2/error.log
 
Keine Anpassungen nötig.
 
= Logwatch testen =
 
Ausgabe von Logwatch sofort auf der Konsole testen:
 
* logwatch --output stdout --detail High
 
Der Bericht enthält nun:
* Postfix (Mail-Versand, Empfang, Fehler)
* Dovecot (Logins, Authentifizierungsfehler)
* Rspamd (Spam- und Greylisting-Berichte)
* ClamAV (Virenmeldungen, Updates)
* Apache (Zugriffe, Fehler, Warnungen)
 
= Hinweis zur aktuellen Situation (2025) =


Das gibt dir eine einfache, aber nützliche Zusammenfassung, welche Viren gefunden wurden.
Logwatch besitzt bis heute keine native Unterstützung für '''journald''', was es in Umgebungen mit reinem Journald-Logging weniger zeitgemäß macht.


==== Abschließender Test ====
Zeitgemäße Alternativen für Journald wären:
Teste die Auswertung sofort mit:
'''logwatch --output stdout --service rspamd --detail high'''
'''logwatch --output stdout --service clamav --detail high'''


==== Fazit ====
* Nutzung von '''journalctl''' direkt
* '''Postfix und Dovecot''' laufen '''Out-of-the-box'''.
* Grafische Verwaltung über '''Cockpit'''
* '''Rspamd und ClamAV''' benötigen die gezeigten kleinen Anpassungen.
* Monitoring-Stacks (Grafana mit Loki oder ELK-Stack)


Danach liefert Logwatch täglich vollständige und übersichtliche Berichte über deinen kompletten Mailserver.
Logwatch ist weiterhin nutzbar, wenn klassisches Logging (rsyslog) parallel aktiviert wird, wie oben beschrieben.
```

Aktuelle Version vom 28. März 2025, 06:37 Uhr

```

Logwatch unter Debian 12 mit Postfix, Dovecot, Rspamd, ClamAV und Apache

Logwatch wertet standardmäßig klassische Logdateien unter /var/log aus. Debian 12 (Bookworm) verwendet jedoch journald, welches keine Text-Logs erzeugt.

Damit Logwatch alle gewünschten Dienste auswerten kann, ist es nötig, rsyslog zusätzlich zu installieren.

rsyslog installieren

rsyslog schreibt wieder klassische Logdateien.

  • apt install rsyslog

Nach der Installation werden automatisch die üblichen Logs wie /var/log/syslog und /var/log/mail.log erzeugt.

Logdateien prüfen

Prüfen, ob folgende Logdateien existieren und beschrieben werden:

  • ls -l /var/log/mail.log /var/log/syslog /var/log/rspamd/rspamd.log /var/log/clamav/clamav.log /var/log/apache2/access.log /var/log/apache2/error.log

Falls rspamd und clamav keine Logs in /var/log erstellen, Konfiguration anpassen:

Rspamd-Logging aktivieren (falls nicht aktiv)

Datei /etc/rspamd/local.d/logging.inc erstellen oder ergänzen:

type = "file";
filename = "/var/log/rspamd/rspamd.log";
level = "info";

Rspamd danach neu starten:

  • systemctl restart rspamd

ClamAV-Logging aktivieren (falls nicht aktiv)

Datei /etc/clamav/clamd.conf ergänzen/anpassen:

LogFile /var/log/clamav/clamav.log LogTime yes

ClamAV neu starten:

  • systemctl restart clamav-daemon

Logwatch konfigurieren

Logwatch benötigt für Rspamd und ClamAV zusätzliche Konfigurationsdateien. Postfix, Dovecot und Apache funktionieren automatisch.

Rspamd in Logwatch integrieren

Konfigurationsdatei /etc/logwatch/conf/services/rspamd.conf erstellen:

Title = "Rspamd"
LogFile = /var/log/rspamd/rspamd.log

Skript /etc/logwatch/scripts/services/rspamd erstellen und ausführbar machen:

#!/bin/bash
grep -E "(reject|spam|greylist|action)" | sort | uniq -c | sort -nr

Ausführbar setzen:

  • chmod +x /etc/logwatch/scripts/services/rspamd

ClamAV in Logwatch integrieren

Konfigurationsdatei /etc/logwatch/conf/services/clamav.conf erstellen:

Title = "ClamAV"
LogFile = /var/log/clamav/clamav.log

Skript /etc/logwatch/scripts/services/clamav erstellen und ausführbar machen:

#!/bin/bash
grep -E "(FOUND|Infected)" | sort | uniq -c | sort -nr

Ausführbar setzen:

  • chmod +x /etc/logwatch/scripts/services/clamav

Apache in Logwatch prüfen

Apache wird automatisch von Logwatch ausgewertet, sofern Standardpfade verwendet werden:

  • /var/log/apache2/access.log
  • /var/log/apache2/error.log

Keine Anpassungen nötig.

Logwatch testen

Ausgabe von Logwatch sofort auf der Konsole testen:

  • logwatch --output stdout --detail High

Der Bericht enthält nun:

  • Postfix (Mail-Versand, Empfang, Fehler)
  • Dovecot (Logins, Authentifizierungsfehler)
  • Rspamd (Spam- und Greylisting-Berichte)
  • ClamAV (Virenmeldungen, Updates)
  • Apache (Zugriffe, Fehler, Warnungen)

Hinweis zur aktuellen Situation (2025)

Logwatch besitzt bis heute keine native Unterstützung für journald, was es in Umgebungen mit reinem Journald-Logging weniger zeitgemäß macht.

Zeitgemäße Alternativen für Journald wären:

  • Nutzung von journalctl direkt
  • Grafische Verwaltung über Cockpit
  • Monitoring-Stacks (Grafana mit Loki oder ELK-Stack)

Logwatch ist weiterhin nutzbar, wenn klassisches Logging (rsyslog) parallel aktiviert wird, wie oben beschrieben. ```