shell只允許某些ipssh登錄,配合iptables最好

本人只是一枚中職生小白,在管理學校的網站,這些腳本都是我爲了管理這些網站自己寫的,請高手不要見笑,請多指點指點,謝謝。如果沒有在代碼中體現的變量,已經被我定義成了環境變量。

大概過程:請判斷是不是ssh登錄的,如果是再判斷ip,如果不是這三個ip裏的,就把它的進程刪了,並把最近十次登錄的消息,上傳到我的ftp。

#!/bin/bash
source ~/.bash_ftp
IP1='192.168.19.88'
IP2='172.18.0.8'
IP3='192.168.19.100'
UPID=$(ps |grep bash |awk '{print $1}')
#IPSSH=$(last |grep pts/ |head -1|awk '{print $3}')
IPSSH=$(who am i |cut -d "(" -f 2- |cut -d ")" -f -1)
IFTTY=$(who am i |awk  '{print $2}' |cut -d '/' -f -1)
LOGNAME="sshlogin_"$(date +%F_%H_%M)
if [ "$IP1" != "$IPSSH" ] &&  [ "$IP2" != "$IPSSH" ] &&  [ "$IP3" != "$IPSSH" ] && [ "$IFTTY" = "pts" ]; then
        echo "異常情況:"$(last |head -1) >/tmp/$LOGNAME
        echo "****最近幾次登錄情況****" >>/tmp/$LOGNAME
        last |head -10 >>/tmp/$LOGNAME
        FILE="/tmp"
        LOGINDIR="loginlog"
        cd $FILE
        ftp -n $FTPHOST >/dev/null <<END
        user $USERNAME $PASSWORD
        cd $LOGINDIR
        mput $LOGNAME
        quit
END
        rm -rf /tmp/$LOGNAME
        kill -9 $UPID

fi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章