Kopano schützen gegen Attacken mit Fail2ban
Dieses Howto beschreibt die Installation und Konfiguration von Fail2ban für die Kopano Groupware auf Ubuntu 16.04.4 LTS. Fail2ban bietet effektiven schutz gegen Brute-Force Attacken, in dem aus Syslog und Apache Protokoll fehlgeschlagene versuche von Authentifizierungen herausgefiltert werden, um anschliessend den Host für eine bestimmte Zeit mittels Kernel Firewall zu blockieren.
Installation Fail2ban auf Kopano Server
Das Paket Fail2ban wird auf dem Ubuntu Host als root wie folgt installiert. Fail2ban ist auf Python entwickelt, weshalb die erforderlichen Bibliotheken nachgeladen werden.
1 2 3 |
apt-get update apt-get install fail2ban -y |
Nach der Installation wird Fail2ban ausgeführt und in systemd für den autostart aktiviert.
1 2 3 |
systemctl start fail2ban systemctl enable fail2ban |
Ein Fail2ban Filter für Kopano bereitstellen, wir erstellen die Datei kopano-webapp-auth.conf
1 2 |
vi /etc/fail2ban/filter.d/kopano-webapp-auth.conf |
Den Inhalt mit folgenden Zeilen in die Filter Datei einfügen:
1 2 3 4 5 6 7 8 9 10 11 |
# Fail2Ban kopano-webbapp-auth filter # /etc/fail2ban/filter.d/kopano-webapp-auth.conf [INCLUDES] before = apache-common.conf [Definition] failregex = ^%(_apache_error_client)s Kopano WebApp user:.* authentication failure at MAPI ignoreregex = |
Den Fail2ban Filter für Kopano aktivieren, dazu die Konfigurationsdatei jail.local erstellen.
1 2 |
vi /etc/fail2ban/jail.local |
Und den folgenden Inhalt einfügen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[sshd] port = ssh logpath = %(sshd_log)s [kopano-webapp] enabled = true port = https filter = kopano-webapp-auth logpath = %(apache_error_log)s [apache-auth] enabled = true port = http,https logpath = %(apache_error_log)s |
Hier wird error.log ausgelesen mit der Variable %(apache_error_log), /var/log/apache2/error.log
Fail2ban erneut starten um die änderungen zu aktivieren.
1 2 |
systemctl restart fail2ban |
Den Status von Fail2ban kann wie folgt überprüft werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root@kopano:~# fail2ban-client status Status |- Number of jail: 3 `- Jail list: apache-auth, kopano-webapp, sshd root@kopano:~# fail2ban-client status kopano-webapp Status for the jail: kopano-webapp |- Filter | |- Currently failed: 0 | |- Total failed: 7 | `- File list: /var/log/apache2/mattermost-error.log /var/log/apache2/error.log `- Actions |- Currently banned: 4 |- Total banned: 52 `- Banned IP list: 10.10.10.101 172.17.88.91 172.31.16.3 10.32.57.98 |
Die Firewall gibt Aufschluss über den Status der aktuell durch Fail2ban geblockten Hosts, mit einer iptables abfrage:
1 2 |
iptables -vnL | egrep "f2b-kopano-webapp|apache-auth|sshd" |