どさにっき 2.0 〜2006年11月上旬〜

by やまや
<< = >>

2006年11月1日(水)

松下グループ

_ 半径 3m ほどでちょっと話題になったので。

_ whois で調べると、こうなってる。

あれ、matsushita.co.jp は以前は松下通工だったはずだけどなぁ?

_ で、本体の松下電器産業のドメインは何かというと、mei.co.jp。一文字違いの mew.co.jp が松下電工。

_ インターネットがこんなに普及するとは思われてなかった時代に、綴りが短い方がいいだろ、と mei.co.jp を取得した、よその会社にまぎらわしいドメインを取得されるのを防ぐために後から子会社に自社ブランドのドメインを取らせた、ってことなんだと思う。たぶん。


2006年11月3日(金) 文化の日

無題

_ 3連休だし、宿題の作文は書きおわったし、どっか遊びにいきたいところなんだけど、うーん、順番として今日は携帯の電波が届かないところはマズいよねぇ。

_ 昼飯を食いにちょっと外に出かけるつもりだったが、目当ての店が休みだった。しかたないので自転車でうろうろしてたら気がついたら 40km 走ってた。おかしいだろ、それ。

pkill

_ ここから派生して これ

こういう「他のコマンドを組み合わせても可能な便利系コマンド」を覚えるのは、よしあしだと思う。
一般論としては、まあそうなんだけど、少なくとも pkill に関していえば組み合わせではなくひとつのコマンドになっているというメリットがはっきりあるわけで。

_ なんかのプロセスが暴走してるぞ、なんてときに

# ps auxw | fgrep hoge | awk '{print $2}' | xargs kill -9
なんてコマンドは打ってられないことが多い。それは緊急時に何段ものパイプラインを正確にすばやく入力するのが難しいということだけじゃなくて、暴走したプロセスのせいでマシン全体のリソースが枯渇して新しいプロセスを生成できなくなってることがあるから。上の例だと ps、fgrep、awk、xargs、kill と5つのコマンド(環境によっては fgrep の実体がシェルスクリプトなのでもっと)が順番に起動されるわけだが、プロセステーブルに余裕がないときにはそんなたくさんのコマンド列が最後まで確実に実行されるとはかぎらない。

_ そんなときに

# pkill -9 hoge
と、たったひとつのコマンドで済ませられるのが pkill のありがたいところなわけだ。ほんとにヤバいときはこのコマンドひとつ実行するだけでも何度か失敗するのもよくあるわけで、多段のパイプだったらいったいどうなることやら。

_ というわけで、pgrep、pkill は比較的最近の Solaris に由来する新しいコマンドだから環境によっては存在しないこともあるけど、もしあるのなら積極的に使ってやりましょう。

_ あ、そうそう、killall は Solaris と FreeBSD ではまったく違うコマンドなので注意ね。Solaris の上で FreeBSD の流儀で killall してしまうと、プロセスだけでなく自分まで死にたくなる結果になるのは間違いなし。killall なんてものはその存在自体きれいさっぱり忘れてもらってかまわない。


2006年11月4日(土)

無題

_ 昼に この店行ってきた。近所なので。近所といっても自転車で20分ぐらいだけど。

_ チャーハン大盛りを注文したわけだが、デカいな。いや、知ってて注文したんだけど。皿の大きさ自体はふつーの店の普通盛りぐらいの皿なのな。その分高さがすげーの。高いから食っても食っても底が見えないし。これまでわしが食ったことがあるチャーハンの盛りがすげーところといえば、神保町の徳萬殿とか駒込の王将(今は特盛はメニューから消えてたはず)とかだけど、そいつらよりキツかった気がする。全部食ったけど。これで550円。安すぎる。味はそれなり。

_ わしの後から入ってきた客が、わしのさらにその上のチャーハン超大盛りを注文してたが、あればヤバい。大盛りのさらに1.5倍か2倍ぐらいはありそう。っていうか、厨房で巨大なラーメン丼にてんこ盛りになってるチャーハンをひっくり返して皿に盛り付けてるのをカウンターで目撃しました。あれだけデカくて600円ってどういう店だよ。

_ 昼に食ったが晩飯はいらなかった。そりゃそうだ。なお、別にわしは大盛りハンターなわけじゃないので念のため。

