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)