kostenloser Webspace werbefrei: lima-city


fail2ban und Regular Expressions

lima-cityForumProgrammiersprachenPython

  1. Autor dieses Themas

    bastobuntu

    Kostenloser Webspace von bastobuntu

    bastobuntu hat kostenlosen Webspace.

    Ich komme gerade nicht weiter...

    Ich möchte fail2ban dazu bringen, die Log-Datei von zenphoto nach gescheiterten Loginversuchen zu überwachen.

    Der Aufbau der Logdatei:
    date  IP	type	user ID	user name	outcome	authority	additional information


    Hier ein paar Beispielzeilen:
    2014-10-04 20:57:41	1.2.3.4	Admin login	[userID]	[userName]	Success	zp_admin
    2014-10-04 20:58:41	1.2.3.5	Guest login	[userID]	[userName]	Success	zp_admin
    2014-10-04 20:59:41	1.2.3.6	Admin login	[userID]	[userName]	Failed	zp_admin
    2014-10-04 20:60:41	1.2.3.7	Guest login	[userID]	[userName]	Failed	zp_admin


    Ich möchte nun, dass die Zeilen mit "Failed" im outcome-Teil gematched werden.

    Gebe ich den Befehl:
    fail2ban-regex /verzeichnis/zur/security.log "\[<HOST>\]\S*[Admin|Guest login]\S*\W*\S*[Failed]"

    ein, bekomme ich Treffer angezeigt. Ich bin mir jetzt aber auch unsicher bezüglicher meiner regex, weil ich auch einfach mit "\[<HOST>\]" dieselbe Anzahl an Treffern bekomme und das sollten eigentlich mehr sein, als die "Failed"

    Wie auch immer, ich habe entsprechend eine /etc/fail2ban/filter.d/zenphoto.conf angelegt mit dem Inhalt:
    failregex = \[<HOST>\]\S*[Admin|Guest login]\S*\W*\S*[Failed]


    und in meiner jail.local steht:

    [zenphoto]
    enabled = true
    port = http,https
    filter = zenphoto
    logpath = /verzeichnis/zur/security.log
    bantime = 600
    maxretry = 5


    Was mich verwirrt ist, dass wenn ich:
    fail2ban-regex /verzeichnis/zur/security.log /etc/fail2ban/filter.d/zenphoto.conf

    eingebe, ich keine Treffer mehr bekomme... (??!)

    Also ich komme mit den RegEx noch nicht so klar - vielleicht kann mir da jemand helfen und/oder hat Erfahrung mit fail2ban?

    Vielen Dank im voraus!

    Beitrag zuletzt geändert: 8.10.2014 12:00:09 von bastobuntu
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Ich kann zwar nichts zu fail2ban sagen, wohl aber über Regex. Und da sich das hier im Python-Forum befindet gibt es von mir Python-Beispielcode + Regex:
    #!/bin/python
    
    fail2ban = """
    2014-10-04 20:57:41	1.2.3.4	Admin login	[userID]	[userName]	Success	zp_admin
    2014-10-04 20:58:41	1.2.3.5	Guest login	[userID]	[userName]	Success	zp_admin
    2014-10-04 20:59:41	1.2.3.6	Admin login	[userID]	[userName]	Failed	zp_admin
    2014-10-04 20:60:41	1.2.3.7	Guest login	[userID]	[userName]	Failed	zp_admin
    """
    
    regex = r'(<HOST>)\s+(Admin|Guest) login\s*\[\w+\]\s*\[\w+\]\s*Failed'
    
    import re
    lines = [ x.strip() for x in fail2ban.strip().split('\n') ]
    regex = "^.*%s.*$" % regex.replace('<HOST>', r'([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)')
    print("regex: '%s'" % regex)
    for line in lines:
    	match = re.match(regex, line)
    	print("'%s' %s" % (line, "matches" if match else "does not match"))
    Das würde zumindest mal die richtigen Zeilen treffen und wie du sehen kannst ist das Regex deutlich anders als deines.
  4. Autor dieses Themas

    bastobuntu

    Kostenloser Webspace von bastobuntu

    bastobuntu hat kostenlosen Webspace.

    Super, Danke! Ich konnte mir deinem Beispiel eine halb funktionierende Regex hinbekommen. Halb funktionierend, weil es mit dem direkten Test über den Befehl fail2ban-regex /log/datei.log "regex" funktioniert, nicht aber, wenn ich die Zeile in einer entsprechenden conf Datei hinterlege und mit der den Test durchführe. Mal schauen, auch dafür werden die Tiefen des Internets irgendwo eine Lösung parat halten ;)

    Ich musste deine Regex auch etwas anpassen, die hatte nämlich Fehler produziert. Meine lautet nun:
    (<HOST>)\s+(Admin|Guest) login\s+\w+\s+Failed


    Damit bekomme ich genau die Zeilen, die ich suche.

    Vielen Dank nochmal!

    Beitrag zuletzt geändert: 10.10.2014 15:12:41 von bastobuntu
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!