在具有Ubuntu 16.04的云服务器上使用ModSecurity Apache模块

2020年12月31日19:42:46 发表评论 89 次浏览

介绍

ModSecurity是一种免费的Web应用程序防火墙(WAF), 它是一种简单而强大的方法, 可以保护服务器免受基于Web的恶意软件和黑客攻击的侵害。了解如何安装ModSecurity和官方推荐OWASP核心规则集(CRS)它将以SQL注入, 会话劫持, 跨站点脚本, 特洛伊木马和许多其他基于Web的利用形式来保护服务器免受恶意软件和黑客攻击。

注意:对于任何带有Plesk的云服务器, 应始终通过Plesk界面添加和管理Apache模块。看我们的文章在具有Plesk的云服务器上使用ModSecurity Apache模块有关分步说明。

要求

  • 运行Linux的云服务器(Ubuntu 16.04)
  • Apache已安装并正在运行。

注意:默认情况下, Apache已安装并在标准安装上运行。如果你的服务器是使用最小安装创建的, 则在继续操作之前, 需要安装和配置Apache。

安装ModSecurity

安装libapache2-modsecurity包:

sudo apt-get install libapache2-modsecurity

采用apachectl -M | grep安全验证软件包已安装。服务器将响应:

user@localhost:~# apachectl -M | grep security
security2_module (shared)

为ModSecurity规则创建目录:

sudo mkdir /etc/modsecurity

为ModSecurity规则创建文件, 然后打开文件进行编辑:

sudo nano /etc/modsecurity/mod_security.conf

将以下内容添加到文件中:

<IfModule mod_security2.c>
    SecRuleEngine On
    SecRequestBodyAccess On
    SecResponseBodyAccess On 
    SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream 
    SecDataDir /tmp
</IfModule>

保存并退出文件。然后重新启动Apache以使更改生效:

sudo systemctl restart apache2

安装和配置OWASP核心规则集(CRS)

OWASP核心规则集(CRS)通过提供一组安全规则来保护服务器, 从而扩展了ModSecurity的功能。

首先, 安装吉特包:

sudo apt-get install git

转到/ etc / apache2目录:

cd /etc/apache2/

下载OWASP安装文件:

sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

移至新的OWASP目录:

cd owasp-modsecurity-crs

创建示例安装文件的副本并将其重命名:

sudo cp crs-setup.conf.example crs-setup.conf

打开主要的Apache配置文件进行编辑:

sudo nano /etc/apache2/apache2.conf

向下滚动到以下内容:

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

添加以下两行:

Include /etc/apache2/owasp-modsecurity-crs/crs-setup.conf
Include /etc/apache2/owasp-modsecurity-crs/rules/*.conf

保存并退出文件。然后重新启动Apache以使更改生效:

systemctl restart apache2

验证是否已安装ModSecurity并已加载OWASP CRS

你可以通过访问URL来测试ModSecurity的OWASP CRS:

http://example.com/?param="><script>alert(1);</script>

其中example.com被替换为服务器的域名或IP地址。

你将被拒绝访问403:禁止错误。此外, 此错误将在/var/log/apache2/error.log文件, 其条目类似于:

[Tue Aug 01 21:28:41.118995 2017] [:error] [pid 59913] [client 79.196.255.255] ModSecurity: Warning. Pattern match "^[\\\\d.:]+$" at REQUEST_HEADERS:Host.  [line "810"] [id "920350"] [rev "2"] [msg "Host header is a numeric IP address"] [data "50.21.182.126:80"] [severity "WARNING"] [ver "OWASP_CRS/3.0.0"] [maturity "9"] [accuracy "9"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "OWASP_CRS/PROTOCOL_VIOLATION/IP_HOST"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [hostname "50.21.182.126"] [uri "/phpmanager/"] [unique_id "WYDyiX8AAAEAAOoJ5qMAAAAA"]

更新OWASP核心规则集(CRS)

OWASP CRS带有一个脚本, 你可以运行该脚本以使用最新版本更新规则。要更新OWASP:

sudo python /etc/apache2/owasp-modsecurity-crs/util/upgrade.py --crs

如果你现在运行它以测试命令, 它将以以下方式响应:

crs:
From https://github.com/SpiderLabs/owasp-modsecurity-crs
 * branch            HEAD       -> FETCH_HEAD
Already up-to-date.

我们建议你定期运行此脚本以更新OWASP CRS以获取最新的安全补丁。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: