---
title: "4-2-1　ModSecurity遮断（Apache）"
canonical: "https://manual.shadan-kun.com/space/KSK2INST/14057654/4-2-1%E3%80%80ModSecurity%E9%81%AE%E6%96%AD%EF%BC%88Apache%EF%BC%89"
format: markdown
---
#### STEP1　mod_securityモジュールをインストール

> ⚠️ **注意**
> ⚠️ 
> ⚠️ - Amazon Linux 2023環境では、本手順でModSecurityモジュールのインストールが行えないことを確認しております。Amazon Linux 2023をご利用の場合は「[ModSecurityをソースコードからインストールする手順](https://csc-document.atlassian.net/wiki/spaces/DRAFTKSK2INST/pages/4915534)」を実施後、STEP2以降の手順に進んでください。
> ⚠️ - RHEL10系では、ModSecurityモジュールのインストールが行えないことを確認しております。「<u>[ModSecurityをソースコードからインストールする手順（RHEL10系）](https://csc-document.atlassian.net/wiki/spaces/DRAFTKSK2INST/pages/4915534)</u>」を実施後、STEP2以降の手順に進んでください。

ご利用のWebサーバ環境にmod_securityモジュールをインストールします。

```
【RedHat系】
# dnf install mod_security
or
# yum install mod_security

【Ubuntu系】
# apt-get install libapache2-mod-security2
```

> ✅ **補足**
> ✅ 
> ✅ - ModSecurityのインストールはコマンドの出力結果（例：security2_module）をご確認ください


#### STEP2　構成ファイルを取得

ModSecurity遮断の構成ファイル「shadan-kun-v2_modsecurity_sh.tar」をダウンロード・展開します。

```
# wget https://docs.shadan-kun.com/manual/shadan-kun-v2_modsecurity_sh.tar
# tar xvf shadan-kun-v2_modsecurity_sh.tar
```

SHA256ハッシュ値：`55d4ea5f9da1155a8d0f258281a0bf877cda2847aff26a7b9eb18aa3bba4e91d`


【展開後のファイル構成】

| **ファイルパス** | **内容** |
| --- | --- |
| shadan-kun-v2_modsecurity_sh/CHANGELOG.md | 変更履歴 |
| shadan-kun-v2_modsecurity_sh/**firewall-drop.sh** | ルール変更制御プログラム |
| shadan-kun-v2_modsecurity_sh/**modsecurity.sh** | ルール生成プログラム |
| shadan-kun-v2_modsecurity_sh/**modsecurity.conf** | 初期configファイル |


#### STEP3　ファイル配置・更新

ファイル配置および環境依存箇所の更新を実施します。

> ✅ **補足**
> ✅ 
> ✅ - 本項以降のエージェントのインストールディレクトリは「/var/shadan-kun」とします。


##### **(1) firewall-drop.sh**

「shadan-kun-v2_modsecurity_sh.tar」内のfirewall-drop.shを配置します。

ファイルパス：  
`/var/shadan-kun/active-response/bin/firewall-drop.sh`

  
パーミッション：  
`-rwxr-xr-x 1 root ossec 6841 May 31 22:34 firewall-drop.sh`

> ✅ **補足**
> ✅ 
> ✅ - 既存ファイルが存在する場合は上書きで保存してください。


##### **(2) modsecurity.conf**

「shadan-kun-v2_modsecurity_sh.tar」内のmodsecurity.confを配置します。

ファイルパス（例）：  
`/etc/httpd/conf.d/modsecurity.conf`

> ✅ **補足**
> ✅ 
> ✅ - ファイルの名称はModSecurityバージョンにより異なります。本手順では**modsecurity.conf**で統一します。
> ✅ - 既存ファイルが存在する場合は上書きで保存してください。

> 📝 **ロードファイルの確認**
> 📝 
> 📝 - ModSecurityがインストールされている場合、デフォルトでロード設定ファイルが存在します（ロードファイルが存在しない場合は作成してください）。  
> 📝 ※記載例


##### **(3) modsecurity.sh**

1. 「shadan-kun-v2_modsecurity_sh.tar」内のmodsecurity.shを配置します。

ファイルパス：  
`/var/shadan-kun/active-response/bin/modsecurity.sh`

パーミッション：  
`-rwxr-xr-x 1 root ossec 6841 May 31 22:34 modsecurity.sh`


2. ご利用環境にあわせてファイル内容を編集します。

| **3行目** | mod_security の設定ファイルのパスを指定  
（記入例）`MODSECURITY_CONF=/etc/httpd/conf.d/mod_security.conf` |
| --- | --- |
| **7行目** | Webサーバの再起動コマンドを記載  
（記入例）`{ apachectl -t && apachectl graceful; } > /dev/null 2>&1` |


#### STEP4　ログフォーマット変更（httpd.conf）

送信元IPアドレスが取得できるようにWebサーバのログフォーマットの変更を行います。

記入例：X-Forwarded-Forで送信元IPアドレスを取得

```
LogFormat "%{x-forwarded-for}i %l %u %t ¥"%r¥" %>s %b ¥"%{Referer}i¥" ¥"%{User-Agent}i¥"" combined
```


#### STEP5　サービス再起動

1. Webサーバを再起動します

```
【RedHat系】
# service httpd restart
or
# systemctl restart httpd

【Ubuntu系】
# systemctl restart apache2
```


2. エージェントを再起動します

```
# /var/shadan-kun/bin/ossec-control restart
```


#### ModSecurityをソースコードからインストールする手順> Macro (anchor)

  

1. ModSecurityのソースコードを任意のパスにダウンロード・展開します（ここでは、/usr/local/srcにダウンロードしています）。

```
# cd /usr/local/src
# curl -OL https://github.com/SpiderLabs/ModSecurity/releases/download/v2.9.3/modsecurity-2.9.3.tar.gz
# tar zxvf modsecurity-2.9.3.tar.gz
```


2. ビルドに必要なモジュールをインストールします。

```
# yum -y install libxml2-devel httpd-devel pcre-devel
```


3. ビルド・インストールします。

```
# cd /usr/local/src/modsecurity-2.9.3
# ./configure --with-apxs=/usr/bin/apxs
# make
# make install
```


4. インストールを確認します。

```
# ls /usr/local/modsecurity

※ mod_security2.so が出力されます
```


5. httpd.confにモジュールのロード設定を追加します。

```
LoadModule security2_module /usr/local/modsecurity/lib/mod_security2.so
```


6. Apacheを再起動します。

```
# systemctl restart httpd
```


7. ApacheにModSecurityが組み込まれていることを確認します。

```
# httpd -M

※ security2_module (shared) が出力されます
```


#### ModSecurityをソースコードからインストールする手順 （RHEL10系）

RHEL10系はPCREライブラリ非対応のため、PCRE2にデフォルトで対応しているmodsecurity-v2.9.9 以上のバージョンをご利用ください。


1. ModSecurityのソースコードを任意のパスにダウンロード・展開します（ここでは、/usr/local/srcにダウンロードしています）。

```
# cd /usr/local/src
# curl -OL https://github.com/owasp-modsecurity/ModSecurity/releases/download/v2.9.9/modsecurity-v2.9.9.tar.gz
# tar zxvf modsecurity-v2.9.9.tar.gz
```

 

2. ビルドに必要なモジュールをインストールします。

```
# yum -y install libxml2-devel httpd-devel pcre2-devel
```

 

3. ビルド・インストールします。

```
# cd /usr/local/src/modsecurity-v2.9.9
# ./configure --with-apxs=/usr/bin/apxs
# make
# make install
```

 

4. インストールを確認します。

```
# ls /usr/local/modsecurity

※ mod_security2.so が出力されます
```

 

5. httpd.confにモジュールのロード設定を追加します。

```
LoadModule security2_module /usr/local/modsecurity/lib/mod_security2.so
```

 

6. Apacheを再起動します。

```
# systemctl restart httpd
```

 

7. ApacheにModSecurityが組み込まれていることを確認します。

```
# httpd -M

※ security2_module (shared) が出力されます
```