Webサーバが貧弱すぎて、単純なDoS攻撃(F5アタック)でもダメージを受けることがわかりましたので、mod_dosdetecterを使った、連続アクセス防止対策を入れてみました。
1. apxをインストール
サブのhttpdはiusリポジトリから入れているので、apxが含まれるhttpd-develもiusからインストールします。
# yum --disablerepo=base,extras,updates --enablerepo=ius -y install httpd-devel
2. mod_dosdetector.so のインストール
apxのパスがデフォルトと違うので、Makefileを修正してからインストールします。
# cd /usr/local/src/ # git clone https://github.com/stanaka/mod_dosdetector.git # cd mod_dosdetector/ # vi Makefile ------------------------------------- . . # the used tools #APXS=/usr/sbin/apxs APXS=/bin/apxs . . ------------------------------------- :wq
# make install
3. mod_dosdetector.so のロード
httpd.confを修正して、mod_dosdetector.soをロードします。
# vi /usr/local/httpd2/conf/httpd.conf ------------------------------------- . . LoadModule dosdetector_module /usr/lib64/httpd/modules/mod_dosdetector.so . . ------------------------------------ :wq
4. DoS対策するバーチャルホスト設定
DoS対策するバーチャルホスト内に、dosdetectorの設定を追記します。
# vi /usr/local/httpd2/conf/extra/httpd-vhost-https.conf
-------------------------------------
<IfModule mod_ssl.c>
<VirtualHost *:443>
.
.
.
# for dosdetector
DoSDetection on
DoSPeriod 10
DoSThreshold 30
DoSBanPeriod 60
DoSTableSize 100
RewriteEngine On
RewriteCond %{ENV:SuspectDoS} =1
RewriteRule .* - [R=503,L]
ErrorDocument 503 "<h1>Sorry, ji0vwl.net is busy.. Please access later.</h1>"
</VirtualHost>
</IfModule>
------------------------------------
:wq
# systemctl reload httpd2