ModSecurity(https://www.modsecurity.org/)是开源的Web应用程序防火墙,它可以做为Apache的一个模块使用。ModSecurity可以保护网站防止各种攻击,包括XSS、SQLi、CSRF、DDoS、暴力破解等等。用户可以编写规则实现特定功能。
本文介绍怎么为Apache安装配置ModSecurity模块。
如果你没有安装Apache Web Server,参考:http://www.linuxdiyf.com/linux/21530.html
安装ModSecurity
sudo apt install libapache2-mod-security2
上面命令会安装ModSecurity模块并自动激活。
ModSecurity安装完成之后还需要创建一个配置文件,可以直接使用默认的配置文件做为蓝本:
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
重启Apache使生效:
sudo systemctl reload apache2
# 或
sudo systemctl restart apache2
配置ModSecurity
ModSecurity默认配置包含常用选项和几个规则:
sudo vim /etc/modsecurity/modsecurity.conf
下面我们来添加CRS(OWASP Core Rule Set),这是一个提供额外保护的规则集合。
开启CRS规则
CRS规则位于:
cd /usr/share/modsecurity-crs/
编辑:
sudo vim /etc/apache2/mods-enabled/security2.conf
引入规则文件,activated_rules目录用来存放激活的规则:
IncludeOptional /usr/share/modsecurity-crs/*.conf
IncludeOptional /usr/share/modsecurity-crs/activated_rules/*.conf
查看activated_rules目录的README文件获得更多信息。
例如要添加SQL注入保护:
sudo ln -s /usr/share/modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf
这个目录包含很多实用的规则。
ModSecurity默认以DetectionOnly模式运行(/etc/modsecurity/modsecurity.conf):
SecRuleEngine DetectionOnly
更改为:
SecRuleEngine On
重启Apache使生效:
sudo systemctl reload apache2
# 或
sudo systemctl restart apache2
参考文档:https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual