NFsec Logo

Prosty monitoring WWW za pomocą skryptu bash

11/11/2010 w Administracja, Hacks & Scripts Brak komentarzy.  (artykuł nr 290, ilość słów: 389)

P

odpobnie jak w przypadku prostego monitorowania serwera WWW za pomocą PHP, również za pomocą prostego skryptu bash oraz kilku innych narzędzi, takich jak przeglądarka tekstowa lynx możemy stworzyć proste centrum monitoringu kilku stron WWW, którego zadaniem będzie powiadamianie nas poprzez e-mail w przypadku, gdy szukana fraza na stronie nie zostanie znaleziona.

Jego przydatność określają dwa przypadki. Pierwszym jest wiadomość, o tym, że serwer WWW, na którym jest ulokowana nasza strona jest niedostępny lub przeciążony. Drugim jest proste sprawdzenie czy nasza strona w wyniku ataku nie została podmieniona (ang. website defacement). Poniższy skrypt wystarczy zapisać np. w pliku o nazwie monitor.sh i nadać mu odpowiednie prawa dostępu (chmod 644 monitor.sh):

#!/bin/sh

HOSTY="www.nfsec.pl www.infomafia.pl"
TEMAT="WWW ERROR 606."
EMAILE="monitoring@hi-availability.pl sms@bramka.pl"

for HOST in $HOSTY
do
    WYNIK=$(lynx -source $HOST | grep "Monitoring24" | wc -l)
    if [ $WYNIK != 1 ]; then
        for EMAIL in $EMAILE
        do
            echo -e "$(date) - $HOST APACHE OR DOMAIN ERROR!\n Respond Huston!" | mail -s "$TEMAT" $EMAIL
        done
    fi
    sleep 5
done

Każda strona, która ma być poprawnie monitorowana powinna zawierać w swoim źródle wyrażenie Monitoring24 (najlepszym rozwiązaniem jest umieścić je w komentarzu, aby nie było widoczne dla zwyczajnych użytkowników). Zmienna HOSTY zawiera adresy stron, których dostępność chcemy sprawdzać, natomiast EMAILE wszystkie adresy e-mail, na jakie mają zostać wysłane wiadomości ostrzegawcze. Ze względu na działanie skryptu w pętli – ważnym elementem jest tutaj przerwa czasowa (w tym przykładzie ustawiona na pięć sekund – sleep 5) pomiędzy kolejnymi wywołaniami. Przy większej ilości stron, czy ich awarii – bez odpowiedniego odstępu czasowego możemy wykonać mały flood na dowolnym serwerze WWW hostującym większą ilość monitorowanych stron lub zostać potraktowani jako spamerzy przy bardzo szybkim tempie wysyłania wiadomości e-mail.

Należy pamiętać, aby skrypt taki był uruchamiany z zewnętrznego (innego niż, ten na którym stoi nasza strona WWW) serwera monitorującego. Cykliczne (co godzinne) wywoływanie skryptu możemy osiągnąć dzięki wpisowi umieszczonemu w crontabie:

0 * * * * /home/monitoring/skrypty/monitor.sh

Dobrym pomysłem jest wykorzystanie tylko jednego adresu e-mail będącego tak naprawdę grupą, w której zawarte są również adresy bramek „e-mail to sms”.

Więcej informacji: El Monito

Kategorie K a t e g o r i e : Administracja, Hacks & Scripts

Tagi T a g i : , , , , ,

Zostaw odpowiedź.

Musisz być zalogowany by móc komentować.