• Please be aware: Kaspersky Anti-Virus has been deprecated
    With the upgrade to Plesk Obsidian 18.0.64, "Kaspersky Anti-Virus for Servers" will be automatically removed from the servers it is installed on. We recommend that you migrate to Sophos Anti-Virus for Servers.
  • The Horde webmail has been deprecated. Its complete removal is scheduled for April 2025. For details and recommended actions, see the Feature and Deprecation Plan.
  • We’re working on enhancing the Monitoring feature in Plesk, and we could really use your expertise! If you’re open to sharing your experiences with server and website monitoring or providing feedback, we’d love to have a one-hour online meeting with you.

Issue ERROR Error in FilterPyinotify callback: must be string without null bytes, not str

daanse

Regular Pleskian
Hi,

just noticed that my Fail2Ban is not banning any IPs.
so i looked into fail2ban.log and noticed thousands of fails, as followed:

Code:
2017-03-19 07:08:01,992 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:08,143 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,221 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,240 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,266 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,285 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,322 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,340 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,641 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:15,671 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:16,261 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:16,442 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str
2017-03-19 07:08:16,458 fail2ban.filterpyinotify[6530]: ERROR Error in FilterPyinotify callback: must be string without null bytes, not str

what i the world happened here?
I didn't changed anything.

fail2ban status is active.
PLesk Onyx latest and Debian 8.x

EDIT: After restart and applying this here: https://www.howtoforge.com/community/threads/fail2ban-error-in-log-files.66369/
i noticed some more Fails (see Screenshot)

Still have no clue what to do.
Any Advice?
 

Attachments

  • Bildschirmfoto 2017-03-22 um 00.01.27.jpg
    Bildschirmfoto 2017-03-22 um 00.01.27.jpg
    264.2 KB · Views: 4
  • Bildschirmfoto 2017-03-22 um 00.02.17.jpg
    Bildschirmfoto 2017-03-22 um 00.02.17.jpg
    1.1 MB · Views: 4
Last edited:
Hi daanse,

did you consider to RE-INSTALL Fail2Ban, to solve your issue(s) ?

Code:
plesk installer --select-product-id plesk --select-release-current --remove-component fail2ban
plesk installer --select-product-id plesk --select-release-current --install-component fail2ban


In addition, I would never recommend suggestions from external sources in the first place. Consider to redo your changes to "auto", if you don't want to re-install Fail2Ban and restart it.
 
Hi @UFHH01 ,
i did exactly as you said, no changes. Moreover, i can switch on f2b Jails without waiting, which is not normal, cause it took always longer, at about 30 seconds.
Anyways, i still get these same errors and i want to point out, that i didn't changed any Jail, CONF.
Only thing i made is to update linux several days ago, as i always do, if there are new Updates.
 
Hi daanse,

Only thing i made is to update linux several days ago, as i always do, if there are new Updates.
You seem to have updated/upgraded the "python" package on your server. Correct?

Pls. post the output of ( as user "root" over SSH ):
Code:
which python
python -v

AND

python -V
 
Hi @UFHH01 ,

thanks for help:

