开发者社区> 问答> 正文

ECS Linux云服务器tengine环境fail2ban如何屏蔽攻击ip


基于 Tengine 环境的 Web 环境遭遇了CC攻击可以通过类似 ngx_lua_waf 的方式拦截攻击,生成一些类似 403 或者 30 2的状态码。这些防御避免了业务被持续攻击,但是还是会消耗服务器资源一旦达到一定数量级,也会严重影响到系统的性能,所以通过分析 nginx的访问日志彻底屏蔽这些 IP。 本文给出一个Tengine 环境结合 fail2ban 实现自动封禁 HTTP 状态码为 403 的访问者 IP 地址的示例。
Tengine 的环境配置和 ngx_lua_waf 的设置本文不再赘述,重点描述 fail2ban 的安装和配置。

安装 fail2ban

yum install -y epel-releaseyum install -y fail2ban

设置 Nginx 的访问日志格式


这个是设置 fail2ban 封禁的关键因素 log_format  main  '$remote_addr $status $request $body_bytes_sent [$time_local]  $http_user_agent $http_referer  $http_x_forwarded_for $upstream_addr $upstream_status $upstream_cache_status $upstream_response_time';access_log  logs/access.log  main;

攻击日志的信息: 42.120.74.xxx 403 GET /ethnicity.php?id=../opt/nginx/conf/nginx.conf HTTP/1.1 2090 [03/Dec/2015:04:19:57 +0800]  curl/7.29.0 -  - - - - -


配置 fail2ban


CC 攻击的 IP 会经过 Nginx和 lua 处理后,访问状态变为 403,根据 Nginx的访问日志格式,设置 fail2ban 过滤这些 IP 和 403 状态,加入黑名单攻击的 IP 就被临时封禁了
1) 新建 fail2ban 的规则文件 /etc/fail2ban/filter.d/nginx-403-CC.conf,这个和 nginx 的日志 log_format 设置位置是吻合的,这个很关键: # cat /etc/fail2ban/filter.d/nginx-403-cc.conf[Definition]failregex =403.(GET|POST)*.*HTTP/1.*$ignoreregex =

2)  新建 fail2ban 的配置文件 /etc/fail2ban/jail.d/nginx-anti-403.conf。这里配置的是封禁的规则相关的,日志的路劲是自定义的,需要和当前的路劲是一致的: # cat /etc/fail2ban/jail.d/nginx-anti-403.conf[nginx-anti-403]enabled = trueport = httpfilter = nginx-403-cclogpath = /opt/nginx/logs/access.logfindtime = 6bantime = 900maxretry = 9时间和频率参数注释:findtime(检测多少秒内的日志)bantime (屏蔽攻击ip的时间为多少秒)maxretry (达到多少次就启动屏蔽)

3) 修改 fail2ban 的防火墙相关的配置
当前版本 fail2ban 在执行 iptables 命令时,会加上了 -w 参数防止规则冲突,iptables-1.4.20 以后才有这个参数,而 CentOS 6 的 iptables 是1.4.7,导致 iptables 规则添加失败,解决方法是删除 iptables -common.conf 中的 执行如下命令即可无任何的返回就是成功的: #sed -i 's/iptables = iptables/iptables = iptables/' /etc/fail2ban/action.d/iptables-common.conf
4) 启动 fail2ban # /etc/init.d/fail2ban startStarting fail2ban:                                         [  OK  ]


攻防效果的演示


fail2ban 策略生效之前:

生效之后:

再看下防护墙规则(这个规则是 fail2ban 自动添加的):



如果问题还未能解决,您可以到阿里云社区进行 免费咨询,或联系 云市场商家寻求帮助。

展开
收起
boxti 2017-10-24 10:17:18 2110 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载