_ 中途で入社して1ヶ月たって、新人研修。
_ ……よく寝なかった。エラいぞ。つーか、しゃちょー、変な人だね。
_ ぐぐっててたまたま見つけた。 特定電子メールによる電子メールの送受信上の支障の防止に資する技術の研究開発及び電子メールに係る役務を提供する電気通信事業者によるその導入の状況 (PDF)。総務省総合通信基盤局による報告書。まだ全部は読んでないけど、ISP ごとの spam 対策の現況や、各種対策手法について述べられているようだ。なかなか興味深い内容。
_ 変な spam が届いた。
_ Received-SPF: pass がついた状態で届いた。偽装。SPF のチェックはしてないんだからそんなヘッダがつくはずない。TXT レコードをひいてみるとホントに v=spf1 のレコードがついてたりするが、この情報ならば pass ではなく、neutral にしかならないはずだ。メーラーとかでこのヘッダを使ってに判定する人を騙すためだろう。
_ あきらかに偽装の Received: も1行。
_ さらに、
こんなヘッダまでおまけについてる。スコアが低いと主張するヘッダであっても、よそさまがつけたヘッダならば信じちゃいけません。これも偽装ですな。X-Spam-Checker-Version: SpamAssassin 2.65 (2003-02-28) on localhost X-Spam-Level: X-Spam-Status: No, hits=-2.212 required=5 X-Spam-Score: -2.212_ しかし、こんなに涙ぐましい偽装をしていながら、あっさりと意味のない結果になってる。Received-SPF: の長い行の折り畳みに失敗してる。ひとつのヘッダを複数行にわけるとき、2行目以降は先頭字下げが必要なのに、字下げしていない。
Received-SPF: pass (localhost: domain of suburbanrods.com designates 41.41.53.200 as permitted sender) client-ip=41.41.53.200; envelope-from=kbsvnqdnth@suburbanrods.com; helo=suburbanrods.com;_ よって、上記の2行目以降はもうヘッダとみなされず、そこからメッセージ本文のはじまりだと MTA に勝手にみなされてしまって泣き別れしてしまっている。元は HTML メールのつもりだったようだが、このせいで MIME のマルチパート宣言がヘッダに存在していないのでただのべたテキストとみなされてしまっている。
_ うっかり信頼してしまいそうなヘッダを追加してチェックを回避しようという spam はちっとも珍しくないが、こんなにいろいろ偽ヘッダを使いしてるのはあまりない。とくに、偽の Received-SPF を使ってる例ははじめてみた。自分の経験からすると、どんなに偽装ヘッダを使うよりも、余計なヘッダはいっさい吐かない方が spam 判定はずっと難しいんだけどね。あるものを探すよりも、ないものを見つける方がずっと難しい。
_ 今さらながら、おうちサーバその2の OS を FreeBSD 4.10 から 4.11 に入れ替え。1年半ぶり。
_ こいつは Cyrix MediaGX 233MHz という化石のような石で動いてて、make buildworld; make buildkernel に20時間かかるんだ。いろいろあやしげな実験と、おうちサーバその1が死んだときの予備のために動かしてるだけで、なくなったらすぐに困るようなことにには使ってないから、引退させるのはそれほど手間じゃない。でも、あればそれなりに便利だし、何のトラブルもなく動いてるマシンを捨てるのはもったいない。真夏のクソ暑いときに負荷をかけると温度があがりすぎて勝手にサスペンドするけど。
_ ちなみに、メインで動いているおうちサーバその1は Crusoe TM5500 700MHz、メモリ 128MB という超ハイスペックマシン。いや、自嘲なんかじゃなくて。外部に公開してる DNS や Web、MTA もすべてこの上で動いてるけど、負荷はスカスカで、うちみたいな用途ではオーバースペックもいいところ。おうちサーバその2の方もよほど重い処理でなければそつなくこなすし。最近の PC は無駄にスペックが高すぎて、サーバとして常時稼働させておくのはちょっともったいないよ。
_ ひとり暮らしで自炊なもんですから、週末には食料の買い出しに近所のスーパーに出かけるわけですが。
_ 一家の大黒柱たるパパよ。週末に家族を連れて出かけるのなら、こんなスーパーではなくもっとマシなところに連れていってあげてください。家族4人で生鮮食品の買い物なんかしないでください。ガキを野放しにするな。だからといって家族で固まって通路をふさぐな。要するに、おまえら邪魔だ。
_ ちょっと前に「さかなさかなさかな〜」の歌が流行っちゃったもんだから、あちこちの売り場で「きのこのこのこ元気のこ」とか「たまごごはーん」とか二番煎じ三番煎じの歌が流れてくるのも神経を逆撫でしてくれる。勘弁してくれ。
_ なんとなく、おうちサーバのあれこれに SSL の皮をかぶせてみた。HTTP と SMTP と IMAP。
_ もちろん、ちゃんとした CA に証明書を発行してもらうわけじゃない自己署名。不特定多数の人に見てもらうサイトに自己署名証明書を使ってるサイトがあるけど、それじゃ SSL のありがたみが薄いよね。暗号化もいいけど、それよりも身元証明が SSL の本領だと思うわけなのですよ。安心できる範囲が特定少数に限られちゃうけど、むしろその特定少数とのやりとりで気軽にクライアント証明までできちゃうのが、オレ CA のうまみだ。
_ なので、SMTP に SSL を使うといっても、よそ様のサーバとのやりとりで STARTTLS を使うようなことはせず、あくまで MUA からの送信で submission のかわりに smtps を使うという程度。
_ ……といっても、わしが使ってる Datula + SSL プロクシプラグインではクライアント証明が使えないわけなのだが。IMAP はどうせログインが必要だからサーバ証明だけでしかたないとして、SMTP の方はクライアント認証に通れば SMTP AUTH 不要、ってな感じにしたいものだが、残念ながらそういうわけにもいかず。
_ もちろん、stunnel とかそういう穴掘りツールを使えばいいんだけど、わざわざそのためだけにプロセスを常駐させるのも何だかなので、まあ、とりあえず今のうちは。
_ Web の方は、外に公開してない自分用のいろいろをクライアント認証必須で設定しておいた。ユーザ名しかわからん Basic 認証なんかとは違って、証明書に記録されてるいろんな情報がログに残せるのがいいやね。
_ ところで、google あたりで検索してひっかかる自己署名の HTTPS なサーバの作り方のページって、ほとんどがムチャクチャだね。CSR を作ることと、その CSR に署名して証明書を発行することってのは、本来はそれぞれ別の組織がやるべきことなのに、やむなく自作自演でやってしまうよ、という重要な事実がほとんどすべてのページで説明されていない。ほんとに考えずに手を動かせばいいだけで、なぜそういうステップを踏む必要があるのか、読んでもちっともわからない。こういうのじゃダメだよ。
_ いちおう昨年秋に正式リリースされてますが、その後も地味に開発が続いてる Sendmail X。わしもβ版のころから、ときどき思い出したように遊んでみてはすぐ飽きる、ということを繰り返しております。
_ これまではほとんどドキュメントを読まずにいじってたんだけど、さすがにそれはアレなので、ドキュメントをだいたい通して読んでみた。そしたら、新 Sendmail X が指向するものというのがおぼろげながら見えたような気がする。文字どおりの MTA を作るつもりなのね。Sendmail に限らず Postfix も qmail も、どれも MTA だけではなく、MDA や MSP やその他もろもろをすべて含んだ総合メール環境を目指して開発されてきた。でも、Sendmail X はそうではない。正真正銘の MTA のみ。アドレスの書き換えはしなかったり、文法違反の SMTP はエラーにしたりと、正確なものをよけいな手を加えずに送る、ということを目標にしているんじゃないかな? 愚直なまでにまっすぐな実装をしている。ほんとにどうなのかは知らないけど。
_ で、遊ぶ。 送信元アドレスの MX レコードを調べて、その結果をもとにアクセス制御できるなんて機能は、標準では Postfix にしかないものだと思ってたけど、実は Sendmail X でも使えたらしい。
_ まずは access db を有効にする。
ここで、この access db にいらん MX を持つ IP アドレスを列挙してやればいい。たとえばこんな感じで。--- smx.conf smtps { ... flags = { access } ... }これが実際に設定された Sendmail X にアクセスしてみると、mxbadip:127.0.0.1 error:551 5.7.1 mxbadipと、送信元アドレスの MX、A が access db に載っている場合に送信が見事拒否される。mail from:<postmaster@localhost> 551 5.7.1 mxbadip_ ただし残念なのは、Postfix とは違って NS レコードによる判定はできず、また、MX にしてもその IP アドレスだけで、Postfix のように A レコードで判定することはできないということ。まあ、そうはいっても、まったくできないよりはそういう選択肢があるということはいいことなんじゃないかね。
_ 事故でラッシュアワーの地下鉄が立ち往生。しかたないので遠まわり。ふだんより1時間よけいにかかって到着。
_ どうもかなり年のいった婆さんの自殺だったようで。わざわざ飛び込まずにお迎えがくるのを待ってればよかったのに。せめてラッシュ時は避けてくれ
_ 以前は大手町で仕事をしていたので、あのあたりはちょっとだけ詳しい。で、今日ちょっと用事があってあのあたりに立ち寄った。
_ ……あれ、平将門の首塚がない。なんで? 怨霊が恐くてほかの場所に移設できないからずっと都心の一等地を占拠しているという首塚が消えてしまった。どういうことだ? 大手町合同庁舎がいつのまにか更地にかわっちゃったけど、とうとう首塚も再開発に?
_ 帰ってから確認してみたら、わしの記憶が間違っていただけだった。アホですな、わし。さっき歩いた道の1本向こうの通りに首塚は今もあって怨念を撒きちらしているらしい。よかったよかった(?)。