Vipul's Razor

_ 毎日250通ほどの spam を受けてるけど、最近流行の重い検知ツールは使ってない。マシンが非力だし、地道なブラックリスト登録だけで90%以上は排除できてるから。

_ とはいえ、新しいものに触れておくことは悪くはないので、誰も使ってなさそうな Vipul's Razor を入れてみた。いや、SpamAssassin の中からも使えるんだけど、razor 単体で使ってる人はほとんどいないようだし。

_ razor ってのが何かというと、協調型フィルタリングデータベースとかコラボレーションフィルタとかいう類のフィルタ。といってもわからんな。ユーザそれぞれに届いた spam を持ち寄ってデータベースを作り、登録済みの spam と一致するかどうか調べるというしくみ。もっと知りたければ SpamNet でぐぐるとよし。

_ で、前述のとおり SpamAssassin からも使えるんだけど、わしはヒネクレてるので Razor 単体で使う。まず、各種情報を保存するディレクトリを作る。

% razor-admin -create
これで ~/.razor/ ができる。いっしょにできる設定ファイルは自分でいじることもできるけど、その必要はあんまりなさそう。

_ わしは maildrop を使ってるので ~/.mailfilter に razor に判定させる設定を追加する。ヘッダを追加する場合はこんな感じ。

`razor-check`
if ($RETURNCODE == 0)
{
    xfilter "reformail -A'X-Spam-Flag: YES'"
}
別フォルダに振り分けたり捨てたりする設定はご随意に。procmail を使う場合は man に例が載ってるのでそれをパクればよし。

_ つーわけで、設定はカンタン。丸1日ほど動かして15通の spam のうち11通を検知。ただし、250通の90%を蹴る自家製ブラックリストを通った後のメールなので、spam 全体に対する検知率とはかなりかけ離れた値になってると思う。15通はすべて英文 spam だったので日本語 spam をどれだけ検知できるのかも不明(日本語 spam を受けてるユーザが少ないとデータベースの充実度も低いので検知率も下がるはず)。

_ で、4通がフィルタにひっかからなかったわけだが、そういう spam は自分でデータベースに登録してやればいい。まず自分のアカウント情報を登録しておく。

% razor-admin -register
id やパスワードは勝手にランダムなものを作ってくれるので特に指定する必要なし。あとは
% razor-report spam.txt
で情報を送信していくだけ。あるいは、spam でないのに spam と判定されてしまったら、
% razor-revoke spam.txt
で取り消しを要求できる。このあたりの操作を簡単にできるような mutt の設定例が man に載ってる。使ってないけど。

