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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

2回答

6249閲覧

負荷テストとかDOS攻撃

退会済みユーザー

退会済みユーザー

総合スコア0

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

2グッド

1クリップ

投稿2015/12/06 14:39

負荷テストをする為、Apache BenchというApache既存のツールを使って自分で作ったサイトに負荷をかけました。
サイトとは言っても、apache起動させてhelloと表示するだけのhtmlファイルなのですが。
自分のパソコン上で行っています。

abはDOS攻撃にもすごく使えそうだと思いました。実際に対策をする為の手法などがありました。以下のURL

http://dev.classmethod.jp/cloud/aws/mod_evasive20/

疑問に思ったのですが、上記の方法でabのDOS攻撃は回避できますが、また別のツールでのDOS攻撃などもあり得ますよね?
サービスを運営していくには、これら全てにおいて対策をするのでしょうか?

また、負荷テストをする上で、自分はまだ毎秒何人のユーザから何個のリクエストがくるのかというテストしかしていません。今後サービスを作る上で有用な負荷テストの方法など、アドバイスが欲しいです!宜しくお願い致します。

blackonyx, ikuwow👍を押しています

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

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

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

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

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

guest

回答2

0

DoS対策ということで、同じIPアドレスから一定数のアクセスがあった場合にそのIPアドレスからのアクセスを遮断するというものなので ab 以外にも効果があると思います。ただ、DDoS対策には万全ではありません。その場合は下位側(サーバ側)では対策のしようもありません。

まず、需要想定から、最大接続数を算出します。

サーバの同時リクエスト数(フォークするならフォーク数など)と、KeepAliveTimeから、同時セッション数を割り出ししておくなどし、事前に設計します。
同時リクエストの最大数は、あらかじめ1コネクションあたりの応答時間の限界値を決めておき、それを超えるような状況にならない値を負荷試験で事前に把握しておきます。

後は、運用見合いで、セッションがあふれそうなら、随時追加していくという感じでしょうか。

コスト的な問題もあり、サチらせる(サチュレーション=飽和)のをやむなしとする運用もあり、さじ加減は大変難しい所です。。。
AWSで無限にリソースを増やす運用をしてしまうと、大変な請求が来てしまいますし・・・

投稿2015/12/06 14:58

編集2015/12/06 15:08
Ken.sakanakana

総合スコア1768

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

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

0

mod_evasive は apache のプロセス毎での制限なので apache の MaxServers 値を意識して設定する必要があります。(=設定値×プロセス数を超えたらブロックします)

他に mod_dosdetector があります。
こちらは共有メモリで全プロセスのアクセスを一括管理しているので、サーバ単体で閾値のセットが可能です。

ただ、どちらも分散配置された複数のウェブサーバ環境では、サーバの増減で閾値変更とapacheの再起動が必要だったので運用が大変でした。
またURL単位で設定はできなかったので、一番重い機能に閾値をあわせる必要がありました。
(=本来なら捌ける機能なのにブロックしてしまうケースあり)

なので自作しました。(ソース公開しています)
doshelper

サイト全体でも、URL単位でも閾値を設定できるようにしています。
また、一度設定したらサーバ増減は気にしなくても良いよう、アクセス情報の管理に redis と言うKVSを利用して一元管理させてます。

お暇でしたら、ご覧いただければ幸いです。
(初心者なのでご指摘はほどほどでお願いします)

なおIP単位で防御するので、こちらも DDoS攻撃 には対処できません。あしからずw

投稿2015/12/07 13:44

kurosawa

総合スコア780

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問