zdalny serwer logów

Konfiguracja serwerów, usług, itp.
kgb
Posty: 8
Rejestracja: 26 czerwca 2006, 10:46
Lokalizacja: /home/Mielec

zdalny serwer logów

Post autor: kgb »

Witam!
Mam kilka serwerów które robią za routery dostępowe do internetu w firmie internetowej. Jak zrobić zdalny serwer logów, który będzie logował strony, które klienci odwiedzają? chciałbym mieć to na jednej maszynie. Jaki pakiet wykorzystać do zbierania takich informacji? Jak je przesyłać? Poprzez stunnel?
Witek Baryluk
Beginner
Posty: 207
Rejestracja: 26 czerwca 2006, 01:49
Lokalizacja: Kraków za firewallem

Post autor: Witek Baryluk »

Można wykorzystać standardowe mechanizmy syslog'a , nie wiem czy zawiera on wbudowane szyfrowanie, jesli nie to mozna tunelować przez stunel, lub ssh, lub inaczej. Ewentualnie można podmontować partyche /var/log ze zdalnego kompuetra :)

Polecam wpisać "syslog encryption" w googlu, jest kilka propozycji które powinny rozwiąć wątpilwości.
Verdan
Posty: 80
Rejestracja: 06 czerwca 2006, 17:49

Post autor: Verdan »

Hej,

Ja bym skorzystał z dobrodziejstw sysloga-ng, jest dużo bardziej konfigurowalny niż zwyczajny syslog.
Zerknij na reference -- http://www.balabit.com/products/syslog_ ... log-ng.txt

Pozdrawiam,
V.
Witek Baryluk
Beginner
Posty: 207
Rejestracja: 26 czerwca 2006, 01:49
Lokalizacja: Kraków za firewallem

Post autor: Witek Baryluk »

Zgadza się, syslog-ng jest świetny (tylko niego używam), ale to nie zmienia faktu że nie potrafi szyfrować danych przez sieć. Jest coś takie jak encrypt(), ale a) nie jest zaimplementowae, b) w/g dokumentacji działa tylko dla plików lokalnych.
Verdan
Posty: 80
Rejestracja: 06 czerwca 2006, 17:49

Post autor: Verdan »

Ale wydaje mi się, że da się to jakoś rozsądnie załatwić stunnelem, chociaż nigdy nie próbowałem.
Z drugiej strony, warto się zastanowić czy jest sens szyfrowania logów, bo jeśli sieć jest na switchach i maszyna przechowująca logi znajduję się topologicznie gdzieś niedaleko, ktoś musiał by się niemało namęczyć żeby coś wysniffować, a w logach żadko zdarzają się dane warte szyfrowania.

Pozdrawiam.
kgb
Posty: 8
Rejestracja: 26 czerwca 2006, 10:46
Lokalizacja: /home/Mielec

Post autor: kgb »

użycie syslog-ng jest raczej oczywiste, ale bardziej chodzi mi o sam sposób zbierania informacji w przypadkach zapytań z policji gdy ktoś dokona przestępstwa. Jakie jest najlepsze rozwiązanie? użycie proxy? dodam że musi być w tych logach zawarte adres IP źródłowy/docelowy. :?:
Verdan
Posty: 80
Rejestracja: 06 czerwca 2006, 17:49

Post autor: Verdan »

Podstawowe pytanie -- co chcesz logować ? Bo syslog-ng nie jest najlepszym narzędziem do logowania np. wywołań apacha. Jak powiesz co chcesz logować, zastanowimy się jakim narzędziem najlepiej, a następnie jak bezpiecznie przechowywać logi. Jeśli wspominasz o policji, to pewnie chodzi o ruch sieciowy. W takim wypadku można np. odpalić tcpdumpa, sshfs i logować na podmontowaną zdalnie przez ssh partycję na innej maszynie, na której cron co jakiś czas będzie kompresował logi. W ten sposób masz na prawdę duuużo danych z tcpdumpa, które po skompresowaniu niedużo zajmują, i są przesyłane szyfrowanym połączeniem które prosto zrealizować.

