Apache 初心者質問スレッド Part15at MYSV
Apache 初心者質問スレッド Part15 - 暇つぶし2ch529:DNS未登録さん
07/04/21 18:03:22
>>527
SynFloodにApacheで対抗するってのは・・・
TCPの処理なんだからHTTPのレベルで何をやっても無理だべ。

ということであとはSYN cookiesみたいなメジャーな方法になるんじゃない?
SYN flood 対策 とかでググってみるとか。
スレ違いなのでこんなもんで。

530:DNS未登録さん
07/04/21 18:07:04
>>527
> TIME_WAIT_1 が大量に並んでいた
TIME_WAITなのかFIN_WAIT_1なのかはっきりすれ。

あと、いずれにしてもそれはSYN floodではない。
SYN floodであればSYN_RCVD状態のソケットが大量に発生するはずだ。

TIME_WAITだとすればそれは振る舞いとして正常(全く問題ない)。
FIN_WAIT_1だとすれば相手側からFIN+ACKを受け取れていないということだ。

> Linux 側のtcp_fin_timeout を 30 秒にする事で調整はしている
それはSYN floodの対策にはならないし、かえって接続の遅いユーザが
FINを正しく受け取れずにFINを再送する結果になってしまうし、
アプリケーションの挙動によってはコネクションを張り直して
データ自身をもう一度リクエストしてしまうかもしれない。

531:DNS未登録さん
07/04/21 18:13:12 Si5uY1uu
>>529

やっぱり、ダメですか。
可能かな?と期待を抱いていたのですが。

>>530
TIME_WAIT_1 で間違いないです。なるほど。この場合はSynFloodに該当しないんですね。
FIN+ACK を受け取れない場合もDoS攻撃であると理解しているのですが、
この点についての対策はありますか?一言だけアドバイスをお願いしたいです。
継続の話については、スレ違いになりそうなので、大体検討がついたら自分で色々と探してみます。
すみませんが、最後にチョットだけお願いしたく存じます。

532:DNS未登録さん
07/04/21 18:20:15
>さらに対策として、ドメイン名ではなく、IP だけでアクセスする輩をブロックしたいとの考えに至った次第です。
ドメイン名かIPアドレスかは、受け取ったHOSTヘッダで区別している(はず)
なんで、HTTPデータが送られてこない限りはドメインでのアクセスか
IPアドレスでのアクセスかなんて区別できない。
(SynFloodはHTTPデータなんて送ってこないんで当然Apacheさんは何もできない)


533:DNS未登録さん
07/04/21 18:21:49
>>531
> FIN+ACK を受け取れない場合もDoS攻撃であると理解している
それは大きな間違い。最大パケット生存時間(MSL)の2倍まで自動的に待ってくれる
現状のTIME_WAIT時間を維持すべきで、それを短くすれば前述のとおりクライアントが
リクエストを再送することがあるので逆効果だろう。

むしろFIN+ACKが失われる原因が自分自身側に無いかどうかを探したほうがいい。
たとえばルータのメモリ不足などで捨てられていないかどうかなど。

あと、その問題によってメモリが足りないなどの事象が発生するのであれば
Apache側で解決(スレッドモデルをworkerにするとか)をすべきだろう。

534:DNS未登録さん
07/04/21 18:34:18 Si5uY1uu
>>533
なるほど、大体イメージがつかめてきました。
ありがとうございます。

>>たとえばルータのメモリ不足などで捨てられていないかどうかなど。
一応、ルータにはエラーメッセージは見られませんでした。

TIME_WAIT_1 が大量に発生していたときに、メモリ容量がどの程度は見てませんでしたね。
また遭遇したら必ずチェックしてみます。

Apache2を利用していますが、prefork と worker の違いを意識していませんでしたので、
その辺りを重点的に調査してみます。

色々とありがとうございました^^


535:DNS未登録さん
07/04/22 10:56:36 PHXckloP
俺のDeb/Etch(4.0r0)に apxs が存在しないようなんだが、何でだ?

/usr/local/apache ディレクトリ自体が存在しないようなんだが。。。

536:DNS未登録さん
07/04/22 10:59:49
Debianのパッケージをインストールしたんじゃないの?
それじゃ /usr/local にはないでしょう。

Fedora Core の場合は httpd-devel ってパッケージを入れないとapxsはインストールされない。
Debianもそんな感じでは?

537:DNS未登録さん
07/04/22 11:24:21 PHXckloP
apache2-prefork-dev

↑を入れてみたんだが、apxs2しか入らないようだ。
ちなみにApache2.2で利用中さ。
パッケージが足らんのだろうか。

538:DNS未登録さん
07/04/22 11:48:03 pi+ycNL2
apxs2ってのは要するにApache1.3のapxsと区別するためにそういう名前でインストールされてるだけ。

539:DNS未登録さん
07/04/22 12:11:56 PHXckloP
なるほど。
さっそくそのapxs2を使って mod_rpaf0.5 を apache2.2 に make & install を実施してみたんだけど、
apache2.conf (deb使用) に追加しても、エラーになるんだ。
どう対処したらいいものだろうか。

1) /etc/apache2/mods_available に rpaf.load を作成
↓その中身。
LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so

2) a2enmod rpaf でロードする。

3) apache2.conf の最後に下記を追加

PAFenable On
RPAFsethostname Off
RPAFproxy_ips 172.16.100.131

4) apache2を再起動すると、以下のエラーが出る。
Forcing reload of web server (apache2)...Syntax error on line 679 of /etc/apache2/apache2.conf:
Invalid command 'PAFenable', perhaps misspelled or defined by a module not included in the server configuration failed!

540:DNS未登録さん
07/04/22 12:53:14 XmTPN3hH
PAFenable On
じゃなくて
RPAFenable On
だろ

541:DNS未登録さん
07/04/22 14:53:38
>>539
とゆうか「perhaps misspelled」って指摘されてるじゃねえか


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch