mirror of https://github.com/fail2ban/fail2ban
parent
a08b925468
commit
d6896eb26d
|
@ -46,6 +46,7 @@ ver. 1.0.1-dev-1 (20??/??/??) - development nightly edition
|
||||||
* `filter.d/nginx-http-auth.conf` - extended with parameter mode, so additionally to `auth` (or `normal`)
|
* `filter.d/nginx-http-auth.conf` - extended with parameter mode, so additionally to `auth` (or `normal`)
|
||||||
mode `fallback` (or combined as `aggressive`) can find SSL errors while SSL handshaking, gh-2881
|
mode `fallback` (or combined as `aggressive`) can find SSL errors while SSL handshaking, gh-2881
|
||||||
* `action.d/cloudflare-token.conf` - added support for Cloudflare Token APIs. This method is more restrictive and therefore safter than using API Keys.
|
* `action.d/cloudflare-token.conf` - added support for Cloudflare Token APIs. This method is more restrictive and therefore safter than using API Keys.
|
||||||
|
* new logtarget SYSTEMD-JOURNAL
|
||||||
|
|
||||||
|
|
||||||
ver. 0.11.2 (2020/11/23) - heal-the-world-with-security-tools
|
ver. 0.11.2 (2020/11/23) - heal-the-world-with-security-tools
|
||||||
|
|
1
THANKS
1
THANKS
|
@ -33,6 +33,7 @@ Christoph Haas
|
||||||
Christos Psonis
|
Christos Psonis
|
||||||
craneworks
|
craneworks
|
||||||
Cyril Jaquier
|
Cyril Jaquier
|
||||||
|
Daniel Aleksandersen
|
||||||
Daniel B. Cid
|
Daniel B. Cid
|
||||||
Daniel B.
|
Daniel B.
|
||||||
Daniel Black
|
Daniel Black
|
||||||
|
|
|
@ -24,13 +24,13 @@
|
||||||
loglevel = INFO
|
loglevel = INFO
|
||||||
|
|
||||||
# Option: logtarget
|
# Option: logtarget
|
||||||
# Notes.: Set the log target. This could be a file, SYSLOG, STDERR or STDOUT.
|
# Notes.: Set the log target. This could be a file, SYSTEMD-JOURNAL, SYSLOG, STDERR or STDOUT.
|
||||||
# Only one log target can be specified.
|
# Only one log target can be specified.
|
||||||
# If you change logtarget from the default value and you are
|
# If you change logtarget from the default value and you are
|
||||||
# using logrotate -- also adjust or disable rotation in the
|
# using logrotate -- also adjust or disable rotation in the
|
||||||
# corresponding configuration file
|
# corresponding configuration file
|
||||||
# (e.g. /etc/logrotate.d/fail2ban on Debian systems)
|
# (e.g. /etc/logrotate.d/fail2ban on Debian systems)
|
||||||
# Values: [ STDOUT | STDERR | SYSLOG | SYSOUT | FILE ] Default: STDERR
|
# Values: [ STDOUT | STDERR | SYSLOG | SYSOUT | SYSTEMD-JOURNAL | FILE ] Default: STDERR
|
||||||
#
|
#
|
||||||
logtarget = /var/log/fail2ban.log
|
logtarget = /var/log/fail2ban.log
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ protocol = [
|
||||||
["set loglevel <LEVEL>", "sets logging level to <LEVEL>. Levels: CRITICAL, ERROR, WARNING, NOTICE, INFO, "
|
["set loglevel <LEVEL>", "sets logging level to <LEVEL>. Levels: CRITICAL, ERROR, WARNING, NOTICE, INFO, "
|
||||||
"DEBUG, TRACEDEBUG, HEAVYDEBUG or corresponding numeric value (50-5)"],
|
"DEBUG, TRACEDEBUG, HEAVYDEBUG or corresponding numeric value (50-5)"],
|
||||||
["get loglevel", "gets the logging level"],
|
["get loglevel", "gets the logging level"],
|
||||||
["set logtarget <TARGET>", "sets logging target to <TARGET>. Can be STDOUT, STDERR, SYSLOG or a file"],
|
["set logtarget <TARGET>", "sets logging target to <TARGET>. Can be STDOUT, STDERR, SYSLOG, SYSTEMD-JOURNAL or a file"],
|
||||||
["get logtarget", "gets logging target"],
|
["get logtarget", "gets logging target"],
|
||||||
["set syslogsocket auto|<SOCKET>", "sets the syslog socket path to auto or <SOCKET>. Only used if logtarget is SYSLOG"],
|
["set syslogsocket auto|<SOCKET>", "sets the syslog socket path to auto or <SOCKET>. Only used if logtarget is SYSLOG"],
|
||||||
["get syslogsocket", "gets syslog socket path"],
|
["get syslogsocket", "gets syslog socket path"],
|
||||||
|
|
|
@ -678,7 +678,10 @@ class Server:
|
||||||
return True
|
return True
|
||||||
padding = logOptions.get('padding')
|
padding = logOptions.get('padding')
|
||||||
# set a format which is simpler for console use
|
# set a format which is simpler for console use
|
||||||
if systarget == "SYSLOG":
|
if systarget == "SYSTEMD-JOURNAL":
|
||||||
|
from systemd.journal import JournalHandler
|
||||||
|
hdlr = JournalHandler(SYSLOG_IDENTIFIER='fail2ban')
|
||||||
|
elif systarget == "SYSLOG":
|
||||||
facility = logOptions.get('facility', 'DAEMON').upper()
|
facility = logOptions.get('facility', 'DAEMON').upper()
|
||||||
# backwards compatibility - default no padding for syslog handler:
|
# backwards compatibility - default no padding for syslog handler:
|
||||||
if padding is None: padding = '0'
|
if padding is None: padding = '0'
|
||||||
|
@ -754,7 +757,8 @@ class Server:
|
||||||
verbose = self.__verbose-1
|
verbose = self.__verbose-1
|
||||||
fmt = getVerbosityFormat(verbose, addtime=addtime, padding=padding)
|
fmt = getVerbosityFormat(verbose, addtime=addtime, padding=padding)
|
||||||
# tell the handler to use this format
|
# tell the handler to use this format
|
||||||
hdlr.setFormatter(logging.Formatter(fmt))
|
if target != "SYSTEMD-JOURNAL":
|
||||||
|
hdlr.setFormatter(logging.Formatter(fmt))
|
||||||
logger.addHandler(hdlr)
|
logger.addHandler(hdlr)
|
||||||
# Does not display this message at startup.
|
# Does not display this message at startup.
|
||||||
if self.__logTarget is not None:
|
if self.__logTarget is not None:
|
||||||
|
@ -793,7 +797,7 @@ class Server:
|
||||||
return self.__syslogSocket
|
return self.__syslogSocket
|
||||||
|
|
||||||
def flushLogs(self):
|
def flushLogs(self):
|
||||||
if self.__logTarget not in ['STDERR', 'STDOUT', 'SYSLOG']:
|
if self.__logTarget not in ['STDERR', 'STDOUT', 'SYSLOG', 'SYSTEMD-JOURNAL']:
|
||||||
for handler in getLogger("fail2ban").handlers:
|
for handler in getLogger("fail2ban").handlers:
|
||||||
try:
|
try:
|
||||||
handler.doRollover()
|
handler.doRollover()
|
||||||
|
|
Loading…
Reference in New Issue