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

MRTG-2 - kompy online
http://forum.freesco.pl/viewtopic.php?f=35&t=3833
Strona 1 z 2

Autor:  Anonymous [ środa, 3 marca 2004, 23:34 ]
Tytuł:  MRTG-2 - kompy online

Mam zainstalowaną paczkę mrtg-2 pracującą razem z TrafManager 1.0
Co jakiś czas obserwuję w statystykach ilość komputerów online w ilości 15 sztuk - jak to możliwe skoro mam tylko 2 kompy wewnątrz i jeden mini serwer www (www.emetec.com.pl) - jak dorobić (bo zapewne się da) żeby online.sh w katalogu bin z pakietu mrtg-2 zapisywał IP i ewentualnie datę/czas stanu online tych "nadmiarowych" kompów do jakiegoś pliku tekstowego ??

Dzieki za ewentualne odpowiedzi...

Autor:  mat1l9s [ czwartek, 4 marca 2004, 16:31 ]
Tytuł: 

a nie możesz odczytać godziny z wykresu ?

Autor:  Anonymous [ piątek, 5 marca 2004, 01:01 ]
Tytuł: 

Cytuj:
zapisywał IP i ewentualnie datę/czas stanu online tych "nadmiarowych" kompów


najbardziej jednak zależy mi na IP - godzinę to ja widzę... około 14-tej 15 kompów więcej...niewiele to daje informacji...prawda?

Autor:  mat1l9s [ piątek, 12 marca 2004, 16:27 ]
Tytuł: 

edytujesz plik /mnt/router/etc/atd
w główną pętlę while (czyli między "while" a "done" wpisujesz takie coś:
: [/] [] ()
cat /proc/net/arp > /mnt/router/ip-$C

potem restartujesz router i co minutę w katalogu /mnt/router/ip-* będziesz miał w plikach zrzut z lista IP oraz MACadresem kto w danej minucie siedział

dobra rada - kasuj codziennie te wszystkie pliki bo bedzie tego trochę

Autor:  Anonymous [ niedziela, 14 marca 2004, 22:42 ]
Tytuł: 

@mat1l9s - dzięki - działa oczywiście znakomicie :)

ja tymczasowo dopisałem sobie wcześniej w skrypcie online.sh
z pakietu mrtg-2 takie coś:
cat /proc/net/arp > /mnt/home/www/lista.txt
i mogłem sobie przez www śledzić w danej chwili co się dzieje...

Autor:  mat1l9s [ poniedziałek, 15 marca 2004, 15:24 ]
Tytuł: 

no i co to za intruzi ?
bo u mnie też się tacy czasem zdarzają i nie wiem czy ktoś się po prostu podszywa czy coś innego

Autor:  Anonymous [ wtorek, 16 marca 2004, 11:15 ]
Tytuł: 

jak na razie cisza...ale monituje to regularnie...już teraz żaden się nie prześliźnie.

Wcześniej był gostek w sieci LAN do której moje Freesco jest podłączone co namiętnie buszował...
zmieniał IP, MAC u siebie podszywając się za różne kompy - wiele razy obserwowałem to za pomoca ettercap'a - być może to on...zobaczy się...w każdym razie dam znać co to za wzrost zaIPowania :).

Muszę jeszcze troszkę się poduczyć i zrobić inny skrypt - żeby to funkcjonowało jako jeden plik dostępny np przez www - ale to najmniejszy problem...
najważniejsze jest to żeby dodawał nową linię do tego pliku z logami tylko wtedy kiedy w arp pojawi się w danej linii przy numerze IP 0x02 (chyba, nie mam teraz dostępu do serwera) czyli jeśli dane IP się podłącza. Nie mam zielonego pojęcia czy da się za pomocą komend shella analizować odczytywaną linię z arp (?).
Wyjściowy format byłby taki np:

data godzina IP interfejs
16.03.04 15:14 192.168.2.13 eth0

