(gelöst) fail2ban jail scheint nicht zu funktionieren

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
whisper
Beiträge: 3154
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

(gelöst) fail2ban jail scheint nicht zu funktionieren

Beitrag von whisper » 16.02.2016 19:38:48

Ich habe ein Brett vor dem Kopf, finde nicht, woran es liegen könnte.
fail2ban 0.8.13-1 Jessie
Eine wirklich simple REGEX
vielleicht zu simple?
Muss ich mir um die Zeitstempel gedanken machen?

Code: Alles auswählen

fail2ban-regex --verbose --print-no-missed /tmp/x '<HOST> .*"HEAD.*$'
funktioniert...

Code: Alles auswählen

Running tests
=============

Use   failregex line : <HOST> .*"HEAD.*$
Use         log file : /tmp/x


Results
=======

Failregex: 1000 total
|-  #) [# of hits] regular expression
|   1) [1000] <HOST> .*"HEAD.*$
|      89.248.174.31  Tue Feb 16 16:49:04 2016
|      89.248.174.31  Tue Feb 16 16:49:07 2016
|      89.248.174.31  Tue Feb 16 16:49:07 2016
|      89.248.174.31  Tue Feb 16 16:49:06 2016
|      89.248.174.31  Tue Feb 16 16:49:07 2016
|      89.248.174.31  Tue Feb 16 16:49:06 2016
|      89.248.174.31  Tue Feb 16 16:49:07 2016
|      89.248.174.31  Tue Feb 16 16:49:05 2016
|      89.248.174.31  Tue Feb 16 16:49:06 2016
Lines: 1000 lines, 0 ignored, 1000 matched, 0 missed
Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [1000] Day/MONTH/Year:Hour:Minute:Second
|  [0] WEEKDAY MONTH Day Hour:Minute:Second[.subsecond] Year
|  [0] WEEKDAY MONTH Day Hour:Minute:Second Year
|  [0] WEEKDAY MONTH Day Hour:Minute:Second
|  [0] MONTH Day Hour:Minute:Second
|  [0] Year/Month/Day Hour:Minute:Second
|  [0] Day/Month/Year Hour:Minute:Second
|  [0] Day/Month/Year2 Hour:Minute:Second
|  [0] Month/Day/Year:Hour:Minute:Second
|  [0] Year-Month-Day Hour:Minute:Second[,subsecond]
|  [0] Year-Month-Day Hour:Minute:Second
|  [0] Year.Month.Day Hour:Minute:Second
|  [0] Day-MONTH-Year Hour:Minute:Second[.Millisecond]
|  [0] Day-Month-Year Hour:Minute:Second
|  [0] Month-Day-Year Hour:Minute:Second[.Millisecond]
|  [0] TAI64N
|  [0] Epoch
|  [0] ISO 8601
|  [0] Hour:Minute:Second
|  [0] <Month/Day/Year@Hour:Minute:Second>
|  [0] YearMonthDay Hour:Minute:Second
|  [0] Month-Day-Year Hour:Minute:Second
`-
Dies ist ein Testfile, mit Real Logs funktioniert es auch, nur die HEAD Zeilen werden getroffen.

Im Betrieb wird keine IP gebannt, obwohl ich hier untergehe in den Dingern...

Code: Alles auswählen

192.3.244.186 - - [16/Feb/2016:16:50:17 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=www.fxwpd.com HTTP/1.1" 200 232 "-" "Mozilla/5.0"
192.3.244.186 - - [16/Feb/2016:16:50:31 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=www.fxwpd.com HTTP/1.1" 200 232 "-" "Mozilla/5.0"
192.3.244.186 - - [16/Feb/2016:16:50:43 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=www.fxwpd.com HTTP/1.1" 200 232 "-" "Mozilla/5.0"

Das Jail ist aktiv

Code: Alles auswählen

fail2ban-client status
Status
|- Number of jail: 10
`- Jail list: php-url-fopen, courierauth, apache-modsecurity, apache-nohome, pureftpd, ssh, apache-overflows, sasl, apache-HEAD, apache
Status des jail:

Code: Alles auswählen

fail2ban-client status apache-HEAD
|- filter
| |- File list: /var/www/website.de
| |- Currently failed: 0
| `- Total failed: 0
`- action
|- Currently banned: 0
| `- IP list:
`- Total banned: 0
Im fail2ban.log sieht man, dass das jail geladen wird, die Logfiles (mit Sternchen) werden aufgeführt, habe auch mal nur eins genommen

Code: Alles auswählen

2016-02-16 19:19:15,102 fail2ban.jail   [1351]: INFO    Creating new jail 'apache-HEAD'
2016-02-16 19:19:15,102 fail2ban.jail   [1351]: INFO    Jail 'apache-HEAD' uses pyinotify
2016-02-16 19:19:15,108 fail2ban.jail   [1351]: INFO    Initiated 'pyinotify' backend
2016-02-16 19:19:15,109 fail2ban.filter [1351]: INFO    Added logfile = /var/wwwwebsite/log/access.log
2016-02-16 19:19:15,147 fail2ban.filter [1351]: INFO    Set maxRetry = 3
2016-02-16 19:19:15,148 fail2ban.filter [1351]: INFO    Set findtime = 600
2016-02-16 19:19:15,148 fail2ban.actions[1351]: INFO    Set banTime = 600
Vielleicht ist auch was ganz anderes faul. Es sind sehr wenige Treffe auch bei anderen Jails


