Snort® 2.x

Snort® (Snort® is a registered trademark of Sourcefire, Inc.) ist ein Intrusion Detection System und liest aus Paketen eines Netzwerkinterfaces Charakteristika, die auf einen evtl. Angriff schließen lassen. Achtung: Snort® liest die Pakete BEVOR sie von iptables gefiltert werden!!!

Hier eine kurze Anleitung zur Installation und ersten Konfiguration, wie ich sie selbst durchführte.

1. Apache 1.3x oder 2.0.x mit (mind.) PHP 4.1.x installieren und starten

2. MySQL 3.23.x oder 4.x installieren und starten

3. Snort® als Source downloaden

4. Archiv in /usr/src/redhat/SOURCES kopieren

5. dort entpacken: tar -xvzf snort-2.0.0.tar.gz

6. Compilieren und installieren (mit MySQL-Unterstützung):

Vor dem Compilieren die Existenz der PCRE library und der MySQL-Library mysql.h prüfen. Die PCRE library downloaden und installieren (./configure, make, make install) und die MySQL-Library downloaden und das Paket mysql-devel-x.xx.x.i386.rpm (muss zur installieren MySQL-Version passen!) installieren (rpm -ivh mysql-devel-x.xx.x.i386.rpm).

./configure --with-mysql

make

make install

7. den Ordner "rules" nach /etc/rules kopieren

8. die Konfigurationsdatei /etc/snort.conf editieren:

Variable $RULE_PATH setzen auf /etc/snort

Variable $HOME_NET setzen

9. Schreiben der Daten in die Datenbank konfigurieren (Doppelkreuz vor der Zeile entfernen und Werte für die Variablen einsetzen):

output database: log, mysql, user=snort password=snort dbname=snort host=localhost

10. Ordner /var/log/snort erstellen

11. die Datei S99snort im Verzeichnis contrib der Snort-Installation nach /etc/init.d kopieren und dort in snort umbenennen

12. die Datei editieren:

CONFIG=/etc/snort/snort.conf
#SNORT_GID=nogroup (diese Zeile auskommentieren)

$SNORT_PATH/snort -c $CONFIG -i $IFACE $OPTIONS
(entfernen: -g $SNORT_GID)

13. Zugriffsrechte für snort setzen:

chmod 755 snort
chown root:root snort

14. Für die verschiedenen Run-Level Links auf snort setzen:

cd /etc/rc3.d
ln -s ../init.d/snort S99snort
ln -s ../init.d/snort K99snort

cd /etc/rc5.d
ln -s ../init.d/snort S99snort
ln -s ../init.d/snort K99snort

15. Entweder mit phpMyadmin eine Datenbank snort in MySQL anlegen und dort die Datei create_mysql aus dem contrib-Verzeichnis importieren.

Oder dies alles in der MySQL-Kommandozeile erledigen:

starten mit mysql -u root

> create database snort;

> connect snort;

> source /pfad-zu-snort-install/contrib/create_mysql;

> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;

> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;

> connect mysql

> set password for ‘snort’@’localhost’ = password(‘snort’);

> set password for ‘snort’@’%’ = password(‘snort’);

> flush privileges;

> exit

16. Jetzt noch 3 zusätzliche Tabellen in die Datenbank importieren:

zcat /pfad-zu-snort-install/contrib/snortdb-extra.gz |/usr/bin/mysql -p snort

17. Checken der Tabellen:

mysql -u root

> SHOW DATABASES;

Ergebnis:

+------------+
| Database
+------------+
| mysql
| snort
| test
+------------+
3 rows in set (0.00 sec)

> use snort

> SHOW TABLES;

Ergebnis:

+------------------+
| Tables_in_snort |
+------------------+
| data
| detail
| encoding
| event
| flags
| icmphdr
| iphdr
| opt
| protocols
| reference
| reference_system
| schema
| sensor
| services
| sig_class
| sig_reference
| signature
| tcphdr
| udphdr
+------------------+
19 rows in set (0.00 sec)

> exit

 

18. ACID installieren

Downloads:

ACID

ADODB

Zlib

LibPcap

JPGraph

19. ACID installieren:

tar -xvzf zlib-1.2.1.tar.gz
cd zlib-1.1.4
./configure; make test
make install
cd ..

tar –xvzf libpcap.tar.gz
cd libpcap-0.8.1
./configure
make
make install
cd ..

cp jpgraph-1.14.tar.gz /var/www/html
cd /var/www/html
tar –xvzf jpgraph-1.14.tar.gz

cp adodb411.tgz /var/www/html
cd /var/www/html
tar –xvzf adodb411.tgz

cp acid-0.9.6b23.tar.gz /var/www/html
cd /var/www/html
tar –xvzf acid-0.9.6b23.tar.gz

20. ACID konfigurieren:

acid_conf.php im Ordner /var/www/html/acid editieren:

$DBlib_path = "/var/www/html/adodb";

$DBtype = "mysql";

$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "snort";

$archive_dbname = "snort";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "snort";
$archive_password = "snort";

$ChartLib_path = "/var/www/html/jpgraph-1.14/src";

$chart_file_format = "png";

21. Snort® starten mit service snort start

22. ACID aufrufen mit http://yourhost/acid/acid_main.php

23. Auf die Setup Page und Create ACID AG anklicken

24. Rule-Sets ein- und ausschalten über die /etc/snort.conf und Auskommentieren der Zeilen am Ende der Datei.

Diese Rule-Sets sollten stets aktuell sein, weil sich auch die Angriffsmethoden mit der Zeit ändern.

Dazu gibt es zum Beispiel das Skript "Oinkmaster", welches man sich auch von der Snort-Website downloaden kann (download/contrib/rule_management/oinkmaster/)

Oinkmaster lädt automatisch die neuesten Regeln aus dem Internet und installiert sie.

Dazu muss das Skript für einen anderen Nutzer außer root ausführbar sein (als root ist es nicht ausführbar) und auch die Verzeichnisse der Snort-Rules und eines evtl. angegebenen Backup-Verzeichnisses müssen für diesen Nutzer Schreibrechte haben. Ich lege das Skript wieder unter "/usr/bin" und starte mit

/usr/bin/oinkmaster.pl -o /etc/snort -b /etc/snort.backup

Snort Logo - Snort® is a registered trademark of Sourcefire, Inc