请教一个脚本?

发布于 2022-07-24 00:52:20 字数 1060 浏览 20 评论 9

#! /bin/bash
# 获取前 1 分钟内的 secure 记录,统计 ssh 认证失败的 IP 和其 失败次数
SCANNER=`grep "`date "+ %e %H:%M" -d "-1min"`" /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $1"="$2;}'`

for i in $SCANNER
do
       # 取认证失败次数
       NUM=`echo $i|awk -F= '{print $1}'`

       # 取其 IP 地址
       IP=`echo $i|awk -F= '{print $2}'`

       # 若其在失败次数超过 5 次且之前没有被阻断过,那么添加一条策略将其阻断,并记录日志
       if [ $NUM -gt 5 ] && [ -z "`iptables -vnL INPUT|grep $IP`" ]
       then
               iptables -I INPUT -s $IP -j DROP
               echo "`date` $IP($NUM)" >> /var/log/scanner.log
       fi
done

我想问一个下这个脚本具体怎样用?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

年华零落成诗 2022-07-24 03:35:09

支持版主~~~~~~

学无止境

奈何桥上唱咆哮 2022-07-24 03:35:00

原帖由 lihangel 于 2006-5-30 20:49 发表
什么呀,记录是记录了,根本就不让ssh连接了!!!!

如果还继续让访问 ssh,那这个脚本还有什么意义呢?
在试一个东西之前,最好先明白他的功能,这是最起码的

春夜浅 2022-07-24 03:33:38

什么呀,记录是记录了,根本就不让ssh连接了!!!!

在默认状态没有配置IPTABLE时,在第一次就会失败

[ 本帖最后由 lihangel 于 2007-1-17 01:00 编辑 ]

江南烟雨〆相思醉 2022-07-24 03:32:55

高手高手,我还没有到这个level。
学习ing

白龙吟 2022-07-24 03:28:56

用crontab来实现并不好,你可以在脚本中主程序放入一个while的循环里,不断地读取/var/log/secure,然后放在rc.local里

北陌 2022-07-24 03:25:37

搞定了,原来是用crontab命令.谢谢platinum的帮助。

烟若柳尘 2022-07-24 03:24:58

原帖由 platinum 于 2006-5-29 16:20 发表
让这个脚本每分钟执行一次

谢谢LZ的回复,我真的很莱,可不可以说说具体的执行命令?

赢得她心 2022-07-24 03:17:50

让这个脚本每分钟执行一次

故事与诗 2022-07-24 03:15:55

没人理吗?要不要把这个脚本加到/etc/rc.d/rc.local里?我用ssh登录服务器并且故意输入错的密码,可是在/var/log/scanner.log找不到相关的内容耶.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文