PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Snort



Seiten : [1] 2 3

meinereinerseiner
11.09.02, 17:04
Hi,

hab ein problem mit dem starten von snort:

beim Starten von snort per skript über den cron, beendet er sich sofort wieder und ich finde folgendes in der messages:
Sep 11 17:58:01 devil kernel: device eth0 entered promiscuous mode
Sep 11 17:58:01 devil snort: Initializing daemon mode
Sep 11 17:58:01 devil kernel: device eth0 left promiscuous mode
Sep 11 17:58:01 devil snort: PID stat checked out ok, PID set to /var/run/
Sep 11 17:58:01 devil snort: Writing PID file to "/var/run/"
Sep 11 17:58:02 devil snort: Snort initialization completed successfully, Snort running
Sep 11 17:58:02 devil snort: pcap_loop: recvfrom: Socket operation on non-socket
Sep 11 17:58:02 devil snort: Snort received signal 3, exiting


starte ich das skript von hand, läuft er.
was ist da falsch?


hier noch mein script:
#!/bin/sh
#

PID=`/bin/ps xua | /bin/grep -e "snort.conf" | /bin/grep -v grep | /bin/sed -e 's/[^ ]* *\([0-9]*\).*/\1/g'`


if [ -n "$PID" ] ; then
echo "IDS aktiv! -$PID-"
else
echo "IDS wird gestartet!"
# /usr/local/bin/snort -i ppp0 -c /etc/snort/snort.conf -D
/usr/local/bin/snort -c /etc/snort/snort.conf -D
fi

exit 0



der tom

tomes
11.09.02, 20:22
sind den an /var/log/snort/ und den Dateien die sich in dem Verzeichniss befinden gesetzt ?

T;o)Mes

meinereinerseiner
11.09.02, 20:24
jepp, das allertlog wird geschrieben

wenn ich es direkt in der shell aufrufe renn er ja auch problemlos, nur nicht wenn ich es per cron starte.


der tom

tomes
11.09.02, 20:45
1. Warum laesst du snort von cron aufrufen ? Ist doch ein Daemon, der die ganze Zeit laufen sollte.
2. Und Snort schreib seine PID in /var/run, da musst du sie nicht aufwendig auslesen, ein einfaches `cat /var/run/snort_xxx.pid` reicht voellig.

Koennte moeglich sein das snort noch laeuft (mehrmals laeuft ?) und er deshalb kein Socket mehr aufmachen kann.Benutzte statt cron die inittab.

T;o)MEs

meinereinerseiner
11.09.02, 20:56
das problem ist, das ich dsl mit zwangstrennung habe, wenns soweit ist, fliegt mein ppp0 kurz wech und das macht snort nicht mit, deswegen will ich per cron checken obs noch rennt und ggf. nachstarten.

mit der PID hast du recht - hab das skript der
gewohnheit wegen, weil ich mit selbigen noch ein
paar andere sachen nachstarte, die keine pid wegschreiben.

was die inittab betrifft - wie sieht denn da der string aus?


der tom

tomes
11.09.02, 21:43
z.B. so:
SO:235:respawn:/das vollstaendige Kommando snort zu starten
irgend ein Kuerzel:Runlevel:wieder hervorbringen: --> s.o.

Komisch das snort solche probleme macht, bei meinem ISDN jedenfalls nicht !

T;o)Mes

HangLoose
21.09.02, 13:05
moin moin

im logfile /etc/snort/portscan.log tauchen bei mir folgende einträge auf

Sep 21 12:57:28 xx.xxx.xx.xxx:34070 -> 195.20.224.184:80 SYN ******S*

xxx ist meine aktuelle ip.wenn ich das richtig sehe, ist das doch aber nur ein verbindungsaufbau zu einer website.wie stelle ich das an, das sowas nicht im log auftaucht.

reicht das, wenn ich unter

preprocessor portscan-ignorehosts:

den router(192.168.99.1) eintrage(im moment hab ich da nur die clients drin)? oder muß ich für den router dort $HOME_NET eintragen?

edit:

$HOME_NET ist im moment folgendermaßen definiert

var HOME_NET any


Gruß HangLoose

