Brute-Force Attacken blockieren mit Fail2ban

Fail2ban scannt Log-Dateien (zB. /var/log/apache/error_log) und verbietet IPs, die verwundbare anfragen enthalten und verhindert die suche nach Exploits, um die Systeme zu infizieren und zu kompromittieren versuchen. Im Allgemeinen wird das „Fehlschlag zu Bann“ Framework verwendet, um Firewall-Regeln zu aktualisieren, als Intrusion Prevention System (Framework zur Vorbeugung gegen Einbrüche). Um die Herkunft der IP-Adressen für eine bestimmte Zeit abzulehnen, wobei andere Dienste ihre Funktion wie zB. der Mail Transport Agent weiterhin Emails verarbeiten werden.
Fail2Ban ist freie Software unter GNU General Public License Version 2 und kommt Out-of-the-Box, der Filter ist für verschiedene Dienste wie Apache, Bind, Postfix, SSH etc. einsetzbar. Fail2ban ist in der Lage, die Rate der falsch-Authentifizierungen, die Brute-Force Attacken zu reduzieren, versucht aber nicht das Risiko schwacher Authentifizierung zu beseitigen.
Installation
Als erstes wird das Packet aus dem Fedora repo installiert und gleich gestartet, hier auf einem Fedora Linux.
$ wget https://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
$ rpm -ivh epel-release-5-4.noarch.rpm
$ yum repolist
$ yum install fail2ban
$ systemctl start fail2ban
Falls nicht schon vorhanden die Log-Datei erstellen:
$ mkdir /var/named/chroot/var/log/named
$ touch /var/named/chroot/var/log/named/security.log
$ chown named /var/named/chroot/var/log/named
Fail2ban Konfiguration
Nun editieren wir die Konfiguration:
$ vi /etc/fail2ban/jail.conf
Hier in diesem Beispiel der Bind Daemon:
bantime = 1440
enabled = true logpath = /var/named/chroot/var/log/named/security.log
enabled = true logpath = /var/named/chroot/var/log/named/security.log
$ vi /etc/named.conf
Den folgenden Inhalt einfügen.
logging {
channel security_file {
file "/var/log/named/security.log" versions 3 size 30m;
severity dynamic;
print-time yes;
};
category security {
security_file;
};
};
Bind named erneut starten.
$ systemctl restart named
Im security-Log von named werden abgelehnte anfragen protokolliert.
$ tail -f /var/named/chroot/var/log/named/security.log
23-Jan-2010 07:19:56.534 client 10.1.162.1#28320: query (cache) './NS/IN' denied
Die letzten fail2ban Einträge anzeigen.
$ tail /var/log/messages
Sep 6 14:21:35 ns2 fail2ban.actions: WARNING [named-refused-tcp] Ban 10.1.162
Die durch fail2ban eingefügten iptables ketten ausgeben.
$ iptables -L -n |grep fail2ban