标签归档:Web Application Firewall

安利个新玩意-开源的WAF

简介

WAF-是Web Application Firewall的简称,工作在第7层。之前的iptables/nftables都是基于4层的,通过ip和端口来拦截未授权的访问,但是,不可能拦截http(s)所用的端口的是吧?放通了http(s)的访问之后,有坏东西通过http协议对你的系统搞东搞西,那iptables就无能为力了。但是,WAF,就能用来保护你的网站,不让这些坏东西来搞你。让你的系统更安全。

介绍

雷池WAF

上面就是这东西的官网,名字叫做雷池,口号是“不让黑客越雷池一步”,号称还能防0day漏洞,听起来还是挺厉害的,但实际上……完全防护所有的攻击是不可能的。他们自己报出来的测试结果里面,都没法100%拦截所有攻击的流量,误报的数据也不是0,只能说套个带80%闪避的甲,比裸奔高到不知道哪里去了。

部署效果

这个Blog是加了Cloudflare的,可以拦截很多奇奇怪怪的ip直连我服务器的80/443端口,之前也觉得说上了流量过滤,时不时也看到Cloudflare报告说拦截了多少多少攻击,还是觉得挺安全的。

于是我上了这玩意试试之后发现,Cloudflare漏掉的恶意访问还真不少啊。

雷池拦截记录
详细拦截日志

部署方式

官方网站提供了一个一键脚本,可以快速部署,系统是基于docker的,所以需要docker和docker compose。这里比较注意的是,软件需要CPU支持ssse3 指令集,如果在Proxmox上跑的话,记得需要调整CPU的类别,默认的kvm64是不支持这个指令集的,需要改成x86_64v2或者更高版本。

命令行安装完毕之后。在命令行会输出随机生成的密码。默认账号是admin。

使用

添加证书

首先,需要添加一个证书,添加方法有3种,分别是

  • 上传文件
  • 复制粘贴证书/密钥文本
  • 通过ACME(http)自动签署证书

如果是80端口没有被封的话,可以走自动签署。如果80端口不幸被封(比如国内),就只能走前两种方法了。目前雷池暂时没有更新证书的API,所以只能手动操作。

添加后端服务器

首先,添加一个默认的主机,用来匹配任意的SNI,证书啥的用默认的自签署的就行。然后再创建所需的站点,写上对应的host name,如此一来,只有访问正确的域名,才会访问到对应的网站。

需要配置的内容也不多,只需要写端口,算证书,和填一下后端的地址就行。

这样,配置就通了。

其他设置

剩下的就是代理设置之类的, 全部勾选上,源ip因为我套了一层cloudflare,就只读一层。

剩下的防护配置,保持默认就行,有兴趣可以继续探索一下,反正目前可以修改的配置也不多。