PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fwlogwatch-Tutorial



HangLoose
26.08.02, 21:23
moin moin

kennt jemand ne seite (nach möglichkeit deutsch), wo die konfiguration von fwlogwatch erläutert wird.

eigentlich ist ja in der fwlogwatch.config jeder eintrag entsprechend erläutert. aber anscheinend reichen meine englischkenntnisse dafür nicht :rolleyes:

die html-seite von fwlogwatch kann ich vom client aus aufrufen, allerdings sind dort nach einem portscan keine einträge drin. außerdem müßte doch nach einem scan eine email an root verschickt werden, oder?
den entsprechenden eintrag in der config hab ich gemacht.
als input habe ich /var/log/firewall gewählt.

achso, die rechte von /var/log/firewall sind rw-r--r-- root root

ps:google und die forensuche hab ich schon benutzt


Gruß HangLoose:)

tomes
27.08.02, 09:39
was verstehst du nicht ? Vielleicht koennen wir ja die *Klarheiten* ausraeumen ;-)
Uebrigens die Rechte an der Datei /var/log/firewall muessen nicht global lesbar sein. Es kommt darauf an mit welchen Rechten du fwlogwatch laufen laesst.
Wenn du zum Beispiel nobody als User nutz, ist es klueger, die Datei nobody zu geben und der Gruupe root.

T;o)Mes

HangLoose
27.08.02, 13:30
moin moin

@tomes

gute idee, hoffentlich siehst du das am ende des postings auch noch so :)

1.erstmal was grundsätzliches. das ist zum beispiel ein abschnitt aus der config

### Global options ###
# Use 'verbose' if you want extra information and log messages.
# Use it twice for even more info. fwlogwatch is quiet by default.
# Command line option: -v
#
#verbose = no
#verbose = no

damit kann man fwlogwatch etwas gesprächiger machen, wenn ich das richtig verstehe.angenommen ich möchte die *extrainfo's* sehen, wie muß ich vorgehen.
die # entfernen und das no löschen oder das no durch ein on? oder yes? ersetzen?
alternativ könnte ich fwlogwatch natürlich auch mit der option -v starten.

2.kann man für das inputfile auch mehrere dateien angeben(z.b noch /var/log/snort/portscan.log) und ist das überhaupt sinnvoll?

input = /var/log/firewall

wie werden 2 dateien eingegeben, getrennt durch ein leerzeichen?

3.# The following eight options permit to select and/or exclude certain
# hosts or ports, multiple instances of the rules are permitted. Source
# and destination hosts and ports are differentiated.
#
#exclude_src_host =
#exclude_src_port =
#exclude_dst_host =
#exclude_dst_port =
#include_src_host =
#include_src_port =
#include_dst_host =
#include_dst_port =

# The following four options permit to include and/or exclude chain and
# branch (target) strings such as "input", "forward", "output" and
# "accept", "deny", "pass", "block", "p", etc. Use one string per line
# without quotes. Including a string causes all others to be excluded.
#
#exclude_chain =
#include_chain =
#exclude_branch =
#include_branch =

diese beiden abschnitte sagen mir gar nichts.

4. # Use 'sender' to specify your email address for abuse reports.
# The default is <user>@<hostname>.
# Command line option: -F <email>
#
sender = root@localhost

richtig?

5.# You can use 'cc' to send a carbon copy of the report (e.g. to you for
# your archives or a second abuse or CERT contact).
# Command line option: -C <email>
#
cc = rip@linux-client

ich möchte, das die email auch an den client geht. ist das so möglich?

6.### Realtime response mode ###
# Use 'realtime_response' to turn this mode on. You can change the
# configuration file while fwlogwatch is running and have it reread it
# by sending the HUP signal.
# Command line option: -R
#
realtime_response = on

hier auch wieder die frage, wie diese mode aktiviert wird on oder yes oder einfach mit der option -R starten?

7.# Use the 'run_as' option to make fwlogwatch capable of binding a
# privileged port and opening a protected log file as root and then (as
# daemon) change it's user and group ID to a non-privileged user (a security
# feature). Please note that reopening a protected log file (e.g. after a
# kill -USR1) will not be possible once privileges are released. Also
# remember that you can use fwlogwatch without status web server or with an
# unprivileged port and with enough permissions to read a log file to run it
# entirely as user, but you will not be able to execute response scripts
# that need root privileges (e.g. to modify a firewall).
# Suggested value: nobody
#
run_as = snort

hier hab ich erstmal den user snort eingesetzt. wenn ich den ersten abschnitt richtig interpretiere, startet fwlogwatch erst als root und wenn der dämon läuft, wechselt die user and group ID zu *run_as*?