tomes
21.09.02, 13:18
ist gut ;-)))any --> beliebig, irgendwelche
Bei mir sieht das so aus
var HOME_NET [$ippp0_ADDRESS,192.168.1.0/24]
Erklaert sich hoffendlich von selbst. Wie man sieht benutzte ich immer noch isdn ;)
T;o)Mes

HangLoose
21.09.02, 13:30
hi tomes

irgendwie wußte ich, das die antwort von dir kommt, thx ;)


mit der var $HOME_NET hatte ich auch schon ein wenig rumgespielt. als interface hatte ich schon mal eth1 eingetragen, wußte nicht, das das mit ppp0 auch geht. werde das dann mal folgendermaßen ändern.

var HOME_NET [$ppp0_ADDRESS,192.168.99.0/24]

muß ich dann unter ignorehost auch noch was eintragen?

preprocessor portscan-ignorehosts:192.168.99.0/24?

ich hab snort jetzt übrigens auf dein anraten auch zum lan hin postiert.

var HOME_NET $eth0_ADDRESS

korrekt so?

ps:dsl is schon nicht schlecht :)

Gruß HangLoose

tomes
21.09.02, 13:53
dein eigendes Netzt aus deinem eigenden Netz scannst, kannst du natuerlich dein Netz bei ignorehost eintragen.
Ein Eintrag in ignorehost wuerde doch nur das scannen des angegebenden Host/Netz nicht aufzeichnen, also deines eigenden.
Eine private IP von aussen zu scannen ist nicht ganz einfach, falls das jemand macht sollte man darueber informiert sein.

http Sachen sollte er eigendlich abfangen, da gibt es eine Option --> preprocessor http_decode: 80 ..
Ausserdem liegt es nur an deiner schwammigen Variable HOME_NET, wenn die richtig gesetzt ist, werden solche Eintraege nicht mehr auftauchen.

die Variable HOME_NET sollte bei dir korrekt lauten:
var HOME_NET [$ppp0_ADDRESS,$eth0_ADDRESS]
besser ist natuerlich wie du schon geschrieben hast
var HOME_NET [$ppp0_ADDRESS,192.168.99.0/24]
damit wird deine dynamische IP und die IP`s deines Netzes abgefangen. Wenn es dann noch *prob* gibt, kannst du auch noch eigende Variablen "erfinden" und sie einbauen.

T;o)Mes

HangLoose
21.09.02, 14:11
hi


Wenn du viel dein eigendes Netzt aus deinem eigenden Netz scannst, kannst du natuerlich dein Netz bei ignorehost eintragen. Ein Eintrag in ignorehost wuerde doch nur das scannen des angegebenden Host/Netz nicht aufzeichnen, also deines eigenden. Eine private IP von aussen zu scannen ist nicht ganz einfach, falls das jemand macht sollte man darueber informiert sein.

leuchtet mir ein.mein eigenes netz scanne ich eher selten, also trag ich da dann nichts ein.


http Sachen sollte er eigendlich abfangen, da gibt es eine Option --> preprocessor http_decode: 80

muß ich nochmal nachschauen, müßte aber gesetzt sein.




die Variable HOME_NET sollte bei dir korrekt lauten: var HOME_NET [$ppp0_ADDRESS,$eth0_ADDRESS] besser ist natuerlich wie du schon geschrieben hast var HOME_NET [$ppp0_ADDRESS,192.168.99.0/24] damit wird deine dynamische IP und die IP`s deines Netzes abgefangen. Wenn es dann noch *prob* gibt, kannst du auch noch eigende Variablen "erfinden" und sie einbauen.

hab ich vergessen zu erwähnen. ich starte snort mit 2 unterschiedlichen config's. also werde ich beim snort, welches vor der firewall postiert ist

var HOME_NET [$ppp0_ADDRESS,192.168.99.0/24]

eintragen.
und für das snort welches hinter der firewall *lauscht*

var HOME_NET [$eth0_ADDRESS,192.168.99.0/24]

wobei eth0 die *lankarte* ist


danke nochmal für deine hilfe und ein schönes wochenende :)


Gruß HangLoose

