Fail2ban Filter ohne Wirkung

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 25.09.2018 11:08:14

Hallo @all,

ich habe meinen Server komplett neu aufgesetzt. Der alte war defekt.
Es läuft jetzt alles ohne XAMPP. Doch irgend wie sind die Fail2ban Filter ohne Wirkung. :oops:
Ein Beispiel aus dem error.log

Code: Alles auswählen

[Tue Sep 25 03:35:29.801602 2018] [:error] [pid 1132] [client 5.188.210.xxx:60340] script '/var/www/html/echo.php' not found or unable to stat, referer: https://www.google.com/
Fail2ban:

Code: Alles auswählen

fail2ban-regex /root/logs/apache2/error1.log /etc/fail2ban/filter.d/apache-noscript.conf

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

Use   failregex filter file : apache-noscript, basedir: /etc/fail2ban
Use      single line : /root/logs/apache2/error1.log


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:

Lines: 1 lines, 0 ignored, 0 matched, 1 missed
[processed in 0.00 sec]

|- Missed line(s):
|  /root/logs/apache2/error1.log
`-

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

Use   failregex filter file : apache-noscript, basedir: /etc/fail2ban
Use      single line : /root/logs/apache2/error1.log


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:

Lines: 1 lines, 0 ignored, 0 matched, 1 missed
[processed in 0.00 sec]

|- Missed line(s):
|  /root/logs/apache2/error1.log
`-

Was könnte ich übersehen haben? Unter XAMPP lief es :?:

gruß sirius01 :) 8) :)

Nachtrag: Fehler gefunden Fail2ban schreibt die Dateinamen ja um und legt sie neu an :facepalm:

Nur aus einer Sache werde ich nicht schlau.
Fai2ban:

Code: Alles auswählen

Date template hits:
|- [# of hits] date format
|  [500] (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
`-

Das war vorher nicht 8O

Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Re: Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 25.09.2018 12:54:51

ich werde wohl aufgeben müssen. Fail2bann sollte mir die Arbeit erleichtern.
Statt dessen Fehlermeldungen:

Code: Alles auswählen

 service fail2ban restart
Job for fail2ban.service failed because the control process exited with error code.
See "systemctl status fail2ban.service" and "journalctl -xe" for details.
 

Code: Alles auswählen

● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-09-25 12:43:27 CEST; 1min 14s ago
     Docs: man:fail2ban(1)
  Process: 1072 ExecStart=/usr/bin/fail2ban-client -x start (code=exited, status=255)

Sep 25 12:43:27 Server2 systemd[1]: fail2ban.service: Service hold-off time over, scheduling restart.
Sep 25 12:43:27 Server2 systemd[1]: Stopped Fail2Ban Service.
Sep 25 12:43:27 Server2 systemd[1]: ^[[0;1;39mfail2ban.service: Start request repeated too quickly.
Sep 25 12:43:27 Server2 systemd[1]: Failed to start Fail2Ban Service.
Sep 25 12:43:27 Server2 systemd[1]: ^[[0;1;39mfail2ban.service: Unit entered failed state.
Sep 25 12:43:27 Server2 systemd[1]: ^[[0;1;39mfail2ban.service: Failed with result 'exit-code'.
Und Kryptische Filter die nicht gehen. Sorry aber da bin ich mit der alten manuellen Methode über iptables schneller.
Ich weiss hier kann keiner etwas dafür. Aber Tagelang da nur Misserfolg. Da verliert einen die Lust.
Goggle spuckt nur massig englische Seiten aus. Wer die Sprache beherrscht, da ist es ok. Ich jedoch nicht.
Die Übersetzer liefern nur Müll. In den Deutschen Seiten sind wenn überhaupt nur Fragmente zu finden.

gruß sirius01 8) :) 8)

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Fail2ban Filter ohne Wirkung

Beitrag von eggy » 25.09.2018 13:02:47

wirft man "[500] (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?" in die Suchmaschine seiner Wahl findet man u.a. das da: https://github.com/fail2ban/fail2ban/issues/1649
Zusammenfassung: der Fehler tritt auf, falls die Regex ein Format enthält, die Version von Fail2Ban kann das aber noch nicht kann.
Ob das bei Dir der Fall ist, keine Ahnung, versuchs einfach mal ohne die Microsekunden.

Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Re: Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 25.09.2018 18:37:12

Danke@eggi,

für die schnelle Antwort. Nur nutze ich den Apache log und nicht den Docker-Log.
Leider finde ich auf der Seite keine hilfreichen Informationen wie ich da Problem lösen könnte.
Vielleicht ist der Google Übersetzer Mist oder ich bin einfach überarbeitet.
Ich selber bin nur im Hardwarebereich tätig. Mitte der 80er hatte ich eine Schulung für CP/M und SC/P.
Später dann in Basic. Alles andere habe ich mir selbst angeeignet.
Angst vor der Konsole habe ich nicht. Mein Linux Einstig begann mit Suse 5.x :wink: .
Was ich aber feststelle, ist das unter Linux die Software immer leistungsfähiger wird.
Aber nicht zwangsläufig Anwender freundlich wird.

Ich hätte mich lieber damit beschäftigt meine Webseiten zu überarbeiten(das ist mehr wie notwendig).
Statt dessen werte ich Logs von den Fack Hackern aus ob sie rauf gekommen sind und ärgere mich über solche Konfiguration.

Aber OK nicht für ungut. Entschuldigung für den Streß den ich hier mache :roll: .

gruß sirius01 :) 8) :)

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Fail2ban Filter ohne Wirkung

Beitrag von eggy » 25.09.2018 19:46:24

Ich geh davon aus, dass bei Deinem alten Server ne andere Version von fail2ban lief. Daher die alten Regeln nicht 1:1 auf dem neuem laufen. Das lässt sich relativ schnell testen, wenn Du Deine Konfig mal nach NoPaste (link links im Menü) schiebst, die genaue Version, die bei Dir läuft angibst, und dann darauf wartest, ob jemand bei dem das auch läuft bestätigen/verneinen kann, dass eine entsprechende Zeile bei ihm auch zu Fehlern führt.

Schau Dir das mal an: https://help.nextcloud.com/t/fail2ban-p ... tches/9903

Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Re: Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 25.09.2018 20:30:43

Ich habe jetzt im Netz noch mal recherchiert und mir jede jede conf die infrage kommt von Fai2ban angeschaut.

Es lässt sich da wohl kein Zeitformat einstellen.
Da wird es wohl einfacher sein den Apachen ein anderes Format beizubringen :cry: .

Die Fail2ban ist bei mir die aktuellste vom Feed.
Übernommen von der defekten Maschine habe ich nur die betreffenden Teile der jail.conf.


gruß sirius01 :) 8) :)

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Fail2ban Filter ohne Wirkung

Beitrag von eggy » 25.09.2018 21:01:51

sirius01 hat geschrieben: ↑ zum Beitrag ↑
25.09.2018 20:30:43
Die Fail2ban ist bei mir die aktuellste vom Feed.
In Debian gibt es zur Zeit laut rmaddison 5 verschiedene Versionen.
Und dazu kommen weitere 5 Versionen auf der fail2ban Seite.
Und dann gibts in Zukunft noch die Leute, die den Thread per Suchmachine finden und sich freuen dürfen zu raten, welche Version das denn damals gewesen sein könnte.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: Fail2ban Filter ohne Wirkung

Beitrag von weshalb » 25.09.2018 21:49:23

Wieso schaust du dir die Regex nicht einfach mal an?

Es besteht auch noch die Möglichkeit, die Regex auf den Logeintrag passend abzuändern oder auch gänzlich neu zu schreiben.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Fail2ban Filter ohne Wirkung

Beitrag von rendegast » 25.09.2018 23:50:40

Ich habe hier stretch fail2ban 0.9.6.

Ein
fail2ban-regex /pfad/Datei-mit-Deiner-Zeile.log /etc/fail2ban/filter.d/apache-noscript.conf
funktioniert da.
(Der Pfad bei Angabe der Filter-Datei ist wichtig.
Bloß nicht, wie aus der manpage vielleicht denkbar, nur als 'filter.d/apache-noscript.conf' angeben!)

Eine Ausgabe wie Deine erhalte ich,
wenn ich die Logdatei falsch angebe, zBsp.
/pfad/Datei-mit-Deiner-Zeile.logX
statt richtigerweise
/pfad/Datei-mit-Deiner-Zeile.log
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Re: Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 26.09.2018 12:06:19

Hallo @all,

Ich nutze

Code: Alles auswählen

infobash -v
Host/Kernel/OS  "Server2" running Linux 4.9.0-8-686-pae i686 [ Kanotix steelfire-nightly Steelfire32 180914a LXDE ]
CPU Info        (1) Genuine Intel T2250 @ clocked at [ 1330.000 MHz ]
                (2) Genuine Intel T2250 @ clocked at [ 1729.000 MHz ]
Videocard       NVIDIA G72 [GeForce 7500 LE]
Processes 126 | Uptime 3:13 | Memory 174.0/2906.9MB | HDD Size 320GB (1%used) | Client Shell | Infobash v2.67.2

Das entspricht dem aktuellen Debian :wink: . Die betreffenden Befehle und Ordner sind identisch.
Fail2ban habe ich neu aufgesetzt. Da habe ich die Version

Code: Alles auswählen

bionic (18.04LTS) (net): ban hosts that cause multiple authentication errors [universe] 0.10.2-2
genommen.
Bei

Code: Alles auswählen

fail2ban-regex /root/logs/apache2/test_log /etc/fail2ban/filter.d/apache-botsearch.conf
erhalte ich:
http://s01.p7.de/tmp/Paste.txt

Unter /etc/fail2ban/filter.d die apache-botsearch.conf(nur der Bereich ohne #)
[INCLUDES]

# overwrite with apache-common.local if _apache_error_client is incorrect.
# Load regexes for filtering from botsearch-common.conf
before = apache-common.conf
botsearch-common.conf

[Definition]

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

failregex = ^(?:File does not exist|script not found or unable to stat): <webroot><block>(, referer: \S+)?\s*$
^script '<webroot><block>' not found or unable to stat(, referer: \S+)?\s*$

ignoreregex =

# Webroot represents the webroot on which all other files are based
webroot = /var/www
Ich hoffe mal, das ich nichts übersehen habe :roll:

gruß sirius01 :) 8) :)

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Fail2ban Filter ohne Wirkung

Beitrag von rendegast » 27.09.2018 01:39:29

Bei
fail2ban-regex /root/logs/apache2/test_log /etc/fail2ban/filter.d/apache-botsearch.conf
erhalte ich:
s01.p7.de/tmp/Paste.txt
Mit apache-noscript.conf bekomme ich da 2 von 3 als Treffer,
die erste Zeile enthält einen nicht akzeptierten Zeitstempel
[Tue Sep 25 13:12:45:28563 2018] ...
[Mon Sep 17 10:57:04.732015 2018] ...
[Tue Sep 25 03:35:29.801602 2018] ...
zumindest der Doppelpunkt muß als Punkt daherkommen.
Aber, und das ist imo interessanter, apache-noscript.conf stolpert auch über die client-IP derselben Zeile.
... [client 163.25.240.xxx:28563] ...
... [client 154.8.230.xxx:62557] ...
... [client 5.188.210.xxx:60340] ...
Setze ich da die client-IP der zweiten oder dritten Zeile, gibt es einen hit statt eines miss.
???


Deine /etc/fail2ban/filter.d/apache-botsearch.conf entspricht nicht der von fail2ban mitgebrachten und wurde demnach durch ein anderes Paket modifiziert/ausgetauscht(?)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Re: Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 27.09.2018 08:13:47

@rendegast,
danke für die Antwort :THX:

Ok
[Tue Sep 25 13:12:45:28563 2018] ...
Das ist noch vom rumspielen mit dem Format übrig :wink:

Ich habe mal die fail2ban_0.10.2-2_all.deb(die hatte ich auch zur Installation benutzt) entpackt.
Die apache-botsearch.conf entspricht genau der bei mir auf dem Rechner befindlichen /etc/fail2ban/filter.d/apache-botsearch.conf.

Könntest Du mal so nett sein und Deine apache-botsearch.conf hier Posten.
Durch die Unterschiede finde ich vielleicht die Zusammenhänge :wink: .

gruß sirius01 :) 8) :)

Nachtrag: wenigsten arbeitet der apache-auth Filter. Von gestern zu heute wurden 2 IPs erkannt und eine geblockt. :THX:
Füge ich in der apache-botsearch.conf bei failregex noch

Code: Alles auswählen

 ^script
an dann habe ich eine höhere Trefferquote.
Nur kann das ja nicht der Sinn sein :roll:

Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Re: Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 27.09.2018 19:35:33

Hallo :facepalm:

ich glaube ich hatte auf das falsche Pferd gesetzt. Beim genauen durchschauen der
fail2ban.log hatte ich festgestellt, das die apache-noscript fehlte.
Also unter /etc/fail2ban/filter.d nachgeschaut und tatsächlich die Datei fehlte.
Diese habe ich vom entpackten Deb Paket eingefügt. Eine Überprüfung mit
fail2ban-regex entsprach meinen Erwartungen. Da habe ich wohl die Filter vertauscht :facepalm:
Doch eine Frage noch. Welches Filter ist z.B. für

Code: Alles auswählen

159.89.142.xxx - - [27/Sep/2018:18:49:54 +0200] "GET /phpMyAdmin-2/scripts/setup.php HTTP/1.1" 404 485
in der access.log zuständig. Ich würde ja auf die apache-badbots tippen.
Nur die fail2ban-regex findet da nur missed. :roll:

gruß sirius01 :) 8) :)

Nachtrag: es sollte jetzt gelöst sein :roll: :wink:
Ich habe mir jetzt ein Filter mit diesem Inhalt erstellt.

Code: Alles auswählen

 # Fail2Ban configuration file
#
[Definition]
failregex = <HOST> - - \[.*\] "GET /.* HTTP/1\.[01]" 404 [0-9]+.*$

ignoreregex = .*(robots.txt|favicon.ico|jpg|png)
Die fail2ban-regex sieht auch ganz gut aus. Alles andere wird die Zeit bringen. :mrgreen:

Danke noch mal an allen die mit geholfen haben :THX: .

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Fail2ban Filter ohne Wirkung

Beitrag von rendegast » 28.09.2018 01:58:44

Welches Filter ist z.B. für
...
in der access.log zuständig.

Um solche Fragen zu klären, zuerst mal: "Was hat hier gerade mit [etc/]fail2ban zu tun?"

Code: Alles auswählen

dpkg-query -S fail2ban | sort
okay, bei mir gerade nur Debianfail2ban.
Damit ich mal konzentriert suchen kann, fail2ban.deb herunterladen und entpacken

Code: Alles auswählen

apt-get download fail2ban
entpacken
dpkg-xx
(ein skript, das für alle *.deb im Verzeichnis macht
dpkg -x ... ...
dpkg -e ... ...)

Nun suche ich darin nach "access.log", ich finde path-*.conf mit
"apache_access_log"
"nginx_access_log"
und filter.d/apache-pass.conf mit dem passenden Suchmuster.

"apache_access_log" führt zur jail.conf und darin zu
[apache-badbots]
[apache-fakegooglebot]
[php-url-fopen]
[path2allow-ftp]

(Nur) In [path2allow-ftp] wird apache-pass.conf referenziert.

Ob ein passender Suchmuster-regex noch woanders (ohne Verweis auf *access.log) auftaucht?
Mag der geneigte Leser selbst prüfen.







-----------------------------------------------
Könntest Du mal so nett sein und Deine apache-botsearch.conf hier Posten.
fail2ban 0.9.6 stretch, filter.d/apache-botsearch.conf:

Code: Alles auswählen

...

[INCLUDES]

# overwrite with apache-common.local if _apache_error_client is incorrect.
# Load regexes for filtering from botsearch-common.conf
before = apache-common.conf
         botsearch-common.conf

[Definition]

failregex = ^%(_apache_error_client)s ((AH001(28|30): )?File does not exist|(AH01264: )?script not found or unable to stat): <webroot><block>(, referer: \S+)?\s*$
            ^%(_apache_error_client)s script '<webroot><block>' not found or unable to stat(, referer: \S+)?\s*$

ignoreregex = 


[Init]

# Webroot represents the webroot on which all other files are based
webroot = /var/www/


# DEV Notes:
#
# Author: Daniel Black
filter.d/botsearch-common.conf:

Code: Alles auswählen

# Generic configuration file for -botsearch filters

[Init]

# Block is the actual non-found directories to block
block = \/?(<webmail>|<phpmyadmin>|<wordpress>|cgi-bin|mysqladmin)[^,]*

# These are just convient definitions that assist the blocking of stuff that 
# isn't installed
webmail = roundcube|(ext)?mail|horde|(v-?)?webmail

phpmyadmin = (typo3/|xampp/|admin/|)(pma|(php)?[Mm]y[Aa]dmin)

wordpress = wp-(login|signup|admin)\.php

# DEV Notes:
# Taken from apache-botsearch filter
# 
# Author: Frantisek Sumsal
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
sirius01
Beiträge: 170
Registriert: 04.05.2009 11:00:01

Re: Fail2ban Filter ohne Wirkung

Beitrag von sirius01 » 28.09.2018 11:25:26

@rendegast,

vielen Dank :THX: Nun habe ich mich doch tiefer in die Materie rein gekniet wie geplant :wink: .
Meine bestehende Filterlösung arbeitet bis jetzt zufriedenstellend.
Alle Filter habe ich mit regex getestet. OK
Eine Auswertung der Log Dateien ergab eine saubere Trefferquote.
Mein gestern geschriebenes Filter apache-404.conf habe ich etwas erweitert :)

Code: Alles auswählen

# Fail2Ban configuration file
#
[Definition]
failregex = <HOST> - - \[.*\] "GET|POST|CONNECT|PROPFIND /.* HTTP/1\.[01]" 404|405 [0-9]+.*$

ignoreregex = .*(robots.txt|favicon.ico|jpg|png|script.js)
Es ist für die access.log zuständig und ergänzt alles wunderbar.
Im großen und ganzen bin ich bis jetzt sehr zufrieden.
Alles andere bringt die Zeit :wink: .
Zum Filterunterschied:
Du verwendest die fail2ban 0.9.6 stretch
Ich verwende die Fail2ban v0.10.2 bionic (18.04LTS)
Nun bin ich nur noch gespannt wie es sich entwickelt :roll: .

gruß sirius01 :) 8) :)

Antworten