Dosdetector

ここで説明している内容は、レンタルサーバーではなく、自宅に設置するパソコンを、Webサーバーとして公開する場合、考える必要が有るセキュリティについて述べています。

Dosdetctor

GitHubからDosdetector-master.zipファイルをダウンロードします。なお、本項はサイトLACOONさんのサイトを参考にさせて頂きました。Patchファイルも含めて。

下図はGitHubのダウンロードページです。Zipファイルをダウンロードするを、右クリックしURLをコピーします。

 

上図で、Codeのボタンをクリックすると、出てきたプルダウン画面の下に、Download ZIPのリンク文字にカーソルを当てて右クリックし、リンクをコピーします

Apacheのモジュールの確認

念の為、Apacheのモジュールがインストールされているか確認しておきます。
# httpd -M | grep so_module
 so_module (static)
so_moduleがあればそのまま継続できます。

Dosdetectorのダウンロード

GitHubのサイトからダウンロードするため、サイトのZipファイルのダウンロードからURLをコピーした後、下記の操作をします。Patchファイルも作者のLACOONさんのサイトからwgetでダウンロードします。
# cd /usr/local/src/
# wget https://github.com/stanaka/mod_dosdetector/archive/master.zip
# wget https://techblog.raccoon.ne.jp/wp-content/uploads/2018/04/mod_dosdetector.patch
# ll
合計 3184
-rw-r--r--.  1 root   root      7677  1月 26 12:49 master.zip
-rw-r--r--.  1 root   root      9691  8月 14  2018 mod_dosdetector.patch

Zipファイルを解凍し、ファイルを配置

ダウンロードしたZipファイルを解凍し、出来たフォルダーに、Patcheファイルを移動します
# unzip master.zip
# ll
合計 3196
-rw-r--r--.  1 root   root      7677  1月 26 12:49 master.zip
drwxr-xr-x.  3 root   root       238  1月 26 13:25 mod_dosdetector-master
-rw-r--r--.  1 root   root      9691  8月 14  2018 mod_dosdetector.patch
# mv mod_dosdetector.patch ./mod_dosdetector-master
# cd mod_dosdetector-master
# ll
合計 156
-rw-r--r--. 1 root root   1065  1月 26 12:56 Makefile
-rw-r--r--. 1 root root   1963 10月 27  2013 README.md
-rw-r--r--. 1 root root  22448  1月 26 13:20 mod_dosdetector.c
-rw-r--r--. 1 root root   9688  1月 26 12:52 mod_dosdetector.patch
-rw-r--r--. 1 root root   1415 10月 27  2013 mod_dosdetector.spec

httpd-develのインストール

始めにApacheのモジュールをコンパイルするツールが必要になります。それには、apxsコマンドが実行出来るよう、httpd-devel パッケージをインストールする必要があります。

# yum -y install httpd-devel
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                     | 6.8 kB     00:00     
 * base: ftp.riken.jp
 * centos-sclo-rh: ftp.riken.jp
 ・・・・・・省略・・・・
 * remi-php73: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.riken.jp
base                                                     | 3.6 kB     00:00     
centos-sclo-rh                                           | 3.0 kB     00:00     
centos-sclo-sclo                                         | 2.9 kB     00:00

 apr                    x86_64       1.4.8-5.el7               base       103 k
 httpd                  x86_64       2.4.6-90.el7.centos       base       2.7 M
 httpd-tools            x86_64       2.4.6-90.el7.centos       base        91 k

Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/9): apr-devel-1.4.8-5.el7.x86_64.rpm                    | 188 kB   00:01 
・・・・・省略・・・・・
依存性を更新しました:
  apr.x86_64 0:1.4.8-5.el7                  httpd.x86_64 0:2.4.6-90.el7.centos 
  httpd-tools.x86_64 0:2.4.6-90.el7.centos 

完了しました!

Makeファイルの修正

mod_dosdetectorのフォルダ内にソースとMakefileがありますが、念の為、apxpファイルのパスとMakefile内の記述を確認しておきます。

# which apxs
/usr/bin/apxs
# cd /usr/local/src/mod_dosdetector/
# vi Makefile
#   the used tools
7行目
APXS=/usr/sbin/apxs  ・・・・apxsの場所が調べた場所と違います
   ↓
APXS=/usr/bin/apxs  ・・・・に変更します!

インストール

# cd /usr/local/src/mod_dosdetector
# make
・・・略・・・
# echo $?
# 0   ・・・・「0」ならばOK
警告は無視して可
続いてインストールします・・・
# make install
・・・略・・・
# echo $?
# 0  ・・・「0」ならばOK

設定。httpd.conf に、以下を追加

# vi /etc/httpd/conf/httpd.conf
Shift+i
###############################
# Dos Detector
###############################

DoSDetection on
DoSPeriod 60
DoSThreshold 200
DoSHardThreshold 300
DoSBanPeriod 30

DoSTableSize 100
#DoSIgnoreIpRange 192.168.0.0/16    <=====この初期設定ではhttpdでエラーが出るのでコメントアウト
#DoSIgnoreIpRange 172.16.0.0/12     <=====この初期設定は上記のおそれあり、コメントアウト

RewriteCond %{ENV:SuspectDoS} =1
RewriteCond %{HTTP_USER_AGENT} !googlebot [NC]
RewriteRule .  - [E=DoS:1]

ErrorDocument 500 /error503.html
RewriteCond %{ENV:DoS} =1
RewriteCond %{REQUEST_URI} !=/error503.html
RewriteRule . - [R=503,L]
CustomLog /var/log/httpd/sd-static-dosdetector.log combinedr env=DoS
ESC
:wq
# systemctl restart httpd

以上で、Dosdetectorのインストールと設定は完了です。

動作確認

現在、書きかけ中です。

タイトルとURLをコピーしました