s25rtarpitgreylistの最新版
- SMTPダミー応答時に、HELOおよびにMAILFROMに対してSPF検査する機能を追加しました。(デフォルト無効です)
- 設定ファイルを実行スクリプトと別に持てるようにしました。
このプログラムは、qmailのsmtpプログラム(qmail-smtpd)を実行される直前にこのプログラムを実行して スパム送信元らしいホストの接続を拒否する、qmail用のホスト選択式スパム対策ソフトです。
このプログラムは拒否するホストの判定にgreylistingというメール再送を要求するアルゴリズムを使用しています。(スパマーは早く大量にメールを送信したいので再送信を嫌がり、再送信しません。)
しかし、このgreylistというアルゴリズムだけでは副作用が大きすぎますので、 S25R(選択的SMTP拒否)というアルゴリズムを使用して、スパマーがよく利用する 動的IPアドレスらしいホストのみをgreylistingの対象とするようにしています。
また、tarpit(SMTP接続時に意図的に応答を遅らせる)を実施することにより、 スパム送信元ホストの接続を拒否します。(スパマーは早く大量にメールを送信したいので、 応答遅延を嫌がり自ら切断します)
このプログラムはperlスクリプトで実装されています。qmailやその関連ソフトウェアにパッチを適用する方式ではありませんので簡単に導入できます。
このプログラムは佐藤 潔 様の考案された「taRgrey - S25R + tarpitting + greylisting」(Postfix用)のアルゴリズムを参考に、同じく佐藤様の「Qgrey - S25R + qgreylist パッチ」(Qmail用)を参考に、ホスト名ベースのホワイトリスト・ブラックリスト、tarpitting(応答遅延)を追加する形で作成しています。
佐藤様に感謝です。 またS25Rを考案された浅見様にも感謝です。またバグ報告、新機能の提案を提供くださいました皆様にも感謝です。
機能ごとに、その機能を有効にするか無効にするかを切り替えるスイッチがついています。
ここに定義したホストは無条件でqmail-smtpdに引き渡します(拒否しません)。 IPアドレスベースのものとホスト名ベースのものがあります。対象の指定には正規表現を使用することができます。
プロバイダから割り当てられたホスト名を使用する正規のメールサーバーや S25Rの条件に該当してしまう正規のメールサーバーをこのホワイトリストに登録することにより greylistの罠に嵌るのを防ぎます。
ホワイトリストのメンテナンスについてはこちらをご参照ください。
「s25rtarpitgreylist のホワイトリスト・ブラックリストのメンテナンスについて」
ここに定義したホストは無条件で接続を切断し拒否をします。正規のメールサーバーのような振舞いをするスパム送信元ホスト等を定義します。 IPアドレスベースのものとホスト名ベースのものがあります。対象の指定には正規表現を使用することができます。
スパム送信元ホストをブラックリストに登録することにより、初回接続から2分から1日の間隔(greylistのデフォルト設定)で再送信してくるホストのメール送信を除外できます。(手動登録)
SMTP接続時に意図的にSMTPグリーティングの応答を遅らせます。スパムを送信するホストはメールを大量送信するため応答の遅延を嫌がり切断します。
スパムを送信するホストは動的IPアドレスという前提で 動的IPアドレスらしいホスト名を持つホストと持たないホストを振り分けます。 動的IPアドレスらしいホスト名を持たないホストは接続が許可されます。 動的IPアドレスらしいホスト名を持つホスト(逆引きできないホストも含む)は 後の処理(ここではgreylist・tarpit)に任されます。
副作用の大きいgreylist処理の対象を減らします。
DNSBLに登録されているホストからの接続を拒否します。
DNSBLは、スパムを送信するIPアドレスを集めた、ボランティアや企業などで運営されるデータベースです。
tarpitやgreylistingを回避してくるspam送信ホストに有効です。
メール送信ホストの初回接続時にqmailの代わりにこのプログラムが応答し、そのホストに対して再送要求させます(ダミー応答)。 その後、再送してきたホストの接続を許可してqmail-smtpに連携します。 但し、すぐに再送してきたホストは拒否します。 (接続情報(IPアドレス、接続時間)をgreylistで管理します)
greylistの詳細についてはこちら。
このプラグラムの実装では、以下の点でオリジナルのgreylistと異なる挙動をします。
スパマーは他のホストにメールを送信することを優先するので再送しないことが多いです。よって、これでスパムを防ぐことができるかもしれません。
SMTPの仕様外のコマンドを要求して様子を見るホストの接続を拒否し、greylistへの登録をキャンセルします。 そのことにより、このホストからの接続を拒否します。
また、HELOでホスト名を名乗らずにすぐにQUITを発行するホストと、HELOの直後にすぐQUITを発行するホストの接続を拒否し、greylistへの登録をキャンセルします。
接続ホストがHELOコマンドで名乗るホスト名を調べます。greylistingの ダミー応答中のみ実施します。(接続ホストの情報がgreylistに 登録されるときのみ実施。greylistによる接続許可が承認されたホストに 対しては、この機能は効きません。)
ここに定義したHELOホスト名を名乗ったホストの接続を切断して拒否します。
さらにそのホストのgreylistの登録をキャンセル(削除)します。
ホスト名の登録に正規表現を使用することができます。
また、同時にIPアドレスを正規表現で指定することで拒否するホストを限定することもできます(ver1.1追加)。
スパム送信元ホストが特徴あるHELOホスト名を名乗る場合に有効です。
ここに定義したHELOホスト名を名乗ったホストの接続を許可します。
ホスト名の登録に正規表現を使用することができます。
また、同時にIPアドレスを正規表現で指定することで許可するホストを限定することもできます。
名前解決できない冗長化された正規のメールサーバが決まったHELOを名乗る場合などに有効です。
HELOコマンドで名乗るホスト名がFQDNになっているかをチェックします。(実装は上記の「HELOホスト名ブラックリスト」の条件で行ってます) FQDNでない場合、ホストの接続を切断して拒否し、さらにgreylistの登録をキャンセル(削除)します。
正しくないHELOホスト名を名乗るホストに有効です。(スパム送信ホストはFQDNでないHELOホスト名を名乗ることがあります。「localhost」やWindowsのコンピュータ名など。)
HELOコマンドで名乗るホスト名のドメインと、実際の逆引きホスト名のドメインが一致するかチェックします。 一致しない場合、ホストとの接続を切断して拒否し、greylistの登録をキャンセル(削除)します。
正しくないHELOホスト名を名乗るホストに有効です。
HELOコマンドで名乗ったホスト名がIPアドレスだったときに、接続元IPアドレスと比較して異なれば、そのホストとの接続を切断して拒否し、greylistの登録をキャンセル(削除)します。
正しくないHELOホスト名を名乗るホストに有効です。
接続ホストがHELOコマンドで名乗るホスト名と接続ホストのIPアドレスを、SPFレコードに登録されているかチェックします。または接続ホストがMAIL FROMコマンドでメールアドレスのドメイン部分と接続ホストのIPアドレスを、SPFレコードに登録されているかチェックします。 接続ホストが名乗るドメイン所属DNSサーバのSPFレコードにIPアドレスが登録されていない場合は接続を切断して拒否し、greylistの登録をキャンセル(削除)します。
正しくないHELOホスト名を名乗るホスト、または正しくないMail Fromを名乗るメールに有効です。またDNSのAレコードやMXレコードに登録されていない送信専用メールサーバを一時的に救うことができます。(SPFレコードに登録されていれば)
この機能はMail::SPFモジュールを使用します。このモジュールはperlの標準セットに含まれていませんので、この機能を使用する場合はCPANからMail::SPFモジュールをインストールしてください。
順 | 機能 | 処理内容 | その他 |
---|---|---|---|
1 | greylist | greylistからしばらくアクセスがないホストの記録を削除 | |
2 | 接続ホストがリレークライアント→許可 | ||
3 | qmail-vida用SMTP-AUTH回避設定が有効、かつ環境変数USERが設定されている→許可 | ver1.3.0追加 | |
4 | 接続ホストがホスト名ベースホワイトリストに登録されている→許可 | ||
5 | 接続ホストがIPアドレスベースホワイトリストに登録されている→許可 | ||
6 | S25R | 接続ホストのホスト名がS25Rの条件に該当しない→許可 | |
7 | 接続ホストがホスト名ベースブラックリストに登録されている→再送要求(拒否) | ||
8 | 接続ホストがIPアドレスベースブラックリストに登録されている→再送要求(拒否) | ||
9 | 接続ホストがDNSBLに登録されている→再送要求(拒否) (この機能はデフォルト無効です) | ||
10 | greylist | 接続ホストがgreylistに登録されていない→10-1へ 登録されている→11へ | |
10-1 | tarpitting | tarpitting(指定秒数待つ) (オプションで待てたら→許可 も可) (待てない→接続ホストが自ら切断) | |
10-2 | greylist | 接続ホストをgreylistに登録 | |
10-3 | greylist | SMTPダミー応答 | |
10-4-1 | 接続ホストがSMTP-AUTHで認証問い合わせ。→接続ホストのgreylist登録時間を古い時間に修正。&再送要求(拒否)(再試行により手順11及びに手順12に該当せず許可になる) | ver1.3.0追加 | |
10-4-2 | 接続ホストがHELOで名のったホスト名がホワイトリストに登録されている→接続ホストのgreylist登録時間を古い時間に修正。&再送要求(拒否)(再試行により手順11に該当せず許可になる) | ver1.4.3追加 | |
10-4-3 | 接続ホストがHELOで名のったホスト名がブラックリストに登録されている。またはHELOホスト名がFQDNでない。→qreylistから登録を削除&再送要求(拒否) | ||
10-4-4 | original | 接続ホストがHELOで名のったホスト名がIPアドレスで、かつ実際の接続元IPアドレスと異なる。→qreylistから登録を削除&再送要求(拒否) | ver1.1追加 |
10-4-5 | 接続ホストがHELOで名のったホスト名のドメイン部分が逆引きホスト名のドメイン部分と異なる→qreylistから登録を削除&再送要求(拒否) | ||
10-4-6 | 接続ホストがMAIL FROMで名のったメールアドレスのドメイン部分とIPアドレスの組み合わせが、そのドメインのDNSのSPFレコードと一致する→接続ホストのgreylist登録時間を古い時間に修正。&再送要求(拒否)(再試行により手順11及びに手順12に該当せず許可になる) | ver1.6.0追加 | |
10-4-7 | original | SMTPコマンドの発行数が一定以下→qreylistから登録を削除&再送要求(拒否) | ver1.2追加 |
10-4-8 | original | SMTPで未定義のコマンドの発行数が一定以上→qreylistから登録を削除&再送要求(拒否) | ver1.2追加 |
10-5 | greylist | →再送要求(拒否) | |
11 | greylist | 接続ホストが指定した回数以上、「初回接続から近すぎる」(手順11)になっている →再送要求(拒否) | |
12 | greylist | 接続ホストの接続が初回接続から近すぎる →再送要求(拒否) | |
13 | greylist | 接続ホストのgreylistのアクセス時間を更新 | |
14 | greylist | →許可 |
このプログラムは単一のperlスクリプトですので、簡単にインストールできます。
以下にインストール手順を示します。
# tar zxvf s25rtarpitgreylist_1.6.0.tar.gz
# cd s25rtarpitgreylist_1.6.0
# vi s25rtarpitgreylist.pl
または
# vi s25rtarpitgreylist.ini
# ./setup.sh
8.へ
アップデートする場合はs25rtarpitgreylist.plのコピーのみです。s25rtarpitgreylist.iniを編集した場合はこのファイルもコピーしてください。
# cp s25rtarpitgreylist.pl /var/qmail/bin
# chmod 755 /var/qmail/bin/s25rtarpitgreylist.pl
# mkdir /var/qmail/s25rtarpitgreylist
# mkdir /var/qmail/s25rtarpitgreylist/tmp
# cp s25rlist_hostname /var/qmail/s25rtarpitgreylist
# cp whitelist_ipaddr /var/qmail/s25rtarpitgreylist
# cp whitelist_hostname /var/qmail/s25rtarpitgreylist
# cp blacklist_ipaddr /var/qmail/s25rtarpitgreylist
# cp blacklist_hostname /var/qmail/s25rtarpitgreylist
# cp blacklist_helohost /var/qmail/s25rtarpitgreylist
# cp greylist /var/qmail/s25rtarpitgreylist
# cp dnsbllist /var/qmail/s25rtarpitgreylist
# cp s25rtarpitgreylist.ini /var/qmail/s25rtarpitgreylist
# touch /var/qmail/s25rtarpitgreylist/whitelist
# touch /var/qmail/s25rtarpitgreylist/blacklist
# touch /var/qmail/s25rtarpitgreylist/lastdeletetime
# chown -R qmaild /var/qmail/s25rtarpitgreylist
権限の設定は手抜きしてます。
8.へ
# /var/qmail/bin/s25rtarpitgreylist.pl
==== run check mode ====
Dir_Data:/var/qmail/s25rtarpitgreylist [ OK ]
Dir_Tmp:/var/qmail/s25rtarpitgreylist/tmp [ OK ]
Path_Whitelist:/var/qmail/s25rtarpitgreylist/whitelist [ OK ]
Path_Whitelist_Ipaddr:/var/qmail/s25rtarpitgreylist/whitelist_ipaddr [ OK ]
Path_Whitelist_Hostname:/var/qmail/s25rtarpitgreylist/whitelist_hostname [ OK ]
Path_Blacklist:/var/qmail/s25rtarpitgreylist/blacklist [ OK ]
Path_Blacklist_Ipaddr:/var/qmail/s25rtarpitgreylist/blacklist_ipaddr [ OK ]
Path_Blacklist_Hostname:/var/qmail/s25rtarpitgreylist/blacklist_hostname [ OK ]
Path_Greylist:/var/qmail/s25rtarpitgreylist/greylist [ OK ]
Path_S25rlist_Hostname:/var/qmail/s25rtarpitgreylist/s25rlist_hostname [ OK ]
Path_Blacklist_Helohost:/var/qmail/s25rtarpitgreylist/blacklist_helohost [ OK ]
---- check patternfile ----
# vi /etc/init.d/qmail
:(中略)
# qmail smtpd start
/usr/local/bin/tcpserver -vhR -u ${qmaild_uid} -g ${nofiles_gid} \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
/var/qmail/bin/s25rtarpitgreylist.pl \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &
:(中略)
qmail-vidaの場合は以下に示すようなこともできます。但し作者はqmail-vidaの環境を持ってないので”ノーテスト”です。
# vi /etc/init.d/qmail
:(中略)
# qmail smtpd start
/usr/local/bin/tcpserver -vhR -u ${qmaild_uid} -g ${nofiles_gid} \
-x /hoge/hoge/etc/tcp.smtp.cdb 0 smtp \
qmail-smtpup $MYSVNAME \
checkpassword \
/var/qmail/bin/s25rtarpitgreylist.pl \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &
:(中略)
先に、qmail-smtpupとcheckpasswordにHELOおよびSMTP-AUTHを処理させてからs25rtarpitgreylist.plに渡すことにより、SMTP-AUTHで許可されたユーザ(接続)は、許可されたリレークライアント同様に、無条件で接続を許可するようにできます。但し、s25rtarpitgreylistによるHELOのチェックは行われません。
この設置方法を採用する場合、以下の設定を必ず行ってください。
SPFチェック機能を使用する場合はCPANからMail::SPFモジュールをインストールしてください。
Mail::SPFモジュールの一般的なインストール手順は以下です。途中で何か聞かれたら、依存するモジュールのインストールが必要とのことですので「yes」で答えてください。
# perl -MCPAN -e shell
cpan> install Mail::SPF
:(中略)
---- Unsatisfied dependencies detected during [J/JM/JMEHNLE/mail-spf/Mail-SPF-v2.007.tar.gz] -----
Error
Net::DNS
NetAddr::IP
version
Net::DNS::Resolver::Programmable
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] yes
:(中略)
cpan> quit
ファイルが多くなってきましたので、ディレクトリツリーでファイルの説明です。
s25rtarpitgreylist/s25rtarpitgreylist.iniについては以下を参照。
設定項目がたくさんありますが、qmailのインストール先をデフォルトから変更していない場合は、これらの設定項目の値を初期値から変更しなくても正しく動作します。
設定はスクリプト(bin/s25rtarpitgreylist.pl)で行います。しかし、s25rtarpitgreylist/s25rtarpitgreylist.iniが存在しているときは、s25rtarpitgreylist.iniでの設定が優先されます。
S25Rリストやホワイトリスト、ブラックリスト、greylistのファイルを格納するディレクトリのパスを指定します。qmaildユーザが読み書きできる必要があります。
qmailのcontrol/ディレクトリのパスを指定します。
このプログラムが一時的に使用するディレクトリのパスを指定します。qmaildユーザが読み書きできる必要があります。
flock関数を使用するかどうかを設定します。
0または1の数値を指定します。
greylistで拒否したときに正しい理由を返すかどうかを設定します。
0または1の数値を指定します。
evalを使用するかを指定します。
セキュリティー的な問題で使用したくない人もいると思いますので、パラメータで使用するかしないか選択できるようにしています。
0または1の数値を指定します。
ログ出力のレベル(頻度)を設定します。
IPアドレスベースのホワイトリストファイルのパスを指定します。
ファイルの内容は、許可したいホストのIPアドレスを指定したリスト(改行区切り)です。
IPアドレスベースのホワイトリストファイルのパスを指定します。
ファイルの内容は、許可したいホストのIPアドレスを指定したリスト(改行区切り)です。IPアドレスの指定にperlの正規表現が使用できます。
ホスト名ベースのホワイトリストファイルのパスを指定します。
ファイルの内容は許可したいホストのホスト名のリスト(改行区切り)です。ホスト名の指定にperlの正規表現が使用できます。書式は異なりますがこちらのホワイトリストもそのまま使用できます(このプログラムにて余計な情報は読み取らないようにしています)
ブラックリストの機能の有効/無効、および動作方法を設定します。
0から2までの数値を指定します。
IPアドレスベースのブラックリストファイルのパスを指定します。
ファイルの内容は、接続を拒否したいホストのIPアドレスを指定したリスト(改行区切り)です。
IPアドレスベースのブラックリストファイルのパスを指定します。
ファイルの内容は接続を拒否したいホストのIPアドレスを指定したリスト(改行区切り)です。IPアドレスの指定にperlの正規表現が使用できます。
ホスト名ベースのブラックリストファイルのパスを指定します。
ファイルの内容は接続を拒否したいホストのホスト名のリスト(改行区切り)です。ホスト名の指定にperlの正規表現が使用できます。
greylisting機能の有効/無効を設定します。
0,1の値を指定します。
greylistファイルのパスを指定します。
ファイルの内容はgreylistでアクセス制御するホストの各種情報(改行区切り)のリストです。
レコードの書式は
「IPアドレス 登録日(初回アクセス)の日付 登録日(初回アクセス)の時刻 最終アクセスの日付 最終アクセスの時刻 初回接続に近すぎて失敗した数」
です。
このファイルは、このプログラムによって自動的に更新されます。
greylistの編集中を示すロックファイルのパスを指定します。
このファイルを配置するディレクトリはqmaildユーザが読み書き削除できる権限を必要とします。
greylistの自動更新中に使用する一時ファイルのパスを指定します。
このファイルを配置するディレクトリはqmaildユーザが読み書き削除できる権限を必要とします。
greylistに登録されている期限切れしたホストの情報を削除した日時を管理するファイルのパスを指定します。
このファイルの最終編集時間で日時を管理しています。 このファイルを配置するディレクトリはqmaildユーザが読み書き削除できる権限を必要とします。
greylistに登録されている期限切れしたホストの情報を削除するための検索の間隔(秒数)を指定します。
再送要求後の、メールの受信を許可する、初回接続からの秒数を指定します。
例えば、Sec_Suppression_Connect=120 のとき、
2008-03-20 22:00:00に初めて接続したホストを再送要求したとします。
このとき、再送にあたる2回目の接続が
2008-03-20 22:01:30であれば、初回接続より120秒経過していないので再び拒否し再送要求します。
2008-03-20 22:02:10であれば、初回接続より120秒経過しているのでそのホストの接続を許可します。
greylistに登録されているホストのうち、接続が許可されているホスト(初回接続日時!=アクセス日時)の情報の有効期限(秒数)を指定します。
有効期限が切れたホストの情報はgreylistから削除されます。
greylistに登録されているホストのうち、接続が許可されていないホスト(初回接続日時=アクセス日時、再送待ち状態)の情報の有効期限(秒数)を指定します。
有効期限が切れたホストの情報はgreylistから削除されます。この値をSec_Suppression_Connectより小さくしないでください。
メール送信ホストから接続された時のHELOコマンドで答えるメッセージを設定します。この値が空のままであるとqmailのcontrolディレクトリにあるsmtpgreetingまたはmeファイルの内容が設定されます。
このHELOメッセージには使用しているプログラムの名前やバージョン情報が表示されます。しかし、このプログラムの場合、このプログラムの名前を表示すると、このプログラムに対する対策を講じられる可能性があるため、これらの情報を表示しないほうがよいでしょう。
SMTP接続のタイムアウト秒数を設定します。
このプログラムによるSMTPダミー応答中の、SMTPの各コマンドごとの応答落ち時間(秒数)を指定します。
スパム送信ホストは遅延を嫌がるので自ら切断するかもしれません。
接続を拒否する初回接続に近すぎて拒否した数の閾値を指定します。
初回接続に近すぎて拒否した数がこの値を超えると、初回接続より指定の時間を経過しても接続を拒否します。短い間隔で何度も再送してきて最終的にSec_Suppression_Connectの設定秒数を超えてしまう場合に有効です。
接続ホストをIPアドレスの第3オクテットまで使用して登録情報とマッチングするかどうかを設定します。(第4オクテットはマッチングに使用しない)
greylistに登録されている情報が非常に多く動作が鈍くなっている場合に有効です。
greylistへの登録を拒否する、接続ホストのSMTPコマンド発行数を指定します。
接続ホストが発行するSMTPコマンドがこの設定値より少ない時、接続ホストのgreylistへの登録を、このプログラムはキャンセル(削除)します。
greylistへの登録を拒否する、接続ホストの規格外SMTPコマンド発行数を指定します。
接続ホストが発行する規格外のSMTPコマンドがこの設定値より多い時、接続ホストのgreylistへの登録を、このプログラムはキャンセル(削除)します。
SMTP接続がタイムアウトした接続ホストのgreylistへの登録を拒否する機能の有効と無効の切り替えを指定します。
通常のgreylistのアルゴリズムを接続ホストが回避する場合があるので、接続ホストのSMTP接続がタイムアウトになった時点でgreylistへの登録を拒否します。
S25Rによる動的IPアドレスらしいホストの選別をする機能を有効にするか無効にするかを設定します。
0,1の値を指定します。
S25Rリストのファイルのパスを指定します。
ファイルの内容は動的IPアドレスらしいホスト名のリスト(改行区切り)です。ホスト名の指定にperlの正規表現を使用することができます。 Mode_Blacklistの値を「1」(デフォルト)にしている場合は、ブラックリストの内容も追加で定義してください。 書式は異なりますがこちらの「/etc/postfix/rejectionsファイルの中身」で紹介されているリストも使用することができます。(このプログラムにて余計な部分を読みこまないようにしています)
tarpit(応答遅延)の機能の有効/無効、および動作方法を設定します。
0から2までの数値を指定します。
tarpit(応答遅延)する秒数を指定します。
ここで指定した秒数だけ接続直後のSMTPグリーティングの応答を遅らせます。デフォルトでは65秒ですが125秒ぐらいでも実用範囲だと思います(副作用には注意してください)。
tarpit(応答遅延)を待つことができたホストを許可するかどうかを設定します。
0から1までの数値を指定します。
接続ホストがHELOで名乗るホスト名のブラックリストの機能の有効/無効を設定します。
0から1までの数値を指定します。
HELOで名乗るホスト名ベースのブラックリストファイルのパスを指定します。
ファイルの内容は、接続を拒否したいホストの名乗るHELOホスト名を指定したリスト(改行区切り)です。ホスト名の指定にperlの正規表現を使用することができます。 FQDNチェックもこのファイル内の定義で行っています。
レコードの書式は
「拒否するHELOホスト名 [拒否する逆引きホスト名またはIPアドレス(名前解決不可時)]」
です。左から2カラム目のホスト名は省略できます。省略時は全ホスト対象です。
HELOで名乗るホスト名ベースのホワイトリストファイルのパスを指定します。
ファイルの内容は、接続を許可したいホストの名乗るHELOホスト名を指定したリスト(改行区切り)です。ホスト名の指定にperlの正規表現を使用することができます。
レコードの書式は
「許可するHELOホスト名 [許可する逆引きホスト名またはIPアドレス(名前解決不可時)]」
です。左から2カラム目のホスト名は省略できます。省略時は全ホスト対象です。
ホワイトリストにマッチ場合、接続を一旦切断します。そのホストから再度接続があった場合、無条件で接続を許可します。
接続ホストがHELOで名乗るホスト名(FQDN)のドメイン部分と接続ホストの逆引きホスト名(FQDN)のドメイン部分を比較する機能の有効/無効を設定します。
逆引きできないホストにはこの機能は働きません。また、ローカルネットワークに配置された配信専用のメールサーバーはHELOで名乗るホスト名がFQDNでないことが多いので、この機能を有効にした場合、このようなホストから送信されるメールを受信できなくなるリスクがあります。
0-2の値で指定します。
この機能はgTLDであるかccTLDであるかまではチェックしません。よってSLDまでしかチェックしません。
接続ホストがHELOでIPアドレスを名乗った時に、接続元のIPアドレスと比較する機能の有効/無効を設定します。
0-1の値で指定します。
このパラメータはSMTP-AUTH接続をしてきたホストをgreylistにより許可するかを設定します。
greylistのダミー応答中にAUTHコマンドを送信してきた時、そのホストのgreylist情報の登録時間を古い時間に修正します。それにより次回接続時には、greylistにより接続が許可されます。(よって初めてAUTHを送してきた接続は一旦は切断されます)
0-1の値で指定します。
このパラメータはSMTP-AUTH接続をしてきたホストを許可するかを設定します。qmail-vida専用です。
SMTP-AUTHをした接続はqmail-smtpupとcheckpasswordにより環境変数USERがセットされています。この環境変数USERがセットされていた場合、接続を許可します。このパラメータを有効にする場合、標準の設置方法とは異なります。こちらを参照してください。
0-1の値で指定します。
DNSBLを利用した接続拒否機能の有効/無効を設定します。
DNSBLを利用することには賛否両論がありますので。デフォルトでは無効にしています。しかし、利用するのであればS25Rで対象を絞った後にDNSBLを利用すれば誤判定が減り有効活用できるかもしれません。利用するDNSBLは後述するリストファイルで指定できます。
0,1,2の値で指定します。
利用するDNSBLをリストしたファイルのパスを設定します。
ファイルの内容は、利用するDNSBLを指定したリスト(改行区切り)です。
利用するDNSBLを複数指定できますが、たくさん指定すると問い合わせ時間が増えるのでパフォーマンスが落ちます。
1つのDNSBLに問い合わせる際のタイムアウト(秒数)を指定します。
タイムアウトになると、そのDNSBLへの問い合わせを中断します。
2 (デフォルト)
DNSBLに登録されているために拒否した時のSMTP応答コード。
"450" (デフォルト)
接続ホストがHELOで名乗るホスト名とIPアドレスをSPFレコードと比較する機能の有効/無効を設定します。
ローカルネットワークに配置された配信専用のメールサーバーはHELOで名乗るホスト名がFQDNでないことが多いので、この機能を有効にした場合、このようなホストから送信されるメールを受信できなくなるリスクがあります。
0,1の値で指定します。
接続ホストがMAIL FROMで伝えるメールアドレスのドメイン部分と接続ホストのIPアドレスを、SPFレコードと比較する機能の有効/無効を設定します。
0,1の値で指定します。
再試行後の接続を許可するSPFチェック結果レベルを設定します。
SPF検査結果がここで設定した値以下であれば、再試行後の接続で許可になります。
0から7の値で指定します。
接続を拒否するSPFチェック結果レベルを設定します。
SPF検査結果がここで設定した値以上であれば、接続を拒否します。(応答コード550で切断)
0から7の値で指定します。
巷の噂では不安定らしい(まだロックリストが更新されない)ですが、作者の開発環境およびに本番環境(100アカウント、5000通/日)では、そのような現象が発生していないので、対処が困難です。先述の症状が発生する場合は、動作を停止した上で/var/qmail/s25rtarpitgreylist/tmp以下にあるファイルを削除してみてください。それでも解決しない場合は、比較的安定している1.2.2を使用してください。
出来るだけこのバージョン以上にアップデートしてください。上記にもありますとおり、このバージョン以前では、何らかの原因でgreylistが壊れているとプログラムが強制終了されてします。即ち、greylistが壊れると、greylistの判定が必要なメールは受信できなくなる可能性があります。