web-dev-qa-db-ja.com

Apacheのデフォルトの300秒ではなく、接続タイムアウトに対して21秒は短すぎますか?

現在、利用可能な接続スロットを保持している悪いボットを望まないため、21秒後にApacheタイムアウトの不完全なリクエストがあります。

ログ調査の後、次のようなエントリが表示されます。

(remote ip address) - - [17/Mar/2016:10:29:13 -0400] "-" 408 - "-" "-"

ほとんどの場合、それらはモバイルネットワークに接続されたモバイルデバイスから取得され、408コードはタイムアウトを増やすことを示唆していますが、ローカルモバイルデバイスがローカルサーバーに接続するには21秒で十分だと思いました。地元では、約1000 km以内(中央オンタリオから中央ケベックまで)を意味します。面白いことに、米国カリフォルニア州のさまざまな場所からwebpagetest.orgを介してテストし、Webページ全体、広告、およびすべてがすべてのデバイスに21秒未満でロードされました。

低すぎるタイムアウトを指定していますか?もしそうなら?どうして?または、サイトに接続しようとしているネットワークの一部が適切に構成されていませんか?それとも、一部のモバイルデバイス自体がWebサイトに接続するのがひどいということですか?

これらの線は、時間の10%から30%の間に表示されます。

3
Mike

[OK]を私はハード研究からそれを理解した。答えは21秒は非常に高いです!これは、スローロリスと呼ばれる攻撃が存在するためです。簡単に言えば、Apache configで指定されたタイムアウト値の間、Apacheスロットを保持します。これにより、正当なユーザーがWebサイトに接続することさえできなくなります。接続のセットアップに必要な時間は1秒未満になったため、3秒以上のタイムアウトはまずいです。 (もちろん、接続がやや弱いモバイルクライアントをサポートしようとしているため、1秒のフラットタイムアウトが発生しません)

これがスローロリスに関する記事です。

https://www.incapsula.com/ddos/attack-glossary/slowloris.html

1
Mike