
んで、Greylisting 機能を sendmail に入れ込む。
sendmail の milter 機能を使って plug in 的な感じでgreylist機能を追加する milter-greylist を使う。
Fedora ではパッケージもあるけど Solaris でも使うのでソースからコンパイルすることにしよう…。
やることは、
・sedmail パッケージから libmilter のインストール
・milter-greylist のビルド
・greylist のシステムへの登録
・sendmail の greylist 対応
ってな手順かな…
■libmilterのインストール
milter-greylistをビルドする前に libmilter が必要なので sendmail パッケージから生成しておく
sendmailパッケージを展開して libmilter/ ディレクトリの下で
# Build install
とやって、milter 関連のヘッダやライブラリをインストールしておく
■milter-greylistのビルド
ダウンロードは、[ http://hcpnet.free.fr/milter-greylist/ ] から…。
いまのところの最新版のmilter-greylist-4.0.1.tgzをゲット
パッケージを展開してみるといまどきには珍しいほとんどマッタイラなディレクトリ構成
で、
# configure --help
でパラメータをチェックするけど、特になにも指定する必要はなさそうなので
# configure && make && make install
でビルド&インストール
■greylistのシステムへの登録
Fedora や Solaris の /etc/init.d/ の下に置くファイル用のサンプルがそれぞれ rc-redhat.sh , rc-solaris.sh としてパッケージに含まれてるんで、それをちょびっと変更して使用。
ただし、Solaris10ではSMFでsendmailを起動してるんで、greylistもそっちに登録してsendmaiのdependencyにgreylistも追加しておいてgreylistが起動されてからsendmailが起動されるように細工…。
で /var/milter-greylist のオーナーをsendmailの起動オーナーに変えておく(これ忘れがちかも)
# chown -R smmsp:smmsp /var/milter-greylist
んで、/etc/mail/greylist.conf を作成する。
このファイルはパッケージ内の greylist.conf , greylist2.conf や man greylist.conf である程度作れる。
そういえばパッケージ内の greylist.conf をそのまま使うとエラーを起こしてたっけ…
dumpfile "/var/milter-greylist/greylist.db" 755
は
dumpfile "/var/milter-greylist/greylist.db"
としておきました。…とりえず。
それと
racl greylist list "grey users" delay 30m autowhite 3d
racl whitelist default
の2行で、指定のユーザー宛のメールのみ greylist してあとはしない…っていう設定になっているのをそれら2行を消して
racl greylist default
として全ユーザー宛てのメールに対して greylist 機能をかけるようにしました。
それと
report delays
と指定して、遅延が発生したメールにだけ X-Greylist: ヘッダを付加するようにしました。
あとはデフォルトの delay や autowhite の数値を指定したりといったところですかね。
■sendmail の greylist対応
これは楽っすね。 sendmail.cf の変更のみでよいし…。
sendmail パッケージの cf/feature ディレクトリの下に greylist パッケージ内にあるmilter-greylist.m4というファイルをコピーしておきます。
んで、従来の sendmail.mc に以下の行を追加して cf/cf の下において make install-cf で sendmail.cf をセット
FEATURE(`milter-greylist')dnl
これで対応完了…つつがなく動作しました。
最近のコメント