私の環境ではApacheが重くなるタイミングで/server-statusを調べると、前は一部のPHPコードへのアクセスが多いのでKeep-Aliveを打ち消す施策を色々試していました(参考: http://q.hatena.ne.jp/1352183832 )。
しかし、今ではReading Requestが大量にプロセスを占めて重くなっていることに気が付きました。
mod_evasiveが有効なケースもあるということで、 http://bitly.com/aqUYGW よりソースコードを入手し、 http://bitly.com/PYTO9S より apxs_win32.zip をダウンロードしてビルド環境を用意しました。
しかし大量のエラーが出てコンパイルすることができません。
Perlは、v5.10.1を導入済みです。
よろしくお願いいたします。
下記からダウンロードできるmod_dosevasive22.dllを利用してみて下さい。
http://www.apachelounge.com/viewtopic.php?t=917&start=23
ただ、Reading Requestの原因がDoS攻撃であるなら、他の対策を取った方がよいと思います。
下記からダウンロードできるmod_dosevasive22.dllを利用してみて下さい。
http://www.apachelounge.com/viewtopic.php?t=917&start=23
ただ、Reading Requestの原因がDoS攻撃であるなら、他の対策を取った方がよいと思います。
ありがとうございます。
http://ftp.gnu.org/gnu/libiconv/より
libiconv-1.14.tar.gz をダウンロードしてみたところ
iconv.cは存在するのですが、iconv.hは存在していませんでした。
oil999さんに頼り切りでも悪いので、別質問として仕切りなおすことにしました。
http://q.hatena.ne.jp/1352727678
Windows64ビット版Apache2.2で質問です、mod_security2の導入方法について教えて下さい。
またご関心がございましたら、今後ともよろしくお願いいたします。
どういうエラーですか?それを書かないと。
pigmon88さん、興味を持っていただいてありがとうございます。
質問文には500文字数制限があるので、コメントに記載しています。
よろしければよろしくお願い致します。
apxs.bat で、VC 用のコンパイルオプションを使おうとしてるみたいですね。
同じようなはまり方をしている人が、ここに。
http://d.hatena.ne.jp/hhelibex/20110310/1299766831
(apxsは何をしてくれるかっていうと、pl覗けば分かるけど、コンパイラとリンカのオプションを設定して一度に実行してくれる。makeみたいなもん。デフォでclとlink使うようになってるから、bcc使いな人は手動でやった方が早そう)
http://blog.goo.ne.jp/yulali/e/ac2377eaac7d7049fb00bd55653c08e2
Configure.pl で、うまくやってくれそうな感じですけどね。
でも、先のはてなダイアリーでは、Configure.pl もやってるみたいだし...
とりあえず、「地力でコンパイルする」で終わってるので、もうちょっと検索。
こちらは、apxs のサンプルをコンパイルしている手順を書いているところです。
http://yyamazakiya.blogspot.jp/2011_07_01_archive.html
Apache の方に、インクルードパスとライブラリパスを通しておけば良い、という感じです。
gcc -mwindows -I C:\ApacheSoftware\Apache2.2\include -L C:\ApacheSoftware\Apache2.2\lib -c mod_hoge.c
http://yyamazakiya.blogspot.jp/2011_07_01_archive.html
...
続いて、.soファイルをつくります。以下のようなgccを実行してください。
gcc -mwindows -I C:\ApacheSoftware\Apache2.2\include -L C:\ApacheSoftware\Apache2.2\lib -shared -o mod_hoge.so mod_hoge.o -llibhttpd
-mwindows が付いてるってことは、cygwin の gcc ですかね。
MinGW なら -mwindows を外す感じになるでしょう。
ヘッダファイルが2つ(ap_config_auto.hとap_config_layout.h)ありませんと出ています。
http://yyamazakiya.blogspot.jp/2011_07_01_archive.html
そんなファイル確かにないし、、、
これは、Configure.pl をやってないから、という気がします。
んで、mod_evasive のソースをちょろっと見てみたんですが、syslog を使ってるので、Windows 環境でコンパイルが通らない気がします。
それに、メールでの通知に /bin/mail とか書いてあるので、コンパイルが通っても動かないような...
あ、/bin/mail は EmailNotify を使わなきゃ、良いだけの話か。
とりあえず、syslog を使わないようにすれば、コンパイル&リンクはできそうな感じ。
例えば、
/* #include <syslog.h> */ ... #define LOG( A, ... )
想像で書いているところが多いのですが、参考になれば、と。
ごちゃごちゃ書きすぎました (^^ゞ
gcc が使えるコマンドプロンプトでの操作です。
Apache がインストールされてるところが c:\apache2.2 だとします。
C:\Apache2.2\include には、httpd.h や http_core.h が存在してるはず。
mod_evasive20.c があるディレクトリに行きます。
gcc -I C:\Apache2.2\include -c mod_evasive20.c
で、うまくすると、mod_evasive20.o ができる。
syslog.h が無い、とか怒られそうな気もします。
回答に書いた、LOG マクロの中身を空っぽにするようにして、syslog.h へのインクルードを消します。
これで、コンパイルが通るはず。
もし、mod_evasive20.o ができたとしたら、
gcc -shared -L C:\Apache2.2\lib -o mod_evasive.so mod_evasive20.o -lhttpd
で、mod_evasive.so が出来上がるんじゃないか、と。
a-kuma3さんありがとうございます。
導入方法が分かれば、他のApacheモジュール導入にも役立ちそうなので、参考にさせて頂きます!
ありがとうございます。
2012/11/12 13:47:45http://ftp.gnu.org/gnu/libiconv/より
libiconv-1.14.tar.gz をダウンロードしてみたところ
iconv.cは存在するのですが、iconv.hは存在していませんでした。
oil999さんに頼り切りでも悪いので、別質問として仕切りなおすことにしました。
2012/11/12 22:43:15http://q.hatena.ne.jp/1352727678
Windows64ビット版Apache2.2で質問です、mod_security2の導入方法について教えて下さい。
またご関心がございましたら、今後ともよろしくお願いいたします。