Page 1 of 3

Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 11:58
by xeppel
Hi,

mit debian 12 wird ja jetzt das Journal für Logs verwendet .derzeit habe ich folgende fail2ban-Jail Config:

Code: Select all

# Web server

[webaccess]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /home/users/*/logs/error.log
maxretry = 5
bantime  = 3600


# Mail server

[postfix]
enabled  = true
port     = smtp,ssmtp,smtps,submission,submissions
filter   = postfix
logpath  = /var/log/mail.log
maxretry = 5
bantime  = 3600

[dovecot]
enabled  = true
port     = pop3,pop3s,imap,imaps,submission,submissions,sieve
filter   = dovecot
logpath  = /var/log/mail.log
maxretry = 10
bantime  = 3600


# FTP server

[proftpd]
enabled  = true
maxretry = 5
bantime  = 3600
der proftpd-Schutz funktioniert noch. wie müssen die anderen Einträge aber jetzt lauten ? da greift der Ban nicht bei Falscheingaben nämlich nicht mehr. KH scheint auch jetzt gar nicht mehr in "/home/users/*/logs/error.log" zu schreiben ?

Re: Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 14:12
by space2place
Trag mail in Deine Sektionen

Code: Select all

backend = systemd
ein anstatt die Pfade zu nutzen

Re: Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 14:17
by Florian
Hallo,

die Webserverprotokolle der Domains bleiben unverändert bei Debian 12, die laufen nicht über Journal

Re: Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 14:34
by xeppel
okay danke versuch ich mal.

bei fehlgeschlagenen Logins mit htaccess passiert aber bei diesem Filter nichts. was mir aber noch auffällt, müsste die Zeile nicht so aussehen für Subdomains noch ?
logpath = /home/users/*/logs/*/error.log

Re: Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 14:42
by Jolinar
Und wenn du meinst, daß ins Journal geloggt wird, dann schau doch dort einfach mal rein:

Code: Select all

journalctl -u fail2ban



FYI:

Code: Select all

man journalctl
:mrgreen: :geek: :ugeek:

Re: Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 14:50
by xeppel
Im Journal wird nicht geloggt. Ist der Filter vielleicht falsch ?
filter = apache-auth

Re: Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 16:25
by mhagge
siehe
Florian wrote: Thu 2. Nov 2023, 14:17 Hallo,

die Webserverprotokolle der Domains bleiben unverändert bei Debian 12, die laufen nicht über Journal

Re: Fail2ban unter Debian 12

Posted: Thu 2. Nov 2023, 19:43
by xeppel
ja meine Config liest ja auch die Logs aus:

Code: Select all

