Create  Edit  Diff  Mac OS X Serverで作る 小さな計算機室  Index  Search  Changes  RSS  Login

Greylistingを仕組む

迷惑メールは迷惑だ

OS X Serverには SpamAssassin が最初からインストールされており、学習データも 自動ダウンロードできるようだったので、迷惑メール対策に時間を取られることは ないだろう、と思っていたけれど、実際に運用をはじめてみると、 「メールが届かなくなった」というクレームが多く寄せられた。 仕方がないので、「スコア」を上げたら、今度は大量の迷惑メールが届くようになってしまった。

その他にも、メールサーバーの変更に伴って、「メールがどこか変だ」という声が聞かれるようになって、「別に放っておけばいいさ」という思いもある反面で、ちょっとした意地みたいなものもあって、結局、「本来ならばやらなくてもよかった」仕事を抱えこんでしまう結果になる。

メールやネットワークは、ちゃんと動いて当り前で、仕事やその他の何もかも、それに大きく依存しているくせに、それがどのような仕掛けになっていて、それを維持するのにどれくらいの手間が必要なのか、については、誰もほとんど気にしない。ネットがまだもの珍しかったころは、一部の(優秀な)物好き達が「ボランタリー」に管理をしていたし、そんな彼らに対して周囲はある種の敬意を払っていたけれど、そんなハッピーな時期は長くは続かない。「本来」の仕事をこなしながら、ネットの管理も趣味的に行っていけるほど、大学のゆとりは無くなってしまったし。

でもまあ、この歳になっても、計算機いじりはまだ嫌いではないし、「Mac OS X Serverの標準機能のみで手抜き管理」を決め込もうという当初のポリシーは捨てて、あちこちのサイトでも紹介されている postgrey をマニュアルインストールしてみることにした。

Postgreyを入れる

1. NetInfoマネージャーを開いて、postgreyというユーザーとグループを作成。uid, gidともに125にした。

2 http://postgrey.schweikert.ch/pub/ から postgrey 1.27 をダウンロードして展開。whitelistデータを /etc/postfix の中にコピー。postgrey (perlスクリプト)は /usr/local/sbin の中に入れた。さらに、ディレクトリ /var/spool/postfix/postgreyを作成し、オーナーとグループをpostgreyにしておく。

3 CPANを使って、perl に IO::Multiplex を追加インストール。Net::ServerとBerkeieyDBはOSに最初から入っているので、入れる必要なし(実はこの件でトラブルに遭遇→メールサーバーの設定)。

4 http://lingon.sourceforge.net/ を使って、User Daemonとして

/usr/local/sbin/postgrey --inet=10023 -d --user=postgrey --group=postgrey

を起動するように設定。plistを手で書かなくてもよいのでとても便利。Programの欄に"/usr/local/sbin/postgrey"を書いてはダメで、全てを引数の欄に記述する。

そうすると、/Library/LaunchDaemonsの中にplistファイルが追加されて、その中身は以下のよう:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
       <key>Label</key>
       <string>cmpt.postgrey</string>
       <key>ProgramArguments</key>
       <array>
               <string>/usr/local/sbin/postgrey</string>
               <string>--inet=10023</string>
               <string>-d</string>
               <string>--user=postgrey</string>
               <string>--group=postgrey</string>
       </array>
       <key>RunAtLoad</key>
       <true/>
       <key>ServiceDescription</key>
       <string>Greylisging daemon for Postfix</string>
</dict>
</plist>

5. /etc/postfix/main.cf に

smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,check_policy_service inet:127.0.0.1:10023

を追加。

sudo postfix reload

MacPortsに入っている perl と db を使おうと思ったが、そちらではうまく動かなかった。

Last modified:2007/04/19 14:40:47
Keyword(s):[postgrey]
References:[Mac OS X Serverで作る 小さな計算機室] [frontpage]