Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Logowanie połaczen ?
http://forum.freesco.pl/viewtopic.php?f=40&t=18925
Strona 1 z 1

Autor:  adi399 [ piątek, 4 października 2013, 21:33 ]
Tytuł:  Logowanie połaczen ?

hej jaki program pod cdn2 do logowania połączeń klientów, potrzebuje bo uke się upomina o logi :/

chodzi głownie o polaczenia czyli z czym klient sie laczy same ip w postaci
godzina data Loklane_Ip >> Zenetrzne IP:Port

chce gromadzić na oddzielnym serwerze ftp

dzieki

Autor:  Albercik [ sobota, 5 października 2013, 06:59 ]
Tytuł:  Re: Logowanie połaczen ?

np: ulog, tcpdump.

Autor:  adi399 [ sobota, 5 października 2013, 09:10 ]
Tytuł:  Re: Logowanie połaczen ?

dzięki :) a który wydajniejszy mniej zasobny ?

Autor:  Maciek [ sobota, 5 października 2013, 10:42 ]
Tytuł:  Re: Logowanie połaczen ?

Można logować ruch za pomocą iptables. Znacznie mniej dokuczliwe dla sieci niż dajmy na to tcpdump.
Ważne jest tylko pierwsze połączenie i port. a to, czy potem bylo 100 czy 2000 to już nie ma znaczenia dla identyfikacji ewentualnego chuligana.
przykład:
iptables -A FORWARD -m state --state NEW -j LOG --log-prefix NEW:

A taka jest postać logu.
Jan 24 22:54:17 fw kernel: [13783950.252133] NEW:IN=eth0 OUT=eth1 SRC=192.168.0.1 DST=
192.168.0.1 LEN=58 TOS=0x00 PREC=0x00 TTL=116 ID=20202 PROTO=UDP SPT=1024
DPT=34384 LEN=38
Jan 24 22:54:17 fw kernel: [13783950.253592] NEW:IN=eth1 OUT=eth0 SRC= 192.168.0.3 DST=
192.168.0.4 LEN=60 TOS=0x00 PREC=0x00 TTL=61 ID=55311 DF PROTO=TCP SPT=35255
DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0
Jan 24 22:54:17 fw kernel: [13783950.254956] NEW:IN=eth0 OUT=eth1 SRC= 192.168.0.5 DST=
192.168.0.6 LEN=52 TOS=0x00 PREC=0x00 TTL=116 ID=20203 DF PROTO=TCP SPT=57052
DPT=34384 WINDOW=8192 RES=0x00 SYN URGP=0
Jan 24 22:54:17 fw kernel: [13783950.259859] NEW:IN=eth0 OUT=eth1 SRC= 192.168.0.7 DST=
192.168.0.8 LEN=52 TOS=0x00 PREC=0x00 TTL=110 ID=28595 DF PROTO=TCP SPT=14067
DPT=18569 WINDOW=8192 RES=0x00 SYN URGP=0

Autor:  adi399 [ sobota, 5 października 2013, 14:19 ]
Tytuł:  Re: Logowanie połaczen ?

defakto muszę zrzucać to do pliku co jeden dzień i trzymać przez 12 mc :/

gdzie ta regułka zrzuca informacje do logu /var/log/iptables ?

Autor:  Albercik [ sobota, 5 października 2013, 14:48 ]
Tytuł:  Re: Logowanie połaczen ?

Nie zgodzę się z Maćkiem z twierdzeniem, że tcpdump obciąży bardziej system niż logowanie po iptables, ale rozwiązań może być mnóstwo, jedno z nich poniżej, nie jest to mojego autorstwa:
: [/] [] ()
#!/bin/bash

killall tcpdump

sleep 3
echo "działam"

katalog=`date '+%m-20%y'`
if [ ! -d "/home/logi/logi/$katalog" ]
then
echo "nie ma katalogu więc go tworzę"
mkdir /home/logi/logi/$katalog
fi

nazwaPliku=tcpdump`date '+%d'`_`date '+%m'`_20`date '+%y'`.log
tcpdump -w /home/logi/logi/$katalog/$nazwaPliku -qni eth1 'tcp[tcpflags] & (tcp-syn) != 0' &


###################################################################################
#
# Interfejs eth1 jest lanem.
# Logi czytamy za pomocą tcpdump i np grep-em np:
# tcpdump -qn -r tcpdump03_09_08.log
# gdzie tcpdump03_09_08.log to plik z logami
#
# Jak chcesz zobaczyć kto np łączył się z adresem IP 10.10.10.10 to wpisujesz:
#
# tcpdump -qn -r tcpdump03_09_08.log | grep 10.10.10.10
#
##################################################################################

