ModSecurity是一款功能强大、开源免费的防火墙,可用于保护Apache Web 服务器的网络安全。同时,我们还可以利用一些免费的ModSecurity 规则集,这些规则集为我们配置常见的应用程序的安全解决方案,比如 OWASP ModSecurity Core规则集。接下来,我们就详细的介绍,如何安装和配置 ModSecurity 。
必要条件
- 安装了 Ubuntu 18.04 的服务器一台
- 拥有 sudo 权限的非 root 用户
第一步: 安装 Apache Web 服务器
如果我们的 Ubuntu 18.04 服务器上,还没有安装 Apache ,那我们首先要安装它。
首先升级Ubuntu 的软件包索引:
$ sudo apt-get update
然后,安装 Apache:
$ sudo apt-get install Apache2
安装过程中,可能需要提示确认,输入“y”,然后回车确认。
第二步: 安装 ModSecurity
安装完Apache,接下来要做的就是安装 ModSecurity,执行下面的命令安装:
$ sudo apt-get install libapache2-mod-security2
重启Apache:
$ sudo service apache2 restart
执行下面的命令,看一下该模块是否正常运行:
$ sudo apachectl -M | grep security
应该可以看到类似下面的输出:
security2_module (shared)
第三步: 配置 ModSecurity
ModSecurity 需要配置相应的规则,才能起到保护网络应用安全的作用。ModSecurity 有一个默认的配置文件样本,样本路径为/etc/modsecurity/modsecurity.conf-recommended,我们将其复制到名为 modsecurity.conf 的配置文件,以启用和配置ModSecurity。
为此,请运行以下命令:
$ sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
使用nano 编辑器编辑新创建的配置文件:
$ sudo nano /etc/modsecurity/modsecurity.conf
将 SecRuleEngine 配置项的内容从 DetectionOnly 更改为 On。
$ SecRuleEngine = on
按 CTRL +X , Y 和 Enter 保存对文件的更改。
重启Apache 使配置生效:
$ sudo systemctl restart apache2
ModSecurity在/ usr / share / modsecurity-crs目录中设置了默认规则。但是,我们建议从GitHub下载规则集:
首先,备份默认规则:
$ sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bk
从 GitHub 下载规则集:
$ sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs
将下载的规则配置文件样本复制成名为“crs-setup.conf”的配置文件:
$ sudo cp /usr/share/modsecurity-crs/crs-setup.conf.example /usr/share/modsecurity-crs/crs-setup.conf
要使新的规则对Apache生效,我们使用 nano 编辑器打开 /etc/apache2/mods-enabled/security2.conf 文件:
$ sudo nano /etc/apache2/mods-enabled/security2.conf
将如下两行内容,添加到文件末尾:
$ IncludeOptional /usr/share/modsecurity-crs/*.conf
$ IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf
按 CTRL + X, Y 和 Enter 保存文件。
重启 Apache:
$ sudo systemctl restart apache2
第四步: 测试 ModSecurity
现在,我们可以尝试在浏览器上执行恶意脚本,并查看是否会触发ModSecurity 保护规则。将IP地址替换为服务器的公共IP地址或域名,在浏览器上访问该URL。
http://127.0.0.1/index.html?exec=/bin/bash
应该会看到一个如下的错误提示:
Forbidden You don't have permission to access / on this server. Apache/2.4.29 (Ubuntu) Server at 127.0.0.1 Port 80
总结
现在,我们已经为Apache Web服务器开启了恶意攻击保护。但是目前的ModSecurity 规则集,可能并不适合所有的服务器。比如该规则可能导致 WordPress 网站的运行出现某些问题,这些我们后续再继续研究。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/setup-modsecurity-for-apache-on-ubuntu-18-04/