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.
goed artikel, hab het geinstalleerd, maar kom niet verder dan een tijdelijk ban.
kan je ook aangeven hoe je een permanente ban regelt
Hiervoor moet je de bantime parameter de waarde -1. geven (in jail.conf):
# Permanent ban
bantime = -1
Dit lijkt inderdaad te helpen, kan je mij ook aangeven in waar de permanente ban’s worden opgeslagen, m.a.w. als ik er een wil vrijgeven waar moet ik dat dan doen?
Zie dit artikel voor informatie over bans.
De bans zelf worden opgeslagen in een SQLite3 database in /var/lib/fail2ban. Om deze te editten moet je ‘sqlite3’ package installeren. Als je de database met een GUI wilt aanpassen kun je bijvoorbeeld gebruik maken van de tool sqliteman.
De naam van de database is: /var/lib/fail2ban/fail2ban.sqlite3