CentOS7搭建JXWAF做防火墙

之前用openresty+nginx+Lua做了个WAF,但是问题太多了,nginx经常丢lua模块导致WAF不太正常
前几天重启了下服务器,WAF直接失效,部署又太复杂了,于是我利用JXWAF做了个防火墙。步骤如下

1、下载部署控制台

需要先部署好数据库,假设数据库地址为192.168.1.1,端口为3306,账号为root,密码为123456,数据库为jxwaf

1
2
3
4
5
6
7
yum install git -y   //下载git
cd /opt         // 进入opt目录
git clone https://github.com/jx-sec/jxwaf-mini-server.git //下载控制台文件
cd jxwaf-mini-server/ //进入到控制台文件目录
sh install.sh   //安装控制台
pip install -r requirements.txt   //安装requirements.txt文件
vim jxwaf2018/settings.py //修改数据库参数,例如数据库帐号、密码、地址、端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
#DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
#}

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'jxwaf',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '192.168.1.1',
'PORT': '3306',
}
}
1
2
3
python manage.py makemigrations
python manage.py migrate
nohup python manage.py runserver 0.0.0.0:80 &      //这里的80是指控制台的端口,可以改成其他端口
假设服务器IP为10.0.0.1,则打开网址 http://10.0.0.1 进行注册,注册完后登录账号,在 WAF更新-> 语义引擎更新 中选择 语义引擎版本 加载。在 WAF更新-> 人机识别更新 中 选择 人机识别版本 加载,同时点击 KEY更新 加载人机识别对应的 KEY,这步一定要先做,不然添加节点的时候会报false错误
注册账号后,可通过 jxwaf2018/settings.py 文件中的 OPEN_REGIST = True 修改为 OPEN_REGIST = False 来关闭账号注册功能,关闭后,注册按钮虽然还在,但是当你准备注册时候会提示没有权限,这就说明注册功能不能用了

2、节点部署

1
2
3
4
5
6
7
yum install git -y
cd /tmp
git clone https://github.com/jx-sec/jxwaf.git
提示: 国内服务器github下载较慢,提供百度网盘下载
https://pan.baidu.com/s/1WAt077rrOSNZj1E4X1u6pw 提取码: vcgw   //这是官方的,不是我个人的
cd jxwaf
sh install_waf.sh
运行后显示类似信息即安装成功:
1
2
nginx: the configuration file /opt/jxwaf/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /opt/jxwaf/nginx/conf/nginx.conf test is successful
假设管理中心IP为10.0.0.1,则打开网址 http://10.0.0.1 进行注册,注册完后登录账号,在WAF管理下的全局配置页面获取”api key”和”api password”
1
2
3
4
5
6
7
8
9
cd tools
python jxwaf_local_init.py --api_key=a2dde899-96a7-40s2-88ba-31f1f75f1552 --api_password=653cbbde-1cac-11ea-978f-2e728ce88125 --waf_server=http://10.0.0.1
注意:如果你是部署在公网的话,那waf_server这里就填写你的公网ip或者域名,有端口的要加端口,支持https
格式:http://ip   或者http://domain
   http://ip:port http://domain:port
https://ip https://domain
   https://ip:port https://domain:port
根据自己的情况填写
api_key 为全局配置页面中"api key"的值,api_password为"api password"的值,运行完成后,显示类似信息即安装成功
1
2
3
4
5
6
config file:  /opt/jxwaf/nginx/conf/jxwaf/jxwaf_config.json
config result:
init success,access_id is d7b9fe12-606c-4ca8-bcb5-3dde9853e5f4,access_secret is af5cfc8d-d564-44dd-ba11-f1fecdf95706
auth result:
try to connect jxwaf server auth api_key and api_password,result is True
如果结果是False的话,那就说明你没有加载WAF语义引擎和人机识别,需要先加载才可以
1
/opt/jxwaf/nginx/sbin/nginx    //启动openresty
openresty会在启动或者reload的时候自动到jxwaf管理中心拉取用户配置的最新规则,之后会定期同步配置,周期可在全局配置页面设置。
如果你之前的nginx配置跟我一样,
1
2
3
/etc/nginx/nginx.conf
```
调用

/etc/nginx/conf.d

1
底下的文件的话,要在

/opt/jxwaf/nginx/conf/nginx.conf

1
最底下,也就是最后一个中括号上面加上

include /etc/nginx/conf.d/*.conf;

1
2
这句.
###### 如果这个时候报

nginx: [emerg] unknown log format “main” in /etc/nginx/conf.d/hexo.conf:6

1
的话,就把

/opt/jxwaf/nginx/conf/nginx.conf

1
中的

log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘“$http_user_agent” “$http_x_forwarded_for”‘;
`