tomes
21.09.02, 14:29
Frage: HAt eth0 keine IP im 192.168.99.0/24 Netz ?
Wenn ja waehre das ganze doppelt gemoppelt, wie man hier so schoen sagt.
Ausserdem ist die IP des ppp0 auch da hinten noch eine Adresse des HOME_NET !!! auch wenn sie durch masq oder nat nicht mehr direkt erkannt werden sollte.

T;o)Mes

HangLoose
21.09.02, 15:43
hi

so langsam verlier ich den überblick mit den ganzen variablen und ip-adressen *grins*

router

ip => 192.168.99.1
eth0 => lan
eth1 => dsl

linux-client

ip => 192.168.99.2

win-client

ip => 192.168.99.3

wobei win/lin eigentlich ein rechner(dualboot) ist und die unterschiedlichen ip-adressen wohl eigentlich quatsch sind. kann ja eh nur eins von beiden booten.

snort wird auf dem router beim booten 2* gestartet.snort vor der firewall nenn ich jetzt mal snort1, zum lan hin snort2

snort1 ruf ich folgendermaßen auf:

snort -D -u snort -g snort -i ppp0 -c /etc/snort/snort.conf

snort2 wird folgendermaßen gestartet:

snort -D -u snort -g snort -i eth0 -c /etc/snort/snortint.conf

/etc/snort/snort.conf:

var HOME_NET $ppp0_ADDRESS <= wenn ich dein letztes posting richtig verstanden habe, reicht das so

/etc/snort/snortint.conf:

var HOME_NET $eth0_ADDRESS


frage:
kann es sein, das ich jetzt ein generelles verständnisproblem mit snort habe? hätte ich mir den ganzen *quatsch* mit den 2 config-dateien sparen können.meine überlegung war, das bei snort2 das interface ppp0 schon *feindliches teritorium* ist, da es ja hinter der firewall *lauschen* soll.
oder wird das ganze schon mit den unterschiedlichen interface-angaben beim start geregelt?


Gruß HangLoose

tomes
21.09.02, 20:07
die *Rules* angeschaut ? --> Beispiel aus x11.rules
alert tcp $EXTERNAL_NET any -> $HOME_NET 6000 (msg:"X11 MIT Magic Cookie detected"; flags:A+; content: "MIT-MAGIC
-COOKIE-1"; reference:arachnids,396; classtype:attempted-user; sid:1225; rev:3; )
Der Anfang ist fuer diese *prob* interessant ;)
Schlage ARLARM wenn ein TCP Paket aus den Externen Netz (WWW), irgendein Port, in deinem Netz Port 6000 mit (..... ) Inhalt ankommt.

Damit, dass du nur Interfaces als Home_Net angibst, ist alles andere fremdes Netz. Also auch dein anderer Rechner !!!
Denn $HOME_NET sollte alles sein was deine Adressen sind.
Also gehoert deine ppp0 IP noch zu HOME_NET, denn das ist ja deine IP, genauso wie $eth0_ADDRESS und dein gesamtes inneres Netz.
Weil die aussere IP aber dynamisch ist, muss man ebend eine dynamische Variable setzten $ppp0_ADDRESS
Dein Home Netz hat ja statische Adressen 192.168.99.xxx --> also brauchst du kein $eth0_ADDRESS.
Ist ja schon mit 192.168.99.0/24 definiert.
Du besitzt also sozusagen zwei Netze -->
1. dynamische IP/322. 192.168.99.0/24

Wenn du moechtest kannst du alles moegliche als Home Netz angeben. Aber normalerweise sendet dein externes Interface nichts an dein internes Netz, wie den auch ???
Wen du sehen moechtest was da abgeht zwischen den beiden Rechnern, mach mal ein tcpdump. Ist sehr aufschlussreich und was anderes macht snort ja auch nicht im Grunde genommen.
Ich hoffe die letzten Klarheiten sind jetzt auch noch ausgeraeumt ;)

T;o)Mes

HangLoose
21.09.02, 20:29
hi tomes

ja ich hab mir die rules schon mal angeschaut. am mittwoch ist auch "das firewall buch" angekommen. da steht auch ein bischen was zu snort drin.

also fassen wir das neu erlernte nochmal zusammen *grins*

+ zwei configfiles sind blödsinn
+ mit der variable var HOME_NET [$ppp0_ADDRESS,192.168.99.0/24] wird mein komplettes netz
*abgedeckt*