_ ただし、spam 報告してもすぐには反映されない。たぶん、誤登録でデータベースが壊れるのを防ぐために、同一の spam の報告がある一定数以上ないと登録されないしくみになってると思われる。また、spammer におかしな情報を注入されないように、他ユーザに revoke される情報をしょっちゅう報告してくるユーザとか、登録からあまり時間がたっていない新規ユーザとかも無視してると思う。きっと。サーバが何をやってるのかは非公開なので推測でしかないけど(クライアントの Vipul's Razor の方は perl なので中身は丸見え)。

_ それからわりと重要なこと。既知 spam かどうかの問い合わせとか未知 spam の報告なんかは、spam そのものを送っているわけではない。どういう生成アルゴリズムかは知らんけど(コードを読めばわかるだろうがとりあえずその気はない)、届いたメールから数十バイトの signature を作って、そいつを使って参照や報告している。データベースの参照に生のメールをそのまま使ってるとしたらサイズやら秘密の漏洩やらいろいろ問題ありだけど、サイズの小さい signature を使うのでそういうことは気にしなくていい。

_ 誰かのところに実際に届いた spam 情報を集めたデータベースなので、理屈の上では spam の見逃しはあっても、非 spam を spam と判定してしまうことはゼロのはず。現実には悪意あるユーザや誤登録があるだろうからまったくゼロというわけにはいかないだろうけど、それでもかなり低いと思われる。ベイジアンフィルタと比べると検知率はそんなに高くなさそうだけど、世界中にいるユーザが勝手にデータベースを強化してくれるから、いちいち自分で学習させる必要はなく完全にメンテナンスフリーというのはありがたい。とはいえ、みんながみんな spam 報告を人まかせにしてるとデータベースが充実せずに破綻するけどな。

_ まあ、そんなわけでちょっとお試しで入れてみたけど、今後もずっと使い続けていくかどうかは不明。やっぱりうちの非力なマシンでは重いし。


2006年11月5日(日)

無題

_ 食料品の買い出しに出かけたはずなのに、なんでノート PC を買って帰ってきてるんだろう……。布団を買いにいったら Mac に化けていた某氏を笑えんな。

_ つーわけで、松下の CF-T5 が手元に。今まで使ってた CF-W2 は液晶のバックライトがだいぶヘタって暗くなってきたし、電源の接触が悪くて AC アダプタで使ってたのにバッテリ切れなんていう怪奇現象がたまに起きてたので、買い換え候補を探してたのね。んで、CF-T5L が出て在庫処分で安売りしてた T5K を見つけたのでさらってきた。W2 は丸2年酷使したからもう十分元は取っただろ。環境整備とデータの移行が済んだら OS を入れ替えて次期自宅サーバとしてまた何年か頑張ってもらうけど。

_ とりあえずさわってみた感じでは、……って Let's Note から Let's Note への買い換えだからそんなに変わってないよ。

_ タッチパッドが使いづらくなった。円形のパッド自体はこれまでと同じだから問題ないんだが、ボタンが小さくなったので、これまでのつもりでクリックしようとすると空振りする。クリック感も乏しいのでダブルクリックとかドラッグの操作に失敗することがある。まあ、慣れの問題かもしれんけど。

_ W2 から T5 になって内蔵 CD-ROM がなくなった。W2 でもほとんど使ったことないから問題なし。必要なら別マシンでイメージを吸い出して仮想化ツールでマウントすればいいわけだし。

_ 内蔵スピーカがモノラルなのは変わらず。ステレオで聞こうと思ったらヘッドフォンをつなぐ必要があるが、W2 はタッチパッドに手を触れるとヘッドフォンにひどいノイズがのってとてもじゃないが聞けたものじゃなかった。これは改善されてる。つーか、W2 はスピーカと静電式タッチパッドを隣りあわせに配置してりゃそりゃダメだわな。

_ 違うのはそのぐらいかなぁ。たんたんとセットアップしてるが、単純作業なのでおもしろくない。ネタとしては Acrobat Reader を 7.0.0 から 7.0.8 にアップデートするのに再起動を3回要求されたぐらいか。1回で済ませやボケ。


2006年11月7日(火)

DNSBL とのつきあいかた

_ うーんと、spamhaus がやんちゃをしすぎてるのはここ最近各所で聞いてるし、というか、実際に何度かそういうのを見てるので今さらなんだが、DNSBL を「 使ってはいけない」というのはちょっと違うと思うんだよね。

_ 知らずに使ってる人々、としていろいろ例を挙げてるけど、みんな大好き SpamAssassin が抜けてるね。rules/20_dnsbl_tests.cf を見てみるとよろし。

_ だけど、SpamAssassin の場合は DNSBL にひっかかったからといって、それだけを理由には蹴らない。ほかにもいろんなチェックをして、それぞれの点数の合計が閾値を越えた場合に spam と判定する。言い換えると、DNSBL でひっかかっても、ほかの判定項目でひっかからなければ spam 判定はされない。

_ 要するに、DNSBL を全面的に信頼して使うのではなく、参考程度にすればいいんだ。DNSBL を使ってはいけないのではなく、使い方を間違ってる。DNSBL の運営者が悪いのではなく、そういう危険があるにもかかわらず信じて使ってる方が悪い。

_ sendmail でも postfix でも DNSBL は使えるけど、どちらもひっかかったものは蹴るだけにしか使えない。DNSBL とはそういうものだと思ってしまえば、たしかに「使うな」と言いたくなるかもしれない。でも、DNSBL にひっかかったものに対してだけさらに別のチェック(たとえば greylisting とか)をして、両方クロだった場合だけ spam 判定する、とかそういう使い方をするのならば、/24 の範囲とかでリストしてしまうようなアグレッシブな登録ポリシーの DNSBL でもわりと安全に使える。まさにそのつもりで postfix 用のパッチをこの前作ったわけだし。

_ 今や DNSBL ってのはブラックリストだけじゃない。 これみたいなホワイトリストな DNSBL だってあるし(使い方は ここ)、 これみたいにシロかクロかではなく0から100までの点数を返す DNSBL だってある( 使い方)。まあ、こいつらは DNSBL ですとは謳ってなくてレピュテーションサービスなんだけど、しくみ自体は DNSBL そのもの。こういうのを有効に使おうとする場合、DNSBL にひっかかったものを蹴る以外の選択肢がないのはちょっと困る。

_ まあ、テメェちょっといい気になってんじゃねーぞ、と spamhaus にお灸をすえる意味で軽くボイコットしてみるのもいいかもしれん。リストに載せる基準をあっさり変えてもらうようじゃ使いづらい。登録ポリシーを変更するのならば、従来のゾーンではなく、新しいゾーンを作ってそっちでやってほしいよね。


2006年11月8日(水)

無題

_ postfix-2.3.4/src/smtpd.c より。$smtpd_recipient_limit を越える RCPT TO: を受けたときの処理。

  2269      if (var_smtpd_rcpt_limit && state->rcpt_count >= var_smtpd_rcpt_limit) {
  2270          smtpd_chat_reply(state, "452 4.5.3 Error: too many recipients");
  2271          if (state->rcpt_overshoot++ < var_smtpd_rcpt_overlim)
  2272              return (0);
  2273          state->error_mask |= MAIL_ERROR_POLICY;
  2274          return (-1);
  2275      }
ログは見張ってたのに気がつかなかったのは何でだろ、と思って調べてみたら、クライアントに 452 を返すだけでログに吐いてなかった。2269行目と2270行目の間に msg_warn() がほしかった。しくしく。ばかー。

_ ご迷惑をおかけした方、ごめんなさい。


2006年11月9日(木)

spam じゃない(自称)

_ わし何か言ったっけ?送信側で「こいつは spam じゃない」というヘッダをつけて外に送っちゃうのは受け側のフィルタを誤認させることがあるよ、って言った件かな?

_ たとえば、 このページにはこういう .procmailrc の例が載ってる。

#メールを迷惑メールフィルタに送る。
:0fw
*!^X-Spam.*
|/usr/bin/spamc

#迷惑メールと判定されたメールを~/Mail/spam/に移動する。
:0H
*^X-Spam-Flag: YES
$HOME/Mail/spam/.
この場合、はじめから X-Spam-Flag: NO というヘッダをつけてメールを送ると、!^X-Spam.* の条件にひっかからないから spamc が起動されずとーぜん spam 判定もされない。もちろん ^X-Spam-Flag: YES の条件にもひっかからないから spam 用フォルダにも入らない。spam フィルタの精度がどんなに高かったとしても、フィルタを通らないんじゃまったく意味ないね。

_ 「おれは酔ってねーぞ」という言葉を真に受けるアホがいないのと同じで、「おれは spam じゃねーぞ」と自称するメールなんてまったく信用できないし、実際にこういう X-Spam-Flag: NO とかその手のヘッダをつけて穴をくぐりぬけようとする spam ってのもたまーに届いたりする。そういうわけで、送る側としてはそういう spammer と勘違いされないようにそういうヘッダはできれば外に出さない方がいいし、受ける側も外からきたヘッダと自分でつけたヘッダを混ぜちゃわないようにせにゃならん。

_ 同じことは spam 関連のヘッダだけじゃなくて、X-Virus-Status: だとか Authentication-Results: だとかにもいえる。他人の言うことは信じるな、ってことでひとつよろしく。

無題

_ んー?うちでは dkim-milter-0.5.2 で gmail から送ったメールの DomainKeys-Signature ヘッダをちゃんと検証できてるけど、どこかおかしいんですかね。ya.maya.st/trash/gmail-dk.txt に実物を置いときましたが、ちゃんと domainkeys=pass になってるです。dk-milter と dkim-milter の両方が動いている場合の問題?

_ DKIM/DK って使ってる人が少なすぎて異なる実装の相互運用性のテストがほとんどできないのがネックだな。


<< = >>
やまや