Code:
root@ ~ # which python
/usr/bin/python
root@ ~ # python -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /usr/lib/python2.7/site.pyc matches /usr/lib/python2.7/site.py
import site # precompiled from /usr/lib/python2.7/site.pyc
# /usr/lib/python2.7/os.pyc matches /usr/lib/python2.7/os.py
import os # precompiled from /usr/lib/python2.7/os.pyc
import errno # builtin
import posix # builtin
# /usr/lib/python2.7/posixpath.pyc matches /usr/lib/python2.7/posixpath.py
import posixpath # precompiled from /usr/lib/python2.7/posixpath.pyc
# /usr/lib/python2.7/stat.pyc matches /usr/lib/python2.7/stat.py
import stat # precompiled from /usr/lib/python2.7/stat.pyc
# /usr/lib/python2.7/genericpath.pyc matches /usr/lib/python2.7/genericpath.py
import genericpath # precompiled from /usr/lib/python2.7/genericpath.pyc
# /usr/lib/python2.7/warnings.pyc matches /usr/lib/python2.7/warnings.py
import warnings # precompiled from /usr/lib/python2.7/warnings.pyc
# /usr/lib/python2.7/linecache.pyc matches /usr/lib/python2.7/linecache.py
import linecache # precompiled from /usr/lib/python2.7/linecache.pyc
# /usr/lib/python2.7/types.pyc matches /usr/lib/python2.7/types.py
import types # precompiled from /usr/lib/python2.7/types.pyc
# /usr/lib/python2.7/UserDict.pyc matches /usr/lib/python2.7/UserDict.py
import UserDict # precompiled from /usr/lib/python2.7/UserDict.pyc
# /usr/lib/python2.7/_abcoll.pyc matches /usr/lib/python2.7/_abcoll.py
import _abcoll # precompiled from /usr/lib/python2.7/_abcoll.pyc
# /usr/lib/python2.7/abc.pyc matches /usr/lib/python2.7/abc.py
import abc # precompiled from /usr/lib/python2.7/abc.pyc
# /usr/lib/python2.7/_weakrefset.pyc matches /usr/lib/python2.7/_weakrefset.py
import _weakrefset # precompiled from /usr/lib/python2.7/_weakrefset.pyc
import _weakref # builtin
# /usr/lib/python2.7/copy_reg.pyc matches /usr/lib/python2.7/copy_reg.py
import copy_reg # precompiled from /usr/lib/python2.7/copy_reg.pyc
# /usr/lib/python2.7/traceback.pyc matches /usr/lib/python2.7/traceback.py
import traceback # precompiled from /usr/lib/python2.7/traceback.pyc
# /usr/lib/python2.7/sysconfig.pyc matches /usr/lib/python2.7/sysconfig.py
import sysconfig # precompiled from /usr/lib/python2.7/sysconfig.pyc
# /usr/lib/python2.7/re.pyc matches /usr/lib/python2.7/re.py
import re # precompiled from /usr/lib/python2.7/re.pyc
# /usr/lib/python2.7/sre_compile.pyc matches /usr/lib/python2.7/sre_compile.py
import sre_compile # precompiled from /usr/lib/python2.7/sre_compile.pyc
import _sre # builtin
# /usr/lib/python2.7/sre_parse.pyc matches /usr/lib/python2.7/sre_parse.py
import sre_parse # precompiled from /usr/lib/python2.7/sre_parse.pyc
# /usr/lib/python2.7/sre_constants.pyc matches /usr/lib/python2.7/sre_constants.py
import sre_constants # precompiled from /usr/lib/python2.7/sre_constants.pyc
import _locale # builtin
# /usr/lib/python2.7/_sysconfigdata.pyc matches /usr/lib/python2.7/_sysconfigdata.py
import _sysconfigdata # precompiled from /usr/lib/python2.7/_sysconfigdata.pyc
# /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata_nd.pyc matches /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata_nd.py
import _sysconfigdata_nd # precompiled from /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata_nd.pyc
# /usr/lib/python2.7/sitecustomize.pyc matches /usr/lib/python2.7/sitecustomize.py
import sitecustomize # precompiled from /usr/lib/python2.7/sitecustomize.pyc
import encodings # directory /usr/lib/python2.7/encodings
# /usr/lib/python2.7/encodings/__init__.pyc matches /usr/lib/python2.7/encodings/__init__.py
import encodings # precompiled from /usr/lib/python2.7/encodings/__init__.pyc
# /usr/lib/python2.7/codecs.pyc matches /usr/lib/python2.7/codecs.py
import codecs # precompiled from /usr/lib/python2.7/codecs.pyc
import _codecs # builtin
# /usr/lib/python2.7/encodings/aliases.pyc matches /usr/lib/python2.7/encodings/aliases.py
import encodings.aliases # precompiled from /usr/lib/python2.7/encodings/aliases.pyc
# /usr/lib/python2.7/encodings/utf_8.pyc matches /usr/lib/python2.7/encodings/utf_8.py
import encodings.utf_8 # precompiled from /usr/lib/python2.7/encodings/utf_8.pyc
Python 2.7.9 (default, Jun 29 2016, 13:08:31)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
dlopen("/usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so", 2);
import readline # dynamically loaded from /usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so
>>>