Pozdrawiam,
V.
kgb
Posty: 8
Rejestracja: 26 czerwca 2006, 10:46
Lokalizacja: /home/Mielec

Post autor: kgb »

Chcę logować wszystkie adresy IP, z którymi łączył się klient na wszystkich portach oraz dokładna data i godzina. Jest to potrzebne w przypadku gdy policja się do mnie zwróci z pytaniem gdy ktoś z mojej sieci coś przeskrobie. W skrócie coś takiego: adres IP klienta, adres docelowy, data, godzina.
Pozdrawiam
Verdan
Posty: 80
Rejestracja: 06 czerwca 2006, 17:49

Post autor: Verdan »

Ale ty kurde jesteś niedokładny. Mógłbyś łaskawie wytłumaczyć KIM jest KLIENT ? Użytkownik LAN ? Użytkownik serwera ? Jeśli chodzi o wyjście drugie, to jak już wspomniałem polecam tcpdumpa do śledzenia połączeń przychodzących i wychodzących z serwera i logowanie via sshfs na zdalną maszynę.
Jeśli chodzi o użytkownika LAN, to jeśli chcesz realizować to logowanie szyfrownym połączeniem, to polecam ten sposób jaki przedstawiłem poprzednio, ino zamiast tcpdumpa np. netstat-nat lub iptraf czy też któreś z narzędzi z pakietu netdiag.

Pozdrawiam,
Verdan
mikee
Posty: 2
Rejestracja: 25 czerwca 2006, 22:38

Post autor: mikee »

Ja mam takie logowanie zrobione, ale tylko na tcp:

Kod: Zaznacz cały

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK SYN,ACK -j LOG --log-prefix 'NEW CONN: '
loguje do sysloga pakiety SYN i ACK czyli udane nawiązane połączenia, następnie za pomocą syslog-ng odpowiednio wrzucam to do osobnego pliku:

Kod: Zaznacz cały

destination df_new_conn { file("/var/log/traffic/conn.log"); };

filter f_new_conn { match("NEW CONN:"); };
filter f_not_new_conn { not match("NEW CONN:"); }

# do tych targetów poniżej podopisywany filtr aby nie logować połączeń

# *.*;auth,authpriv.none          -/var/log/syslog
log {
        source(s_all);
        filter(f_syslog);
        filter(f_not_new_conn);
        destination(df_syslog);
};

# kern.*                          -/var/log/kern.log
log {
        source(s_all);
        filter(f_kern);
        filter(f_not_new_conn);
        destination(df_kern);
};

# *.=info;*.=notice;*.=warn;\
#         auth,authpriv.none;\
#         cron,daemon.none;\
#         mail,news.none          -/var/log/messages
log {
        source(s_all);
        filter(f_messages);
        filter(f_not_new_conn);
        destination(df_messages);
};

# tutaj logowanie do zdefiniowanego pliku

# traffic log - new connections
log {
        source(s_all);
        filter(f_kern);
        filter(f_new_conn);
        destination(df_new_conn);
};

Linijki w logu wyglądają tak:

Kod: Zaznacz cały

Jun 28 18:19:59 komp kernel: NEW CONN: IN=eth1 OUT=eth0 SRC=24.232.117.244 DST=192.168.0.10 LEN=52 TOS=0x00 PREC=0x00 TTL=46 ID=21087 DF PROTO=TCP SPT=4662 DPT=3870 WINDOW=17520 RES=0x00 ACK SYN URGP=0

Ponieważ logowany jest pakiet SYN i ACK więc dane nadawca-odbiorca są zamienione: 28 czerwca b.r. o godz. 18:19:59 komputer 192.168.0.10 z portu 3870 nawiązał połączenie z 24.232.117.244 port tcp 4662 (pewnie emule)

Na łączu 1mbit (ok 4 użytkowników przeglądających internet) wychodzi to około 25MB logów dziennie (około 130 tysięcy połączeń), po kompresji bzip-em około 1,5MB/dzień.
ODPOWIEDZ