On 08/03/2021 00:28, Phillip Carroll wrote:

I have been using fail2ban on CentOS 7 to block hosts (using an IPSET) based on filters that watch the exim reject log.

I also run the csf/lfd firewall on the same server, which also manages several block lists using IPSET.

These two packages have happily coexisted for many months. Until March 5.  From examining various logs I have pieced together the following sequence:

At 16:13 (MST), csf began an automatic update of itself.  Among the first things that occurred was some part of the system  (perhaps IPSET?) issued a shutdown to fail2ban. The shutdown started OK but then apparently encountered a conflict on a system file and fail2ban then apparently shut down abnormally.  I have since been unable to get it to start up in a normal manner.  The filters are not working at all.

(It is worth mentioning here that csf/lfd has successfully updated itself at least a dozen times in the past with no apparent ill effects on fail2ban.  I will need to go back and look at the logs on those instances to see if any weirdness occurred that somehow managed to resolve itself invisibly.)

Following is the fail2ban log content (with lots of debugging info that I don't fully comprehend) beginning at the time the shutdown began:

2021-03-05 16:13:05,256 fail2ban.server         [806]: INFO Shutdown in progress... 2021-03-05 16:13:05,257 fail2ban.asyncserver    [806]: DEBUG   Stop communication, shutdown 2021-03-05 16:13:05,257 fail2ban.observer       [806]: INFO Observer stop ... try to end queue 5 seconds 2021-03-05 16:13:05,320 fail2ban.observer       [806]: INFO Observer stopped, 0 events remaining. 2021-03-05 16:13:05,358 fail2ban.server         [806]: INFO Stopping all jails 2021-03-05 16:13:05,358 fail2ban.jail           [806]: DEBUG Stopping jail 'exim-reject' 2021-03-05 16:13:05,358 fail2ban.filter         [806]: INFO    Removed logfile: '/var/log/exim/reject.log' 2021-03-05 16:13:05,358 fail2ban.filterpyinotif [806]: DEBUG   Watch WD=8 (None) removed 2021-03-05 16:13:05,358 fail2ban.filterpyinotif [806]: DEBUG   Removed file watcher for /var/log/exim/reject.log 2021-03-05 16:13:05,359 fail2ban.filterpyinotif [806]: DEBUG   Watch WD=1 (None) removed 2021-03-05 16:13:05,359 fail2ban.filterpyinotif [806]: DEBUG   Removed monitor for the parent directory /var/log/exim 2021-03-05 16:13:05,912 fail2ban.actions        [806]: DEBUG     Flush ban list 2021-03-05 16:13:05,913 fail2ban.actions        [806]: NOTICE [exim-reject] Flush ticket(s) with iptables-ipset-proto6 2021-03-05 16:13:05,918 fail2ban.utils          [806]: DEBUG 7f480348de70 -- returned successfully 0 2021-03-05 16:13:05,918 fail2ban.actions        [806]: NOTICE [exim-reject] Unban 196.242.244.79 2021-03-05 16:13:05,918 fail2ban.actions        [806]: NOTICE [exim-reject] Unban 45.85.90.208 2021-03-05 16:13:05,918 fail2ban.actions        [806]: NOTICE [exim-reject] Unban 192.241.225.115 2021-03-05 16:13:05,918 fail2ban.actions        [806]: NOTICE [exim-reject] Unban 193.56.29.116 2021-03-05 16:13:05,918 fail2ban.actions        [806]: NOTICE [exim-reject] Unban 196.242.244.42 2021-03-05 16:13:05,918 fail2ban.actions        [806]: NOTICE [exim-reject] Unban 196.242.244.59 2021-03-05 16:13:05,919 fail2ban.actions        [806]: DEBUG Unbanned 6, 0 ticket(s) in 'exim-reject' 2021-03-05 16:13:05,930 fail2ban.utils          [806]: ERROR 7f4802b867b0 -- exec: iptables -w -D INPUT -p tcp -m multiport --dports smtp -m set --match-set f2b-exim-reject src -j REJECT --reject-with icmp-port-unreachable
ipset flush f2b-exim-reject
ipset destroy f2b-exim-reject
2021-03-05 16:13:05,930 fail2ban.utils          [806]: ERROR 7f4802b867b0 -- stderr: 'ipset v7.1: Set cannot be destroyed: it is in use by a kernel component' 2021-03-05 16:13:05,930 fail2ban.utils          [806]: ERROR 7f4802b867b0 -- returned 1 2021-03-05 16:13:05,930 fail2ban.actions        [806]: ERROR   Failed to stop jail 'exim-reject' action 'iptables-ipset-proto6': Error stopping action Jail('exim-reject')/iptables-ipset-proto6: 'Script error'
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/fail2ban/server/actions.py", line 296, in stopActions
    action.stop()
  File "/usr/lib/python2.7/site-packages/fail2ban/server/action.py", line 632, in stop
    return self._stop()
  File "/usr/lib/python2.7/site-packages/fail2ban/server/action.py", line 655, in _stop     return self._executeOperation('<actionstop>', 'stopping', family=family, afterExec=_stopped)   File "/usr/lib/python2.7/site-packages/fail2ban/server/action.py", line 463, in _executeOperation     raise RuntimeError("Error %s action %s/%s: %r" % (operation, self._jail, self._name, err)) RuntimeError: Error stopping action Jail('exim-reject')/iptables-ipset-proto6: 'Script error' 2021-03-05 16:13:05,932 fail2ban.actions        [806]: DEBUG exim-reject: action iptables-ipset-proto6 terminated 2021-03-05 16:13:05,964 fail2ban.filterpyinotif [806]: DEBUG [exim-reject] filter exited (pyinotifier) 2021-03-05 16:13:06,560 fail2ban.filterpyinotif [806]: DEBUG [exim-reject] filter terminated (pyinotifier) 2021-03-05 16:13:06,560 fail2ban.jail           [806]: INFO    Jail 'exim-reject' stopped 2021-03-05 16:13:06,561 fail2ban.database       [806]: DEBUG   Close connection to database ... 2021-03-05 16:13:06,561 fail2ban.database       [806]: INFO Connection to database closed. 2021-03-05 16:13:06,562 fail2ban.asyncserver    [806]: DEBUG   Removed socket file /var/run/fail2ban/fail2ban.sock 2021-03-05 16:13:06,562 fail2ban.asyncserver    [806]: DEBUG   Socket shutdown 2021-03-05 16:13:06,562 fail2ban.server         [806]: INFO    Exiting Fail2ban 2021-03-05 16:13:06,562 fail2ban.server         [806]: DEBUG   Remove PID file /var/run/fail2ban/fail2ban.pid 2021-03-05 16:13:06,562 fail2ban                [806]: DEBUG   Exit with code 0

Did f2b get an update? If so I have found in the past that some custom jails have failed and you may have to revisit them.

All your script is showing is that, when shutting down, iptables is failing to remove a rule for some reason (try running the command manually). This leaves the rule in place which then means ipset can't delete the set.

There is nothing here to show why f2b is not starting.

Nick


_______________________________________________
Fail2ban-users mailing list
Fail2ban-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fail2ban-users

Reply via email to