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.)。 関連事項 グレイリスティングとは何かについては を、Postfix ポリシーサーバの動作については を、それぞれ 参照してほしい。 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 翻訳者 堀田 倫英 < hotta at net-newbie dot com> perl v5.8.8 2008-02-22 POSTGREY(8)