[Rozw.] Wykonanie skryptu po błędnym logowaniu.
Moderatorzy: Moderatorzy, Administratorzy
[Rozw.] Wykonanie skryptu po błędnym logowaniu.
Witam!
chciałbym by serwer wysyłał mi maila gdy ktoś będzie próbował zalogować się na root'a, ale mu się to nie powiedzie.
w sumie, nie zaszkodzi jak będzie to dla każdego użytkownika.
nie wiem czego szukać, przejrzałem forum pobieżnie.
Pozdrawiam!
chciałbym by serwer wysyłał mi maila gdy ktoś będzie próbował zalogować się na root'a, ale mu się to nie powiedzie.
w sumie, nie zaszkodzi jak będzie to dla każdego użytkownika.
nie wiem czego szukać, przejrzałem forum pobieżnie.
Pozdrawiam!
Ostatnio zmieniony 2008-08-12, 10:20 przez San, łącznie zmieniany 1 raz.
Kupię elementy perkusji Szpaderskiego. [url=http://e-san.info/szpad.php]Czytaj...[/url]
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
Skrypt który będzie czytał na bierząco zawartość pliku /var/log/auth.log i szukał ciągu "Authentication failture" i wysyłał Ci maila powiedzmy z zawartością tej lini i kilku następnych. Pomocne polecenia to na pewno grep i awk No i na serwerze musisz mieć serwer pocztowy.
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
niestety,
tok myślenia który przedstawiłeś
stanowczo przerasta moją wiedzę.
ale czy to nie wyjdzie tak, że będę musiał dodać to do cron'a?
edit.
no, rzeczywiście, nie będzie.
ale to już bardziej uśmiecha mi się tail -f
ale jak zapobiec, żeby nie wysyłał mi wszystkich takich linijek z pliku, tylko te ostatnie?
tok myślenia który przedstawiłeś
stanowczo przerasta moją wiedzę.
ale czy to nie wyjdzie tak, że będę musiał dodać to do cron'a?
edit.
no, rzeczywiście, nie będzie.
ale to już bardziej uśmiecha mi się tail -f
ale jak zapobiec, żeby nie wysyłał mi wszystkich takich linijek z pliku, tylko te ostatnie?
Ostatnio zmieniony 2008-08-12, 09:34 przez San, łącznie zmieniany 1 raz.
Kupię elementy perkusji Szpaderskiego. [url=http://e-san.info/szpad.php]Czytaj...[/url]
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
Tylko nie wiem czy z tail -f można grepować odpowiednie linie? Jeśli tak to wynik wrzucasz do pliku tekstowego i ten plik umieszczasz jako treść wiadomości którą wysyłasz.
Wyświetla 10 lini z stringiem 'authentication failure'. to można przez ">>" wrzucić do pliku i wysłać ten plik przez mail lub procmail
Tu masz jeszcze inny skrypt który sprawdza log czy w ciągu 5 min nie ma takiego wpisu. Możesz zmienić na 30 i wtedy w cronie uruchamiać go co pół godziny
Kod: Zaznacz cały
cat /var/log/auth.log |grep 'authentication failure'|tail -n10
Tu masz jeszcze inny skrypt który sprawdza log czy w ciągu 5 min nie ma takiego wpisu. Możesz zmienić na 30 i wtedy w cronie uruchamiać go co pół godziny
Kod: Zaznacz cały
#!/bin/bash
function sprawdz {
cat /var/log/smsd.log |grep 'NOKIA: <- OK'|tail -n1 |awk '{print $2}' |tr -d :, |cut -b2-4 > /root/smscheck/logsms
date +'%T' |tr -d : |cut -b2-4 > /root/smscheck/datcur
LOGS=$(cat /root/smscheck/logsms)
DATC=$(cat /root/smscheck/datcur)
WYN=$(($DATC-$LOGS))
}
sprawdz
if [ $WYN -ge 5 ]
then
# echo "nie ma polaczenia"
/etc/init.d/smstools restart
sleep 5m
sprawdz
if [ $WYN -ge 5 ]
then
# echo "naprawde nie dziala"
mail -s "Serwer SMS" adres@mail </root/smscheck/tekst.txt
fi
fi
Ostatnio zmieniony 2008-08-12, 09:58 przez Outlaw, łącznie zmieniany 1 raz.
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
lecz wciąż nie wiem jak to zrobić...
jak dotąd działa. ale...
trzebaby dodać do tego by linijki te zapisywał do pliku i znowu skrypt który sprawdza czy nie pojawiło się coś w nowym pliku. jeśli tak, to wysyła maila i czyści plik...
dużo tego...
i tu nie umiem. "jeśli plik ma zawartość"
to chyba bardzo dirty...
Kod: Zaznacz cały
e@slck:~/openssh-5.1p1$ ./configure >> conf.dmesg &
[1] 17207
e@slck:~/openssh-5.1p1$ tail conf.dmesg -f | grep yes
checking if gcc accepts -fno-builtin-memset... yes
checking whether LLONG_MAX is declared... yes
checking crypt.h usability... yes
checking crypt.h presence... yes
checking for crypt.h... yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking endian.h usability... yes
checking endian.h presence... yes
checking for endian.h... yes
checking features.h usability... yes
checking features.h presence... yes
checking for features.h... yes
checking fcntl.h usability... yes
e@slck:~/openssh-5.1p1$
trzebaby dodać do tego by linijki te zapisywał do pliku i znowu skrypt który sprawdza czy nie pojawiło się coś w nowym pliku. jeśli tak, to wysyła maila i czyści plik...
dużo tego...
Kod: Zaznacz cały
./configure >> conf.dmesg &
tail conf.dmesg -f | grep yes >> mail
Kod: Zaznacz cały
sendmail bla-bla mail && rm mail
Ostatnio zmieniony 2008-08-12, 09:56 przez San, łącznie zmieniany 1 raz.
Kupię elementy perkusji Szpaderskiego. [url=http://e-san.info/szpad.php]Czytaj...[/url]
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
Zbierając to wszystko zrobiłbym tak:
tail /var/log/auth.log -f | grep 'authentication failure' >> logi
co pół godziny sprawdzamy czy plik logi jest pusty, jeśli jest to nic nie robimy, jeśli coś w nim jest to wysyłamy mailem i go kasujemy. Sprawdzić można AWK i porównać NR czy pierwsza linia jest pusta
tail /var/log/auth.log -f | grep 'authentication failure' >> logi
co pół godziny sprawdzamy czy plik logi jest pusty, jeśli jest to nic nie robimy, jeśli coś w nim jest to wysyłamy mailem i go kasujemy. Sprawdzić można AWK i porównać NR czy pierwsza linia jest pusta
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
o!
to rozumiem.
myślałem o tym, by nie mieszać cron'a do tego,
ale to chyba jedyny bezpieczny sposób...
można by zrobić tak by skrypt przez np. 30 minut pilnował czy nie pojawia się plik mail.
a w cronie puszczać ten skrypt co 29 minut. wtedy maile byłyby wysyłane natychmiast a w razie gdyby z jakichś przyczyn skrypt się zatrzymał, byłby uruchomiony wkrótce.
to rozumiem.
myślałem o tym, by nie mieszać cron'a do tego,
ale to chyba jedyny bezpieczny sposób...
można by zrobić tak by skrypt przez np. 30 minut pilnował czy nie pojawia się plik mail.
a w cronie puszczać ten skrypt co 29 minut. wtedy maile byłyby wysyłane natychmiast a w razie gdyby z jakichś przyczyn skrypt się zatrzymał, byłby uruchomiony wkrótce.
Kupię elementy perkusji Szpaderskiego. [url=http://e-san.info/szpad.php]Czytaj...[/url]
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
Na początku dajesz tail ... później pętle for która sprawdza czy jest plik log jeśli jest to wysyła maila i kasuje plik, jeśli nie to sleep 1800 (30min) i ponownie wykonuje pętle for skrypt wrzucasz do /etc/rc.d i śmiga aż miło
I jest bez crona
I jest bez crona
Ostatnio zmieniony 2008-08-12, 10:19 przez Outlaw, łącznie zmieniany 1 raz.
Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.
omijanie cron'a na siłę to też nie to
myślę, że to do czego doszliśmy, póki co, mi wystarczy.
dzięki
myślę, że to do czego doszliśmy, póki co, mi wystarczy.
dzięki
Kupię elementy perkusji Szpaderskiego. [url=http://e-san.info/szpad.php]Czytaj...[/url]