记一次服务器被ssh攻击解决方案
今天6.9,闲来无事登上了服务器管理面板,提醒攻击十几万次,我的妈呀,我一个小小的博客站,应该是没人来弄我的把,第一反应就是哪些流氓在这儿乱扫。
登上服务器查看了下登陆行为日志 : cat /var/log/secure
截图一小部分,从去年开始到现在累计的滚动大半天才看完,
再来看看统计把: cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
一个小时前清空了日志,所以现在比较少
直接来上解决方案把,google两种方案,第一种就是crontab定时执行shell脚本查登录日志,统计放入hosts.deny里面,不让你登陆
第一步:
先在 vim /etc/hosts.deny 插入你要登陆的ip不然你就的换机子登陆了
我是直接把服务器ip和自己本地ip放上去了,常用登陆ip
这一步很重要哦
sshd:0.0.0.0:allow
sshd:0.0.0.0:allow
第二步:
新建文本 :
touch block_ssh.sh
vim /root/block_ssh.sh
#! /bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list for i in `cat /usr/local/bin/black.list` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i|awk -F= '{print $2}'` if [ ${#NUM} -gt 1 ]; then grep $IP /etc/hosts.deny > /dev/null if [ $? -gt 0 ];then echo "sshd:$IP:deny" >> /etc/hosts.deny fi fi done如上过滤日志文件判断次数大于10次(脚本判断的是字符数是否大于两位数,10就是两位数,),就写入hosts.deny文件
3、将secure_ssh.sh脚本放入cron计划任务,每1分钟执行一次。
# crontab -e
*/1 * * * * sh /root/block_ssh.sh
然后重启定时器service crond restart
查看定时器执行任务列表
crontab -l
隔几分钟就可以看到日志文件有记录了
cat /usr/local/bin/black.list
再看看 cat /etc/hosts.deny 文件可以看到上面已经有记录了
二:另一种方式使用工具denyhosts 这个我就不介绍了 没用这种方法
- 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
- 本文网址:https://www.liaotaoo.cn/244.html
- 上篇文章:MYSQL查询包含指定数的sql
- 下篇文章:详解Centos7升级python 2.7至Python 3.7