どさにっき 3D 〜2011年4月上旬〜

by やまや
<< = >>

2011年4月1日(金)

電力不足解消のために

_ 独身男性が日頃から励んでいる自家発電の成果を東京電力が買い取ることになったらしい。単体試験の成績が良好ならば結合試験未経験でも認める方向とのこと。もてあまし気味だった燃料棒を有効活用するいい機会だね。

_ 当初は少女の希望と絶望の相転移から得られるエネルギーを活用する案が有力視されてたようだけど、営業マンが顧客に十分な説明をせず契約を取っていた問題が発覚してうやむやになったみたい。


2011年4月8日(金)

Postfix Postscreen Howto

_ POSTSCREEN_README の翻訳を最新版の 2.8.2 のものに更新。 snapshot のころとほとんど変わってなければ無視するつもりだったんだけど、けっこう変更点が多いし、正式版でないものを元にした翻訳を放置しておくのはさすがにアレかな、と。どんなにクソ古くて参考にしてはいけないドキュメントでも、存在していればそれを参考にしてしまう人は経験上かならずいるし。古すぎて参考にならん、とわざわざ明記してもなおマネする人がいるんだよね。なんでなんだか。とはいえ、今後も更新するかどうかはわからん。というか、たぶんもうやらない。

_ あらためて postscreen とは何か。東北震災の報道でトリアージ(triage)という言葉がときおり聞こえてきたけど、それをやるサーバ。医師の数が限られているときに、ツバでもつけておけば治る怪我の人と重傷者のどちらを優先して治療するか、手当てしても助かる見込みのない患者と見込みのある患者のどちらを優先するか、という選択をおこなうのがトリアージ。postfix におけるトリアージは、大量のメールが押し寄せてきているときに spam とそうでないメールを低コストでよりわけることで、限られたサーバ資源の大半を spam 処理に費やすことなく、まっとうなメールの受信にできるだけリソースをまわしてやろう、ということを意図している。要は、超軽量 spam フィルタ。

_ 参考までにうちの postscreen まわりの設定をさらしてみる。…と思ったけど、大多数の環境では参考にならんな。

-- main.cf
postscreen_greet_action = enforce
postscreen_greet_wait = ${stress?2}${stress:31}s

-- master.cf
smtp           inet  n       -       n       -       1       postscreen
127.0.0.1:8025 inet  n       -       n       -       1       postscreen
    -o postscreen_pipelining_enable=yes
    -o postscreen_non_smtp_command_enable=yes
    -o postscreen_bare_newline_enable=yes

-- /etc/pf.conf
table <smtp-black> persist
table <smtp-white> persist
rdr pass log on $ext_if proto tcp from <smtp-black> to port smtp -> 127.0.0.1 port 8025
rdr pass log on $ext_if proto tcp from !<smtp-white> os {"Windows 2000", "Windows XP", "Windows 2003"} to port smtp -> 127.0.0.1 port 8025
block in log on $ext_if proto tcp from any os {"Windows 95", "Windows 98", "Windows ME"} to any port smtp
解説。まず、postfix の手前で pf による振り分けをおこなう。 詳細はこちら。かんたんにいうと、Windows なボットっぽいクライアントからの SMTP 接続は 127.0.0.1:8025 にリダイレクトして、それ以外はふつーに 25 で SMTP を受ける。で、このそれぞれで設定の異なる postscreen を動かしていて、通常の25番ポートでは31秒の greet pause、ボットっぽい 127.0.0.1:8025 ではそれに加えて deep protcol testをおこなう、という設定。というわけで、iptables じゃなくて pf が使える *BSD じゃないと意味ない。

_ ちなみに、2.9 snapshot の postscreen だと、2つの IP アドレスを同時に listen して異なる MX preference で DNS に登録した上で、primary MX にアクセスせずいきなり secondary にやってきたボットを蹴る、なんてこざかしい機能も実装されてたりなんかする。


<< = >>
やまや