POSTGREY(8) Postgrey Policy Server for Postfix POSTGREY(8)
名前
postgrey - グレイリスティングを実装する postfix のポリシーサーバ
書式
postgrey [options...]
   
-h, --help ヘルプを表示して終了
  --version バージョン情報を表示して終了
-v, --verbose 冗長表示レベルを上げる
-q, --quiet 冗長表示レベルを下げる
-u, --unix=PATH unix ソケット PATH で接続を待つ
-i, --inet=[HOST:]PORT PORT で接続を待つ。
HOST の指定がない場合は localhost
-d, --daemonizeバックグラウンドで実行
  --pidfile=PATH デーモンの pid をこのファイルに書き込む
  --user=USER ユーザ USER で起動 (デフォルト: postgrey)
  --group=GROUP グループ GROUP で起動(デフォルト: postgrey)
  --dbdir=PATH db ファイルをこの PATH に置く
(デフォルト: /var/spool/postfix/postgrey)
  --delay=N N 秒間 greylist に入れる (デフォルト: 300秒)
  --max-age=N 前回現れてから N 日を過ぎたエントリを削除 (デフォルト: 35日)
  --retry-window=N 初回の試行は N 日間のみ許可(デフォルト: 2)
直後に ’h’をつけると時間単位となる
  --greylist-action=A greylist に入っていれば、Postfix に A を返す
(デフォルト: DEFER_IF_PERMIT)
  --greylist-text=TXT メールを greylist に入れた際に返す応答
(デフォルト: Greylisted + ヘルプ url, 後述)
  --lookup-by-subnet IP アドレスから末尾の 8 ビットを取り除く(デフォルト動作)
  --lookup-by-host IP アドレスから末尾の 8 ビットを取り除かない
  --privacy 一方向ハッシュ関数を使ってデータを書き込む
  --hostname=NAME ホスト名を指定 (デフォルト: ‘hostname‘)
  --exim 2 個以上のクエリーについてソケットを再利用しない(exim 互換)
  --whitelist-clients=FILE デフォルト: /etc/postfix/postgrey_whitelist_clients
  --whitelist-recipients=FILE デフォルト: /etc/postfix/postgrey_whitelist_recipients
  --auto-whitelist-clients=N 初めて配送に成功したら、ホストをホワイトリストに追加する。
N はクライアントをホワイトリストに追加するまでの最小値
(この機能はデフォルト有効で、値は 5)。
N=0 を指定するとこの機能を無効にする。
  --listen-queue-size=N このソケットで何個の接続を待たせるか
注意:
--whitelist-x オプションは複数回指定できる。 また、それぞれでデフォルトの
/etc/postfix/postgrey_whitelist_clients.local が読み込まれる。
つまり、追加の設定をローカルのエントリに入れてもよい。
説明

Postgrey はグレイリスティングを実装する postfix のポリシーサーバである。

Postfix が SMTP 経由でメールの配送要求を受けると、 まず "クライアントIP" / "送信者" / "受信者" の triplet(三つぞろい)が決定される。この triplet が最初に現れた時、 もしくは最初に現れてから delay秒 (デフォルトは 300)以内にもう一度現れた場合、 そのメールは一時的なエラーで受け取りを 拒否される。 うまくいけばスパマーやウィルスはその後リトライをしないはずだが、 RFC ではリトライするべきであると規定されている。

注意: 自分がやっていることの意味がわかっていない場合は、 --lookup-by-host オプションを指定してはならない。電子メールを送信 する際に、IP アドレスのプールを使うメールサーバは結構ある。この場合、 それらのサーバは、再送を試みるたびに毎回 IP アドレスを変更できる。 このため、このオプションを指定しないと、postgrey はデータベースの 検索をする際に IP アドレスの末尾1バイトを切り捨てる。

インストール
  • "postgrey" ユーザと、データベースを格納するためのディレクトリ dbdir を作成する。
    dbdir のデフォルトは "/var/spool/postfix/postgrey"。
  • postgrey をブート時に起動するように、初期化スクリプトを書く。
    たとえば以下のようになる:
    postgrey --inet=10023 -d
    
  • /etc/main.cf (訳注:/etc/postfix/main.cf の間違い?)に 以下のような設定を追加する:
    smtpd_recipient_restrictions =
                  permit_mynetworks
                  ...
                  reject_unauth_destination
                  check_policy_service inet:127.0.0.1:10023
    
  • 提供されている postgrey_whitelist_clients と grey_whitelist_recipients を /etc/postfix に入れる。
  • /etc/postfix/postgrey_whitelist_recipients にグレイリスティングを通したくないユーザを書いておく。
