OpenWrt - monitorowanie odwiedzanych stron
prosty mechanizm rejestracji odwiedzanych stron wwwOstatnia zmiana: 2012-07-13 17:54
1. Instalacja
2. Konfiguracja
3. Zakończenie
Nasze (polskie) prawo nie narzuca obowiązku logowania wszystkich połączeń, ale czasami dobrze taką informację posiadać, zwłaszcza jak udostępniamy połączenie internetowe innym. Lub po prostu goni nas niezdrowa ciekawość co nasi współdomownicy robią w sieci.
Monitoring odwiedzanych stron można wykonać na kilka sposobów, oto jeden z nich.
Instalacja
Niezbędny będzie program urlsnarf z pakietu dsniff. Jest to pakiet zawierający wiele narzędzi do rozkodowywania różnych transmisji (i wyciągana haseł w szczególności); urlsnarf jest jednym z takich programów. Pakiet ten wraz z zależnościami jest duży objętościowo.
# opkg update
# opkg install dsniff
Konfiguracja
Jednym z parametrów konfiguracyjnych jest interfejs na którym program na nasłuchiwać. Można także podać wyrażenia na podstawie których będą analizowane przepływające pakiety - polecam w takim przypadku stronę domową projektu: http://www.monkey.org/~dugsong/dsniff/. W domyślnej konfiguracji program będzie monitorował porty 80, 8080 oraz 3218.Do celów testowych polecam uruchomić najpierw program z linii poleceń
# urlsnarf -i br-lan
192.168.1.100 - - [ 1/Jan/1970:00:50:36 +0000] "GET http://eko.one.pl/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.7) Gecko/2009030814 Iceweasel/3.0.7 (Debian-3.0.7-1)"
Warto zauważyć że pojawia się w logach data i godzina - więc wcześniej przydało by się ustawienie poprawniej daty (przez instalację pakietu ntpclient i poprawnie ustawienie strefy czasowej).
Jeżeli logi pojawiają się można z tego utworzyć odpowiedni skrypt startowy i wynik działania programu przekierować do pliku. Całość może wyglądać następująco (do zapisania pod nazwą np. log_www):
#!/bin/sh /etc/rc.common
START=99
start() {
/usr/sbin/urlsnarf -i br-lan | gzip >> /hdd/log_www.txt.gz &
}
stop() {
pkill urlsnarf
}
# chmod 755 /etc/init.d/log_www
# /etc/init.d/log_www enable
# /etc/init.d/log_www start
Zakończenie
Jak wspomniano wcześniej warto ustawić strefę czasową. Sam uruchomiony program może obciążać system i jest to normalne, musi on sprawdzić i przeanalizować pakiety które przychodzą na określone porty.Plik z logami będzie przyrastał, dlatego nie należy go trzymać w pamięci flash, powinien to być zewnętrzny nośnik (lub /tmp - w ramie). Przydało by się także zadbać o automatyczne archiwizowanie logów.