A

p

e

r

s

o

n

a

l

B

l

o

g

Fail2ban

Fail2ban ist ein wirklich nützliches Tool, aber mit CentOS kein Vergnügen. Da gibt es verschiedene Probleme mit Logrotate und SELinux.

Es ist also wichtig das Verhalten von Fail2ban genau zu beobachten und die Konfiguration anzupassen. Als Beispiel dient hier CentOS 6.4 und SSH.

Erstmal ist es wichtig die Fail2ban-Logdatei zu beobachten. Wird logtarget = /var/log/fail2ban in /etc/fail2ban/fail2ban.local gesetzt, muss auch /etc/logrotate.d/fail2ban angepasst werden.

Den Status des fail2ban-server erfährt man mit den Befehlen:

service fail2ban status
/etc/init.d/fail2ban status
fail2ban-client status

Die Regeln zum Filtern einer Logdatei können mit dem Befehl fail2ban-regex getestet werden:

fail2ban-regex /var/log/secure /etc/fail2ban/filter.d/sshd.conf

Das Sperren von Internetadressen kann mit dem logger-Befehl getriggert werden. Wichtig ist zu verstehen, dass auch CGI/PHP Skripte Logdateien manipulieren können. Eigentlich können alle Programme in Logdateien schreiben. Per /etc/rsyslog.conf können Informationen auch verteilt und empfangen werden.

logger -p authpriv.warning -t 'sshd[123]' 'Invalid user admin from 10.2.11.1'

Und

logger -p authpriv.warning -t 'sshd[123]' \
  'User root from 10.2.11.1 not allowed because not listed in AllowUsers'

Etwas unübersichtlich ist fail2ban-client -d. Es wird die gesamte Konfiguration angezeigt. Interessant ist z.B. welcher Befehl zum Sperren einer IP-Adresse verwendet wird.

Welche Adressen gerade gesperrt sind, sollte in der Logdatei von fail2ban stehen und mit iptables -L übereinstimmen.

Gesperrte IP-Adressen wieder freigegeben:

iptables -D fail2ban-SSH -s 192.168.1.1 -j DROP

Und dann gibt es noch die Manpages:

Nützliche Infos gibt es auch auf dieser Seite.