[Rozw.] Wykonanie skryptu po błędnym logowaniu.

Te, które nie mieszczą się w powyższych kategoriach, a mają coś wspólnego ze Slackware.

Moderatorzy: Moderatorzy, Administratorzy

San
Użytkownik
Posty: 203
Rejestracja: 2007-02-22, 13:56

[Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: San »

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!
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]
Awatar użytkownika
Outlaw
Administrator
Posty: 2862
Rejestracja: 2004-06-29, 22:23
Lokalizacja: eth0
Kontakt:

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: Outlaw »

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.
San
Użytkownik
Posty: 203
Rejestracja: 2007-02-22, 13:56

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: San »

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?
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]
Awatar użytkownika
Outlaw
Administrator
Posty: 2862
Rejestracja: 2004-06-29, 22:23
Lokalizacja: eth0
Kontakt:

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: Outlaw »

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.

Kod: Zaznacz cały

 cat /var/log/auth.log |grep 'authentication failure'|tail -n10
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

#!/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.
San
Użytkownik
Posty: 203
Rejestracja: 2007-02-22, 13:56

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: San »

lecz wciąż nie wiem jak to zrobić...

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$
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...

Kod: Zaznacz cały

./configure >> conf.dmesg &
 tail conf.dmesg -f | grep yes >> mail
i tu nie umiem. "jeśli plik ma zawartość"

Kod: Zaznacz cały

sendmail bla-bla mail && rm mail
to chyba bardzo dirty...
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]
Awatar użytkownika
Outlaw
Administrator
Posty: 2862
Rejestracja: 2004-06-29, 22:23
Lokalizacja: eth0
Kontakt:

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: Outlaw »

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 ;)
San
Użytkownik
Posty: 203
Rejestracja: 2007-02-22, 13:56

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: San »

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.
Kupię elementy perkusji Szpaderskiego. [url=http://e-san.info/szpad.php]Czytaj...[/url]
Awatar użytkownika
Outlaw
Administrator
Posty: 2862
Rejestracja: 2004-06-29, 22:23
Lokalizacja: eth0
Kontakt:

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: Outlaw »

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 :)
Ostatnio zmieniony 2008-08-12, 10:19 przez Outlaw, łącznie zmieniany 1 raz.
San
Użytkownik
Posty: 203
Rejestracja: 2007-02-22, 13:56

Re: [Rozw.] Wykonanie skryptu po błędnym logowaniu.

Post autor: San »

omijanie cron'a na siłę to też nie to ;)
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]
ODPOWIEDZ