Centos如何設置ip黑名單,防止被攻擊

今天在登錄自己的華爲雲的時候,發現一個提示。如下圖

大致意思是什麼呢?警告就不管了。

看第二行

提示我,上次登錄失敗是幾分鐘前,自上次登錄成功以來。有11803次登錄嘗試失敗。

我的天。。。明顯是有人再用暴力破解的方式在嘗試我的密碼。至少我不會手動去登錄失敗1萬多次

那麼問題來了,如何解決這種問題。最好的辦法就是加入黑名單,讓他無法進行登錄嘗試。

centos7用的是firewall 添加單個黑名單只需要把ip添加到 /etc/hosts.deny

我們打開來看看

vim /etc/hosts.deny

發現,這裏面是有默認的兩個選項。沒有任何封禁的ip在內。

第一種方式,就是直接添加ip在這裏。

sshd:192.168.1.147:deny

添加在後面,保存退出即可。

第二, 在網上翻來翻去,發現了個不錯的腳本。

多次登錄失敗,既封禁掉ip的腳本,防止暴力破解。超過5次,就添加到黑名單中去。

創建腳本

vim /usr/local/bin/secure_ssh.sh
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
for i in `cat  /usr/local/bin/black.txt`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
   if [ $NUM -gt 5 ];then
      grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done

創建一個記錄登錄失敗次數的文件 

touch /usr/local/bin/black.txt

添加一個定時任務,每5分鐘執行一次。

crontab -e

添加:

*/5 * * * *  sh /usr/local/bin/secure_ssh.sh

保存退出,搞定。

查看一下黑名單列表是否有記錄。

直接嚇了一跳。這麼個。。

那在看看,哪個記錄超過5次了。

發現,上面登錄超過6次的,已經被屏蔽掉了。

搞定收工。

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