Apache

文字コード

HTMLドキュメントにUTF-8を使い始めてから気づいたけど、HTML文書内でcharsetをUTF-8に宣言していても、ブラウザで開くとシフトJISになってしまう。
そういえば以前、httpd.confで文字コードをShift JISに強制するよう設定したような気がしたので眺めていると、やはり

AddDefaultCharset sjis

となっていたので、

AddDefaultCharset off

に書き換えた。
ただし、これはユーザーの入力データから動的にコンテンツを作成する場合に、クロスサイトスクリプティングを引き起こす原因になることがあるとかで、何か指定しておくのが推奨されているようだ。

ログ

サーバーを運営する身としてはマズいのだろうけど、数ヶ月ぶりにApacheのログを見た。18MBもあったが、ほとんどがワームの攻撃とおぼしき変なログというか要求で埋まってる・・・。
というわけで、このままではlogの可読性を著しく損なうので、httpd.confを弄くってログのとりかたを変えることにした。

<IfModule mod_setenvif.c>
  # Code Red
  SetEnvIf Request_URI ^/default.ida worm
  # WinNTAutoAttack
  SetEnvIf Request_URI ^/NULL.IDA worm
  # Nimda
  SetEnvIf Request_URI cmd.exe worm
  SetEnvIf Request_URI root.exe worm
</IfModule>
ErrorLog logs/error.log
CustomLog logs/worm.log combined env=worm
CustomLog logs/access.log combined env=!worm

とりあえずこんなところか。「ワームのログを分離する」などを参考に書いた。
ワームが要求してくるURIリクエストには特徴があるので、一致するのにwormと言う名前を付けてやって、それだけをworm.logに、そのほかをaccess.logに記録するようにした。
しかしいちいちログを取らずとも直接Denyしてやればよかったかな・・・?


というわけでここを参考にまとめて

SetEnvIf Request_URI "^/(mem_bin|_mem_bin|vti_bin|_vti_bin|c|d|msadc|MSADC|scripts|default\.ida|NULL\.IDA|cmd\.exe|root\.exe)" worm
BrowserMatchNoCase (nabot|dloader|digext|openbot|archiver|crawler|spider|scooter|zyborg) bad_bot
Order allow,deny
Allow from all
Deny from env=worm
Deny from env=bad_bot

こうした。

攻撃

つか、中部ケーブルテレビネットワーク内(kctv*.ccnw.ne.jp)から80番ポートにアクセスしてくるヤツ、いいかげん鬱陶しいぞ! 数ヶ月前から来続けてやがる・・・。
先ほど設定した攻撃の痕跡がないので、wormログには残らないし。
仕方がないのでccnw.ne.jpをDenyに。