よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

CentOS7 apacheにmod_securityの導入と設定

少し前にmod_dosdetectorを導入しましたが、それとはまた別件でmod_security入れることになったので記事にします。

目次

mod_securityとは

オープンソースのWAFです。SQLインジェクションなどの脆弱性をついた攻撃からWebサイトを守るために導入します。
当方環境ではapacheに導入してみようと思います。

mod_securityのインストール

早速、インストールしていきます。

# cd /usr/local/src/
# ls
# wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz
# tar xvfz modsecurity-2.9.1.tar.gz
# cd modsecurity-2.9.1/
# ./configure --prefix=/usr/local/modsecurity-2.9.1  --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/src/httpd-2.4.25/srclib/apr --with-apu=/usr/local/src/httpd-2.4.25/srclib/apr-util
# make
# make install
# cd /usr/local/
# ln -s modsecurity-2.9.1 modsecurity

すんなり入りました。configureでエラーが出た時は、pcre-develをyumで突っ込んで下さい。

ルールセットの導入

mod_securityはこのまま入れただけではあんまり意味がなく、攻撃を攻撃と判断するためのルールが必要になります。このルールセットもオープンソースで用意されているので、こちらも一緒に導入します。

# # cd /usr/local/apache2/conf/
# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
# cp -p owasp-modsecurity-crs/crs-setup.conf.example owasp-modsecurity-crs/crs-setup.conf
# mkdir -p /var/log/mod_security/data
# chown -R httpd:httpd /var/log/mod_security

こんな感じでしょうかね?

apacheの設定

最後にapacheの設定です。httpd.conf辺りに以下を追記します。

# vim /usr/local/apache2/conf/httpd.conf
LoadModule security2_module modules/mod_security2.so
LoadModule unique_id_module   modules/mod_unique_id.so

<IfModule security2_module>
<IfModule unique_id_module>

SecRuleEngine On
SecRequestBodyAccess On
SecDebugLog /var/log/mod_security/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 /var/log/mod_security/audit_log

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

</IfModule>
</IfModule>

とりあえず動いているか確認したいので、これでapacheを再起動します。
該当URLに"http://****?union+select" でアクセスした際にForbiddenが表示されればちゃんと導入されています。
眠たいので今日はここまで。。。