概要
DoS攻撃(Denial of Service attack)は、サーバなどにサービス妨害攻撃またはサービス不能攻撃などと呼ばれています。大量のデータや不正パケットをサーバーに送りつけるなどの不正な攻撃を指します。
Apacheでの、DoS攻撃の対策としては、「mod_evasive」のモジュールを利用することで、特定のIPアドレスからの設定した時間(閾値)あたりにページリクエストの回数制限を超えた、 アクセスブロックを実行したり、403(Forbidden)を返すことができます
mod_evasive インストール
EPELのリポジトリを設定していれば、yumでインストールできます。EPELは普段の有効にしない設定(enabled=0)にします。利用するときは、yum –enablerepo=epel [パッケージ名] として利用します
EPEL リポジトリ追加(CentOS 6.x)
# wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6 # rpm --import RPM-GPG-KEY-EPEL-6 # rm -f RPM-GPG-KEY-EPEL-6 # 以下の内容で新規作成 # vi /etc/yum.repos.d/epel.repo [epel] name=EPEL RPM Repository for Red Hat Enterprise Linux baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/ gpgcheck=1 enabled=0
EPEL リポジトリ追加(CentOS 7.x)
# wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-7 # rpm --import RPM-GPG-KEY-EPEL-7 # rm -f RPM-GPG-KEY-EPEL-7 # 以下の内容で新規作成 # vi /etc/yum.repos.d/epel.repo [epel] name=EPEL RPM Repository for Red Hat Enterprise Linux baseurl=http://ftp.riken.jp/Linux/fedora/epel/7/$basearch/ gpgcheck=1 enabled=0
mod_evasive インストール
# yum --enablerepo=epel -y install mod_evasive
mod_evasive 設定
ログディレクトリを作成します
# mkdir /var/log/mod_evasive/ # chown apache:apache /var/log/mod_evasive/
設定ファイルを編集します
項目の設定は、以下を参照してください
# vi /etc/httpd/conf.d/mod_evasive.conf
LoadModule evasive20_module modules/mod_evasive24.so
<IfModule mod_evasive24.c>
DOSHashTableSize 3097
DOSPageCount 10
DOSSiteCount 30
DOSPageInterval 2
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSLogDir "/var/log/mod_evasive"
DOSWhitelist 127.0.0.1
</IfModule>
| DOSHashTableSize | 子プロセスでのハッシュテーブルサイズ。 サイズを増やすことでパフォーマンス向上するが、メモリを消費する |
| DOSPageCount | 同一ページへのリクエスト数の閾値 |
| DOSSiteCount | 同サイトへのリクエスト数の閾値 |
| DOSPageInterval | ページカウントを計測する時間(秒) |
| DOSSiteInterval | サイト内カウントを計測する時間(秒) |
| DOSBlockingPeriod | ブロック時間(404 Forbiddenを返す)する時間(秒) |
| DOSLogDir | DOS攻撃のログの場所 |
| DOSEmailNotify | メールの通知先 |
| DOSWhitelist | ホワイトリスト |


コメント