Autor:  Maciek [ sobota, 5 października 2013, 15:57 ]
Tytuł:  Re: Logowanie połaczen ?

adi399 pisze:
gdzie ta regułka zrzuca informacje do logu /var/log/iptables ?

Możesz sobie pisać ten log do dowolnego pliku. >>/costam/costam/log
Możesz dodać odpowiednie wpisy do logrotate i zrobić skrypty w cronie, które będą zrzucać logi w jakieś inne miejsce. Może kompresować je w tygodniowych paczkach, albo whatever. Tylko twoja fantazja cię ogranicza. ;)

Autor:  adi399 [ sobota, 5 października 2013, 18:22 ]
Tytuł:  Re: Logowanie połaczen ?

Maciek pisze:

iptables -A FORWARD -m state --state NEW -j LOG --log-prefix NEW:

A taka jest postać logu.
Jan 24 22:54:17 fw kernel: [13783950.252133] NEW:IN=eth0 OUT=eth1 SRC=192.168.0.1 DST=
192.168.0.1 LEN=58 TOS=0x00 PREC=0x00 TTL=116 ID=20202 PROTO=UDP SPT=1024
DPT=34384 LEN=38
Jan 24 22:54:17 fw kernel: [13783950.253592] NEW:IN=eth1 OUT=eth0 SRC= 192.168.0.3 DST=
192.168.0.4 LEN=60 TOS=0x00 PREC=0x00 TTL=61 ID=55311 DF PROTO=TCP SPT=35255
DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0
Jan 24 22:54:17 fw kernel: [13783950.254956] NEW:IN=eth0 OUT=eth1 SRC= 192.168.0.5 DST=
192.168.0.6 LEN=52 TOS=0x00 PREC=0x00 TTL=116 ID=20203 DF PROTO=TCP SPT=57052
DPT=34384 WINDOW=8192 RES=0x00 SYN URGP=0
Jan 24 22:54:17 fw kernel: [13783950.259859] NEW:IN=eth0 OUT=eth1 SRC= 192.168.0.7 DST=
192.168.0.8 LEN=52 TOS=0x00 PREC=0x00 TTL=110 ID=28595 DF PROTO=TCP SPT=14067
DPT=18569 WINDOW=8192 RES=0x00 SYN URGP=0



iptables -A FORWARD -m state --state NEW -j LOG --log-prefix NEW: >> /etc/000.txt

Dałem tak i nic nie loguje ;)

mhymm

Autor:  Albercik [ sobota, 5 października 2013, 21:34 ]
Tytuł:  Re: Logowanie połaczen ?

Maciek pisze:
Możesz sobie pisać ten log do dowolnego pliku. >>/costam/costam/log

Nie sprawdziłeś tego Maćku, to nie ma prawa działać. Połączenia logowane są w /var/log a przekierowanie do pliku nie ma prawa działać, bo przekierowujesz tylko w chwili wpisywania reguły. Nic nie pójdzie do tekściaka, wszystko do /var/log. Aby było ok to musisz to wyłączyć z everything.log, bo sobie naprodukujesz logów jak mrówków. Możesz oczywiście przekierować logi w inne miejsce, możesz wyłączyć te logi z everything.log, ale już ingerujesz w system i zmieniasz pewne systemowe zasady.

Jeszcze na dokładkę taki dokument : http://www.kk.jgora.pl/~liber/zajecia/a ... ozenia.pdf :mrgreen:

Autor:  Maciek [ sobota, 5 października 2013, 21:50 ]
Tytuł:  Re: Logowanie połaczen ?

Dopisałem z palca:
iptables -I FORWARD -m state --state NEW -j LOG --log-prefix NEW: (dlatego jest -I zamiast -A)
i loguje to w syslog:
: [/] [] ()
Oct  5 21:37:45 eos kernel: NEW:IN=eth1 OUT=eth0 SRC=192.168.1.5 DST=194.204.152.34 LEN=55 TOS=0x00 PREC=0x00 TTL=127 ID=31310 PROTO=UDP SPT=60679 DPT=53 LEN=35

Faktycznie do zadanego pliku nie pisze. Coś zatem podałem źle. Nie pamiętam. Stosowałem to dawno temu. Sprawdź do jakiego pliku pisze u ciebie domyślnie. Mój system to EOS, nie wiem, może u ciebie będzie to inny plik?
Co do określenia pliku to spróbuj tak: iptables -I FORWARD -m state --state NEW -j LOG --log-prefix NEW: 2>/var/log/jakisplik

