LoginSignup
18
18

More than 5 years have passed since last update.

たまに起こる client denied by server configuration に対処する (on Debian)

Posted at

理屈はCentOS等のLinux環境でも多分同じになるかと思います。事例の一つとして参考にしてください。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.5 (wheezy)
Release:    7.5
Codename:   wheezy

$ apache2 -version
Server version: Apache/2.2.22 (Debian)
Server built:   Jan 31 2014 18:55:37

ヤボ用で、監視ソフトZabbixのAPIを試していたとき、HTTP 403でアクセスが失敗するケースが頻発しました。
そのとき、サーバ(Apache2)側で以下のようなエラーが出ていました。

[Tue May 20 10:59:01 2014] [error] [client XXX.XXX.XXX.XXX] client denied by server configuration: /usr/share/zabbix/api_jsonrpc.php

このメッセージ自体は、設定ミスで表示されることが多いようです。調べると大方そちらが出ます。典型的な事例では allow from all に相当する設定が抜けていて、アクセスを一律で遮断されるケースです。

ただ、今回は「たまに」発生するため、事情が異なるようでした。DEBUG相当のログでも理由が出なかったので、謎は深まります。

もうすこし調べたところ、どうもApacheにインストールされているDOSモジュール、具体的にはmod_evasiveの問題であることが分かってきました。

  • 今回、同一バージョンのZabbixサーバを2台対象にしていたが、片方だけおかしい -> 単なるバグ・設定不良とは思われない
  • Chromeから同サーバへアクセスしているタブを閉じると改善される -> 同時アクセス数が多いと問題になっている様子
  • 問題の起きているサーバでプロセス数等を今回のレベルで制約する設定はされていない
  • mod-security は入れていないが、……知らないモジュール mod-evasive が入っていた。
  • a2dismod mod-evasive 前後で問題が改善される -> つまりこれか

さて原因が分かれば設定を変更するだけです。

以降、mod-evasiveのトリビア

調べた限りではメールを送る設定も作れるようなので、ついでなので実際のDOSアタック時にメールしてもらう設定も追加することにしました。

こちらを参考にします: http://www.yourhowto.net/installing-mod_security-and-mod_evasive-on-debian/

mod-evasive自体は設定ファイルがありませんでした。なので、下記のファイルを作ります。

/etc/apache2/mods-available/mod-evasive.conf
<IfModule mod_evasive20.c>

  ...(色々)...

  DOSEmailNotify watashino@meado.example.com
  DOSWhitelist   127.0.0.1
  DOSWhiteList   XXX.XXX.XXX.XXX
</IfModule>

a2enmod が行うようにsymlinkをmods-enabledに入れるのも忘れないこと。
(このあたりはCentOS等では全く違う構造になるはずなので注意です)

なおDOSWhiteListはコンマ区切りではなくて別行にて指定みたいです。

あともう一点。調査不足を前提に書くと、標準のmod-evasiveは/bin/mailの存在を仮定しているのですが、これが私の環境にはありませんでした。代わりに /usr/bin/mail ならあるので、そちらを使うように変更するのですが、これがソースコードレベル以外受け付けないらしいので、ちょっと面倒。

今回はローカル環境についてはパッケージを再ビルドしました。ビルド方法は省略します。

ついでに/bin/mailがない部分についてはバグ報告しました。バグではないのかもしれませんが……

18
18
0

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
18
18