dodatkowo można - jeśli już byłbym w stanie analizować wpis w arp (0x02 , 0x00) to można dodać do logów jeszcze czas jaki dane IP było podłączone...
rozpędziłem się troszeczkę...
@mat1l9s - jako zaawansowany user, może podpowiesz czy takie operacje na plikach jak analiza linii są możliwe? może porywam sie na coś niemożliwego?

Autor:  mat1l9s [ wtorek, 16 marca 2004, 19:10 ]
Tytuł: 

są możliwe
: [/] [] ()
cat /folder/polik | while read zmienna1 zmienna2 zmienna3; do
przetwarzanie zmienna1 zmienna2 zmienna3
done
ale pamiętaj za tym "done" nie widzisz już zmienna1 zmienna2 zmienna3 - za done się kończy zakres ich widzialności niestety - więc musisz przetworzyć je wewnątrz tamtej pętli


z tą widzialnością zmiennych jest tak tylko w przypadku tej konktrenetj pętli read, normalnie to jest w całym programi zmienna widziana (tą petla jest jakby podprogram dlatego nie ma widoczności poza nim)

Autor:  Anonymous [ środa, 17 marca 2004, 02:50 ]
Tytuł: 

@mat1l9s - serdzeczne dzięki:)
zaczynam to powoli łapać...
na razie mam bezmyślny skrypt który co minutę przepisuje praktycznie wszystko ale jutro dopiszę żeby sprawdzał czy w ostatnich kilku liniach pliku "lista" nie wpisywał czasem tego co zechce zapisywać w danej chwili oraz analizę zmiennej "zm_fl" - czyli z pliku arp kolumny Flags - jak przypuszczam jest to wskaźnik czy dane IP/MAC nadal znajduje się w arp cache we freesco - więc wogóle nie jest mi potrzebne logowanie linii gdzie Flags przy danym kompie jest == 0x00

: [/] [] ()
#!/bin/sh
cat /proc/net/arp | while read zm_ip zm_hw zm_fl zm_ma zm_sm zm_in; do

if [ "$zm_ip" != IP ]; then
 (echo $(date) $zm_ip $zm_fl $zm_ma $zm_in >> /mnt/home/reaper/lista)
fi

done


nie wiem jeszcze jak przecedzić z lekka date bo stanowczo za dużo wysyła informacji - w sumie potrzebne jest tylko numer dnia, godzina i minuta ewentualnie sekunda natomiast rok, miesiąc i nazwa dnia jest zupełnie niepotrzebna...

Autor:  mat1l9s [ środa, 17 marca 2004, 07:37 ]
Tytuł: 

/bin/date --h
co to za zmienna $IP ?

Autor:  Anonymous [ środa, 17 marca 2004, 09:45 ]
Tytuł: 

która $IP? $zm_ip ??
efekt działania jest taki:

: [/] [] ()
wed 17.03.04 12:15:13 192.168.0.3 0x02 00:0c:0a:12:95:b6 eth0


natomiast jeśli chodzi o warunek:
: [/] [] ()
if [ "$zm_ip" != IP ];

to służy on jedynie eliminacji pierwszej linii nagłówkowej z pliku arp :)

Autor:  mat1l9s [ środa, 17 marca 2004, 13:50 ]
Tytuł: 

reaper7 pisze:
natomiast jeśli chodzi o warunek:
: [/] [] ()
if [ "$zm_ip" != IP ];

to służy on jedynie eliminacji pierwszej linii nagłówkowej z pliku arp :)

ok juz rozumiem

Autor:  Anonymous [ środa, 17 marca 2004, 20:19 ]
Tytuł: 

W sumie zrobiłem:) Dodałem w warunku kompy występujące w mojej sieci - jest ich niewiele więc nie ma problemu...teraz będzie meldował jedynie o OBCYCH :) dodatkowo wyśle emila do mnie :)
Dzięki mat1l9s za wszelkie wskazówki - te o date też :)
Pozwoliłem sobie zmienić online.sh z pakietu mrtg-2 - w sumie pasuje mi to 6-cio minutowe wykonywanie skryptu. Wygląda on następująco:
: [/] [] ()
#!/bin/sh
L=`cat /proc/net/arp | wc -l`; L=$(expr $L - 2); echo $L

