在Ubuntu 18.04服务器安装和配置ModSecurity

在Ubuntu 18.04服务器安装和配置ModSecurity
在Ubuntu 18.04服务器安装和配置ModSecurity

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/lamp-config/setup-modsecurity-for-apache-on-ubuntu-18-04/

发表评论

登录后才能评论