prosty mechanizm rejestracji odwiedzanych stron www
Ostatnia zmiana: 2013-12-22 15:34

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. W zależności o wydanej wersji i dostępności instalujemy albo cały pakiet dsniff lub sam urlsnarf:


    # opkg update
    # opkg install urlsnarf
    lub
    # 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

gdzie br-lan jest interfejsem, w tym przypadku od strony lan. Można teraz spróbować wczytać jakąś stronę, powinny na konsoli ukazać się logi w standardowym formacie generowanych przez większość serwerów www (CLF)


    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)"

(adres ip, data żądania, sam url, czym to zostało pobrane)
Warto zauważyć że pojawia się w logach data i godzina - więc wcześniej przydało by się ustawienie poprawniej daty 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
    }

a następnie włączyć ten skrypt do procedur startowych systemu


    # chmod 755 /etc/init.d/log_www
    # /etc/init.d/log_www enable
    # /etc/init.d/log_www start

Po restarcie rutera w pliku /hdd/log_www.txt.gz powinny odkładać się ładnie logi. Domyślnie robi się już ten plik spakowany w celu oszczędności miejsca.

Zakończenie

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.