fail2ban nach Plesk-Upgrade auf 17.x startet nicht

Ach Linux. Plesk ist ein Tool zu Verwaltung von WebServer. Man kann auch alles in der Console machen, aber die Hoster heutzutage packen das auf ihre Server drauf, damit sie weniger Arbeit haben und der Mietkunde sich _grundsätzlich_ selbst helfen kann.

Auf meinem Server hier läuft das auch, es war allerdings in einer älteren Version vorhanden. In der Version konnte ich ums zerplatzen die kostenlosen ServerZertifikate von Lets encrypt partout nicht einbinden, erwiesene persönliche Unfähigkeit. Es gibt ein Plugin für Plesk was die Sache sehr einfach gestaltet, doch dazu muss man ein Upgrade ausführen. Das ist ja letztlich dann auch gelungen. Mit den Zertifikaten beschäftige ich mich noch.

Sonntags gehe ich gerne durch die Logs meiner Büchsen sofern unterhalb der Woche nichts war und schaue mich so um. Dabei fällt mir auf, dass fail2ban auf dem WebServer in der Prozessliste nicht auftaucht, obwohl auch im neuen Plesk das Tool installiert und aktiv markiert ist. Ein manueller Neustart von fail2ban fällt auf die Nase. Über “sudo /etc/init.d/service fail2ban stop” (auch wenn er nicht da ist, es ist Gewohnheit etwas zu beenden bevor man es entfernt) => apt-get remove fail2ban” => “sudo apt-get purge fail2ban” das störrische Tool entfernt und es mit “sudo apt-get install fail2ban” wieder deinstalliert. Am Ende “sudo /etc/init.d/ service fail2ban start” wirft eine Fehlermeldung an der Console aus und erzeugt eine Fehlermail von Plesk:

/etc/cron.daily/logrotate:
Traceback (most recent call last):
 File "/usr/bin/fail2ban-client", line 472, in <module>
   if client.start(sys.argv):
 File "/usr/bin/fail2ban-client", line 442, in start
   return self.__processCommand(args)
 File "/usr/bin/fail2ban-client", line 281, in __processCommand
   return self.__processCmd([cmd])
 File "/usr/bin/fail2ban-client", line 185, in __processCmd
   client.close()
 File "/usr/lib/python2.7/dist-packages/fail2ban/client/csocket.py", line 55, in close
   self.__csock.sendall(CSPROTO.CLOSE + CSPROTO.END)
 File "/usr/lib/python2.7/socket.py", line 224, in meth
   return getattr(self._sock,name)(*args)
socket.error: [Errno 32] Broken pipe

Aha, jetzt schickt das faule Ding eine Mail den Fehler, die ganze Zeit vorher schaut es gemütlich zu. Tante Google findet nach etwas Mühe einen Plesk-Forums-Thread mit exact dieser Fehlermeldung. 

Was ist zu tun:

  • per SSH auf den Server
  • su root (ohne root-Zugriff geht es nicht)
  • dann diese Zeilen in die Konsole kopieren:

    apt-get purge fail2ban plesk-fail2ban-configurator
    
    mkdir -p /root/addons/plesk
    cd /root/addons/plesk
    wget http://autoinstall.plesk.com/PSA_17.5.3/dist-deb-Ubuntu-14.04-x86_64/opt/fail2ban/fail2ban_0.9.6-ubuntu14.04.17031415_all.deb
    wget http://autoinstall.plesk.com/PSA_17.5.3/dist-deb-Ubuntu-14.04-x86_64/opt/fail2ban/plesk-fail2ban-configurator_17.5.3-ubuntu14.04.build1705170314.14_all.deb
    
    dpkg -i fail2ban_0.9.6-ubuntu14.04.17031415_all.deb plesk-fail2ban-configurator_17.5.3-ubuntu14.04.build1705170314.14_all.deb
  • Wenn das alles durch ist:
    rm -rf /root/addons/plesk 
    
    und
    
    /sbin/iptables -F
  • Ein Neustart des Servers muss sein, ohne den läuft die Änderung nicht: 
    reboot -n
  • Wenn der Server wieder da ist, zur Sicherheit
    sudo /etc/init.d/service fail2ban stop

    und

    sudo /etc/init.d/service fail2ban start
  • Dann ist auch in Plesk der Dienst wieder da und sorgt für Sicherheit auf der Console.

Keine 2 Minuten später waren schon wieder die ersten IP-Adressen im jail:

Loading Likes...