milterを使った効果的な迷惑メール対策 - milter manager

逆引きリファレンス

逆引きリファレンス — やりたいことからやり方へ

このドキュメントについて

「やりたいこと」をキーにして、そのやり方を見つけるためのドキュ メントです。

インストール

Debian GNU/Linuxにインストールする

Debian GNU/Linuxへインストール で説明しています。aptitudeでインストールできるので、メンテナ ンスが楽です。


Ubuntuにインストールする

Ubuntuへインストール で説明して います。aptitudeでインストールできるので、メンテナンスが楽で す。


CentOSにインストールする

CentOSへインストール で説明して います。RPMパッケージでインストールできるので、メンテナンス が楽です。


FreeBSDにインストールする

FreeBSDへインストール で説明し ています。


統計情報をグラフ化する

プラットフォーム毎にドキュメントが用意されています。

設定: 基本編

設定ファイルを見つける

インストールマニュアル通りにインストールしている場合は、カス タマイズ用の設定ファイルは以下のようになります。

  • Ubuntu: /etc/milter-manager/milter-manager.local.conf

  • CentOS: /etc/milter-manager/milter-manager.local.conf

  • Ubuntu: /usr/local/etc/milter-manager/milter-manager.local.conf

milter-manager.local.confは新規に作成するファイルです。既定値 では、milter-managerはmilter-manager.confと同じディレクトリに milter-manager.local.confがあると自動的に読み込みます。


TCP/IPでmilter-managerに接続する

manager.connection_spec で"inet:"を指定します。

# 10025番ポートで待ち受ける。自ホストからのみ接続可。
manager.connection_spec = "inet:10025@localhost"

UNIXドメインソケットでmilter-managerに接続する

manager.connection_spec で"unix:"を指定します。

# /var/run/milter/milter-manager.sockで待ち受ける
manager.connection_spec = "unix://var/run/milter/milter-manager.sock"

ソケットファイルのパーミッションは manager.unix_socket_mode で指定できます。

# 同じグループのユーザは接続可能。
manager.unix_socket_mode = 0660

ソケットファイルのグループは manager.unix_socket_group で指定できます。

# ソケットファイルは"milter"グループが所有する
manager.unix_socket_group = "milter"

UNIXドメインソケットの後始末する

UNIXドメインソケット作成時に同名のファイルがある場合、ソケッ ト作成に失敗します。そのような状況を避けるために、以下のタイ ミングでソケットファイルを削除する設定があります。

  1. UNIXドメインソケット作成前

  2. UNIXドメインソケット使用後

既定値では両方とも有効になっているので、通常はソケットファイ ルがあるという理由でソケット作成に失敗することはありません。

もし、無効にする場合は、それぞれ、以下の設定を変更します。

以下は、両方を無効にする設定例です。

# ソケット作成前に既存のソケットファイルを削除しない
manager.remove_unix_socket_on_create = false
# ソケット使用後にソケットファイルを削除しない
manager.remove_unix_socket_on_close = false

設定: 応用編

特定のアカウントのみmilterを適用する

サンプルとして特定のアカウントのみ登録されているmilterを適用 する設定が組み込まれています。このサンプルを使用して、以下の アカウントのみmilterを適用する例を示します。

  1. test-user@example.com

  2. test.example.comドメインのすべてのアカウント

設定は milter-manager.local.conf に追記します。

restrict_accounts_by_list("test-user@example.com",
                          /@test\.example\.com\z/)

この機能は現在はまだサンプル扱いのため、今後変更される可能性 がありますが、その場合も同様の機能は提供され続けます。変更さ れる場合は、データベースやLDAPからのアカウント取得機能など、 より豊富な機能が備わっているはずです。