Dragon
  • 注册、登陆后即可全站无广告畅快浏览本博客了!
  • 本博客已开启支持百度AI智能内容自动审核机制!
明月登楼明月登楼  2021-09-04 01:50 明月登楼的博客 隐藏边栏 |   4 条评论  109 
文章评分 12 次,平均分 5.0
导语: Fail2ban 如其名,根据规则找出有问题的 IP(测试 fail),然后 ban 掉。 Fail2ban 不仅可以扫描 Nginx 日志,也可以扫描 SSH、httpd、SMTP 等多种应用软件的日志,并按照配置执行封禁操作。 实际中 Fail2ban 常用于扫描 SSH 日志,防止 SSH 暴力破解。

今天明月给大家分享个 Fail2ban 的过滤(Filter)规则,有关 Fail2ban 的文章大家可以参考【服务器全面使用 Fail2Ban 初见成效】和【使用 Fail2ban 禁止垃圾采集爬虫,保护 Nginx 服务器】等文了解,总之 Fail2ban 是Linux下不可或缺的安全防御工具,特别是针对 Nginx 的站点日志文件进行实时分析防御效果非常的出众,当你发现自己的站点被暴力破解、恶意爬虫骚扰、采集等等的时候明月非常建议你试试 Fail2ban。

今天分享给大家的这个过滤规则比较具有综合性,能防范暴力破解又能屏蔽拦截恶意骚扰请求,明月尤其喜欢的就是对 xmlrpc.php 的访问自动过滤允许来自安卓 WordPress 客户端的请求,另外对于那些使用随机伪装 UA的请求拦截效果也非常的好。

规则代码:

[Definition]
failregex = ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+XDEBUG.+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+GponForm.+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+phpunit.+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+ajax-index\.php .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+sellers\.json .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+adminer\.php .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+wp-configuration\.php.+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+ThinkPHP.+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+wp-config.+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+dede\/login\.php .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+plus\/recommend\.php .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+e\/install\/index.php .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+m\/e\/install\/index\.php .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+e_bak\/install\/index.php .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+\.aspx .+$
            ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) .+\.act .+$
            ^<HOST>.*] "(GET|POST|HEAD) .*xmlrpc\.php.*
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Mozilla/5\.0 \(Windows NT 6\.1\; rv\:60\.0\) Gecko\/20100101 Firefox\/60\.0.*"$
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Photon.*"$
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Mozilla\/5\.0 zgrab\/0\.x.*"$
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.XTC.*"$
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.python-requests.*"$
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.bidswitchbot.*"$
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Google-adstxt.*"$
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Apache-HttpClient.*"$
            ^<HOST>.*] "POST .*HTTP\/1\.1.*
            ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/1\.1.*"*.Go-http-client\/1\.1.*"$
            ^<HOST> .* ".*\\x.*" .*$
            ^<HOST> -.*"(GET|POST|HEAD) .+wp-login\.php .*HTTP\/1\.1.*
            ^<HOST> -.*"(GET|POST|HEAD) .*wp-includes/wlwmanifest.xml .*HTTP\/1\.1.*
ignoreregex = ^<HOST>.*] "POST /xmlrpc\.php\?for=wpandroid*
              ^<HOST>.*] "POST /wp-cron\.php\?doing_wp_cron=.*
datepattern = {^LN-BEG}%%ExY(?P<_sep>[-/.])%%m(?P=_sep)%%d[T ]%%H:%%M:%%S(?:[.,]%%f)?(?:\s*%%z)?
              ^[^\[]*\[({DATE})
              {^LN-BEG}

简单的给大家说明一下:

failregex = ^<HOST>.*] "(GET|POST|HEAD) .*xmlrpc\.php.*
ignoreregex = ^<HOST>.*] "POST /xmlrpc\.php\?for=wpandroid*

上述两条规则就是防止 Wordpress xmlrpc 攻击的规则,并且让 WordPress fo android 客户端正常访问工作,有关 WordPress 手机客户端大家可以参考【如何使用 WordPress 手机客户端?】和【WordPress 站点实现评论秒回复】等文章。

failregex = ^<HOST> .* ".*\\x.*" .*$

这个规则防止 URL 中的特殊字符攻击的,可以过滤掉如下这样的访问记录:

185.202.1.188 - - [23/Jun/2020:08:18:33 +0800] "\x03\x00\x00/*\xE0\x00\x00\x00\x00\x00Cookie: mstshash=Administr" 400 157 "-" "-"

不知道您见没见到过这样的访问记录,反正明月是真的见过不少次了!都是转义符想拦截都不知道到如何下手?嘿嘿,现在可以搞定了。

将上面分享的过滤规则单独保存为 nginx-custom.conf 文件到/etc/fail2ban/filter.d 目录下,然后打开/usr/local/nginx/conf/nginx.conf 编辑添加这个 nginx-custom 过滤的拦截条件如下:

[nginx-custom]
enabled  = true
port     = http,https
filter   = nginx-custom
action   = iptables-multiport[name=BadBots, port="http,https"]
logpath  = /home/wwwlogs/*.log
maxretry = 1
bantime  = 86400

然后保存,重启 Fail2ban 就可以生效进行实时分析拦截了,说实话这个拦截条件有点儿苛刻了,触发一次就屏蔽 IP 一整天确实够狠,呵呵!

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

明月登楼给明月登楼打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付

本文来自投稿,不代表明月登楼的博客立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

明月登楼
明月登楼 关注:1    粉丝:0
玉满斋(www.ymanz.com)网站创始人,☑玉器爱好者 ☑微博控 ☑手机控 ☑历史控 ☑宅 ☑网络控 ☑Wordpress控

发表评论

表情 链接 私密 格式 签到
  1. 遙望地平線盡頭
    遙望地平線盡頭 评论达人 LV.3 来自天朝的朋友 火狐浏览器 91.0 Windows 10

    很久前也用过,就是发现好像恶意蜘蛛爬虫永远也无法拦截屏蔽完!真的是没完没了! [流汗]

    板凳 19天前
    0 0 回复
  2. 运维学习笔记
    运维学习笔记 评论达人 LV.1 来自天朝的朋友 谷歌浏览器 89.0.4389.116  Android 11 Redmi Note 8 Pro Build/RP1A.200720.011

    这个牛,支持一下! [鼓掌]

    沙发 20天前
    0 0 回复
扫一扫二维码分享