Mac下安装apache waf模块modsecurity

modsecurity简介

mods 是apache的一个安全模块,他的作用是web应用防火墙(WAF).如果不懂WAF请自行google下。

问题的由来

mods在yum源(centos)以及apt源(ubuntu)下都有现成的安装包。只需要类似 apt-get install 或者yum install 即可。
但是在mac的osx系统下,没有任何二级制安装包,如果想在osx上玩mods,那就需要从源码编译

源码编译

一般来说,一条命令就可以搞定。谁让brew很逆天呢
命令如下:

brew install homebrew/apache/mod_security

参考:https://gist.github.com/amarn...

如果顺利的话,brew会下载所有依赖以及mods的源码进行编译安装。但是....貌似一般不会那么顺利。

编译时问题

1. brew安装时,在写入usr等文件夹的时候会说没有权限。加上sudo 或者sudo -i切换到root再安装的时候,又会说『使用root权限安装太危险了』....黑人问号脸,你特么在逗我,那你说该怎么装嘛..

解决方案: sudo chown ${whoami} /usr 直接暴力把/usr的归属给变成了当前用户..哪位大佬有其他方案请分享出来

2. 下载mods包的时候一直没进度(是curl抽风了好么)

解决方案:

  1. brew会显示从那个url下载该源码包。复制url,浏览器下载

  2. 然后执行brew --cache看看cache目录在哪里

  3. 把下载下来的压缩包丢到该目录下面(奇怪的是我这边显示出来的cache目录不是显示出来的cache目录,大家可以往/Users/xxx/Library/Caches/Homebrew/放一份再)

3. 安装到最后的提示没有apu或者apr库

这个有点麻烦,理论上brew会帮忙装好的。但是我看日志好像是mods的makefile指定的apr/apu的目录有问题,修改makefile有点麻烦,又不知道brew把apr和apu装到哪里去了。所以自己下载apr和apu的安装包,再编译了一遍,然后./configration的时候通过参数指定路径。参考

http://blog.csdn.net/nyist327...

4. 要安装xcode,并且升级到最新版本
5. 安装的时候会提示xcode commond tool没有安装,然后给你一个命令,你要运行一下安装程序,然后要重启下机器
xcode-select --install
6. 如果没有关闭Rootless机制,会报错opration not premitted

我之前就关闭了,虽然是一个不错的安全策略,但是对开发者很不方便。
具体关闭步骤:

  1. 重启机器,在启动的时候长按command+R,进入恢复模式

  2. 打开terminal,执行

csrutil disable
  1. 重启机器到正常模式

7. 如果还是编译失败,你可以把下载下来的mods的包解压,然后自己编译(反正我是成功了)

编译方式如下:(请使用sudo -i 切换到root用户下)

进行configration
./configure --prefix=/usr/local/Cellar/mod_security/2.9.1 --with-pcre=/usr/local/opt/pcre --with-apxs=/usr/sbin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apu=/usr/local/apr/bin/apu-1-config 
make
在解压目录下执行 make
make install
在解压目录下执行 make install

检查是否编译成功并配置

  • 请检查/usr/local/Cellar/mod_security/2.9.1/lib下是否有mod_security2.so,若有则标识编译成功

  • 进行模块配置

1. vim /etc/apache2/httpd.conf
2. 配置载入模块:
LoadModule security2_module /usr/local/Cellar/mod_security/2.9.1/lib/mod_security2.so
3. 从源码目录复制配置文件到指定文件夹
cp modsecurity.conf-recommended /etc/apache2/other/modsecurity.conf

启动apache

sudo apachectl start

规则怎么配就靠你玩了,收工


SoulReaper
菜鸟一枚...想飞!!

A dream,lots of accumulation

699 声望
11 粉丝
0 条评论
推荐阅读
安全地在前后端之间传输数据 - 「3」真的安全吗?
在「2」注册和登录示例中,我们通过非对称加密算法实现了浏览器和 Web 服务器之间的安全传输。看起来一切都很美好,但是危险就在哪里,有些人发现了,有些人嗅到了,更多人却浑然不知。就像是给门上了把好锁,还...

边城31阅读 7.2k评论 5

封面图
祝贺姜宁连任 2023 Apache 软件基金会董事
在刚刚结束的 ASF Annual Meeting 上,2023 年新任董事会成员诞生了。Apache 软件基金会通过官方 blog 向大家公布了新一任董事的选举成果。

鸣飞4阅读 9.9k评论 1

姜宁 ASF 2022 董事竞选宣言:我希望能够帮助 ASF 打破地域、文化、语言的障碍
在刚刚结束的 ASF Annual Meeting 上,2022 年新任 ASF Member 及董事会成员诞生了。Apache 软件基金会通过官方 blog 向大家公布了新一任董事的选举成果。Apache 软件基金会孵化器导师,ALC Beijing 发起人,华为...

鸣飞4阅读 12.7k

封面图
🖼️ 如何解决 SVG 图片中字体失效的问题
如果你喜欢我的文章,希望点赞👍 收藏 📁 评论 💬 三连支持一下,谢谢你,这对我真的很重要!「SVG 图片中字体失效」的修复方案很简单,只想看答案翻到最后看结论就行。如果想看我的排查思路和具体原因可以从头开始...

卤代烃6阅读 1.4k

姜宁 ASF 2023 董事竞选宣言:成为开源世界的催化剂和变革者
在刚刚结束的 ASF Annual Meeting 上,2023 年新任 ASF Member 及董事会成员诞生了。Apache 软件基金会通过官方 blog 向大家公布了新一任董事的选举成果。Apache 软件基金会孵化器导师,ALC Beijing 发起人姜宁连...

波波Nadia2阅读 1.5k

前端代码安全与混淆
作者:京东零售 周明亮一、友商网页分析1.1 亚马逊亚马逊商详地址: [链接]所有交互事件在页面初始化时,不进行下发,等待通过 js 请求后下发 具体点击事件js内容采用自执行方式,防止代码格式化。【无法调用 Chr...

京东云开发者1阅读 1.2k

封面图
macos平台上编译jdk源码
  对于java来说,很多工作都被jvm包揽了,比如内存分配和回收、其他系统级别调用。这其实就把操作系统底层的一些东西给屏蔽了,对于javaer来说,方便的同时也带来一些困惑(我还不是一个纯javaer),很多细...

开翻挖掘机1阅读 2.7k评论 5

A dream,lots of accumulation

699 声望
11 粉丝
宣传栏