
以前も書いた通り、このサーバの環境はServersMan@VPSというサービスを使用しています。簡単に言ってしまうと、OpenVZ|Virtuozzoという仮想化環境であり、ハード的には共有カーネル方式でメモリ空間、CPUを複数のユーザでシェアしている仕組みというものなんですね。
そして今回、想像するに何が起きたかというと…。
#!/bin/sh
wget -O - 'http://free.ddo.jp/dnsupdate.php?dn=HOSTNAME&pw=PWD'
Operating system CentOS Linux 5.4
Kernel and CPU Linux 2.6.18-194.3.1.el5.028stab069.6 on i686
Processor information Intel(R) Xeon(R) CPU L5520 @ 2.27GHz, 1 cores
CPU load averages 0.11 (1 min) 0.17 (5 mins) 0.10 (15 mins)CPU usage 1% user, 2% kernel, 0% IO, 97% idle
Real memory 256 MB total, 167.95 MB used
Local disk space 10 GB total, 1.31 GB used
ついに…というか、DTIも「Outbound Port25 Blocking」を導入ですか。それも携帯メール向けってのがモロですな。自宅に置いてる某MLが思いっきり影響を受けそうな予感。さて、どうしましょうか。悩みますなぁ…。
スパム受信拒否ルール
## Spamer御用達メーラを弾く
/^X-Mailer:.*DouhouHaishin/i REJECT
/^X-Mailer:.*Achi-Kochi Mail/i REJECT
/^X-Mailer:.*Douhou@Mail/i REJECT
/^X-Mailer:.*The Bat!/i REJECT
/^X-Mailer:.*Easy DM free/i REJECT
/^X-Mailer:.*007 Direct Email Easy/i REJECT
#
## ヘッダにアドレスが無いものを弾く
/^Return-Path:.*<#.*@.*>/ REJECT
#
## 特定の拡張子を含むものを弾く
/name=.*\.scr/ REJECT
#
## 特定のアドレススパムを弾く
/^[Rr]eturn-Path:.*info.*/ REJECT
/^[Ff]rom:.*info.*/ REJECT
予告ではなく、終わってからの話というのも何だが、いきなりサーバに繋がらなくなってちょっと焦った。5年近く今のサーバを借りていて、サービスが止まるのは初めての様な気がする。ということでご迷惑をおかけした方がいらっしゃいましたらゴメンナサイなのでした。もしかしたら事前に案内が来ていたのかもしれないけど、見落とした可能性もあるしなぁ。どちらにしてもスミマセン。
ちょっと前に書いた没ネタの続き。「特定の場所」且つ「特定のブラウザ以外」からのアクセスをあぼーんする設定。なんか上手く動いてる気がするのでOpen。ApacheのApache module mod_setenvifのSetEnvIfディレクティブを利用してあっちゃこっちゃ飛ばしまくるという荒技なり。
.htaccessの中身ほんとは「…(snip)」のところに20行ぐらいズラズラと怪しげなIPからいやーんなポイントなどが列記されてるのだが、書式には影響を受けないので省略。特定のブラウザとは、自分が使ってるブラウザという前提で書いているので、例えばFirefoxなんかでUser Agent Switcher Extensionなんかを使ってオリジナルな名前を語っておけば、自分だけがアクセス出来るようになるとかの転用が効く。あくまでも「特定の場所からは…」といったある意味特殊なシチュエーションでのお話。個人の関係が深い仕事関係からのみDenyといった使い方があるのかもしれず。ただ、その設定された環境から外れてしまえば意味無いんですけどね。
SetEnvIf Remote_Addr 61.xxx.xxx.xxx/29 nolook
SetEnvIf Remote_Host foo.bar.jp nolook
SetEnvIf User-Agent Gecko !nolook
SetEnvIf User-Agent Firefox !nolook
order allow,deny
Allow from all
deny from env=nolook
deny from 220.xxx.xxx.xxx
…(snip)
<Files .htaccess>
deny from all
</Files>
ErrorDocument 403 http://www.google.co.jp/
.htaccessによる記述上記のようにしてみた。これは、deny_uaにsetされるUser-AgentにMSIEが含まれ、且つ、deny_ipにsetされるRemote_Addrに上記のものが含まれた場合、強制的にErrorを返すというもの。最後の行に書いてあるとおり、Error Documentが件の場所になっているのはせめてもの慈悲。ここでググッてキャッシュでも…という意味ね。あぁ、なんて優しいんでしょ。
SetEnvIf User-Agent "MSIE" deny_ua
SetEnvIf Remote_Addr "61.197.xxx.xxx/xx" deny_ip
order allow,deny
allow from all
deny from env=deny_ip|deny_ua
<Files .htaccess>
deny from all
</Files>
ErrorDocument 403 http://www.google.co.jp/
最近のコメント