shell禁止非法IP ssh登入

wang_0720發表於2013-11-06
最近發現/var/log/secure裡有大量陌生IP嘗試ssh登入到伺服器,於是寫了下面的小指令碼把非法IP列入“黑名單”。
#!/bin/bash
#Author: Andy
#deny illegal ip login
#嘗試5次失敗就列入黑名單,寫入/etc/hosts.deny
cat /var/log/secure|grep -v 192.168|\
 
       awk '/Failed/ {print $(NF-3)}'|sort|uniq -c|\
        awk '{if($1>=5)print $2}'>/usr/local/shfile/black_name.txt
for ip in `cat /usr/local/shfile/black_name.txt`;do
#hosts.deny中如果有該IP則不重複寫入
        cat /etc/hosts.deny|grep "${ip}" >/dev/null
        if [ $? -ne 0 ];then
#hosts.deny中IP被寫入

                echo "sshd:${ip}">>/etc/hosts.deny
        fi
done

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-775809/,如需轉載,請註明出處,否則將追究法律責任。

相關文章