Nachdem ich mir einige Intrusion Detection and Prevention-Systeme angesehen habe, fiel meine Wahl letztlich doch auf Snort. Es ist relativ leicht zu konfigurieren und sehr weit verbreitet. Ich wollte erst Samhain verwenden, aber das ist für unseren einzelnen Server etwas zu groß. Das lohnt sich nur, wenn wir mehrere Server zu überwachen hätten. Aber wenn noch mehr Server hinzu kommen, werde ich wohl Samhain testen.

Aber jetzt zu Snort. Zunächst lege ich jedem diesen Artikel auf pro-linux.de ans Herz.

  1. Zunächst installieren wir Snort. Aktviere hier nur die ersten zwei Menüpunkte (dynamic und flexible1). Man kann Snort beibringen in eine SQL-Datenbank zu protokollieren, aber das werde ich hier nicht beschreiben.

    # cd /usr/ports/security/snort && make install clean

  2. Anschließend solltest du dir hier meine snort.conf als Beispiel herunterladen. Diese ist um die Kommentare bereinigt, muss aber an deine IP-Adressen angepasst werden. Die Filter-Regeln, die wir gleich noch herunterladen werden, sind bereits eingebunden (auf unseren Server hier bezogen), sind aber natürlich anpassbar. Manche Regeln haben bei mir auch nicht funktioniert .

  3. Als nächstes laden wir die Regeln herunter, und entpacken diese in das Verzeichnis '/usr/local/etc/snort/rules'. Es gibt hier zwei Regel-Pakete: die von der Community und die von einem Release für nicht-registrierte Benutzer. Ob du dich registrieren willst (kostenpflichtig), musst du für dich selbst entscheiden; näheres auf der Snort-Website.

    # fetch https://s3.amazonaws.com/(...)/community-rules.tar.gz

  4. Anschließend aktivieren wir Snort in der '/etc/rc.conf':

    snort_enable="YES"

  5. Jetzt starten wir Snort und prüfen ob er auch läuft. Fehlermeldungen werden in '/var/log/messages' gespeichert.

    # sh /usr/local/etc/rc.d/snort start

    Status prüfen mit

    # sh /usr/local/etc/rc.d/snort status

  6. Wenn Snort jetzt läuft, wunderbar. Um die Logfiles nun regelmäßig auszuwerten, solltest du dir folgendes Perl-Skript von Chad Brandt herunterladen:

    # fetch http://serverzeit.de/files/serverzeit_v2/configs/snortLog.pl.txt 

    Dieses Skript zeigt dir eine recht übersichtliche Auswertung der Logfiles. Ich habe mir einen entsprechenden Cronjob eingerichtet, der mir täglich eine Auswertung zuschickt.

    Ausführen kannst du das Skript mit folgendem Befehl, nachdem du das ".txt" entfernt hast:

    # perl snortLog.pl