Spannender Artikel, den Robin vor einigen Tagen im ubuntublog veröffentlicht hat. Es geht darum den von mir eingesetzten Webserver, nginx mit dem simplen Intrusion Prevention System (IPS) Fail2ban zu erweitern und dies dann mit iptables zu verknüpfen.
Fail2ban interagiert mit dem error-log von nginx und überprüft dieses auf fehlerhafte Logins. Im konkreten Fall auf fehlerhafte Auth-Basic Logins. Nach x fehlerhaften Versuchen wird die entsprechende IP-Adresse temporär oder dauerhaft via iptables gesperrt. Funktioniert natürlich auch mit anderen Log-Dateien. Die auth.log (SSH) ist etwa direkt schon in Fail2ban vorkonfiguriert.
Ganz spannend wäre natürlich, wenn man das Konstrukt zu einer minimalen Web Application-Firewall ausbauen könnte.
Als simple Funktion könnte ich mir ein dazu etwa WordPress Plugin vorstellen, welches die fehlerhaften Login-Versuche in eine Log-Datei schreibt, die dann ebenfalls mit Fail2ban ausgelesen und verarbeitet werden kann. Werde mal schauen, ob es bereits ein entsprechende Plugin gibt. Ansätze ohne iptables, sondern rein WordPress basiert gibt es ja mit Limit Login Attempts schon. Hat jemand von euch so was im Einsatz? Eventuell sogar zusammen mit Fail2ban oder generell iptables?
Insgesamt sind Fail2ban und aber auch DenyHosts zwei einfache Möglichkeiten seinen Server etwas sicherer zu gestalten und herkömmliche Angriffe abzuwehren. Zumindest dann, wenn man nicht die nötige Infrastruktur oder die finanziellen Mittel hat, um eine dedizierte Firewall mit integriertem IDS/IPS zu betreiben oder snort auf einem separaten Host einzusetzen. Trifft speziell auf gewöhnliche vServer zu, bei denen man die Security im Normalfall direkt auf dem Server selber definieren muss.
An die Server-Besitzer unter Euch: Hat jemand Tools im Bereich IDS oder IPS im Einsatz? Wenn ja, welche?

Ich nutze für meinen Webserver auch Fail2Ban. Dies ist aus meiner Sicht aber kein wirkliches IPS. Ein IPS ist normalerweise physikalisch im Uplink eingeschliffen und analysiert den Datenverkehr direkt (Stichwort DPS). Fail2Ban kann ja leider nur identifizieren, was im Log steht, d.h. wenn der potentielle Schadcode bereits ausgeführt wurde.
Das was du beschreibst, ist meiner Meinung nach ein Network-based intrusion prevention system (NIPS), welches direkt im Netzwerk eingebunden und vor die entsprechenden Rechner geschaltet wird.
Zumindest auf Wikipedia wird Fail2ban auch als IPS klassifiziert. Halt nicht vom Typ Network, sondern Host-based (HIPS).
http://de.wikipedia.org/wiki/Intrusion_Prevention_System
http://en.wikipedia.org/wiki/Fail2ban
Hrhr, man merkt dass ich mich seit einigen Jahren fast ausschließlich mit Netzwerken beschäftige und nur selten mit Servern…
Klaro gibts auch Host-basierte IPS Systeme (auch wenn ich behaupten würde, dass ein Netzwerk-IPS eher die Regel darstellt.).
Trotzdem bleibe ich bei meiner Meinung, dass Fail2Ban von der Definition her kein klassisches IPS ist, da es nicht direkt die eingehenden Daten einliest, sondern nur indirekt auf generierte Logfiles reagieren kann.
Ich habe eine selbstgebaute Lösung (mit-)entwickelt, die Logfiles via syslog-ng analysiert und die IPs in eine Datenbank schreibt. Von dort werden die IPs wieder in das iptables-Skript eingearbeitet.