cat /proc/net/arp | while read zm_ip zm_hw zm_fl zm_ma zm_sm zm_in; do

if [ "$zm_ip" != IP -a "$zm_ip" != '192.168.2.1' -a "$zm_ip" != '192.168.0.2' -a "$zm_ip" != '192.168.0.3' -a "$zm_ip" != '192.168.0.4' ]; then
 
(echo '|'$(/bin/date +%m.%d' '%T)' | '$zm_ip' | '$zm_fl' | '$zm_ma' | '$zm_in'|' >> /mnt/home/www/lista.txt)
 sendmail reaper1@dhouse < /mnt/home/www/lista.txt
fi
 
done


natomiast plik wynikowy dostępny z www tak:
: [/] [] ()
|03.17 18:59:46 | 192.168.2.1 | 0x2 | 00:50:BA:C7:30:09 | eth0|
|03.17 19:00:09 | 192.168.2.1 | 0x2 | 00:50:BA:C7:30:09 | eth0|


tymczasowo jestem zadowolony - to w sumie mój pierwszy skrypcik i bardzo mi się podoba - jak kogoś przyłapię to wzrośnie moje zadowolenie ;) śmiem przypuszczać że to "-a" w warunku to AND ? widziałem gdzieś -o i przypuszczam że to był OR :) Dziwny ten język skryptowy ...
trochę z C np != (różny, nierówny) , dlatego próbowałem z && a tu nici i dopiero po godzinie znalazłem "-o" ... ma ktoś może jakiegoś pdf'a z komendami shella? z przykładami składniowymi np??

Autor:  mat1l9s [ środa, 17 marca 2004, 20:20 ]
Tytuł: 

było mi akurat potrzebne to naskrobałem takie cóś:
: [/] [] ()
#!/bin/sh
cat /proc/net/arp | grep eth1 | while read zm_ip zm_hw zm_fl zm_ma zm_sm zm_in; do
intruz=1
for i in `grep $zm_ip /etc/justice.hst`; do
 if [ "$i" = "$zm_ip" ]; then intruz=0; fi
done
 if [ $intruz = 1 ]; then echo `date` - $zm_ip,  $zm_ma >> /mnt/router/packages/intruzi.txt; fi
done

Autor:  Anonymous [ czwartek, 18 marca 2004, 09:12 ]
Tytuł: 

Oooo - to ładne jest :) W sumie nie pomyślałem żeby wykorzystać ten spis IPków :) - IF znacznie prościej wygląda:)
Ja natomiast złapałem kogoś ale nadal nie wiem kto to...i to nie na mojej sieci tylko tej "wyżej" do której jestem podłączony ... dlatego też musiałbym w Twoim skrypcie nie wycedzać tylko z interfejsu eth1.
U mnie wygląda to na jakis zaawansowany skaner - ktoś ma "zlogowane" wszystkie kompy z sieci do której jestem podłączony - ten ktoś ma wszystkie IP i adresy MAC. Wygląda to tak: (uwaga długie :) )
: [/] [] ()
|03.17 21:27:22|192.168.2.16|0x2|00:08:54:02:12:B7|eth0|
|03.17 21:27:25|192.168.2.17|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:27|192.168.2.18|0x2|00:C0:CA:12:D3:BC|eth0|
|03.17 21:27:29|192.168.2.2 |0x2|00:30:4F:1C:22:10|eth0|
|03.17 21:27:31|192.168.2.19|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:32|192.168.2.3 |0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:35|192.168.2.20|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:36|192.168.2.4 |0x2|00:02:44:34:30:8F|eth0|
|03.17 21:27:38|192.168.2.21|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:40|192.168.2.5 |0x2|00:00:22:22:22:52|eth0|
|03.17 21:27:42|192.168.2.22|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:44|192.168.2.6 |0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:46|192.168.2.23|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:51|192.168.2.7 |0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:52|192.168.2.24|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:54|192.168.2.8 |0x2|00:C0:F0:5B:41:5D|eth0|
|03.17 21:27:57|192.168.2.25|0x0|00:00:00:00:00:00|eth0|
|03.17 21:27:59|192.168.2.9 |0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:01|192.168.2.26|0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:03|192.168.2.10|0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:05|192.168.2.27|0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:07|192.168.2.28|0x2|00:30:4F:2D:44:22|eth0|
|03.17 21:28:09|192.168.2.12|0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:11|192.168.2.29|0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:13|192.168.2.13|0x2|00:C0:DF:0E:A0:B5|eth0|
|03.17 21:28:15|192.168.2.30|0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:17|192.168.2.14|0x0|00:00:00:00:00:00|eth0|
|03.17 21:28:19|192.168.2.15|0x2|00:30:4F:28:F4:7D|eth0|


