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
轉載于:https://blog.51cto.com/q8886888/1169380
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的shell只允许某些ipssh登录,配合iptables最好的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 改变QTableWidget 行高
- 下一篇: 产品观,来自微信张小龙的