was ich jetzt noch gerne hätte, wäre das die beiden snort's in unterschiedliche logfiles schreiben. ich denke mal, das ich das über den syslogd regeln muß.


ps:eine mögliche antwort ala RTFM würde ich ohne weiteres akzeptieren ;)


Gruß HangLoose

tomes
21.09.02, 21:41
also zwei unterschiedliche Dateien dafuer anlegen, glaub ich kaum. Hoehstens der syslog-ng.
Ich benutze fuer den snort immer mysql als Datenbank und dann ACID zur Anzeige. Super Komfortabel, man hat alles im Ueberblick,
man kann nach Alerts ordnen oder nach IPs oder oder. Ebend eine Datenbank. Bei ACID hast du auch gleich eine WHOIS Abfrage dabei, usw.

T;o)Mes

HangLoose
21.09.02, 21:55
hi


also zwei unterschiedliche Dateien dafuer anlegen, glaub ich kaum. Hoehstens der syslog-ng.

ja wohl eher nicht.

ACID hab ich mir auch schon mal kurz angesehen. das problem ist bloß, mein router ist ein alter p133 ohne x usw. der plattenplatz ist auch ziemlich beschränkt.
das ganze ließe sich ja noch umgehen, ACID auf dem client installieren und per syslogd zusätzlich auf den client loggen lassen, was ich eh noch vorhabe. allerdings ist der linuxclient nicht ständig *online*, ein kleines rtcw-match muß ja auch mal sein ;) und dafür nutze ich noch win.
muß mal schauen ob ich das eventuell per cron lösen kann.


ps: übrigens deinen desktop hab ich mir ganz anders vorgestellt *grins*


Gruß HangLoose

tomes
21.09.02, 22:10
nicht fuer eine *kleine* Datenbank ?
Abrufen kannst du es von Clienten aus. Also Apache und ACID auf den Clienten und der ruft dann die Datenbank auf dem Rouer.
Apache gibt es auch fuer WIN, auch mit php --> http://www.innovativemedien.net/apache/
Und wenn man die Datenbank pflegt, wird sie kaum groesser als die Log-Files.

Wie meinst du das mit dem Desktop, muss doch hier zu Hause entspannend sein. ;)

T;o)Mes

HangLoose
21.09.02, 22:27
ich hab noch ca. 100mb frei, allerdings ist da noch ne win-partition drauf. die muß ich bei gelegenheit mal platt machen.


Apache gibt es auch fuer WIN, auch mit php

wenn, dann will ich das schon unter linux nutzen :)

aber um nochmal auf den syslogd zurück zukommen, wenn der auf einen anderen host loggen soll, müßte der schon ständig *online* sein oder? zumindest von der logik her.


da gibts denn wohl nur eins, ati anschreiben, das die vernünftige treiber rausbringen *grins*


ps: deinen desktop hab ich mir eher so vorgestellt http://www.oosoft.de/images/products/oobcv4/oobc_logon.gif ;)


Gruß HangLoose

tomes
21.09.02, 22:42
war das du dir das ganze vom Clienten aus anschauen kannst, wenn da ein Web-Server mit php laeuft.
Ob du nun am Clienten Win oder Linux benutzt, du kannst dir dann immer die Auswertungen des snort anschauen.
Nur die Datenbank muss immer laufen.
Wenn du syslog remote loggen laesst, dann muss der remote rechner natuerlich da sein.

Was fuern *prob* hast du den mit ATI ?
Meine gute alte mach64 auf meinem "ISDN-ROUTER" machts wunderbar. ;)

Schoenes Bildchen, aber hier zu Hause hab ich dann doch lieber den ganzen Komfort den mein Linux mir bietet.
Ausserdem laest es sich so zwischen den Konsolen schneller Umschalten ;) ;) ;)

T;o)MEs

HangLoose
21.09.02, 22:57
das würde aber bedeuten, das ich ACID und Apache auf beiden systemen installieren muß.

was ich sagen wollte, mir reicht es wenn ich die *auswertung* über linux machen kann. aber andersrum platz hab ich eigentlich auf beiden systemen genug. also danke nochmal für den tip.





Was fuern *prob* hast du den mit ATI ?