8.# You can see which hosts fwlogwatch knows about and which ones it is
# watching at any time through it's web interface. Use the 'server_status'
# option to activate the web server in fwlogwatch, 'bind_to' is the IP
# address of the interface to be bound (defaults to the local host, 0.0.0.0
# means all), 'listen_port' is the port it will listen on. 'listen_to'
# allows to restrict access to a single IP address. fwlogwatch will want to
# authenticate the user, that's what 'status_user' and 'status_password'
# are for. The password must be a standard Unix DES encrypted password
# including salt, you can for example use
# htpasswd -nb user password
# to generate one. Finally, 'refresh' activates automatic reloading of the
# status page, the parameter is the time in seconds.
# Command line option: -X
#
server_status = yes
bind_to = 192.168.99.1
listen_port = 888
listen_to = 192.168.99.2
status_user =
status_password =
refresh = 300

unter bind_to hab ich den router/gateway eingetragen
port hab ich unverändert gelassen
listen_to hab ich den client eingetragen
status_user hatte ich snort mit dem entsprechenden password eingetragen, bekam aber ne fehlermeldung, falsches password.


so, ich hoffe du bereust deine angebotene hilfe nicht schon ;) mir würdes es schon reichen, wenn du mir erklären könntest, wie man eine entsprechende *option* in der config aktiviert, also on oder yes oder was auch immer. den rest fummel ich mir schon hin
:rolleyes:


Gruß HangLoose:)

tomes
27.08.02, 15:45
Allgemein gilt --> die # entfernen wenn man etwas aendern moechte. Die Einstellung mit # ist die default- Einstellung.
yes fuer ja, no fuer nein ;-)
no/yes
on/off ;-)))

1. siehe oben ;-) In der Konsole wird dies dann fwlogwatch -v -v ... geschrieben.

2. Hab ich ehrlich noch nicht probiert. Bei mir laeuft das fwlogwatch im crontab als konsolen-Befehl. Und da dann mehrmals mit verschieden -f ( input-Files) und verschiedenen -o (output-Files)

3. da traegt man die als sicher geltende Host bzw. Ports ein. Kann ja sein, dass z.B. ein N T-Server staendig seine Domaene absucht oder etwas aehnliches.
Lass die lieber offen. Ist aehnlich wie bei snort. lieber ein weng mehr output. Nur wenn es zu unuebersichtlich wird, dann Eintrag.

Beim naechste Punkt geht es fast um das selbe, nur dass man z.B. an seiner Firewall ja auch bestimmte Host/Netze/Ports mitloggen kann wobei z.B. ein ACCEPT in den Regeln steht. Oder du hast ein paar neu Chains aufgestellt und willst sie jeweils extra auswerten lassen. Es wird dann nach dem Eintrag gesucht der da steht und alle anderen ausgegeben (Including a string causes all others to be excluded).
Ansonsten siehe Punkt 2.

4. Ja oder meinMailAdresse@meinProvider.tv

5. Wenn dein Client Mail unter dem Namen empfangen kann --> ja

6. ;-)

7. genau, deshalb muss dein Log-File auch nicht global lesbar sein.

8. Hast du das Password neu erzeugt, oder wolltest du das System-Password benutzen. Koennte moeglich sein das htpasswd ein wenig anders cryptet. Das Password wird verschluesselt eingetragen ! Also nicht hallo, sondern sr3.hjKloO90=
diesen Punkt hab ich auch noch nie ausprobiert, da ich mir den ganzen Output auf den Apache lege ;-) htacces- Verzeichniss.

Hoffe das hilft dir ein wenig.

T;o)Mes

HangLoose
27.08.02, 17:24
du hast was gut bei mir, ich hoffe ich kann mich mal revancieren :). obwohl die chance recht gering sein dürfte, bei meinen bescheidenen kenntnissen *grins*

aber ich muß doch noch mal nachhaken ;)

also bei punkt 1.

### Global options ###
# Use 'verbose' if you want extra information and log messages.
# Use it twice for even more info. fwlogwatch is quiet by default.
# Command line option: -v
#
#verbose = no
#verbose = no

per default ist fwlogwatch also *still* und außerdem durch die # auskommentiert. das bedeutet also verbose = no ist mit und ohne raute dasselbe. ändern würde sich das erst, wenn ich no durch yes ersetze oder eben mit der option -v starten würde.
oder ist es eher so, das durch das *auskommentieren* von verbose, fwlogwatch im verbose-mode startet? ich würde ja eher auf die 1. möglichkiet tippen.könnte ich natürlich auch ausprobieren.:)

zu 2.

das mit dem cron-job ist ne gute idee :)

zu 3.

ok, werde ich erstmal offen lassen und abwarten

zu 6.

