LoginSignup
4

More than 5 years have passed since last update.

CentOS 7 ModSecurity 2.9.2のソースファイルからのインストール

Last updated at Posted at 2018-03-20

動作確認環境

事情によりバージョンをダウングレードしました。新しいバージョンでも動作するはずです。

  • 仮想環境 VMware Workstation Player 12.5.9
  • OS Windows 10 Pro 64bit

仮想環境

  • OS CentOS 7.4 (1708) minimalインストール
  • メモリ 2GB
  • HDD 250GB

前提条件

  • gcc 8.1.0
  • cmake 3.11.4
  • MySQL 5.7.22
  • OpenSSL 1.1.0.h
  • Apache 2.4.33
  • PHP 7.2.6

mod_unique_id導入

/usr/local/srcディレクトリに移動する。

cd /usr/local/src

ソースファイルをダウンロードする。

wget http://www-eu.apache.org/dist//httpd/httpd-2.4.33.tar.gz

ダウンロードしたファイルを展開する。

tar zxvf httpd-2.4.33.tar.gz

Apacheのインストールディレクトリ配下のmodules/metadataに移動し、以下を実行する。

cd httpd-2.4.33/modules/metadata
/usr/local/apache2/bin/apxs -cia mod_unique_id.so

Apacheを再コンパイル・インストール

Apacheを停止する。

systemctl stop httpd

展開したディレクトリに移動する。

cd /usr/local/src/httpd-2.4.33

再コンパイル・インストールする。

./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr-1.6.3 --with-apr-util=/usr/local/apr-util-1.6.1 --with-pcre=/usr/local/pcre-8.42 --enable-http2 --enable-ssl --with-ssl=/usr/local/openssl --enable-so --enable-mods-shared=all --enable-mpms-shared=all
make
make install

ModSecurityをインストール

/usr/local/srcディレクトリに移動する。

cd /usr/local/src

ソースファイルをダウンロードする。

wget https://github.com/SpiderLabs/ModSecurity/releases/download/v2.9.2/modsecurity-2.9.2.tar.gz

ダウンロードしたファイルを展開する。

tar xzvf modsecurity-2.9.2.tar.gz

展開したディレクトリに移動する。

cd modsecurity-2.9.2

コンパイル・インストールする。

./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr-1.6.3 --with-apu=/usr/local/apr-util-1.6.1
make
make install

mod_security2.so/usr/local/apache2/modules/に作成されている。

mod_security2.soのパーミッションを変更する。

chmod 755 /usr/local/apache2/modules/mod_security2.so

modsecurity.confをコピーする。

cp modsecurity.conf-recommended /usr/local/apache2/conf/modsecurity.conf

modsecurity.confのパーミッションを変更する。

chmod 644 /usr/local/apache2/conf/modsecurity.conf

Apacheのインストールディレクトリに移動する。

cd /usr/local/apache2

modsecurity.dディレクトリを作成し、移動する。

mkdir modsecurity.d
cd modsecurity.d

gitリポジトリからowasp-modsecurity-crswをコピーする。

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

owasp-modsecurity-crsディレクトリに移動する。

cd owasp-modsecurity-crs

crs-setup.confをコピーする。

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

REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example及びRESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.exampleのファイル名を変更する。

mv rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
mv rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf

unicode.mappingをコピーする。

cp /usr/local/src/modsecurity-2.9.2/unicode.mapping /usr/local/apache2/conf/unicode.mapping

apache2ディレクトリの所有者、グループを変更する。

chown -R apache:apache /usr/local/apache2/

httpd.confを編集する。

vi ../../conf/httpd.conf

以下の内容をLoadModule~が書かれた一番下の行に追記する。

LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
<IfModule unique_id_module>
    SecRuleEngine On
    SecRequestBodyAccess On
    SecDebugLog logs/modsec_debug.log
    SecDebugLogLevel 3
    SecTmpDir /tmp/
    SecUploadDir /tmp/
    SecDataDir /tmp/
    SecAuditEngine On
    SecAuditEngine RelevantOnly
    SecAuditLogType concurrent
    SecAuditLogParts ABIDEFGHZ
    SecAuditLogStorageDir /var/log/mod_security/data
    SecAuditLog logs/audit_log
    Include modsecurity.d/owasp-modsecurity-crs/crs-setup.conf
    Include modsecurity.d/owasp-modsecurity-crs/rules/*.conf
</IfModule>
</IfModule>

Apacheを起動する。

systemctl start httpd

動作確認

ログにaudit_logが作成されていればModSecurityが動作している。
またブラウザでhttp://サーバのIPアドレス?union+selectにアクセスし、Forbiddenと表示されれば動作している。
modsec_debug.logには以下のようなログが残される。

[20/Mar/2018:16:48:40 +0900] [192.168.10.100/sid#eae3d0][rid#7f31b80d49f0][/][1] Audit log: Failed to create subdirectories: /var/log/mod_security/data/20180320/20180320-1648 (Permission denied)

参考

ModSecurity: Open Source Web Application Firewall
Releases · SpiderLabs/ModSecurity · GitHub
ModSecurity2のインストール | OpenGroove
CentOS7 apacheにmod_securityの導入と設定 - よくわからないエンジニア


目次

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4