Janusec WAF网关安装体验

近日个人的几个小站总是被攻击,于是准备寻找一款WAF来抵挡一下。

首先尝试了modsecurity 和 naxsi ,功能是有了,但因为需要在每一台服务器上安装agent,没有管理界面,策略也不能统一维护,感觉后面维护起来不怎么方便。

无意中看到了Janusec Application Gateway (Janusec应用网关),其无agent的网关式架构设计令人眼前一亮。

根据其介绍,只需要安装一次,就可以作为基础设施供后续复用扩展,业务的服务器上不需要安装agent,且能够为证书私钥提供加密保护。

原理式这样的:

 

Janusec工作在反向代理模式,收到请求后,会先检查合法性,如果是攻击行为(Web攻击如SQL注入、XSS等,或CC攻击),就会拦截下来;如果是正常的访问请求,就会放行。我决定安装体验一番。

首先,找到Janusec网关的快速入门介绍:https://www.janusec.com/cn/quick-start/ 

然后根据介绍的步骤进行安装:

 

步骤 1: 下载

$cd ~
$wget https://www.janusec.com/download/janusec-latest.tar.gz
$tar zxf ./janusec-latest.tar.gz

步骤 2: 安装

请切换到root用户并运行 install.sh , janusec应用网关将安装在目录: /usr/local/janusec/

$su
#cd janusec-0.9.3
#./install.sh

选择 1. Master Node, 然后安装程序会:

  • 将所需文件复制到 /usr/local/janusec/
  • 将服务配置文件复制到系统服务目录
  • 将Janusec应用网关服务设置为自动启动,但首次安装时不会启动,需要在配置完成后手工启动一次.
步骤 3: 配置

PostgreSQL没有包含在发布包中,需要自行准备PostgreSQL数据库、用户名 、口令,可参考运维管理中的PostgreSQL安装。
现在我们假设您已经安装好了PostgreSQL,且数据库已创建,用户名和口令已准备好。
然后编辑 /usr/local/janusec/config.json :

{
    “node_role”: “master”,
    “master_node”: {
        “admin_http_listen”: “:9080”,
        “admin_https_listen”: “:9443”,
        “database”: {
            “host”: “127.0.0.1”,
            “port”: “5432”,
            “user”: “your_postgresql_user”,
            “password”: “your_postgresql_password”,
            “dbname”: “janusec
        }
    },
    “slave_node”: {
        “node_key”: “”,
        “sync_addr”: “”
    }
}

步骤 4: 启动网关并测试

#systemctl start janusec.service

打开浏览器(比如Chrome),使用如下地址:

http://网关IP地址:9080/

这是Janusec应用网关的第一个管理地址(后面可启用安全的管理地址)。
默认用户名:admin
默认口令:J@nusec123

配置数字证书


如果仅使用HTTP,不使用HTTPS,可跳过此步骤;但强烈建议配置证书并启用HTTPS。

使用浏览器打开 http://您的网关IP地址:9080/ 并添加一张数字证书

如果您还没有数字证书,可以从Let's Encrypt申请免费的数字证书。

使用记事本打开两个证书文件(我的证书是从Let's Encrypt申请的,一个文件名是fullchain.pem,是公开的证书文件;另一个是privkey.pem,是保密的私钥文件),将其内容复制到Web管理控制台。

配置Web应用 (必选)


使用浏览器打开 http://网关IP地址:9080/ 并添加一个应用.
填写应用名称、实际服务器的 IP:端口 等信息。

修改DNS或Hosts (必选)


生产环境,需要将修改DNS将您的域名指向网关地址。
测试环境,可直接修改您本地电脑的hosts文件: C:\Windows\System32\drivers\etc\hosts.

验证


配置完成后,验证网关是否正常工作。
打开浏览器,访问: http://your_domain_name/

https://your_domain_name/ .
如果可以正常访问,表明网关已正常工作。

WAF验证


安装配置好之后,就来检验一下WAF(Web应用防火墙)是否工作正常。

使用如下测试用例:

http://domain_name/.svn/entries
http://domain_name/test?id=1 and 1=1

这时,立即看到了阻断效果:

 

后面的使用就比较简单了,我的WAF选型就此告一段落。

如果有不清楚的地方,也可参考官方网站上的说明:https://www.janusec.com/cn/

 

posted @ 2018-08-21 22:22  _U2_  阅读(2266)  评论(0编辑  收藏  举报