könntest du dort in deiner config mal nachschauen, wie die voreinstellung war. ich war nämlich so deppert und hab keine kopie erstellt, bevor ich die config verändert hab :(
deshalb bin ich mir nicht sicher, ob dort nun ein on oder yes reinkommt

zu 7.

kann ich also so lassen

zu 8.


Hast du das Password neu erzeugt, oder wolltest du das System-Password benutzen. Koennte moeglich sein das htpasswd ein wenig anders cryptet. Das Password wird verschluesselt eingetragen ! Also nicht hallo, sondern sr3.hjKloO90= diesen Punkt hab ich auch noch nie ausprobiert, da ich mir den ganzen Output auf den Apache lege ;-) htacces- Verzeichniss.

den apache hab ich nicht laufen und ja ich habe das system-password verwendent. das funtioniert also so nicht.
you can for example use
# htpasswd -nb user password
# to generate one.
das kommando htpasswd findet er auf dem router nicht, müßte ich wohl erst noch installieren.
die frage ist mir eigentlich schon peinlich, aber wo finde ich die verschlüsselte version des snort passwortes.

schleim-mode = on
also nochmal herzlichen dank und allgemein, das ist hier schon ein tolles forum :)
schleim-mode = off
#or use for command line option : -S



Gruß HangLoose:)

tomes
27.08.02, 18:32
zu 1. unnd 6. und allgemein:
Die config ist eigendlich so gestaltet, als ob du ./fwlogwatch ohne Optionen ausfuehren wuerdes ;-)
Also alles ist ersteinmal aus (no), oder es steht nicht drin => deshalb die Rauten !

Zum Password:
Das *prog* htpasswd gehoert zum Apache --> Password erzeugen fuer .htaccess
Entweder du schaust mal irgendwo, wo ein Apache laeuft und machst dann:
htpasswd -nb user password
dann das Password enfach rein in die .config
oder schaust mal welche *progs* es noch gibt, die im DES - Verfahren verschluesseln. Da gibt es bestimmt eine Menge. Notfalls auf deinem Clienten Apache configurieren und kompilieren, dann hast du ein *prog* htpasswd.
Brauchst ja den Apache nicht installieren (also nur ./configure und make --> kein make install ) und dann das *prog* nach /usr/local/bin/ kopieren. Danach einfach das Apache Verzeichnis wieder loeschen.

Achso, bei mir werden die log-Files auf einem Rechner gesammelt. Nicht auf der Firewall oder Router oder sonst wo.

T;o)Mes

HangLoose
27.08.02, 19:01
hi

fwlogwatch läuft soweit erstmal :)

hab nach nem portscan schon die 1. mail erhalten *grins*, allerdings funtioniert die weiterleitung (cc = rip@linux-client) noch nicht, denke mal das hat aber nichts mit fwlogwatch zu tun.

danke für die erläuterungen zum password. momentan hab ich die ganze sache noch ohne password laufen und rufe die html-seite mit dem konqueror auf, port 888. ist das ganze jetzt eigentlich ne sicherheitslücke?
denn eigentlich läuft fwlogwatch ja als user snort und dieser user hat keine logging-shell. außerdem blockt die firewall den zugriff von außen auf sämtlichen ports, zugriffe sind nur vom lan aus erlaubt.

eine kleine frage noch zu snort. snort *lauscht* auf dem router ja praktisch vor der firewall an ppp0. ist es eigentlich sinnvoll, snort auch *hinter* der firewall, also eth0 oder eth1, *lauschen* zu lassen, um einen eventuellen einbruch festzustellen.


ps: ich bin mir schon bewußt, das ich kein lohnendes *ziel* darstelle :)


Gruß HangLoose:)

HangLoose
27.08.02, 19:05
Achso, bei mir werden die log-Files auf einem Rechner gesammelt. Nicht auf der Firewall oder Router oder sonst wo.


hab ich auch noch vor, zumindest zusätzlich zu den *originalen* auf dem router :)


Gruß HangLoose:)

tomes
28.08.02, 09:14
bisher gibt es kein Meldungen dazu.
ausserdem bindest du ja den Server an die innterne Netzwerkkarte. Es kann jetzt ebend jeder von innen darauf zugreifen, das heist lesen.

Was heisst snort hat kein Login-Shell, ich hoffe du hast /bin/false angegeben ;-)


außerdem blockt die firewall den zugriff von außen auf sämtlichen ports, zugriffe sind nur vom lan aus erlaubt.
Wenn was raus geht, kommt auch was rein !!! Deshalb ist es wichtig, bei kritischen Netzen auch erlaubte Verbindungen zu loggen und alle Verbotenen sowieso. Bei dem wa reinkommt, hilft dann snort.
Achso, ich persoenlich finde ein blocken ala DROP am INPUT nicht so gut. Besser ist ein REJECT. So bekommt dein gegenueber wenigstens eine Meldung und versucht es nicht oeffters.

Eigendlich ist es besser snort hinter der Firewall zu postieren. Oder mehrere *snorts* laufen zulassen. Das ganze wird dann in einer Datenbank gesammelt und grafisch ausgewertet --> ACID .

T;o)Mes

HangLoose
28.08.02, 11:00
moin moin



Was heisst snort hat kein Login-Shell, ich hoffe du hast /bin/false angegeben ;-)

jo hab bin/false angegeben.



Wenn was raus geht, kommt auch was rein !!! Deshalb ist es wichtig, bei kritischen Netzen auch erlaubte Verbindungen zu loggen und alle Verbotenen sowieso. Bei dem wa reinkommt, hilft dann snort.

wie gesagt bin noch newbie. die firewall ist aber so eingestellt, das sie nur pakete von außen durchläßt, wenn diese pakete zu einer von innen gestarteten verbindung gehören. das größte sicherheitsloch stelle ich also dar :D
allerdings ist momentan von innen nach außen noch alles erlaubt, was natürlich so nicht bleiben soll. von innen nach außen soll später eigentlich nur www, ftp und rtcw :) erlaubt sein. allerdings bekam ich da immer ne fehlermeldung bezüglich der <netflag>.

FW_MASQ_NETS="192.168.99.2/< netflag>"

was muß ich hier eigentlich für eine netflag eintragen. 24?




Achso, ich persoenlich finde ein blocken ala DROP am INPUT nicht so gut. Besser ist ein REJECT. So bekommt dein gegenueber wenigstens eine Meldung und versucht es nicht oeffters.

hm, momentan wird noch alles gedropt. muß ich mich nochmal ausführlicher mit beschäftigen.





Eigendlich ist es besser snort hinter der Firewall zu postieren. Oder mehrere *snorts* laufen zulassen. Das ganze wird dann in einer Datenbank gesammelt und grafisch ausgewertet --> ACID .

jo, so hab ich das vor. ein snort vor und eins hinter der firewall. bin mir bloß noch nicht sicher, ob ich das snort, welches hinter der firewall positioniert ist, auf dem client oder auch auf dem router laufen lasse, wenn das auf dem client überhaupt möglich ist. nachteil beim client wäre aber, da ich bei rtcw unter linux noch grafikfehler habe, das ich zum zocken immer noch windows einsetze und damit das *zweite* snort dann natürlich nicht laufen würde. also wohl doch auf dem router.
ACID hab ich mir auch schon angesehen. aber das setzt wieder ein apache voraus, wenn ich richtig informiert bin. ich will den router (is ein p 133 :)) auf seine alten tage ja nicht überfordern *grins*
was hälst du von snortsnarf?


Gruß HangLoose:)

tomes
28.08.02, 12:09
kenn ich leider nicht. Ich benutze schon seit Anfang an meine eigenden Rules.
z.B.:
http://www.fruehbrodt.org/artikel/netfilter.html
oder wenn du mit der SuSE-Firewall weiter machen moechtest:
http://www.robidu.de/linux/firewall/

netflags sind Subnetzmasken in der Kurzform.
255.255.255.255 = /32
255.255.255.0 = /24
255.255.0.0 = /16
255.0.0.0 = /8
es werden also nur die Bits des Netzes abgebildet.

DROP oder REJECT und anderes:
http://www.tu-chemnitz.de/linux/Dokumentation/redhat-7.2/RH-DOCS/de/rhl-rg-de-7.2/s1-iptables-options.html

Zum snort und ACID
Nur snort laueft auf dem Router/FW. Einen LAMP- Server setzt man dann wo anders auf. Die snort's werden dann veranlasst, ihre Meldungen zu diesem Server zu schicken. Da werden sie dann ausgewertet. Solange du nur zwei *Rechner* da hast, reicht wohl ein snort *draussen* zu rumprobieren.
Dann solltest du auch mal die Firewall probeweise ein wenig oeffnen, damit du siehst wie snort arbeitet. ;-)

T;o)Mes

HangLoose
28.08.02, 12:21
hi tomes





kenn ich leider nicht. Ich benutze schon seit Anfang an meine eigenden Rules.

hab ich eigentlich auch mal vor. danke für die link's, den zweiten kannte ich schon, danach habe ich meine suse-firewall eingestellt.


aha, dann kann ich ACID also auf dem client laufen lassen.


Dann solltest du auch mal die Firewall probeweise ein wenig oeffnen, damit du siehst wie snort arbeitet. ;-)

werd ich mal ausprobieren. morgen oder am freitag fahr ich aber erstmal nach dänemark zum windsurfen <= meine größte leidenschaft :):):)


danke nochmal für deine ausdauer :-)



Gruß HangLoose:)

tomes
28.08.02, 12:24
und viel Spass.

T;o)Mes