zdalny serwer logów
zdalny serwer logów
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?
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?
-
- Beginner
- Posty: 207
- Rejestracja: 26 czerwca 2006, 01:49
- Lokalizacja: Kraków za firewallem
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.
Polecam wpisać "syslog encryption" w googlu, jest kilka propozycji które powinny rozwiąć wątpilwości.
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.
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.
-
- Beginner
- Posty: 207
- Rejestracja: 26 czerwca 2006, 01:49
- Lokalizacja: Kraków za firewallem
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.
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.
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.
Pozdrawiam,
V.
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
Pozdrawiam
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
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
Ja mam takie logowanie zrobione, ale tylko na tcp:
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:
Linijki w logu wyglądają tak:
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ń.
Kod: Zaznacz cały
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK SYN,ACK -j LOG --log-prefix 'NEW CONN: '
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ń.