[webaccess]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /home/users/*/logs/error.log
maxretry = 5
bantime  = 3600
aber es funktioniert ja nicht (mehr).

Re: Fail2ban unter Debian 12

Posted: Fri 3. Nov 2023, 08:22
by Alexander
Einmal den Pfad auf

Code: Select all

/home/users/*/logs/*/error.log
ändern und Dienst neu starten. Der alte Pfad ist seit Januar 2023 nicht mehr korrekt.

Re: Fail2ban unter Debian 12

Posted: Sat 4. Nov 2023, 10:35
by xeppel
Das habe ich wie hier erwähnt auch schon gemacht, aber damit funktioniert es weiterhin nicht.
xeppel wrote: Thu 2. Nov 2023, 14:34 bei fehlgeschlagenen Logins mit htaccess passiert aber bei diesem Filter nichts. was mir aber noch auffällt, müsste die Zeile nicht so aussehen für Subdomains noch ?
logpath = /home/users/*/logs/*/error.log

Re: Fail2ban unter Debian 12

Posted: Sat 4. Nov 2023, 13:19
by xeppel
Diese Konfiguration steht ja sogar genau so in der keyhelp.local, nur disabled. Selbst wenn ich das dort auf true stelle und fail2ban neustarte, greift die Sperre nicht nach 10 Versuchen, ich versteh es nicht...

Re: Fail2ban unter Debian 12

Posted: Mon 6. Nov 2023, 11:19
by Alexander
Gerade getestet, bei mir funktioniert alles nach wie vor:

/etc/fail2ban/jail.d/keyhelp.local

Code: Select all

[keyhelp-apache]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /home/users/*/logs/*/error.log
maxretry = 10
/etc/fail2ban/filter.d/apache-auth

Code: Select all

# Fail2Ban apache-auth filter
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# apache-common.local
before = apache-common.conf

[Definition]

# Mode for filter: normal (default) and aggressive (allows DDoS & brute force detection of mod_evasive)
mode = normal

# ignore messages of mod_evasive module:
apache-pref-ign-normal = (?!evasive)
# allow "denied by server configuration" from all modules:
apache-pref-ign-aggressive =
# mode related ignore prefix for common _apache_error_client substitution:
apache-pref-ignore = <apache-pref-ign-<mode>>

prefregex = ^%(_apache_error_client)s (?:AH\d+: )?<F-CONTENT>.+</F-CONTENT>$

# auth_type = ((?:Digest|Basic): )?
auth_type = ([A-Z]\w+: )?

failregex = ^client (?:denied by server configuration|used wrong authentication scheme)\b
            ^user (?!`)<F-USER>(?:\S*|.*?)</F-USER> (?:auth(?:oriz|entic)ation failure|not found|denied by provider)\b
            ^Authorization of user <F-USER>(?:\S*|.*?)</F-USER> to access .*? failed\b
            ^%(auth_type)suser <F-USER>(?:\S*|.*?)</F-USER>: password mismatch\b
            ^%(auth_type)suser `<F-USER>(?:[^']*|.*?)</F-USER>' in realm `.+' (auth(?:oriz|entic)ation failure|not found|denied by provider)\b
            ^%(auth_type)sinvalid nonce .* received - length is not\b
            ^%(auth_type)srealm mismatch - got `(?:[^']*|.*?)' but expected\b
            ^%(auth_type)sunknown algorithm `(?:[^']*|.*?)' received\b
            ^invalid qop `(?:[^']*|.*?)' received\b
            ^%(auth_type)sinvalid nonce .*? received - user attempted time travel\b
            ^(?:No h|H)ostname \S+ provided via SNI(?:, but no hostname provided| and hostname \S+ provided| for a name based virtual host)\b

ignoreregex =

# DEV Notes:
#
# This filter matches the authorization failures of Apache. It takes the log messages
# from the modules in aaa that return HTTP_UNAUTHORIZED, HTTP_METHOD_NOT_ALLOWED or
# HTTP_FORBIDDEN and not AUTH_GENERAL_ERROR or HTTP_INTERNAL_SERVER_ERROR.
#
# An unauthorized response 401 is the first step for a browser to instigate authentication
# however apache doesn't log this as an error. Only subsequent errors are logged in the 
# error log.
#
# Source:
#
# By searching the code in http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/aaa/*
# for ap_log_rerror(APLOG_MARK, APLOG_ERR and examining resulting return code should get
# all of these expressions. Lots of submodules like mod_authz_* return back to mod_authz_core
# to return the actual failure.
#
# Note that URI can contain spaces.
#
# See also: http://wiki.apache.org/httpd/ListOfErrors
# Expressions that don't have tests and aren't common.
# more be added with  https://issues.apache.org/bugzilla/show_bug.cgi?id=55284 
#     ^user .*: nonce expired \([\d.]+ seconds old - max lifetime [\d.]+\) - sending new nonce\s*$
#     ^user .*: one-time-nonce mismatch - sending new nonce\s*$
#     ^realm mismatch - got `(?:[^']*|.*?)' but no realm specified\s*$
#
# Because url/referer are foreign input, short form of regex used if long enough to idetify failure.
# 
# Author: Cyril Jaquier
# Major edits by Daniel Black and Ben Rubson.
# Rewritten for v.0.10 by Sergey Brester (sebres).
/home/users/alex/logs/<DOMAIN>/error.log

Code: Select all

[Mon Nov 06 11:09:13.589914 2023] [auth_basic:error] [pid 15546:tid 140372691629632] [client 87....] AH01618: user vbn not found: /
[Mon Nov 06 11:09:16.385368 2023] [auth_basic:error] [pid 15546:tid 140372691629632] [client 87....] AH01618: user d not found: /
[Mon Nov 06 11:09:29.514884 2023] [auth_basic:error] [pid 15546:tid 140372691629632] [client 87....] AH01618: user dfg not found: /
/var/log/fail2ban.log

Code: Select all

2023-11-06 11:09:13,592 fail2ban.filter         [16238]: INFO    [keyhelp-apache] Found 87..... - 2023-11-06 11:09:13
2023-11-06 11:09:16,389 fail2ban.filter         [16238]: INFO    [keyhelp-apache] Found 87...... - 2023-11-06 11:09:16
2023-11-06 11:09:29,517 fail2ban.filter         [16238]: INFO    [keyhelp-apache] Found 87...... - 2023-11-06 11:09:29

Re: Fail2ban unter Debian 12

Posted: Mon 6. Nov 2023, 13:56
by racmo
Bei mir funktioniert Fail2Ban beim Apache-Auth auch nicht richtig. Nachdem ich die Konfigurationsdateien mit jenen von Alexander, abgeglichen habe, scheinen diese korrekt zu sein.

Die Apache Logeinträge zeigen mehrere fehlgeschlagene Authentifizierungsversuche wie folgt:

Code: Select all

[Mon Nov 06 13:39:56.637868 2023] [auth_basic:error] [pid 3175001:tid 140494544914112] [remote 171...:35924] AH01618: user rfghuu not found: /admin
[Mon Nov 06 13:39:58.441441 2023] [auth_basic:error] [pid 3175001:tid 140494452414144] [remote 171...:35924] AH01618: user rggvj not found: /admin
[Mon Nov 06 13:40:00.244168 2023] [auth_basic:error] [pid 3175001:tid 140494696277696] [remote 171...:35924] AH01618: user ggvbk not found: /admin
Ich habe versucht, die Übereinstimmung der Logdateien mit dem Fail2Ban-Filter mittels des folgenden Befehls zu testen:

Code: Select all

fail2ban-regex /home/users/web/logs/test.de/error.log /etc/fail2ban/filter.d/apache-auth.conf --print-all-missed
Dabei stellte ich fest, dass diese Einträge vom Test als "nicht identifiziert" markiert wurden, was darauf hindeutet, dass Fail2Ban diese nicht korrekt verarbeitet.

Eine Vermutung meinerseits ist, dass eventuell die Bezeichnung "remote" anstelle von "client" in den Logdateien zu dem Problem führen könnte. Bei Alexander steht dort "client". Hat jemand von Ihnen ähnliche Erfahrungen gemacht oder kann einen Tipp geben?

Re: Fail2ban unter Debian 12

Posted: Mon 6. Nov 2023, 15:28
by pandinusimperator
racmo wrote: Mon 6. Nov 2023, 13:56 Bei mir funktioniert Fail2Ban beim Apache-Auth auch nicht richtig. Nachdem ich die Konfigurationsdateien mit jenen von Alexander, abgeglichen habe, scheinen diese korrekt zu sein.

Die Apache Logeinträge zeigen mehrere fehlgeschlagene Authentifizierungsversuche wie folgt:

Code: Select all

[Mon Nov 06 13:39:56.637868 2023] [auth_basic:error] [pid 3175001:tid 140494544914112] [remote 171...:35924] AH01618: user rfghuu not found: /admin
[Mon Nov 06 13:39:58.441441 2023] [auth_basic:error] [pid 3175001:tid 140494452414144] [remote 171...:35924] AH01618: user rggvj not found: /admin
[Mon Nov 06 13:40:00.244168 2023] [auth_basic:error] [pid 3175001:tid 140494696277696] [remote 171...:35924] AH01618: user ggvbk not found: /admin
Ich habe versucht, die Übereinstimmung der Logdateien mit dem Fail2Ban-Filter mittels des folgenden Befehls zu testen:

Code: Select all

fail2ban-regex /home/users/web/logs/test.de/error.log /etc/fail2ban/filter.d/apache-auth.conf --print-all-missed
Dabei stellte ich fest, dass diese Einträge vom Test als "nicht identifiziert" markiert wurden, was darauf hindeutet, dass Fail2Ban diese nicht korrekt verarbeitet.

Eine Vermutung meinerseits ist, dass eventuell die Bezeichnung "remote" anstelle von "client" in den Logdateien zu dem Problem führen könnte. Bei Alexander steht dort "client". Hat jemand von Ihnen ähnliche Erfahrungen gemacht oder kann einen Tipp geben?
Hallo!

Hab es auch mal getestet mit fail2ban-regexp. Und auch bei mir steht in den Logs "remote" und nicht "client". Das ergab als Resultat

Code: Select all

Lines: 5 lines, 0 ignored, 0 matched, 5 missed
Daraufhin habe ich mal in der vor apache-auth geladenen apache-common.conf das "remote" mit reingenommen. Aus

Code: Select all

_apache_error_client = <apache-prefix>\[(:?error|<apache-pref-ignore>\S+:\S+)\]( \[pid \d+(:\S+ \d+)?\])? \[client <HOST>(:\d{1,5})?\]
wurde

Code: Select all

_apache_error_client = <apache-prefix>\[(:?error|<apache-pref-ignore>\S+:\S+)\]( \[pid \d+(:\S+ \d+)?\])? \[(client|remote) <HOST>(:\d{1,5})?\]
Damit hatte der Test dann 5 matched, 0 missed.

Das ganze unter Deb 11.

Grüße!

Re: Fail2ban unter Debian 12

Posted: Mon 6. Nov 2023, 15:40
by racmo
Ich danke dir! Danach funktioniert es bei mir auch.

Im Fail2Ban Log taucht dann auch endlich der Eintrag auf

Code: Select all

2023-11-06 15:37:57,205 fail2ban.filter         [4130545]: INFO    [keyhelp-apache] Found 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx- 2023-11-06 15:37:57
2023-11-06 15:37:59,206 fail2ban.filter         [4130545]: INFO    [keyhelp-apache] Found 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx - 2023-11-06 15:37:58
2023-11-06 15:38:00,407 fail2ban.filter         [4130545]: INFO    [keyhelp-apache] Found 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx - 2023-11-06 15:37:59
2023-11-06 15:38:01,008 fail2ban.filter         [4130545]: INFO    [keyhelp-apache] Found 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx - 2023-11-06 15:38:01