Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Expressions http://httpd.apache.org/docs/2.4/en/expr.html やSetEnvIfExpr, RewriteCond, Headerで使える評価式 の追加 http://httpd.apache.org/docs/2.4/en/mod/core.html#if ヘッダや環境変数を参照して細かい制御ができるようになったことに加え、else的なブロックを書くのに苦労したことがあるんで朗報です ErrorLogFormat http://httpd.apache.org/docs/2.4/en/mod/core.html#errorlogformat ErrorLogも書式設定できるように。 %L (L
slowloris対策として、Apacheの2.1.15から入ったモジュールにmod_reqtimeoutというのがあります。 RequestReadTimeout header=10 body=30 このように設定することで、headerの受信が10秒以内、bodyの受信が30秒以内に完了しない場合、「408」エラーとできます。簡単で便利そうですね 公式ドキュメント http://httpd.apache.org/docs/2.2/en/mod/mod_reqtimeout.html ただし、 Apacheをreverse proxyとして使用している場合はTimeoutにならず、リクエストの一部がproxy先に送られるという問題があるので注意が必要というか、はまったのでその話。 ちなみに、すでにBugzillaには上がっているけど、2.2系ではまだ対応完了してない https://is
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice 2007 Apache JMeter 2007 1 30 2 19 2 14 • • Apache JMeter − • − − 3 19 2 14 • − • 2 − • − 4 19 2 14 • • • • • • Free Apache JMeter Apache JMeter 6 19 2 14 JMeter JMeter Jakarta / z z 100% pure Java Windows Linux z GUI z / z HTTP(HTTPS) FTP WEB z z Web 7 19 2 14 JMeter y y Java y y J
このエントリでは、hashdos対策としてのmod_securityの導入と設定の方法を説明します。Ubuntu環境でapt-getによりApacheを導入しているサイトに対して、apt-getによりmod_securityを導入するというシナリオで説明します。 はじめに背景などについては昨日のブログを参照してください。 このエントリでは、hashdos対策を目的として、Ubuntu環境にapt-getによりmod_securityを導入する方法を説明しますが、mod_securityに対する情報があまりないため、いったんフルのmod_securityを導入した後、hashdos専用のカスタマイズを施すという流れで説明します。 Ubuntuにapt-getでmod_securityを導入するModSecurity Handbookによると、DebianおよびUbuntuに対して、mod_s
※2013/01/24 add: 徳丸先生の書かれた実はそんなに怖くないTRACEメソッド | 徳丸浩の日記を先に見ておくをオススメします。深く追求できていないまま記事にしてしまい申し訳ありません。 タイトルの通りです。HTTPのメソッドには、よく使うものとしてGETやPOSTというものがありますが、TRACEメソッドというものがありまして、これを有効にしておくと危ないよという話しです。 TRACEメソッドについて 百聞は一見にしかず、どんな挙動をするか見ていきましょう。 $ telnet example.org 80 Trying example.org... Connected to example.org. Escape character is '\^]'. TRACE / HTTP/1.1 #ここと HOST: example.org #ここを手で入力して、エンターキー二回このよ
■Traceメソッドとは? クライアントが送信したリクエストをそのまま返す機能 ■Traceメソッドを利用した攻撃方法 「クロスサイトトレーシング」というものがあります。 これは、クライアントにTRACEメソッドを発行するように仕向け、そのレスポンスを なんらかの形で取得することでBasic認証のパスワードを搾取するという攻撃です。 引用元:http://grin.flagbind.jp/archives/memo/apache/index.html ■TRACEメソッドを無効にする方法 1. TraceEnable 以下の各バージョンから提供されているディレクティブ 1.3.34 2.0.55 2.2.* ・設定方法 TraceEnable Off * デフォルトは On ・参考URL http://grin.flagbind.jp/archives/memo/apache/index.
ApacheのMaxClients,ServerLimitsで最大接続数を設定できるが、 それを超えた時の新規リクエストは全てエラーが返されると思っていましたが、 ListenBacklogで設定した数までは、キュー待ちになるそうです。 知らなかった。 ちなみに、ListenBacklogの設定値は変更することはあまり望ましくないとか。 デフォルトは511。 また、OSの制約値も関係してくる。 ListenBacklogよりもOSの方が受け付けられなくなると、 OSのエラーが発生するらしい。 以下、参考URL。 http://his.luky.org/ML/linux-users.a/msg02360.html
Apacheのログに%T or %Dでリクエスト処理時間を載せることができます。%Tと%Dは内部的には同じ計算値で、単位が異なるだけです(%Tは秒、%Dはマイクロ秒)。 このリクエスト処理時間は、いつからいつまでの処理時間でしょうか。つまり計測時間の開始と終了はどのタイミングでしょうか。 終了はレスポンスデータをsend(2)し切ったタイミングです。 開始として思いつくのは次の3つのタイミングです。 listenキューに入ったタイミング(3wayハンドシェイクの最初のACKを受けたタイミング) accept(2)が返ったタイミング(3wayハンドシェイクの最後のACKを受けたタイミング) リクエストデータをrecv(2)する前 実はどれも間違いです。正解は、リクエストデータの1行目のリクエスト行を読み終わったタイミングです(ソースコードで言うと server/protocol.cのread
公開: 2011年8月30日1時45分頃 ApacheのDoSの脆弱性が話題になっていますね。 HTTP/1.1では、HTTP要求ヘッダでRangeフィールドを指定すると、コンテンツの全てではなく一部分だけを要求することができます。たとえば、以下のように指定するとデータの先頭の1バイトだけを受け取ることが期待されます。 ※これは以前にも書いたのですが、0-0で1バイト受け取るというのは微妙に直感的ではない感じがしますね。しかし正しい挙動です。 WebサーバがRangeを解釈した場合、ステータスコード 206 (Partial Content) で応答しつつ、指定された部分だけを返します。 と、これだけならRangeがない場合とサーバの負荷はほとんど変わらないのですが、実は1回のリクエストで複数の範囲を指定することができます。その場合、応答は Content-Type: multipart/
Apacheの脆弱性(CVE-2011-3192)いわゆるApache killerが話題になっていますが、その脅威については一部誤解があるようです。 以下は、非常に脅威とする報告の例です。 一方今回のはプロセスの肥大化を伴うので、実メモリ消費して更にスワップも使い尽くしてOS毎激重になったあげくLinuxとかの場合はOOM Killer発動と、他のプロセスや場合によってはOSを巻き込んで逝ってしまいます。 CVE-2011-3192 Range header DoS vulnerability Apache HTTPD 1.3/2.xより引用 以下は、それほど脅威でなかったとする報告の例です。 pooh.gr.jp は結構頑丈だったので 60 並列でやっと CPU idle 30% まで減らせた。 Apache Killer (CVE-2011-3192) 対策 for CentOS 5
2011年6月21日(火) ■ ルートサーバ更新 _ D がデュアルスタックに。 重複案内。 _ でさぁ、 以前も書いたし、dnsops ML にも同じこと考えてる人いたけどさ(あれってそういう意味だよね?)、ヒントファイルの配布のしかたどうにかならんの? ダメだよあんなのじゃ。以下、前回の繰り返しなので、べつに読まなくてよし。 _ ヒントファイル置き場は素の HTTP/FTP なんで、接続先をねじまげられて変なところに誘導させられても確認のしようがない。PGP の署名もあるけど、署名鍵がホンモノかどうか確認できないので意味ない(しかも前回更新のときと違う鍵が使われてる)。なんとびっくり、internic.net は DNSSEC による署名があるようだけど、上位に DS が登録されてなくて信頼の連鎖が切れてるから検証できない。HTTP/FTP を使わなくても、DNS で拾ってきた情報を
2011年7月4日(月) ■ mod_noloris _ 2年遅れの slowloris 対策つづき。続けるつもりはなかったんだが。 _ apache 2.3 のソースを眺めてたら、modules/experimental/ の下に mod_noloris.c がまぎれこんでた。同時接続数を制限して上限を越えたらエラーにしましょう、ってモジュールですな。ただし、リクエストを受けている途中のものしか数えないので、大量同時ダウンロードの制限をするような用途には流用できない。slowloris 系の攻撃を防ぐ以外にはまったく役に立つ場面はなさげな感じ。ちゃんとした同時接続数制限がやりたければ mod_limitipconn みたいなサードパーティモジュールでやってください、と。 _ これも slowloris attack によって受ける被害を緩和するだけで、根本的な問題を解決してるわけではない
紹介したrpmのspecファイル、設定ファイル、オレオレpatchなどはすべてgithubにあります。 rpm: https://github.com/kazeburo/rpm/tree/master/httpd_proxy patch: https://github.com/kazeburo/apache-httpd-patch あわせて読みたい プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 mod_expiresでExpiresとCache-Controlを上書きする 再掲: mod_proxyのretryを2段階にするpatch PSGIアプリケーションをリバースプロキシ下で使う際の静的コンテンツの配信方法について \n\n\n紹介したrpmのspecファイル、設定ファイル、オレオレp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く