龙行博客

走路看风景,经历看人生,岁月留痕迹,人生留轨迹,17的历史,18的豪情,时间的匆忙,人生的风景,放开心胸往前走,成功再远行,放开理想往前走,梦想再行动。
现在位置:首页 > 杂货分享 > 个人随笔 > 记一次服务器被ssh攻击解决方案

记一次服务器被ssh攻击解决方案

龙行    个人随笔    2019-6-9    22    0评论    本文已被百度收录点击查看详情

今天6.9,闲来无事登上了服务器管理面板,提醒攻击十几万次,我的妈呀,我一个小小的博客站,应该是没人来弄我的把,第一反应就是哪些流氓在这儿乱扫。

登上服务器查看了下登陆行为日志 : cat /var/log/secure

shell

截图一小部分,从去年开始到现在累计的滚动大半天才看完,

再来看看统计把: cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'

shell

一个小时前清空了日志,所以现在比较少


直接来上解决方案把,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 这个我就不介绍了 没用这种方法


评论一下 分享本文 赞助站长

赞助站长X

扫码赞助站长
联系站长
龙行博客
  • 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
  • 本文网址:https://www.liaotaoo.cn/244.html
  • 上篇文章:MYSQL查询包含指定数的sql
  • 下篇文章:详解Centos7升级python 2.7至Python 3.7
  • linux
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论
快捷导航
联系博主
在线壁纸
给我留言
光羽影视
音乐欣赏
返回顶部