有段時間發(fā)現(xiàn)集群異常卡頓祭隔。擔(dān)心的事情終于發(fā)生了货岭,
使用命令 lastb 查看了一下,我的天呢疾渴,好多未知的IP千贯,我隨便復(fù)制粘貼了一個到百度查詢了一下,我日搞坝,美國的搔谴。后來還在網(wǎng)上的IP黑名單中發(fā)現(xiàn)了攻擊我們服務(wù)器的IP。下面是從發(fā)現(xiàn)到解決的一個過程:
lastb查看的是 cd /var /log/btmp中的內(nèi)容
last 查看的是 cd/var /log/wtmp中的內(nèi)容
發(fā)動SSH攻擊的IP地址列表
http://antivirus.neu.edu.cn/scan/ssh.php
統(tǒng)計ip出現(xiàn)的次數(shù)
https://blog.csdn.net/keketrtr/article/details/78606237
cat /var/log/btmp | awk '{print$(NF-1)}' |sort |uniq -c |sort -k 1 -n -r |head -20
參考網(wǎng)址
https://blog.csdn.net/qq_30553773/article/details/78705079
二桩撮、方法:讀取/var/log/secure敦第,查找關(guān)鍵字 Failed
處理SSH攻擊的基本流程
首先查看我們的服務(wù)器是否存在SSH攻擊
步驟一:
使用命令 lastb -20 查看峰弹,如果有大量的未知IP, 加上時間分析。極短時間內(nèi)出現(xiàn)多次芜果,則可以確定受到SSH攻擊
查看登陸失敗的用戶IP
cat /var/log/secure | grep 'Failed password'
如果是SSH 攻擊鞠呈,會有很多的IP被列出來
查看cat /etc/hosts.allow (這個文件是存放 允許訪問服務(wù)器的所有IP的內(nèi)容,可以簡單理解為白名單)
查看cat /etc/hosts.deny (這個文件存放的是 不允許訪問服務(wù)器的IP內(nèi)容 右钾, 簡單理解為黑名單)
步驟二:
然后開始寫腳本蚁吝,檢測多次出現(xiàn)的IP
并且將這些IP存放到 hosts.deny 黑名單下。
步驟三:
首先創(chuàng)建存放實施攻擊的ip的文本 命名為:security.txt 放在目錄root下
創(chuàng)建腳本文件 命名為:security.sh 放在目錄root下
! /bin/bash
cat /var/log/secure|awk '/Failed/{print 2"="
i |awk -F= '{print
i|awk -F= '{print
{#NUM} -gt 1 ]; then
grep ? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
步驟四:
腳本創(chuàng)建好之后舀射,將腳本的權(quán)限更改為可執(zhí)行權(quán)限
chmod 777 security.sh
SSH攻擊是每時每刻都在發(fā)動攻擊的窘茁,所以我們需要將腳本添加到定時任務(wù)中,定時的執(zhí)行
cat /etc/crontab (這個文本是存放定時腳本的文本)
步驟五:
將腳本添加到定時任務(wù)
crontab -e
*/1 * * * * root /root/security.sh (每分鐘執(zhí)行一次后控,執(zhí)行用戶是root 執(zhí)行的腳本目錄是/root/security.sh)
步驟六:
查看是否將腳本添加到定時任務(wù)
crontab -l
如果出現(xiàn)我們的定時執(zhí)行任務(wù)庙曙,則添加成功
后期如果需要刪除此定時任務(wù)的話,
crontab -r
步驟七
使用命令 lastb -20 (查看嘗試登錄我們服務(wù)器浩淘,但是登陸失敗的IP)
成功的看到捌朴,那些之前一秒鐘發(fā)動幾十次攻擊的IP不存在了,
原因一是:腳本對IP進行篩選之后张抄,將識別為攻擊者IP的砂蔽,都放入了黑名單中,
原因二是:如果攻擊者嘗試用別的新的IP 署惯,也就是沒有被寫入到黑名單的IP左驾, 我們的腳本再次檢測,將這些新的攻擊IP也寫入黑名單
這樣极谊,攻擊者的IP會越來越少诡右。
關(guān)于crontab的使用
https://blog.csdn.net/wuasdf123456/article/details/51722753
目前暫時是這個樣子解決了,不知道大神還有沒有更好的方式了G岵7恰!歡迎探討咙边!