nginx环境安装配置fail2ban屏蔽攻击ip
安装 fail2ban
yum install -y epel-release
yum 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 = true
port = http
filter = nginx-403-cc
logpath = /opt/nginx/logs/access.log
findtime = 6
bantime = 900
maxretry = 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 start
Starting fail2ban: [ OK ]

攻防效果的演示
fail2ban 策略生效之前:

生效之后:

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

本文来自阿里云文档中心!!!
nginx环境安装配置fail2ban屏蔽攻击ip的更多相关文章
- Linux Nginx环境安装配置redmine3.1
作者博文地址:https://www.cnblogs.com/liu-shuai/ 环境: CentOS-6.5+Nginx-1.8.0+Redmine-3.1.1+Ruby-2.0 1.配置环境 1 ...
- nginx初级安装配置
nginx初级安装配置 转自:(lykyl原创)http://www.cnblogs.com/lykyl/archive/2012/11/21/2781077.html 实验环境:系统 CENTOS5 ...
- nginx php-fpm安装配置 CentOS编译安装php7.2
CentOS编译安装php7.2 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是 ...
- Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道
XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...
- [转载]SharePoint 2013测试环境安装配置指南
软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...
- nginx+tomcat安装配置
nginx+tomcat安装配置 # nginx+tomcat安装配置 #创建网站目录 mkdir -p /www/wwwroot cd /www #安装配置 wget http://mirrors. ...
- Nginx的安装配置和tomcat负载均衡
Nginx简介 什么是nginx? Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开发,官方测试ngi ...
- Nginx+nagios安装配置
Nginx+nagios安装配置 [root@Nagios ~]# vi /etc/nginx/nginx.conf server { listen ; server_name localhost; ...
- 基准测试-jmeter压力测试activeMQ之一环境安装配置
jmeter压力测试activeMQ 摘要:linux(CentOS)单机activeMQ安装.window(2008Server)Jmeter配置activeMQ包.Jmeter配置linux监控 ...
随机推荐
- JS的异步世界
前言 JS的异步由来已久,各种异步概念也早早堆在开发者面前.可现实代码中,仍然充斥了各种因异步顺序处理不当的bug,或因不好好思考,或因不了解真相.今天,就特来再次好好探索一番JS的异步世界. 01 ...
- vue-cli之打包多入口配置
在使用vue-cli初始化vue项目时,默认打包为单入口,有时候一个项目可能会有不同入口,在这种情况下,就需要我们稍微修改下webpack配置文件了,具体步骤如下: 1.修改webpack.base. ...
- MySQL数据库基本用法-查询
查询的基本语法 select * from 表名; from关键字后面写表名,表示数据来源于是这张表 select后面写表中的列名,如果是*表示在结果中显示表中所有列 在select后面的列名部分,可 ...
- 安卓面试题 Android interview questions
安卓面试题 Android interview questions 作者:韩梦飞沙 2017年7月3日,14:52:44 1. 要做一个尽可能流畅的ListView,你平时在 ...
- BZOJ.3504.[CQOI2014]危桥(最大流ISAP)
BZOJ 洛谷 这种题大多是多源多汇跑网络流.往返\(a_n/b_n\)次可以看做去\(a_n/b_n\)次,直接把危桥能走的次数看做\(1\). 先不考虑别的,直接按原图建模:危桥建双向边容量为\( ...
- 手动添加jar包到本地仓库
最近写一个小项目需要用到阿里大鱼的短信功能,安装官网提供的maven及demo做了下测试,在测试过程中,发现导入的pom文件是无效的,也就是说本地的maven仓库中并么有我们pom中的依赖.于是我在网 ...
- 护眼党必备良心app
这几天用电脑用得厉害,眼睛经常感到疲劳,寻思着买个好点的蓝光眼镜.本来已经看上一个100+RMB的“高端”防蓝光眼镜,结果逛知乎发现了这两个app,能直接让电脑和手机屏幕过滤掉蓝光从而有效缓解视觉疲劳 ...
- [P1005][NOIP2007] 矩阵取数游戏 (DP+高精)
我不会高精…… 也不会DP…… 这道题即考高精又考DP…… 我要死了 给一个不是高精的代码(当然不能满分) #include<cstdio> #include<iostream> ...
- [P2704][NOI2001]炮兵阵地 (状态压缩)
最近抄状压的代码…… 然后盯上了这个题目 调试了一个晚上,终于A了 但是是对着宝典打的,我依然不懂状态压缩 那么下一步先把装压放一放,学一下树形DP吧 #include<cstdio> # ...
- 关于git的使用记录总结
1.解决Windows下git换行符报警问题 git config --global core.autocrlf false 2.撤销add的文件退出暂存区 git reset --mixed 3.g ...