Linux fail2ban Installation

  Linux Wiki

Fail2ban scannt Log-Dateien (zB. /var/log/apache/error_log) und verbietet IPs, die verwundbare anfragen enthalten und verhindert die suche nach Exploits, um Systeme zu infizieren und zu kompromittieren versuchen. Im Allgemeinen wird fail2ban verwendet um Firewall-Regeln zu aktualisieren, um die Herkunfts IP-Adressen für eine bestimmte Zeitdauer abzulehnen, wobei andere Dienste ihre Funktion wie zB. der Mail Transport Agent weiterhin Emails verarbeiten können.

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 zu reduzieren, versucht aber nicht das Risiko schwacher Authentifizierung zu beseitigen.

Als erstes wird das Packet aus dem Fedora repo installiert und gleich gestartet, hier auf einem CentOS 5.

wget http://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
chkconfig --add fail2ban
chkconfig fail2ban on
service fail2ban start

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

Nun editieren wir die fail2ban Konfiguration:

# vi /etc/fail2ban/jail.conf

Hier in diesem Beispiel der Bind Daemon:

bantime = 1440
[named-refused-udp]
enabled = true
logpath = /var/named/chroot/var/log/named/security.log
[named-refused-tcp]
enabled = true
logpath = /var/named/chroot/var/log/named/security.log
# vi /etc/named.conf
logging {
 channel security_file { 
 file "/var/log/named/security.log" versions 3 size 30m;
  severity dynamic;
  print-time yes;
  };
  category security {
   security_file;
 };
};

service named restart

Im  security-Log von named werden nun ggf. 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
# 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