linux系統shell腳本實現 惡意掃描服務器密碼 自動屏蔽

    最近在香港和臺灣各買了一臺VPS服務器,在調試過程中發現,琢磨這兩臺服務器的 小黑 太多了,各種密碼探測 掃描,他大爺的真是閒的蛋疼的人很多啊。我就先裝了一個denyhost頂住,就幾天的時間,收了不少報警郵件,發現denyhost沒能吧哪些惡意IP地址加到/etc/hosts.deny裏面,後面調試了一下能加進去了,發現屏蔽無效,後來排查了一下,發現是openssh編譯安裝時有些模塊沒添加導致的。 後面改爲用iptables 直接屏蔽,效果還行,比較討厭的是有些時候需要我手動干預。

    此時很想自己寫一個腳本實現全自動屏蔽,但是最近太忙了,一直沒有時間,在網上查資料時正好看到,“撫琴煮酒”  http://andrewyu.blog.51cto.com/1604432/1074650 寫的一個自動屏蔽的腳本,準備收了直接使的,放到服務器後發現腳本運行報錯,於是乎 。。。。。。。。就和team裏的人弄了一個,用 /etc/hosts.deny 和iptables 一塊屏蔽,因爲不是所有的服務器/etc/hosts.deny  都生效,防火牆比較來勁,發現異常IP直接全部屏蔽。
 

 more /workspace/crontab/denyhost.sh
#!/bin/bash

log=/workspace/crontab/denyhostmessage
DEFINE=100
grep 'Failed password' /var/log/messages |awk '{print $(NF-3)}' |sort |uniq -c > $log

for i in `cat $log|awk '{print $2}'`
do
        NUM=`grep $i $log|awk '{print $1}'`
        if [ $NUM -gt $DEFINE ]
        then
        grep $i /etc/hosts.deny > /dev/null
                if [ $? -gt 0 ]
                then
                echo "ALL:$i" >> /etc/hosts.deny
                iptables -I INPUT -s $ip -j DROP
                fi
        fi
done

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