ホワイトリスト

グレイリスティングを適用したくないクライアントのアドレスや 受取人アドレスがあれば、これらをホワイトリストに記載しておく。 デフォルトでは、postgrey は以下のファイルを読み込む:

/etc/postfix/postgrey_whitelist_clients
/etc/postfix/postgrey_whitelist_clients.local
/etc/postfix/postgrey_whitelist_recipients

これらを別のところに置く場合は、そのパスを --whitelist-x オプションで指定する。

Postgret のホワイトリストは Postfix のアクセステーブルと よく似た書式で記載する。受取人のアドレスとしては以下のような 指定が可能である:

domain.addr
"domain.addr" ドメインおよびサブドメイン
name@
"name@.*" や、拡張アドレス指定 "name+blabla@.*".
name@domain.addr
"name@domain.addr" や、拡張アドレス指定
/regexp/
"regexp" にマッチする任意のパターン (完全なアドレスがマッチする).

クライアントのアドレスとして指定できる書式は以下の通り:

domain.addr
"domain.addr" ドメインおよびサブドメイン
IP1.IP2.IP3.IP4
IP1.IP2.IP3.IP4 という IP アドレス。数字の数が少ないと、 先頭から指定された数字分だけがテストされる。
IP1.IP2.IP3.IP4/MASK
CIDR スタイルのネットワークアドレス。例:192.168.1.0/24
/regexp/
"regexp" にマッチする任意のパターン (完全なアドレスがマッチする).
ホワイトリストへのクライアントの自動登録

--auto-whitelist-clients オプションを指定すると、以下の条件を 満たした場合にクライアントの IP アドレスが自動的にホワイトリスト に追加される。

  • (グレイリストが終わってから)メールの配送が5回以上成功した。 この数字は -auto-whitelist-clients オプションの後ろに回数を 指定すれば変更できる。この処理は一時間に一回ずつ行われる。 (原文は Only one attempt per hour counts.)。
  • クライアントは最後に現れてから --max-age 日間(デフォルトは 35日)保持される。
グレイリストの動作

メッセージが postgrey のテストに引っかかって遅延させるべき時に、 postfix に返されるべきアクションを設定するには --greylist-action=ACTION オプションを使う。

デフォルトでは postgrey は DEFER_IF_PERMIT を返す。これを 受け取ると、postfix は残りの制約条件 (restrictions) をテストし、 これらにパスした場合にのみ、そのメッセージを遅延させる。 451 の遅延アクションにより、postfix は SMTP の応答コード 451 (一時的な失敗)で応答し、常にメッセージを遅延させる。

指定可能なアクションについては、postfix マニュアルの access(5) を参照のこと。

グレイリストのテキスト

メッセージがグレイリストに登録されると、SMTP レベルでは 以下のようなエラーメッセージが送られる:

Greylisted, see http://postgrey.schweikert.ch/help/example.com.html

通常このエラーメッセージはユーザの目に触れることはない。 この URL の情報は、そのエラーを目にするシステム管理者に何らかの ヘルプを提供するためのものである。しかしながら、メールを直接送る ような壊れたメールクライアントを使っているユーザには、グレイ リスティングのエラーが返される。

注意:デフォルトのヘルプ URL にはオリジナルの受信側ドメイン名 (example.com) が含まれる。 このため、ドメイン固有のヘルプ情報をユーザに見せることも可能 である(デフォルトのページでは postmaster@example.com に連絡 するように指示されている)。

このテキスト(と URL)は、--greylist-text パラメータにより 変更できる。そのテキストの中では、以下の特別は変数が使用できる:

%s
グレイリスティングが終了するまでの秒数(300)
%r
受信者のメールドメイン名(example.com).
プライバシー

--privacy オプションを使うと、IP アドレスとメールアドレスを グレーリスティングデータベースに格納する際に SHA1 ハッシュ 関数を利用できる。これによりメールアドレスを取り出そうとする 直接的な攻撃を抑止できる(原文は This will defeat straight forward attempts to retrieve mail user behaviours.)。

関連事項

グレイリスティングとは何かについては http://www.greylisting.org/ を、Postfix ポリシーサーバの動作については http://www.postfix.org/SMTPD_POLICY_README.htmlを、 それぞれ参照してほしい。

COPYRIGHT

Copyright (c) 2004-2007 by ETH Zurich. All rights reserved. Copyright (c) 2007 by Open Systems AG. All rights reserved.

ライセンス

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MER- CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

作者

David Schweikert david@schweikert.ch

翻訳者

堀田 倫英 < hotta at net-newbie dot com >

perl v5.8.8 2008-02-22 POSTGREY(8)