Nadat ik Cockpit had geïnstalleerd op mijn Debian Stretch Server zag ik in de ‘live’ logging van Cockpit dat er veel pogingen werden ondernomen om remote via SSH in te loggen. Je ziet dan logging in de trant van:

error: maximum authentication attempts exceeded for root from 218.87.109.155 port 58408 ssh2 [preauth]

Toen ik terugkeek in mijn oude logging (‘/var/log/syslog’ files) zag ik dat dit constant gebeurde. Nu had ik als belangrijkste maatregel de ‘root’ user al uitgeschakeld voor SSH toegang (edit file ‘/etc/ssh/sshd_config’ en zet PermitRootLogin op ‘no’) toen ik Debian installeerde, dus zover ik kan overzien is er nog nooit een onbekende via SSH remote op mijn systeem gekomen met gebruiker ‘root’. Een andere goede maatregel kan het veranderen van de listen-port voor je SSH toegang zijn. Dit doe je ook in de file ‘/etc/ssh/sshd_config’.

Nu is er echter ook speciale software met de naam Fail2ban die je log files (bijvoorbeeld ‘/var/log/auth.log’ en ‘/var/log/apache’) constant monitort en dan een tijdelijke of persistente verbod (ban) van een IP-adres uitdeelt door het updaten van de firewall regels (iptables).

Default wordt Fail2ban geleverd met filter definities voor verschillende services zoals ‘sshd’, ‘apache’, ‘qmail’, ‘proftpd’, etc, maar de configuratie kan eventueel ook uitgebreid worden voor het monitoren van andere tekst-files.

Om Fail2ban de installeren voer het je het volgende commando uit:

apt-get install fail2ban

Na de installatie zal de Fail2ban service automatisch starten en je kunt de status bekijken met het commando:

service fail2ban status

Met Debian worden de filter definities standaard opgeslagen in de files ‘/etc/fail2ban/jail.conf en ‘/etc/fail2ban/jail.d/defaults-debian.conf’. De eerste file bevat de definities en de laatste file bepaald welke services gemonitored moeten worden. Zie de Fail2ban documentatie voor meer details wat je allemaal kunt configureren. Default staat ‘sshd’ bescherming aan met een IP verbod voor 600 seconden na 5 foute logins.

Gebruik de volgende commando’s voor de huidige status m.b.t. uitsluitingen door Fail2ban:

fail2ban-client status
fail2ban-client status sshd

Als je de configuratie hebt aangepast dan moet je de Fail2ban service restarten met het volgende commando:

service fail2ban restart

Fail2ban is een handige service om je Debian Server nog beter te beschermen en ik raad het dan ook iedereen aan.