and:
Code:
# python -V
Python 2.7.9
 
Hi daanse,

pls. post as well the output from:

Code:
apt-cache policy fail2ban

and

lsb_release -a
uname -a
 
Hi @UFHH01,

okay:
Code:
# apt-cache policy fail2ban
fail2ban:
  Installed: 1:0.9.2-debian8.0.16102516
  Candidate: 1:0.9.2-debian8.0.16102516
  Version table:
 *** 1:0.9.2-debian8.0.16102516 0
        100 /var/lib/dpkg/status
     0.8.13-1 0
        500 http://mirror.hetzner.de/debian/packages/ jessie/main amd64 Packages
        500 http://http.debian.net/debian/ jessie/main amd64 Packages

and
Code:
# lsb_release -a
No LSB modules are available.
Distributor ID:    Debian
Description:    Debian GNU/Linux 8.7 (jessie)
Release:    8.7
Codename:    jessie
# uname -a
Linux hostname-xxxx.com 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
 
Hi daanse

ahhh... here we go... :
# apt-cache policy fail2ban
fail2ban:
Installed: 1:0.9.2-debian8.0.16102516
Candidate: 1:0.9.2-debian8.0.16102516
Version table:
*** 1:0.9.2-debian8.0.16102516 0
100 /var/lib/dpkg/status
0.8.13-1 0
500 http://mirror.hetzner.de/debian/packages/ jessie/main amd64 Packages
500 http://http.debian.net/debian/ jessie/main amd64 Packages
You rather like the Fail2Ban version from your vendor, instead of using the Plesk - Fail2Ban - version.

You have two choices now:

Either ask the Debian - 8 - Community or Fail2Ban - community to solve your bug with "Fail2Ban" and the corresponding package "python-pyinotify"

OR

Consider to UN-install Fail2Ban completely from Plesk with the already mentioned command, afterwards use the command "aptitude purge fail2ban", rename a possible leftover folder "/etc/fail2ban" to "/etc/fail2ban.backup" ( => command: mv /etc/fail2ban /etc/fail2ban.backup ), download the Plesk Fail2Ban versions and install them manually:

Code:
mkdir -p /root/addons/Plesk
cd /root/addons/Plesk
wget http://autoinstall.plesk.com/PSA_17.0.17/dist-deb-Debian-8.0-x86_64/opt/fail2ban/fail2ban_0.9.2-debian8.0.16102516_all.deb
wget http://autoinstall.plesk.com/PSA_17.0.17/dist-deb-Debian-8.0-x86_64/opt/fail2ban/plesk-fail2ban-configurator_17.0.17-debian8.0.build1700161026.19_all.deb

and install the Plesk supported versions with the "dpkg" command:

dpkg -i fail2ban_0.9.2-debian8.0.16102516_all.deb plesk-fail2ban-configurator_17.0.17-debian8.0.build1700161026.19_all.deb

Afterwards, clean your system with:

cd /
rm -r /root/addons/Plesk
rm -r /root/addons
 
Last edited by a moderator:
... if you STILL experience issues, then these issues are because of your vendor's "python-pyinotify" version. You could use "polling" instead of "auto", but I'd rather recommend to search for solutions/patches over the Debian Community. ;)
 
Hi @UFHH01,

