質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

2305閲覧

mod_evasive導入について

kei777

総合スコア13

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2016/10/19 05:54

###前提・実現したいこと
DOS攻撃対策にmod_evasiveを適用しましたがうまく動作しません。
perlのテストプログラムを動かすと403エラーがログに出力されますが
クライアントからブラウザアクセスをしても403エラーが発生しません。

###該当のソースコード
httpd.conf
以下を追加
<IfModule mod_evasive24.c>
DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 5
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 30
DOSLogDir "/usr/tmp/mod_evasive_log"
</IfModule>

###試したこと
perlの検証プログラムで動作確認→403エラー発生
[root@STSVWB90 mod_evasive]# cat test.pl
#!/usr/bin/perl

test.pl: small script to test mod_dosevasive's effectiveness

use IO::Socket;
use strict;

for(0..100) {
my($response);
my($SOCKET) = new IO::Socket::INET( Proto => "tcp",
PeerAddr=> "127.0.0.1:80");
if (! defined $SOCKET) { die $!; }
print $SOCKET "GET /?$_ HTTP/1.0\n\n";
$response = <$SOCKET>;
print $response;
close($SOCKET);
}
ブラウザアクセス,F5キー連打で1秒間に3回以上アクセス→403エラーは発生せず

課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
Red Hat Enterprise Linux Server release 6.6 (Santiago)
Apache/2.4.12 (Red Hat)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imutakaoru

2016/10/19 06:51

/usr/local/apache2/bin/apachectl -M で、evasive20_moduleが有効になっているかどうかご確認いただけますか。
kei777

2016/10/19 07:26

コメントありがとうございます。有効になっているようです。/opt/rh/httpd24/root/usr/sbin/apachectl -M AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message Loaded Modules: core_module (static) so_module (static) http_module (static) evasive20_module (shared) access_compat_module (shared) actions_module (shared) alias_module (shared) allowmethods_module (shared) auth_basic_module (shared) auth_digest_module (shared) authn_anon_module (shared) authn_core_module (shared) authn_dbd_module (shared) authn_dbm_module (shared) authn_file_module (shared) authn_socache_module (shared) authz_core_module (shared) authz_dbd_module (shared) authz_dbm_module (shared) authz_groupfile_module (shared) authz_host_module (shared) authz_owner_module (shared) authz_user_module (shared) autoindex_module (shared) cache_module (shared) cache_disk_module (shared) data_module (shared) dbd_module (shared) deflate_module (shared) dir_module (shared) dumpio_module (shared) echo_module (shared) env_module (shared) expires_module (shared) ext_filter_module (shared) filter_module (shared) headers_module (shared) include_module (shared) info_module (shared) log_config_module (shared) logio_module (shared) mime_magic_module (shared) mime_module (shared) negotiation_module (shared) remoteip_module (shared) reqtimeout_module (shared) request_module (shared) rewrite_module (shared) setenvif_module (shared) slotmem_plain_module (shared) slotmem_shm_module (shared) socache_dbm_module (shared) socache_memcache_module (shared) socache_shmcb_module (shared) status_module (shared) substitute_module (shared) suexec_module (shared) unique_id_module (shared) unixd_module (shared) userdir_module (shared) version_module (shared) vhost_alias_module (shared) dav_module (shared) dav_fs_module (shared) dav_lock_module (shared) lua_module (shared) mpm_prefork_module (shared) proxy_module (shared) lbmethod_bybusyness_module (shared) lbmethod_byrequests_module (shared) lbmethod_bytraffic_module (shared) lbmethod_heartbeat_module (shared) proxy_ajp_module (shared) proxy_balancer_module (shared) proxy_connect_module (shared) proxy_express_module (shared) proxy_fcgi_module (shared) proxy_fdpass_module (shared) proxy_ftp_module (shared) proxy_http_module (shared) proxy_scgi_module (shared) xml2enc_module (shared) proxy_html_module (shared) ssl_module (shared) cgi_module (shared) ldap_module (shared) authnz_ldap_module (shared) session_module (shared) session_cookie_module (shared) session_dbd_module (shared) auth_form_module (shared) auth_kerb_module (shared)
guest

回答1

0

ベストアンサー

Amazon Linux で mod_evasive が効かない。。。 を参照ください。
httpd 子プロセスごとにカウンタを持つので、(子プロセス数×3回)/秒のアクセスがあると 403 が返ると思います。

投稿2016/10/19 14:42

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei777

2016/10/20 00:21

コメントありがとうございます。以下の考え方という事でしょうか? httpd.conf StartServers 20の場合プロセスが20起動している(prefork)ので子プロセスが20 閾値をDOSPageCount 3 DOSPageInterval 2にしていますので、 2秒間に(20×3)回のアクセスがあった場合に閾値を超えるので403エラーが発生する
kei777

2016/10/21 02:08

なるほど、納得しました。 そうであれば、mod_evasiveではなく、mod_dosdetectorで対応しようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問