![]() |
LINUX |
modsecurity-apacheのインストール
*apache(httpサーバ)への不正アクセスを監視します
*modsecurity-apache_2.5.11をソースからインストールし、設定します
*xoopsなどのユーザからの書込で、不正アクセスになる場合があります
*make はメンテナンスマシンで行っています
*httpリクエストにhtmlのタグを含めるとエラーになる場合が多い
*不特定多数の書き込みが発生する動的なサイトにはむかない
**以降はコメントです
*新規インストールした openssl を使います
*ソースの取得、削除は省略します
*エディタ、ファイラーの操作は省略します
*ソースを展開したら説明文 (英文) を読みましょう
*Enterキーを省略します
*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト| :modsecurity-apache_2.5.11.tar.gz | (http://www.modsecurity.org/) |
| :lua-5.1.4-3.fc11.src.rpm | (http://ftp.riken.jp/Linux/fedora/) |
参照ファイル:パッケージの追加
:最初の設定 (Xen)
:httpd/phpのインストール
インストール環境| :OS | CentOS 5.4 |
| :selinux | disabled or permissive |
| :インストール先 | |
| :作業 | /usr/src |
| :言語 | LANG=en_US.UTF-8 |
| :ユーザー | rootで実行 |
*メンテナンスの場合は一般ユーザから行います
lua-5.1.4*modsecurity-apache_2.5.11で必要です
*fedoraのパッケージをCentOS用にアレンジします
*md5チェックができないので、--nomd5オプションでインストールします
# cd /usr/src # mkdir lua # rpm -ivh --nomd5 lua-5.1.4-3.fc11.src.rpm # cd redhat/SPECS # rpmbuild -ba --clean --rmsource --define 'dist .C54' lua.spec # mv lua.spec /usr/src/lua # cd ../RPMS/i386
*作成されたパッケージ
lua-5.1.4-3.C54.i386.rpm
lua-devel-5.1.4-3.C54.i386.rpm
lua-static-5.1.4-3.C54.i386.rpm
# rm *debuginfo* # mv *.rpm /usr/src/lua # cd ../../SRPMS
*作成されたパッケージ
lua-5.1.4-3.C54.src.rpm
# mv *.rpm /usr/src/lua
*インストール
# cd /usr/src/lua # rpm -Uvh lua-static* lua-devel* lua-5.1.4-3.C54.i386.rpm
キャッシュ情報の更新と確認# ldconfig # ldconfig -p | grep lua
modsecurity-apache_2.5.11
ソースの展開・インストール*apr-1-config、apu-1-configスクリプトのリンクを作ります
# cd /usr/local/bin # ln -s /usr/local/apache2/bin/apr-1-config apr-config # ln -s /usr/local/apache2/bin/apu-1-config apu-config
# cd /usr/src # tar zxvf modsecurity-apache_2.5.11.tar.gz # chown -R root:root modsecurity-apache_2.5.11 # cd modsecurity-apache_2.5.11/apache2 # ./configure
# make # make test # make install
*ルールのコピー
# mkdir /etc/httpd/modsecurity
# cd ../rules
# cp -a *.conf /etc/httpd/modsecurity
# cp -a base_rules/* /etc/httpd/modsecurity
# cd /usr/src
# tar jcvf modsecurity-apache_2.5.11-100120.tar.bz2 modsecurity-apache_2.5.11/
modsecurityの設定
apacheのconfigファイルの修正:/etc/httpd/conf/httpd.conf
*省略
Include /etc/httpd/conf/extra/mod_security.conf
:/etc/httpd/conf/extra/mod_security.conf
*et_sql_injectionとet_web_rulesはSNORT_RULESから作成されたものです
*有効にする場合は #記号 を外します
LoadFile /usr/lib/libxml2.so LoadFile /usr/lib/liblua-5.1.so LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
Include /etc/httpd/modsecurity/modsecurity_crs_10_config.conf
Include /etc/httpd/modsecurity/modsecurity_crs_10_global_config.conf
Include /etc/httpd/modsecurity/modsecurity_crs_20_protocol_violations.conf
Include /etc/httpd/modsecurity/modsecurity_crs_21_protocol_anomalies.conf
Include /etc/httpd/modsecurity/modsecurity_crs_23_request_limits.conf
Include /etc/httpd/modsecurity/modsecurity_crs_30_http_policy.conf
Include /etc/httpd/modsecurity/modsecurity_crs_35_bad_robots.conf
Include /etc/httpd/modsecurity/modsecurity_crs_40_generic_attacks.conf
Include /etc/httpd/modsecurity/modsecurity_crs_41_phpids_filters.conf
Include /etc/httpd/modsecurity/modsecurity_crs_41_sql_injection_attacks.conf
Include /etc/httpd/modsecurity/modsecurity_crs_41_xss_attacks.conf
Include /etc/httpd/modsecurity/modsecurity_crs_45_trojans.conf
# Include /etc/httpd/modsecurity/modsecurity_crs_46_et_sql_injection.conf
# Include /etc/httpd/modsecurity/modsecurity_crs_46_et_web_rules.conf
Include /etc/httpd/modsecurity/modsecurity_crs_47_common_exceptions.conf
Include /etc/httpd/modsecurity/modsecurity_crs_48_local_exceptions.conf
Include /etc/httpd/modsecurity/modsecurity_crs_49_enforcement.conf
Include /etc/httpd/modsecurity/modsecurity_crs_50_outbound.conf
Include /etc/httpd/modsecurity/modsecurity_crs_60_correlation.conf
</IfModule>
modsecyurityのconfigファイルの修正*レスポンスボディをバッファして解析するかどうか(SecResponseBodyAccess)
*ステータスコードでaudit_logへの出力を制御 (SecAuditLogRelevantStatus)
*ログの出力先をapacheの設定に合わせます
:/etc/httpd/modsecurity/modsecurity_crs_10_config.conf
*省略
SecResponseBodyAccess Off
*省略
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|40[^4]|41[^0]|42)"
*省略
SecAuditLog /var/log/httpd/modsec_audit_log SecAuditLogParts "ABIFHZ"
*省略
SecDebugLog /var/log/httpd/modsec_debug_log
*省略
*id番号により、ルールを無効にする
:/etc/httpd/modsecurity/modsecurity_crs_48_local_exceptions.conf
# 特定のリモートアドレスからのアクセスを無視する SecRule REMOTE_ADDR "^192\.168\.0\.3$" \ phase:1,nolog,allow,ctl:ruleEngine=Off
# IPアドレスによるアクセスの警告が気になる場合 SecRuleRemoveById 960017
# mod_deflateに対する警告が気になる場合 SecRuleRemoveById 960903
# Xoopsのpico、multipart/form-dataへの対応
SecRule &TX:/arg_name_content_id/ "@gt 0" \
"phase:2,t:none,nolog,pass,setvar:tx.anomaly_score=-20"
# Xoopsのmynews(pico)のアップデートへの対応 SecRule &TX:/arg_name_dirname/ "@gt 0" \ "phase:2,t:none,nolog,pass,setvar:tx.anomaly_score=-20" SecRule REQUEST_BODY ".mynews=" \ "phase:2,t:none,nolog,pass,setvar:tx.anomaly_score=-20"
*modsecurityを無効にする場合
:/etc/httpd/modsecurity/modsecurity_crs_10_config.conf
SecRuleEngine Off
selinuxヘの対応 (selinuxが有効の場合)*新規インストールファイルのselinuxラベルを修正
# restorecon -Rv /etc # restorecon -Rv /usr/local
apacheのリスタート# service httpd configtest # service httpd restart
![]() |
Copyright(c) 528p.com All Rights Reserved. |

