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

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


LoftySoul
699 声望11 粉丝

A dream,lots of accumulation