近所にて
もう少し暖かくなってくると、いろいろ写真のネタが増えそうです。今日はこの辺で勘弁してください。
NIFTY メール遅れる
先日、au のメールが遅れると書いたのですが、いろいろ調べていたら、NIFTY から au 行きのメールが半日近く遅れていることが分かりました。NIFTY から他へのサーバーは OK。また、会社から au も大丈夫です。なんでしょう、これ? 彼らのいずれかが変なセキュリティ対策を取っているんじゃないかと不安です。
ちなみに私は普段、メールはおうちサーバー*1経由で相手のメールサーバーに直接送りつけます*2。これがインターネットメールの本来のあり方で、負荷分散にも適していると思うんですね。巨大プロバイダのメールサーバーに一括集中して負荷をかけるのは愚かなことです。最近、迷惑メールの安直な対策として、携帯電話業者が例えば DNS の正引き・逆引きの合わないサーバーからのメール受信を拒否するのは、本当に鬱陶しいです*3。早く、DomainKeys などのまっとうなアドレス詐称防止技術が普及すると嬉しいです。
このような、逆引きできないサイトからのメールを拒否するサイト
多くの携帯電話会社や、AOL がそうです。私は、Postfix の transport に次のように記述しています。
docomo.ne.jp :[smtp.nifty.com] ezweb.ne.jp :[smtp.nifty.com] weird.com :[smtp.nifty.com] aol.com :[smtp.nifty.com]
DomainKeys と Postfix
ちなみに、まだ Postfix は DomainKeys に対応していないみたい。
参考: DomainKey Library and Implementor's Tools
RFC 2554 - SMTP Service Extension for Authentication
NIFTY のメールサーバーを使うのが嫌になってきたので調べてみたところ、私の使っている pobox.com のサーバーが、SMTP リレーもしてくれることが分かりました(← もっと早く知れ!)。しかし、こいつは RFC 2554 の AUTH PLAIN みたいなものを使わないとメールを受理してくれません。その代わり、認証さえちゃんとしてくれれば、From: が pobox.com のアドレスじゃなくても受け付けてくれます。これなら、おうちサーバーからメールを送るとき、私だけでなく、妻や他ドメイン発のメールも送れます。すばらしい。
しかし、NetBSD 標準の Postfix は RFC 2554 の認証に対応していないみたいです。Cyrus-SASL というのをインストールすれば良いらしいのですが…。
というわけで、Postfix の設定
上に書いたサイトを参照すれば設定できるのですが、ここでは備忘録として簡単に記しておきます。
Postfix のアップデート
NetBSD 1.6.2 に入っている Postfix は古いので、pkgsrc から最新版をインストールしました。といっても、current 版ではありません。
この際、sasl に加え ipv6 オプションを有効にしなくてはならないそうです。私はメンドーなので、pkgsrc/mail/options.mk に次のように書き加えてしまいました。
PKG_OPTIONS+= sasl inet6
そして、make install です。
Cyrus の追加モジュールのインストール
pkgsrc から、以下をインストールしておきます。他のモジュールも必要かも知れませんが、私は pobox.com への SMTP 接続に必要と思しきものだけインストールしました。
- security/cy2-login
- security/cy2-plain
Postfix のセットアップ (まずは SASL なし)
今までのバージョンの main.cf とほとんど共通のようですが、差分だけをマージしました。具体的には、以下の指定です。
- myhostname
- mydomain
- myorigin
- mydestination
- mynetworks
これに加えて、以下を追加しました。これは、元々利用していた設定です。postmap で .db ファイルを再構築するのを忘れないようにします。
- transport_maps = hash:/usr/pkg/etc/postfix/transport
続いて、/etc/rc.d/postfix の修正です。これは次の部分を修正しただけです。
start_cmd="/usr/pkg/sbin/${name} -c /usr/pkg/etc/postfix start" stop_cmd="/usr/pkg/sbin/${name} -c /usr/pkg/etc/postfix stop" reload_cmd="/usr/pkg/sbin/${name} -c /usr/pkg/etc/postfix reload"
さて、早速 Postfix を起動すると、あるディレクトリのパーミッションが不正だと言って怒られるので、修正しておきます。どうもバージョンアップで厳しくなった感じです。
IPv6 に注意
さて、今回から IPv6 に対応させたことで、一つポカをやってしまいました。ローカルホストから SMTP ポートを叩く場合ですが、mynetworks の設定に注意が必要です。例えば、次のようにします。これを忘れると、IPv6 で自サイト内からアクセスしたときにリレーを拒否されてしまいます。
mynetworks = ... [::1]/128 [fe80::]/10 [2001:1234:5678::]/48
続いて SASL 対応化
まず、main.cf を以下のように追加します。
- smtp_sasl_auth_enable = yes
- smtp_sasl_password_maps = hash:/usr/pkg/etc/postfix/sasl_passwd
- smtp_sasl_security_options =
このとき、間違って
mailbox_transport = cyrus
を追加しないようにします。これは、別の目的の設定のようです*1。
さらに、次のファイルが必要です。
- /usr/pkg/etc/postfix/sasl_passwd
フォーマットは、
<相手方 SMTP サーバー名> <ユーザー ID>:<パスワード>
です。これも、postmap コマンドで .db に変換しておきます。
動作を確認する
最後に動作の確認です。一度 postfix を再起動した後、
- 内部ネットワークから外部へ
- 外部から内部ネットワークへ
- ローカルホストから外部へ
- ローカルホスト内
などいろいろな動作を確認しておきます。最後にログファイルを確認して、変なエラーが出ていなければ OK でしょう。
*1:設定不足になって、メールの受信ができなくなる。
PerfectDisk 7.0
試しに職場で使っています。システム関係のエリアも起動時にデフラグしてくれるのが嬉しいです。Windows XP 標準のツールに比べて、デフラグ時の配置方法が少し賢いらしいです。
URL: Defrag & Fragmentation Prevention - PerfectDisk Pro | Raxco Software
それにしても、メモリが足りない
Windows 用のメモリ節約ソフトです。いろんなソフトがあるらしいです。
いくつか試してみましたが、やっていることは、仮想記憶を大量に要求して動いているプロセス群を強制的にページアウトし、その後仮想記憶を解放しているだけのように見えます。まあ、アプリケーションレベルではそれくらいしかできないよなあ。だとしたら、フリーで手に入る RAM Idle LE で十分なような気がしてきました。
ところで、当初このような戦術の効果を小さく見積もっていたのですが、使っていると思ったよりも有効な感じです。必要なアプリケーションのメモリまでページアウトされてしまうという問題はありますが、メリットのほうが大きいかも知れません。Windows XP のメモリ管理は、余計な内容をメモリ中に保持してしまう方向に強くチューニングされ過ぎている気がします。定期的にメモリをページアウトしてしまうという戦術は面白いです。もう少し使い込んでみようと思います。