tak że nie można określić kto to robi :(
Chyba że zrobić założenie takie: gościu nie skanuje sam siebie - ale wtedy jeśli warunek "robienia logów" w naszym skrypcie zostaje spełniony, musiałbym także zrobić choćby pingowanie tej sieci "wyżej" na eth0 - zapisując wynik do pliku - potem przez porównanie zobaczyć który komp jest na liście 2 a nie ma go na liście 1 - może to by się udało...
Muszę pomyśleć jak to napisać...chyba że masz jakieś inne rozwiązanie...

Edit:
Poukładałem sobie to "alfabetycznie" względem IP - jednak wszyskie kompy są :( więc albo ktoś skanuje także sam siebie lub robi to admin czyli mój dostawca netu - czy czasem ktoś się nie podłącza czy coś tam innego... oczywiście nie ma mojego freesco na liście :) więc to może jakiś ukryty talent mojego routera i może on to robi ;)

Autor:  mat1l9s [ czwartek, 18 marca 2004, 23:27 ]
Tytuł: 

zamieszałeś, już nie wiem o co chodzi

Autor:  Anonymous [ piątek, 19 marca 2004, 00:08 ]
Tytuł: 

ja sam tego nie rozumiem:)
Moja sieć wygląda tak:

-> 3 kompy (192.168.0.2 do 0.4 - choć to nie wszystko prawdziwe kompy :) )
-> router na freesco z eth1 192.168.0.2 i eth0 192.168.2.11
-> sieć dostawcy czyli ta "wyżej" od adresu 192.168.2.2 do 2.30 z gate na 2.1

więc tak naprawdę to co loguje mi się z arp to wypadki na eth0 - czyli z sieci do której mój router jest podłączony a nie z mojej wewnętrznej...
Admin sieci 2.1 - 2.30 o niczym nie wie - byłem u niego dzisiaj i on tego nie robi.

Autor:  Anonymous [ środa, 5 maja 2004, 10:02 ]
Tytuł:  c.d.

ja wyczailłem nastepującą rzecz (w sumie to info do mat1l9s i jego wrsji mrtg) wystarczy wyłączyć arp i mrtg pokazuje na wykresach porawną ilość komputerów w sieci - jeśli kogoś z moich przedmówców interesuje jeszcze ta sprawa to sprawdzcie czy u Was będzie podobnie i dajcie znać
(nie dokończyłem mysli to dopisuję później) może mat1l9s zmodyfikowałby coś w swojej wersji mrtg żeby nie "gryzło" się to z arp-em ?

pozdr. @ll
p.

Autor:  mat1l9s [ środa, 26 maja 2004, 20:17 ]
Tytuł: 

dobrze wyczaiłeś ale nie wiem czy jest sens to robić, te statystyki sa takie nuuudne ... :-)

Autor:  Anonymous [ wtorek, 1 czerwca 2004, 18:02 ]
Tytuł: 

mat1l9s pisze:
dobrze wyczaiłeś ale nie wiem czy jest sens to robić, te statystyki sa takie nuuudne ... :-)

hmmm ... nudne nie nudne - pojęcie względne, ale fajnie byłoby gdyby arp nie gryzł się z mrtg, osobiście bardzo bym się cieszył gdybym mógł oglądać na wykresach ilość kompów jaka była w sieci o określonej porze (a przy okazji arp też robiłby swoją robotę) :-)

pozdr.
p.

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