SFTP login a /var/log/wtmp

Ciernik Tomas tomas at ciernik.sk
Mon Aug 10 18:32:37 CEST 2009


Jan Pechanec  wrote / napísal(a):
> On Fri, 7 Aug 2009, Jan Pechanec wrote:
> 
>>> mam napisany skript, ktory po prihlaseni uzivatela kontroluje zdrojovu IP
>>> spojenia prostrednictvom vystupu last. Ak tato IP nie je zo zoznamu IP adries,
>>> z ktorych sa dany uzivatel bezne prihlasuje, posle mu SMS s oznamom o uspesnom
>>> prihlaseni.
>> 	nenapsal jsi to, takze predpokladam ze to delas ze system-wide shell 
>> profile skriptu.

Ospravedlnujem sa za chybajucu informaciu.

Nie, kazdy uzivatel to ma definovane vo svojom profile. Hlavne kvoli 
tomu, ze ma kazdy ine telefonne cislo a ip adresu.

>>
>>> Problem je, ze toto sice funguje podla mojich predstav pri prihlasovani sa na
>>> klasicku ssh session, ale nie pri prihlaseni sa na sftp-server.
>>>
>>> Rad by som sa teda opytal - je nejaky sposob ako dosiahnut, aby aj prihlasenia
>>> na sftp server boli zaznamenavane do /var/log/wtmp?
>> 	/etc/ssh/sshrc
> 
> 	jen pozor na to, ze u bezneho SSH pripojeni se pouzije ~/.ssh/rc 
> pokud existuje, a /etc/ssh/sshrc pouze pokud tomu tak neni.
> 
> 	u SFTP se naopak ~/.ssh/rc ignoruje a pouzije se rovnou ten z etc. 
> Urcite by slo udelat ten skript tak, ze ho budes poustet jak ze system shell 
> profile tak z rc a tim zamezis, ze by ti do toho uzivatel mohl kecat.

Nech kludne keca - je to informacia prenho, nie pre mna. On vie, kedy sa 
prihlasuje, a ked mu pride sprava neopravnene, vie na koho sa obratit.

> 
>> 	viz "man sshd"
> 
> 	myslim ze tam neni info z toho druheho odstavce.
> 

Priznam sa, preluskal som prislusnu cast viackrat a bud som slepy alebo 
blby, ale jednoducho z nej nedokazem vytiahnut nic pouzitelne.

Pre istotu sem prikladam cely postup, co sa vlastne deje pri prihlaseni.

v subore ~/.cshrc je volany skript, ktory pomocou prikazu last zisti, 
odkial sa dany uzivatel prihlasil. Zistenu IP adresu porovna so suborom, 
kde je definovany zoznam IP adries, odkial sa dany uzivatel prihlasuje. 
Tento subor si kazdy uzivatel definuje sam.

Ak skript zisti, ze zdrojova IP adresa spojenia je definovana v tomto 
subore, konci. V opacnom pripade posle uzivatelovi SMS.

No a tu nastava moj problem, pretoze v pripade SFTP loginu vracia last 
ip adresu posledneho spojenia prostrednictvom SSH, cim sa cely vyssie 
uvedeny postup stava nefunkcnym.

Pre uplnost prikladam spominany skript a ukazku suboru s definiciami IP 
adries

 > cat /usr/local/bin/check-login.sh
LAST_PATH=/usr/bin/last
AWK_PATH=/usr/bin/awk
GREP_PATH=/usr/bin/grep
SMS_CONTROLLER_PATH='/usr/local/bin/rscriptc -addr 127.0.0.1 -port 1030 
-quiet -mac '
USERNAME=`whoami`

LAST_LOGIN_IP=`$LAST_PATH -n 1 $USERNAME | $AWK_PATH '{ split (\$0, a, " 
"); print ":"a[3]";" }' | $GREP_PATH -v -f ~/.known-ip`
if [ ${#LAST_LOGIN_IP} -gt 0 ]; then
   $SMS_CONTROLLER_PATH "0\;\;$1\;\;Uzivatel\ $USERNAME\ sa\ uspesne\ 
prihlasil\ na\ `hostname`\ z\ IP\ adresy\ $LAST_LOGIN_IP" &
fi

 > cat .known-ip
:192.168.10.20;
:192.168.5.
:192.168.6.



More information about the Users-l mailing list