diff --git a/fail2ban/client/beautifier.py b/fail2ban/client/beautifier.py index 1c6cdaeb..f2c1fb16 100644 --- a/fail2ban/client/beautifier.py +++ b/fail2ban/client/beautifier.py @@ -123,6 +123,8 @@ class Beautifier: msg = "Current date pattern set to: " if response is None: msg = msg + "Default Detectors" + elif response[0] is None: + msg = msg + "%s" % response[1] else: msg = msg + "%s (%s)" % response elif inC[2] in ("ignoreip", "addignoreip", "delignoreip"): diff --git a/fail2ban/server/filter.py b/fail2ban/server/filter.py index 30ba2649..e1f8613f 100644 --- a/fail2ban/server/filter.py +++ b/fail2ban/server/filter.py @@ -28,7 +28,7 @@ from failmanager import FailManager from ticket import FailTicket from jailthread import JailThread from datedetector import DateDetector -from datetemplate import DatePatternRegex +from datetemplate import DatePatternRegex, DateISO8601 from mytime import MyTime from failregex import FailRegex, Regex, RegexException @@ -199,11 +199,15 @@ class Filter(JailThread): def setDatePattern(self, pattern): dateDetector = DateDetector() - template = DatePatternRegex() - if pattern[0] == "^": # Special extra to enable anchor - template.setPattern(pattern[1:], anchor=True) + if pattern == "ISO8601": + template = DateISO8601() + template.setName("ISO8601") else: - template.setPattern(pattern, anchor=False) + template = DatePatternRegex() + if pattern[0] == "^": # Special extra to enable anchor + template.setPattern(pattern[1:], anchor=True) + else: + template.setPattern(pattern, anchor=False) dateDetector.appendTemplate(template) self.dateDetector = dateDetector logSys.info("Date pattern set to `%r`: `%s`" % @@ -221,7 +225,10 @@ class Filter(JailThread): if len(templates) > 1: return None # Default Detectors in use elif len(templates) == 1: - pattern = templates[0].getPattern() + if hasattr(templates[0], "getPattern"): + pattern = templates[0].getPattern() + else: + pattern = None if templates[0].getRegex()[0] == "^": pattern = "^" + pattern return pattern, templates[0].getName() diff --git a/fail2ban/server/filtersystemd.py b/fail2ban/server/filtersystemd.py index c0fe9a87..87daa8e6 100644 --- a/fail2ban/server/filtersystemd.py +++ b/fail2ban/server/filtersystemd.py @@ -57,6 +57,7 @@ class FilterSystemd(JournalFilter): # pragma: systemd no cover # Initialise systemd-journal connection self.__journal = journal.Reader(converters={'__CURSOR': lambda x: x}) self.__matches = [] + self.setDatePattern("ISO8601") logSys.debug("Created FilterSystemd")