Autor:  adi399 [ niedziela, 6 października 2013, 10:36 ]
Tytuł:  Re: Logowanie połaczen ?

łał faktycznie działa logowanie zdarzeń :) a wielkość pliku rośnie w zastraszającym tempie, heh ale nie udało mi się zmusić do zapisywania logu do oddzielnego pliku :/ jakieś sugestie :)

dziękuje Macku

Autor:  Albercik [ niedziela, 6 października 2013, 15:28 ]
Tytuł:  Re: Logowanie połaczen ?

Maciek pisze:
Dopisałem z palca:
iptables -I FORWARD -m state --state NEW -j LOG --log-prefix NEW: (dlatego jest -I zamiast -A)

W tym wypadku -I i -A nie powoduje różnicy. W CDN2 domyślnie pojawiło się w everything.log .

Jeśli nie chcesz używac tcpdumpa, tylko to co proponuje Maciek to chyba jedynym sensownym wyjściem będzie wrzucić to do crona, przed zadziałaniem logrotate:
: [/] [] ()
#!/bin/bash
plik_txt=log_`date '+%d'`_`date '+%m'`_20`date '+%y'`.log
cat /var/log/log_w_ktorym_zrzucaja_sie_polaczenia.log | grep NEW: > /storage/do/logow/$plik_txt


w CDN2 /var/log/log_w_ktorym_zrzucaja_sie_polaczenia.log = everything.log
log raz na dobę będzie filtrował "NEW:" , a wielkością logu systemowego już zajmie się logrotate.

Autor:  Maciek [ niedziela, 6 października 2013, 19:06 ]
Tytuł:  Re: Logowanie połaczen ?

Ja bym to zrobił jeszcze inaczej. ;)

Zrzucanie powinno się oczywiście rozpocząć przed logrotate. Dla pewności nazwę pliku w cron.daily poprzedziłbym jedynką, np. 1-logi.sh.
Cytuj:
#!/bin/bash
TODAY=`date +%Y-%m-%d`
cat /var/log/log_w_ktorym_zrzucaja_sie_polaczenia.log | grep NEW: > /miejsce-docelowe/$TODAY.log

A to dlatego, że mając rok logów i chcąc coś znaleźć w nich z konkretnej daty, łatwiej zacząć filtrować od roku, potem miesiąc i dzień. ;)

PS. I nie wiem, czy czasem nie powinno być >> zamiast >. Pojedyncza strzałka może spowodować, że każdy kolejny wpis wyczyści poprzedni, ale to rzecz jasna trzeba sprawdzić. ;)

Autor:  Albercik [ niedziela, 6 października 2013, 22:39 ]
Tytuł:  Re: Logowanie połaczen ?

Maciek pisze:
PS. I nie wiem, czy czasem nie powinno być >> zamiast >. Pojedyncza strzałka może spowodować, że każdy kolejny wpis wyczyści poprzedni, ale to rzecz jasna trzeba sprawdzić. ;)

Przecież zmienia się data z każdym dniem, więc nie robi róznicy, czy będzie to >> czy >

Autor:  adi399 [ poniedziałek, 7 października 2013, 09:07 ]
Tytuł:  Re: Logowanie połaczen ?

ja to myślę tak
Stop iptables
skopiowanie pliku logow
przetworzenie pliku logow grep NewConn do pliku sciezka.today.log
skasowanie pliku logow bez grepa
wyslanie pliku logow na serwer ftp
skasowanie pliku logow wyniku grepa
start iptable

nie będę mial smietnika na dysku :)

ps jak przy pomocy wget wgrac cos na serwer ftp ?
cos w stylu
wget put ftp://login:haslo/serwer_FTP.pl /tmp/$TODAY.log


: [/] [] ()
#!/bin/bash
/usr/sbin/iptables -D FORWARD -m state --state NEW -j LOG --log-prefix NewConn:
plik_txt=log_`date '+%d'`_`date '+%m'`_20`date '+%y'`.log
cp /var/log/log_w_ktorym_zrzucaja_sie_polaczenia.log /tmp/logi.log
cat /var/log/logi.log | grep NewConn: > /tmp/$TODAY.log
rm /tmp/logi.log
wget WYSYLANIE NA FTP
rm /tmp/$TODAY.log
/usr/sbin/iptables -l FORWARD -m state --state NEW -j LOG --log-prefix NewConn:

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/