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
如果顺利的话,brew会下载所有依赖以及mods的源码进行编译安装。但是….貌似一般不会那么顺利。
编译时问题
1. brew安装时,在写入usr等文件夹的时候会说没有权限。加上sudo 或者sudo -i切换到root再安装的时候,又会说『使用root权限安装太危险了』….黑人问号脸,你特么在逗我,那你说该怎么装嘛..
解决方案: sudo chown ${whoami} /usr 直接暴力把/usr的归属给变成了当前用户..哪位大佬有其他方案请分享出来
2. 下载mods包的时候一直没进度(是curl抽风了好么)
解决方案:
brew会显示从那个url下载该源码包。复制url,浏览器下载
然后执行brew –cache看看cache目录在哪里
把下载下来的压缩包丢到该目录下面(奇怪的是我这边显示出来的cache目录不是显示出来的cache目录,大家可以往/Users/xxx/Library/Caches/Homebrew/放一份再)
3. 安装到最后的提示没有apu或者apr库
这个有点麻烦,理论上brew会帮忙装好的。但是我看日志好像是mods的makefile指定的apr/apu的目录有问题,修改makefile有点麻烦,又不知道brew把apr和apu装到哪里去了。所以自己下载apr和apu的安装包,再编译了一遍,然后./configration的时候通过参数指定路径。参考
4. 要安装xcode,并且升级到最新版本
5. 安装的时候会提示xcode commond tool没有安装,然后给你一个命令,你要运行一下安装程序,然后要重启下机器
xcode-select --install
6. 如果没有关闭Rootless机制,会报错opration not premitted
我之前就关闭了,虽然是一个不错的安全策略,但是对开发者很不方便。
具体关闭步骤:
重启机器,在启动的时候长按command+R,进入恢复模式
打开terminal,执行
csrutil disable
重启机器到正常模式
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