Hallo Freunde der Sonne,
keine Ahnung ob Ihr auch schon solche lästigen Sachen wie Brute-Force-Attacken oder DoS auf Euren Linux-Servern gehabt hattet oder plant einen Linux-Server online zu betreiben…aber es nervt.
About Fail2ban
Was ist eigentlich ein Fail2ban?
Fail2ban ist ein Zugriffsfilter zum Blockieren von DoS/Brute-Force etc. -Attacken.
Wie ist Fail2ban lizenziert?
GNU Free Documentation License
Was macht dieses Ding/wie funktioniert Fail2ban?
Fail2ban ist ein Dienst der die Protokolle anderer installierter Dienste auswertet und dementsprechend konfigurierte Maßnahmen ergreift. Beispiel: Apache Log auswerten und per iptables die IP welche einen Filter ausgelöst hat blockieren.
Ist dieses individuell Anpassbar?
Die Filter sowie die Aktionen sind anpassbar, natürlich auch was in welcher Konfiguration gefiltert werden sollte.
Muss ich es individuell anpassen?
Es ist empfehlenswert die Konfiguration an das zu Grund liegende Betriebssystem anzupassen bzw. an die Logfiles der Dienste.
Wie geht es jetzt weiter?
Dieser Artikel beinhaltet die Installation von Fail2ban, diese ist auch auf der Projektseite durchlesbar.
Weitere Artikel befassen sich dann mit den einzelnen Filtern/Maßnahmen.
Installation Fail2ban
Die Installation ist wie oben genannt hier dokumentiert:
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8
Installationsvoraussetzungen
Python, kann wie folgt unter CentOS installiert werden:
yum install python
Installation von Fail2ban
Rein theoretisch kann Fail2ban selbst auch über yum installiert werden, zuletzt musste man hierfür jedoch noch den EPEL (Fedora Repro) hinzufügen, daher hier die Installation per Quellcode.
In dem Falle wäre der Befehl:
yum install fail2ban
Erst einmal die Software herunterladen:
cd
mkdir downloads
cd downloads
wget http://sourceforge.net/projects/fail2ban/files/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2/download
tar -xvjf fail2ban-0.8.4.tar.bz2
cd fail2ban-0.8.4
Nun installieren wir das Paket per:
./setup.py install
cd files
cp redhat-initd /etc/init.d/fail2ban
chmod 775 /etc/init.d/fail2ban
Aktivierung der Prüfung für die Konfiguration:
chkconfig fail2ban
Anlegen des Autostarts in den Runleveln:
ln -s /etc/init.d/fail2ban /etc/rc2.d/S20fail2ban
ln -s /etc/init.d/fail2ban /etc/rc3.d/S20fail2ban
Alternativ auch per ntsysv…
Prüfung der Konfiguration:
fail2ban-client -d
service fail2ban start
Anpassung der Konfiguration für die entsprechenden Filter:
nano /etc/fail2ban/jail.conf
Hier ein Beispiel für den Apache-Login unter CentOS:
[apache-tcpwrapper-ssl]
enabled = true
filter = apache-auth
action = iptables[name=HTTPS, port=https, protocol=tcp]
sendmail-whois[name=HTTPS, dest=<deine@mail.tld>, sender=<sender@mail.tld>]
logpath = /var/log/httpd/ssl_error_log
maxretry = 5
Das Beispiel darf man natürlich auch gerne für HTTP ohne SSL wiederholen.
Testlauf über 5 Fehl-Logins und danach folgendem Eintrag in den iptables.
iptables-save