3

docker上面部署nginx-waf 防火墙“modsecurity”,使用CRS规则,搭建WEB应用防火墙 - Ne...

 1 year ago
source link: https://www.cnblogs.com/netcore3/p/17315736.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

web防火墙(waf)免费开源的比较少,并且真正可以商用的WAF少之又少,modsecurity 是开源防火墙鼻祖并且有正规公司在维护着,目前是https://www.trustwave.com在维护,不幸的是2024 年 7 月将不再维护交还开源社区管理,Trustwave目前打造自己的web防火墙,至于是否免费开源就不得而知了。ModSecurity目前依然是开源,免费的WAF一哥,我们就先用着吧,商业WAF费用太贵。

Docker 安装

Docker的地址是:owasp/modsecurity - Docker Image | Docker Hub

docker pull owasp/modsecurity

modsecurity只是WAF防火墙,仅仅安装modsecurity并不会起作用,因为它需要规则才会生效,你可以选择第三方支持modsecurity的规则例如:“OWASP ModSecurity Core Rule Set”,简称“CRS”,OWASP 是国际上一个非营利的Web应用程序安全项目,不附属于任何企业或财团。不过很多大公司的财团都在支持OWASP,包括微软,VMware,谷歌,nginx 等,著名的“OWASP TOP 10”功击手法就是该组织提出来,在WEB安全领域很有名气。

虽然ModSecurity归还社区维护但是OWASP还在维护着CRS规则,而WAF防火墙最有价值的就是WAF规则,幸运哦,相信modsecurity归还社区维护之后,只是需要及时修复BUG也问题不大,毕竟modsecurity己经成熟运行很久,BUG少很多了,我们还是得相信开源社区的力量~

关于WAF防火墙规则,建议采用OWASP的CRS,官网地址是:OWASP ModSecurity Core Rule Set – The 1st Line of Defense Against Web Application Attacks,幸运的是,OWASP己经在docker上面集成了modsecurity打包成镜像供我们使用,docker地址是:owasp/modsecurity-crs - Docker Image | Docker Hub

docker pull owasp/modsecurity-crs

也就是说,使用这个镜像默认modsecurity己经安装好了,规则也配置好了,非常方便,这就是docker的好处,默认支持nginx,apache。它的dockerfile在github上面:https://github.com/coreruleset/modsecurity-crs-docker/blob/master/nginx/Dockerfile

镜像中的配置文件在:

/etc/nginx/templates/nginx.conf.template

配置就是典型nginx的配置文件,了解nginx的很轻松就可以配置,当我们运行docker只需要配置好的文件替换镜像中的文件就可以了,下面贴出最简代码,当时实际运作docker还需要增加什么参数,自己添加就行,例如端口映射等

docker run --name Nginx-WAFProxy -v /web/NginxProxy/nginx.conf.template:/etc/nginx/templates/nginx.conf.template:rw -d owasp/modsecurity-crs:nginx

就这样一个开源,可靠,免费WAF就搭建起来了,又省一大笔钱,我们需要注意的地址就是“paranoia level ”,规则等级,默认docker 镜像是PL1,一共有四个规则等级

  1. PL1:默认值,大多数规则都是处于启用状态,具备标准的安全等级,适用多数网站,非常少/无的误报。
  2. PL2:含少许多额外的规则,合适有经验的工程师,会有少量误报。
  3. PL3:支持更多规则和关键字列表,涵盖不太常见的攻击。需要专职工程师,定期处理误报,增加规则。
  4. PL4:最高安全规则,进一步限制特殊字符,会产生非常多的误报,适用于特殊的场景。

基本WAF防火墙就搭建完毕了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK