Skrypt do monitoringu Linuxa

5 02 2008

Mamy kolejny miesiąc a ja znowu dostałem 100 darmowych smsów od Orange….średnio miesięcznie wykorzystuje jakieś 10 (nie chce mi się nigdy logować na tą stronkę a do Spika nie mam zaufania)….więc wpadłem na pomysł że wykorzystam je na Siebie…a raczej na swoje serwery które stoją pod kontrolą Linuxów.

Wpadłem na pomysł aby napisać skrypta który będzie mnie informował o userach którzy sie logują/wylogowują na maszynie oraz o włamaniach na konta użytkowników i powiadamiał mnie o tym na sms-a.

Na początek trzeba znaleźć jakiś dobry skrypcik który będzie wysyłać sms-y za pośrednictwem orangembox. Pogooglowałem trochę i znalazłem coś takiego:

http://rodion.infobot.pl/orangembox.php

Potestowałem trochę i wygląda na to że nadaje się idealnie.

Proponuje najpierw ściągnąć najnowszą wersje z:

http://rodion.infobot.pl/py/sms.orangembox.tgz

aby sprawdzić czy działa w naszym środowisku, należy go skonfigurować według instrukcji ze strony http://rodion.infobot.pl/orangembox.php .

Autor w wymaganiach opisuje że niezbędny jest python w wersji 2.4.1 lub wyższej.

Jeżeli testy przeszły pomyślnie możemy zacząć grzebać ze skryptem.

Na początku należy wykonać kopie pliku:

#cp -rf /var/log/wtmp /var/log/wtmp_sygnatura

Następnie tworzymy plik o nazwie raport.sh w którym zamieszczamy:

#!/bin/bash
# raport.sh

#Sciezka gdzie rozpakowujemy pliki (do wyedytowania)

inst=/sciezka/gdzie/jest/umiesczony/plik/

#Numer telefonu na ktory ma byc wyslane info.

telefon=123456789

#Wykonanie sprawdzenia plikow i wyslanie smsa

sprawdzanie_pliku=$(diff -s /var/log/wtmp /var/log/wtmp_sygnatura | grep ident | sed ‘s/.*\///;s/\ .*//’)
if [ -z "$sprawdzanie_pliku" ]; then
userzy=$(/usr/bin/last -2 -i >> $inst/Raport/plik)
sed -e ‘/wtmp/d’ $inst/Raport/plik >> $inst/Raport/wyn
sed -e ‘/^$/d’ $inst/Raport/wyn >> $inst/Raport/wynik
wynik=$(/usr/bin/tail $inst/Raport/wynik)
$inst/Raport/sms.orangembox.py Raport $telefon $wynik
cp -rf /var/log/wtmp /var/log/wtmp_sygnatura
fi

#Czyszczenie smieci
rm -rf $inst/Raport/plik
rm -rf $inst/Raport/wyn
rm -rf $inst/Raport/wynik

exit

Należy wyedytować linie konfiguracyjne i umieścić w tym samym katalogu plik sms.orangembox.py.

Aby skrypt zaczął funkcjonować należy dorzucić zadanie do crona czyli wprowadzamy do /etc/crontab.

*/1 * * * * root /sciezka/do/pliku/raport.sh

Efekt działania skryptu jest taki że każde logowanie i wylogowywananie jest potwierdzone sms-em o treści np.

user pts/0 192.168.1.1 Tue Feb 5 13:23 still logged in
user pts/0 192.168.1.2 Tue Feb 5 13:02 – 13:20 (00:17)

Na razie jestem na etapie testowania lecz sprawuje się to całkiem dobrze.
Rozwiązanie ma sens jeżeli z danej maszyny maksymalnie korzysta 2/3 userów ponieważ większa ilość może spowodować ogromną liczbę wygenerowanych sms-ów co może doprowadzić do choroby psychicznej właściciela skryptu :)

Wystawiam pliki do wyedytowania.


Opcje

Info

Odpowiedz

Możesz używać tagów : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Preview:


CentOS Icon FirefoxUbuntu

Paintball.info.pl
www.armiapolnoc.pl