井号注释给去掉

3、JXWAF使用

I. 添加网站

1、点击网站配置—>添加网站
2、输入域名
3、协议选择http、https
4、https强制跳转打勾
5、公钥在你证书里面,比如我是nginx使用的证书,那公钥证书就是crt文件,私钥就是key文件,将crt文件用文档编辑器打开就可以得到,私钥也一样用文档编辑器将key文件打开就能得到
6、输入后端服务器ip/域名,同第一步
7、后端服务器协议选http
8、waf是否存在代理,选择否
9、点击确定
avatar

II.防护配置

1、这个时候你会看到
攻击ip处理
cc攻击防护
cc攻击ip处理是打叉的并显示未开启
说明你还没有配置相应的防护
avatar

2、点击右边的防护配置,除了日志脱敏外,其余都打勾,点击右边的配置进行配置,根据自己的需求配置即可。
avatar
avatar

3、需要注意的是有个选项叫做cc攻击ip处理的,里面有个攻击ip处置,千万不要填0,0代表永久封禁,为了更好的测试,可以设置为300秒,也就是五分钟,如果设置0的话,你测试cc攻击会永久被拉黑,然后显示一个500内部错误的页面,只有重启光猫重新获取ip才能再进行测试
avatar
avatar

传送门:

JXWAF官网:JXWAF
JXWAF官方文档:JXWAF官方文档

关注我的公众号吧~戴戴的Linux

文章目录
  1. 1. 之前用openresty+nginx+Lua做了个WAF,但是问题太多了,nginx经常丢lua模块导致WAF不太正常
  2. 2. 前几天重启了下服务器,WAF直接失效,部署又太复杂了,于是我利用JXWAF做了个防火墙。步骤如下
  • 1、下载部署控制台
    1. 1. 假设服务器IP为10.0.0.1,则打开网址 http://10.0.0.1 进行注册,注册完后登录账号,在 WAF更新-> 语义引擎更新 中选择 语义引擎版本 加载。在 WAF更新-> 人机识别更新 中 选择 人机识别版本 加载,同时点击 KEY更新 加载人机识别对应的 KEY,这步一定要先做,不然添加节点的时候会报false错误
    2. 2. 注册账号后,可通过 jxwaf2018/settings.py 文件中的 OPEN_REGIST = True 修改为 OPEN_REGIST = False 来关闭账号注册功能,关闭后,注册按钮虽然还在,但是当你准备注册时候会提示没有权限,这就说明注册功能不能用了
  • 2、节点部署
    1. 1. 运行后显示类似信息即安装成功:
    2. 2. 假设管理中心IP为10.0.0.1,则打开网址 http://10.0.0.1 进行注册,注册完后登录账号,在WAF管理下的全局配置页面获取”api key”和”api password”
    3. 3. openresty会在启动或者reload的时候自动到jxwaf管理中心拉取用户配置的最新规则,之后会定期同步配置,周期可在全局配置页面设置。
    4. 4. 如果你之前的nginx配置跟我一样,
    5. 5. 井号注释给去掉
  • 3、JXWAF使用
    1. 1. I. 添加网站
    2. 2. II.防护配置
  • 传送门:
    1. 1. JXWAF官网:JXWAF
    2. 2. JXWAF官方文档:JXWAF官方文档


  • 本站总访问量 本文总阅读量