thank you, i don't understand but it seems that i have two f2b installed? Makes no sense to me but i would like to use Plesk f2b.
I dont understand which steps this would require to stay with plesk f2b.
Can you kindly clarify your answer?
 
Hi daanse,

I dont understand which steps this would require to stay with plesk f2b.
Can you kindly clarify your answer?
I really tried to provide ALL necessary commands ( for Debian 8 ) in my previous post... where is a possible error/issue/problem, when using the suggestion?
 
Consider to UN-install Fail2Ban completely from Plesk with the already mentioned command, afterwards use the command "aptitude purge fail2ban", rename a possible leftover folder "/etc/fail2ban" to "/etc/fail2ban.backup" ( => command: mv /etc/fail2ban /etc/fail2ban.backup ), download the Plesk Fail2Ban versions and install them manually:
ahh, i understand, you mean to remove completely F2B and than install again, right?
 
Hi @UFHH01 ,

i did as you described, looks good, but still noticed some errors:
Code:
iptables -X f2b-plesk-proftpd -- stderr: 'iptables: Too many links.\n'
2017-03-22 13:47:00,813 fail2ban.action         [20017]: ERROR   iptables -D INPUT -p tcp -m multiport --dports ftp,ftp-data,ftps,ftps-data -j f2b-plesk-proftpd
iptables -F f2b-plesk-proftpd
iptables -X f2b-plesk-proftpd -- returned 1
2017-03-22 13:47:00,813 fail2ban.actions        [20017]: ERROR   Failed to stop jail 'plesk-proftpd' action 'iptables-multiport': Error stopping action
2017-03-22 13:47:00,813 fail2ban.jail           [20017]: INFO    Jail 'plesk-proftpd' stopped
2017-03-22 13:47:01,679 fail2ban.action         [20017]: ERROR   iptables -D INPUT -p tcp -m multiport --dports http,https,7080,7081 -j f2b-plesk-wordpress
iptables -F f2b-plesk-wordpress
iptables -X f2b-plesk-wordpress -- stdout: ''
2017-03-22 13:47:01,679 fail2ban.action         [20017]: ERROR   iptables -D INPUT -p tcp -m multiport --dports http,https,7080,7081 -j f2b-plesk-wordpress
iptables -F f2b-plesk-wordpress
iptables -X f2b-plesk-wordpress -- stderr: 'iptables: Too many links.\n'
2017-03-22 13:47:01,679 fail2ban.action         [20017]: ERROR   iptables -D INPUT -p tcp -m multiport --dports http,https,7080,7081 -j f2b-plesk-wordpress
iptables -F f2b-plesk-wordpress
iptables -X f2b-plesk-wordpress -- returned 1

this: stderr: 'iptables: Too many links.\n' what can i do here?
 
Hi daanse,

you seem to have quite a lot of current entries in your iptables at the moment. Pls. flush your iptables and stop and start fail2ban again:

Code:
/sbin/iptables -F

service fail2ban stop

service fail2ban start
 
Hi daanse,

you seem to have quite a lot of current entries in your iptables at the moment. Pls. flush your iptables and stop and start fail2ban again:

Code:
/sbin/iptables -F

service fail2ban stop

service fail2ban start
Thank you, i ran the first command flush ... and then 15-20 Minutes later, Server down.
Its a dedicated 64GB Ram Server.
I made a reset and try again some Night :)
 
Hi daanse,

Thank you, i ran the first command flush ... and then 15-20 Minutes later, Server down.
Flushing the iptables will not result in any "server down" situations at all.

Pls. inspect your log - files ( kern.log / syslog / debug / messages / etc... ), in order to investigate your further issues/errors/problems. ;)
 
Hi @UFHH01,
i ran first command an it never came to an End, instead of that, everything went down, no ssh, no panel, no frontend Pages.
So i restarted Server. Its maybe not logical but this is what happened.
I will investigate, thank you.
 
Back
Top