grafikfehler bei rtcw. ich tippe auf den treiber(radeon 8500), könnte allerdings auch der linux-port von rtcw sein. mit google konnte ich dazu nichts finden.

jo seh ich auch so => ein bißchen komfort muß sein


Ausserdem laest es sich so zwischen den Konsolen schneller Umschalten


den hab ich erst im 2. anlauf kapiert *grins*



ps: so jetzt geh ich noch ein wenig spielen :)


Gruß HangLoose

tomes
21.09.02, 23:03
;) ;) ;)

T;o)Mes

HangLoose
22.09.02, 16:46
moin moin

@tomes

bin grade dabei mir ACID zu installieren. nun wollte ich nur noch mal kurz nachfragen, ob alles außer mysql auf den client installiert wird, als da wären

+ PHP
+ apache, brauch ich da noch irgendwelche zusatzmodule?
+ ADOBD
+ PHPlot, ist als optional angegeben
+ GD , optional

thx :-)


HangLoose

tomes
22.09.02, 17:00
in diesen Thread ;)

Jo, du brauchst nur einen php faehigen Webserver und dann die dazugehoerigen Bibliotheken ( ADOBD und PHPlot fuer ACID).
GD ist fuer die graphisches Darstellung. Du hast unter ACID auch solche niedlichen dynamischen Graphiken.
Am besten du baust dir einen LAP ;)
Die Seite hier kennst du ja bestimmt --> http://www.baach.de/
Du wirst vom ACID begeistert sein ;)

T;o)Mes

HangLoose
22.09.02, 17:07
hi

jo :)

LAP <= kenn ich nicht, krieg ich aber noch raus *grins*

thx für den link, den kannte ich noch nicht. :)

quäle mich grade durch ne englische seite, hätte mal doch besser in der schule aufpassen sollen *grins*


edit:LinuxApachePhp :cool:


Gruß HangLoose

tomes
22.09.02, 17:13
Fein :D :D :D

T;o)Mes

tomes
23.09.02, 19:29
T;o)Mes

HangLoose
23.09.02, 19:47
hi

sieht verlockend aus :)

ich hab es eben nochmal versucht, configure ohne prefix und anschließend make lief ohne fehler durch. das ganze mit der libpcap von suse, von der versionsnummer müßte die ausreichend sein.

jetzt ist die frage, installier ich snort, lege dann die datenbank an und compilier es anschließend mit myqsl nochmal? ich glaub ich versuch es einfach mal


Gruß HangLoose

HangLoose
24.09.02, 22:53
moin moin

ich hab da mal ein kleines problem. ich habe acid, snort, mysql etc. nach dieser anleitung => http://www.fokus.gmd.de/linux/HOWTO/html_single/Snort-Statistics-HOWTO.html#PRE-SNORT-CONFIG installiert.

wenn ich jetzt acid aufrufe bekomme ich folgende fehlermeldung:

Fatal error: Cannot instantiate non-existent class: adodb_ in
/usr/local/httpd/htdocs/adodb/adodb.inc.php on line 2731

hier mal ein auszug aus der adodb.inc.php

if (!$rez) {
if ($errorfn) {
// raise an error
$errorfn('ADONewConnection', 'ADONewConnection', -998,
"could not load the database driver for '$db",
$dbtype);
} else
ADOConnection::outp( "<p>ADONewConnection: Unable to load database driver '$db'</p>",false);

return false;
}

$cls = 'ADODB_';$ADODB_Database;
$obj = new $cls();
if ($errorfn) {
$obj->raiseErrorFn = $errorfn;
}
return $obj;
}


zeile 2731 ist die fette. hat jemand ne idee?

edit: ich komme wahrscheinlich erst freitag abend dazu, hier wieder ins forum zu schauen. also falls jemand ne lösung kennt. ich bedanke mich dann am freitag ;)


Gruß HangLoose

tomes
25.09.02, 08:08
an der Datenbank vergeben ? ACID mus beim ersten Aufruf 3 neue Tabelen anlegen, braucht also beim Erstaufruf erweiterte Rechte.
Vielleicht beim Erstaufruf den Datenbank-root als User nehmen. Kann (muss) man danach ja wieder aendern.

T;o)Mes