新入職沒到兩個月Linux服務器就出現問題了。給外國***ssh暴力破解,然後安裝挖礦病毒,導致cpu滿了,遠程都鏈接不上,只能重裝系統,重裝完系統自己寫了一個防止暴力破解的腳本設置了定時任務,鎖定了關鍵的文件。
查看/var/log/secure 文件可以看到很多認證失敗的Failure的ip登錄信息。所以想到根據secure文件查看失敗的ip如果超過五次,那麼就把此ip寫入/etc/hosts.deny文件,禁止此ip登錄。我用了第一種方法,設置了定時任務,每分鐘執行一次。執行之後,查看secure文件就沒有那麼多失敗的信息日誌輸出了。
1、
收集 /var/log/secure 裏面的信息,若是某個IP 鏈接次數超過一定次數 ,則把此ip記錄到/etc/hosts.deny裏面。
通過crontab來執行,每分鐘執行一次。
*/1 * * * * /bin/bash /root/jackhosts/jackhosts.sh
#!/bin/bash
#jackhosts SHELL SCRIPT
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"=" $1;}' >/root/jackhosts/jackhosts.txt
DEFINE="5"
for i in `cat /root/jackhosts/jackhosts.txt`
do
IP=`echo $i|awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt $DEFINE ]
then
ipExists=`grep $IP /etc/hosts.jack |grep -v grep |wc -l`
if [ $ipExists -lt 1 ]
then
echo "sshd:$IP" >> /etc/hosts.jack
fi
fi
2、
鎖定關鍵文件系統
複製代碼
加鎖,不可修改加鎖文件
[root@jokerpro ~]# chattr +i /etc/passwd
[root@jokerpro ~]# lsattr /etc/passwd
----i--------e-- /etc/passwd
去鎖,可以修改文件
[root@jokerpro ~]# chattr -i /etc/passwd
[root@jokerpro ~]# lsattr /etc/passwd
-------------e-- /etc/passwd
複製代碼
使用chattr命令後,爲了安全我們需要將其改名xg,反正改了之後自己需要記住這個命令修改過了以後好查詢。
mv /usr/bin/chattr /usr/bin/xg