Logwatch/fail2ban: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „== Einführung == * Logwatch ** [https://sourceforge.net/projects/logwatch/ Logwatch] ist ein Tool, das logfiles ausliest und zusammenfasst ** Der so generierte Report kann zB per E-Mail versand werden ** Dadurch kann man die Aktivitäten auf einem Server durch Überfliegen des Reports bewerten und Probleme ggf. frühzeitig erkennen ** Mehr Infos dazu im blog: [https://it-muecke.de/start?do=search&id=logwatch logwatch] * Fail2ban ** [https://de.wikipedia.…“ |
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“ |
||
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== | '''Logwatch/fail2ban''' - Beschreibung | ||
== Beschreibung == | |||
* | ; [[Logwatch]] fasst Logfiles zusammen | ||
* Ein solcher Report kann per E-Mail versandt werden | |||
* Dadurch können Aktivitäten auf einem Server schnell bewertet und Probleme frühzeitig erkannt werden | |||
; [[fail2ban]] sperrt IP-Adressen mit fehlerhaften Login-Versuchen | |||
* Wird eine IP-Adresse gesperrt, nennt sich das Ban (to ban - engl. für sperren) | |||
* Wird eine IP-Adresse nach der Sperrfrist wieder entsperrt, so nennt sich das Unban | |||
* Damit können [[brute force]]-Attacken nach wenigen Versuchen unterbunden werden | |||
== Vorgehensweise == | == Vorgehensweise == | ||
=== Ziele === | === Ziele === | ||
* | * fail2ban Logfiles können von logwatch bereits von Haus aus ausgewertet werden | ||
* Allerdings entspricht der Report nicht meinen Wünschen, denn man erhält eine Liste aller erkannten Login-Versuche und der Bans und Unbans - und das können recht viele sein | * Allerdings entspricht der Report nicht meinen Wünschen, denn man erhält eine Liste aller erkannten Login-Versuche und der Bans und Unbans - und das können recht viele sein | ||
* | * Nur Bans und Unbans und eine Summe ausgeben | ||
=== Einrichtung von logwatch === | === Einrichtung von logwatch === | ||
==== Logfile-Gruppe definieren ==== | |||
<tt>/etc/logwatch/conf/logfiles/fail2ban.conf</tt> | |||
<syntaxhighlight lang="bash" line> | |||
# /etc/logwatch/conf/logfiles/fail2ban.conf | |||
# The LogFile path is relative to /var/log by default. | |||
# You can change the default by setting LogDir. | |||
LogFile = fail2ban.log | |||
# This enables searching through zipped archives as well. | |||
Archive = fail2ban.log.*.gz | |||
# Expand the repeats (actually just removes them now). | |||
if echo $LINE|egrep 'NOTICE.*Ban' &> /dev/null; then | *ExpandRepeats | ||
</syntaxhighlight> | |||
==== Service definieren ==== | |||
<tt>/etc/logwatch/conf/services/fail2ban.conf</tt> | |||
<syntaxhighlight lang="bash" line> | |||
# /etc/logwatch//services/fail2ban.conf | |||
# title shown in the report | |||
Title = fail2ban-messages | |||
# logfile group | |||
LogFile = fail2ban | |||
</syntaxhighlight> | |||
==== Parse-File ==== | |||
; Skript zum Auslesen und Zusammenfassen der Logfiles im gewünschten Umfang | |||
<tt>/etc/logwatch/scripts/services/fail2ban</tt> | |||
<syntaxhighlight lang="bash" line> | |||
#!/usr/bin/env bash | |||
# /etc/logwatch/scripts/services/fail2ban | |||
# Change the line separator to split by new lines. | |||
OLD_IFS=$IFS | |||
IFS=$'\n' | |||
# set vars to 0 | |||
BANS=0 | |||
UNBANS=0 | |||
# The contents of the log file are given in stdin. | |||
for LINE in $( cat /dev/stdin ); do | |||
# Only lines matching this regexp will be included. | |||
if echo $LINE|egrep 'NOTICE' &> /dev/null; then | |||
# Every line we echo here will be included in the logwatch report. | |||
echo $LINE | |||
fi | |||
if echo $LINE|egrep 'NOTICE.*Ban' &> /dev/null; then | |||
BAN=$[$BAN + 1] | |||
fi | |||
if echo $LINE|egrep 'NOTICE.*Unban' &> /dev/null; then | |||
UNBAN=$[$UNBAN + 1] | |||
fi | |||
done | |||
echo "$BAN Bans, $UNBAN Unbans" | echo "$BAN Bans, $UNBAN Unbans" | ||
</syntaxhighlight> | |||
; Hinweise | |||
:* Bei fail2ban werden die Bans und Unbans mit dem Tag NOTICE markiert | |||
:* Daher gibt dieses Skript nur Zeilen aus, die „NOTICE“ enthalten | |||
:* Für die Berechnung der Anzahl von Bans und Unbans prüft es die Zeilen mit „NOTICE“ ferner auf „Ban“ oder „Unban“ und zählt entsprechend die Variablen hoch | |||
=== Test === | === Test === | ||
<syntaxhighlight lang="bash" highlight="1" line> | |||
logwatch --detail high --service fail2ban | |||
# Ausgabe: IP-Adressen wurden anonymisiert, Ausgabe gekürzt | |||
2019-02-19 00:03:59,539 fail2ban.actions [5355]: NOTICE [plesk-saslauth] Unban 190.220.147.x | |||
################### Logwatch 7.4.0 (05/29/13) #################### | |||
Processing Initiated: Wed Feb 20 08:54:32 2019 | |||
Date Range Processed: yesterday | |||
( 2019-Feb-19 ) | |||
Period is day. | |||
Detail Level of Output: 10 | |||
Type of Output/Format: stdout / text | |||
Logfiles for Host: host.host.tld | |||
################################################################## | |||
--------------------- fail2ban-messages Begin (detail=1) ------------------------ | |||
2019-02-19 00:03:59,539 fail2ban.actions [5355]: NOTICE [plesk-saslauth] Unban 190.220.147.x | |||
2019-02-19 00:44:26,540 fail2ban.actions [5355]: NOTICE [plesk-postfix] Ban 190.220.147.x | |||
[...] | |||
2019-02-19 23:37:27,514 fail2ban.actions [5355]: NOTICE [plesk-saslauth] Unban 119.28.66.x | |||
20 Bans, 24 Unbans | |||
</syntaxhighlight> | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/Logwatch}} | |||
==== Links ==== | |||
===== Weblinks ===== | |||
[[Kategorie:Linux/Logging]] | |||
</noinclude> | |||
Aktuelle Version vom 19. Oktober 2024, 13:43 Uhr
Logwatch/fail2ban - Beschreibung
Beschreibung
- Logwatch fasst Logfiles zusammen
- Ein solcher Report kann per E-Mail versandt werden
- Dadurch können Aktivitäten auf einem Server schnell bewertet und Probleme frühzeitig erkannt werden
- fail2ban sperrt IP-Adressen mit fehlerhaften Login-Versuchen
- Wird eine IP-Adresse gesperrt, nennt sich das Ban (to ban - engl. für sperren)
- Wird eine IP-Adresse nach der Sperrfrist wieder entsperrt, so nennt sich das Unban
- Damit können brute force-Attacken nach wenigen Versuchen unterbunden werden
Vorgehensweise
Ziele
- fail2ban Logfiles können von logwatch bereits von Haus aus ausgewertet werden
- Allerdings entspricht der Report nicht meinen Wünschen, denn man erhält eine Liste aller erkannten Login-Versuche und der Bans und Unbans - und das können recht viele sein
- Nur Bans und Unbans und eine Summe ausgeben
Einrichtung von logwatch
Logfile-Gruppe definieren
/etc/logwatch/conf/logfiles/fail2ban.conf
# /etc/logwatch/conf/logfiles/fail2ban.conf
# The LogFile path is relative to /var/log by default.
# You can change the default by setting LogDir.
LogFile = fail2ban.log
# This enables searching through zipped archives as well.
Archive = fail2ban.log.*.gz
# Expand the repeats (actually just removes them now).
*ExpandRepeats
Service definieren
/etc/logwatch/conf/services/fail2ban.conf
# /etc/logwatch//services/fail2ban.conf
# title shown in the report
Title = fail2ban-messages
# logfile group
LogFile = fail2ban
Parse-File
- Skript zum Auslesen und Zusammenfassen der Logfiles im gewünschten Umfang
/etc/logwatch/scripts/services/fail2ban
#!/usr/bin/env bash
# /etc/logwatch/scripts/services/fail2ban
# Change the line separator to split by new lines.
OLD_IFS=$IFS
IFS=$'\n'
# set vars to 0
BANS=0
UNBANS=0
# The contents of the log file are given in stdin.
for LINE in $( cat /dev/stdin ); do
# Only lines matching this regexp will be included.
if echo $LINE|egrep 'NOTICE' &> /dev/null; then
# Every line we echo here will be included in the logwatch report.
echo $LINE
fi
if echo $LINE|egrep 'NOTICE.*Ban' &> /dev/null; then
BAN=$[$BAN + 1]
fi
if echo $LINE|egrep 'NOTICE.*Unban' &> /dev/null; then
UNBAN=$[$UNBAN + 1]
fi
done
echo "$BAN Bans, $UNBAN Unbans"
- Hinweise
-
- Bei fail2ban werden die Bans und Unbans mit dem Tag NOTICE markiert
- Daher gibt dieses Skript nur Zeilen aus, die „NOTICE“ enthalten
- Für die Berechnung der Anzahl von Bans und Unbans prüft es die Zeilen mit „NOTICE“ ferner auf „Ban“ oder „Unban“ und zählt entsprechend die Variablen hoch
Test
logwatch --detail high --service fail2ban
# Ausgabe: IP-Adressen wurden anonymisiert, Ausgabe gekürzt
################### Logwatch 7.4.0 (05/29/13) ####################
Processing Initiated: Wed Feb 20 08:54:32 2019
Date Range Processed: yesterday
( 2019-Feb-19 )
Period is day.
Detail Level of Output: 10
Type of Output/Format: stdout / text
Logfiles for Host: host.host.tld
##################################################################
--------------------- fail2ban-messages Begin (detail=1) ------------------------
2019-02-19 00:03:59,539 fail2ban.actions [5355]: NOTICE [plesk-saslauth] Unban 190.220.147.x
2019-02-19 00:44:26,540 fail2ban.actions [5355]: NOTICE [plesk-postfix] Ban 190.220.147.x
[...]
2019-02-19 23:37:27,514 fail2ban.actions [5355]: NOTICE [plesk-saslauth] Unban 119.28.66.x
20 Bans, 24 Unbans
Anhang
Siehe auch
Links
Weblinks