<!-- review: finished -->

<a id="external-modsec"></a>

# ModSecurity

该模块添加了一个连接器,用于使用 [ModSecurity](https://modsecurity.org/) 规则。

<a id="installation-17"></a>

## 安装

要 [安装](https://cn.angie.software//angie/docs/installation/index.md#install-packages) 该模块,请使用以下软件包之一:

- Angie:`angie-module-modsecurity`
- Angie PRO:`angie-pro-module-modsecurity`

<a id="loading-the-module-17"></a>

## 加载模块

要使用该模块,需要在 `main{}` 上下文中加载它:

```nginx
load_module modules/ngx_http_modsecurity_module.so;
```

<a id="configuration-example-93"></a>

## 配置示例

在适当的上下文中指定 `modsecurity` 和 `modsecurity_rules_file` 指令,
例如 `server`:

> ```nginx
> server {
>     modsecurity on;
>     modsecurity_rules_file /etc/angie/modsecurity/rules.conf;
>     # ...
> }
> ```

将 [OWASP ModSecurity 核心规则集 (CRS)](https://coreruleset.org/)
复制到 `/var/lib/angie/modsecurity/` 目录:

> ```console
> $ cd /var/lib/angie/modsecurity/
> $ sudo git clone -b v4.1.0 https://github.com/coreruleset/coreruleset
> ```

在核心规则目录中,
复制最低要求的 ModSecurity 配置示例:

```console
$ sudo cp coreruleset/crs-setup.conf.example coreruleset/crs-setup.conf
$ sudo cp coreruleset/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example \
      coreruleset/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
$ sudo cp coreruleset/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example \
      coreruleset/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
```

在 `/etc/angie/modsecurity/rules.conf` 文件中
取消注释以下 `Include` 指令:

```apache
Include /var/lib/angie/modsecurity/coreruleset/crs-setup.conf
Include /var/lib/angie/modsecurity/coreruleset/rules/*.conf
```

<a id="additional-information-18"></a>

## 其他信息

详细文档和源代码可在以下位置获取:
[https://github.com/owasp-modsecurity/ModSecurity](https://github.com/owasp-modsecurity/ModSecurity).