Hat einer ein Idee?
Zuletzt geändert von whisper am 17.02.2016 19:47:48, insgesamt 1-mal geändert.

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von heisenberg » 16.02.2016 19:54:37

Added logfile = /var/wwwwebsite/log/access.log
Das ist jetzt mit sicherheit nur die Anonymeise oder ist hier ein Fehler mit den 4 Ws?

greppe doch mal ein paar 100 aktuelle zutreffende Zeilen aus Deinem access_log raus und stell die hier anonymisiert rein.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
whisper
Beiträge: 3154
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von whisper » 16.02.2016 20:11:43

heisenberg hat geschrieben:
Added logfile = /var/wwwwebsite/log/access.log
Das ist jetzt mit sicherheit nur die Anonymeise oder ist hier ein Fehler mit den 4 Ws?

greppe doch mal ein paar 100 aktuelle zutreffende Zeilen aus Deinem access_log raus und stell die hier anonymisiert rein.
Ja nee, das ist in real schon korrekt
Hier mal ein Original Ausschnitt

Code: Alles auswählen

89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:04 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:09 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:05 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"
89.248.174.31 - - [16/Feb/2016:17:46:06 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=rtl.hu HTTP/1.1" 200 232 "-" "Mozilla/5.0"

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von heisenberg » 16.02.2016 21:03:49

Ok. Müsste also definitiv greifen. Kannst Du nochmal die Filterdefinition und den Abschnitt aus der jail.conf posten?
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
whisper
Beiträge: 3154
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von whisper » 16.02.2016 21:54:41

Ja,

Code: Alles auswählen

# apache-HEAD.conf
[INCLUDES]

[Definition]

failregex = '<HOST> .*"HEAD.*$'

ignoreregex =

Code: Alles auswählen

# aus der jail.conf
[apache-HEAD]

enabled = true
port    = http,https
filter  = apache-HEAD
logpath = /var/www/*/log/access.log
# Ban attackers that try to use googlemaps insecurity


Ich habe nun ein workaround, vielleicht eh vieeel besser
in der .htaccess:

Code: Alles auswählen

RewriteCond %{THE_REQUEST} !^(POST|GET)\ /.*\ HTTP/1\.1$ 
RewriteRule .* - [F]

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von heisenberg » 16.02.2016 22:07:48

Code: Alles auswählen

failregex = '<HOST> .*"HEAD.*$'
Die einfachen Hochkommata müssen weg, dann geht's.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von heisenberg » 17.02.2016 01:04:29

Es gibt mit <LIMIT ... > </LIMIT>(Apache 2.2) und mod_allowmethods(Apache 2.4+) die Möglichkeit Methoden einzuschränken, doch bei Apache wird grundsätzlich HEAD und GET als identisch betrachtet. D. h. Deine Variante ist wohl das geschickteste Mittel der Wahl.

Ja, würde sagen das mit fail2ban ist dann doch der Ansatz von hinten durch die Brust ins Auge geschossen :)
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
whisper
Beiträge: 3154
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von whisper » 17.02.2016 06:37:45

Achdu lieber Himmel.
:THX:
Bin ich schon wieder mal darauf reingefallen
Und ja, meine Limit Lösung funktioniert und ist ja noch effektiver, außerdem sind andere Schweinereien auf gleich weg.

Benutzeravatar
whisper
Beiträge: 3154
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: fail2ban jail scheint nicht zu funktionieren

Beitrag von whisper » 17.02.2016 19:47:17

Nachtrag:
Ich habe bisher nur die eine Site mit dem Limit bestückt.

Code: Alles auswählen

2016-02-17 18:26:28,803 fail2ban.actions[1351]: WARNING [apache-HEAD] Ban 178.32.218.220
2016-02-17 18:36:29,370 fail2ban.actions[1351]: WARNING [apache-HEAD] Unban 178.32.218.220
Der Beweis, dass der Fail2ban Jail auch funktioniert.

Benutzeravatar
whisper
Beiträge: 3154
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: (gelöst) fail2ban jail scheint nicht zu funktionieren

Beitrag von whisper » 18.02.2016 20:13:00

Nachtrag:
Die Aktion mit der Rewrite URL funktioniert, leider produziert der Server natürlich eine Fehlermeldung Error 500 (Internal Server Error)
Macht ja auch wieder Traffic :-(
Aber mein apache-HEAD Filter schlägt erfolgreich zu.

Code: Alles auswählen

23.95.51.74 - - [18/Feb/2016:19:47:09 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=www.fxwpd.com HTTP/1.1" 500 224 "-" "Mozilla/5.0"
23.95.51.74 - - [18/Feb/2016:19:47:09 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=www.fxwpd.com HTTP/1.1" 500 224 "-" "Mozilla/5.0"
23.95.51.74 - - [18/Feb/2016:19:47:09 +0100] "HEAD /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url=www.fxwpd.com HTTP/1.1" 500 224 "-" "Mozilla/5.0"
Statt >
60000 Einträge sinds nur 550,
The IP 23.95.51.74 has just been banned by Fail2Ban after
3 attempts against apache-HEAD.


Ich habe ja 3 eingestellt, aber die kommen so schnell, das es halt 550 Einträge gibt, bevor der Jail greift

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) fail2ban jail scheint nicht zu funktionieren

Beitrag von heisenberg » 18.02.2016 21:57:51

Wenn's sein muss, könnte man das ja noch per iptables oder apache (requests per ip) weiter runter regeln. Aber 550 hört sich doch schon mal gut an.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Antworten