この節では、SPF チャネルキーワードと SPF MTA オプションに関する参照情報を示します。SPF サポートは、受信 tcp_* チャネル (一般には tcp_local) に適用される 4 つのチャネルキーワードによって実装されます。次の表に、キーワードとその説明を示します。
表 15–2 SPF キーワード
キーワード |
説明 |
---|---|
spfnone |
SPF 処理を無効にします。 |
spfhelo |
HELO または EHLO への引数として指定されたドメイン名に関して、SPF 処理を有効にします。 |
spfmailfrom |
MAIL FROM: の受信後にオリジネータのエンベロープアドレスとして指定されたドメイン名に関して、SPF 処理を有効にします。 |
spfrcptto |
RCPT TO: の受信後にオリジネータのエンベロープアドレスとして指定されたドメイン名に関して、SPF 処理を有効にします。spfmailfrom と同じ処理ですが、RCPT TO: コマンドが発行され、宛先が有効な宛先であることが別の方法で確認されるまで、SMTP トランザクション内で処理が保留されます。 |
spfmailfrom と spfrcptto は競合するキーワードなので、これら 2 つのキーワードのうち、いずれか一方のみをチャネルに指定するようにしてください。ただし、spfmailfrom と spfrcptto のいずれかを spfhelo と組み合わせて使用することにより、両方の種類の SPF チェックを実行できます。
追加サポートにより、SPF 処理に関する制限値を設定し、Fail、SoftFail、PermError、TempError などの SPF の各種処理結果に関して、SMTP コマンドを受け入れるか、4xx 応答を伴うエラー (一時的エラー) にするか、5xx 応答を伴うエラー (恒常的エラー) にするかを制御できます。
option.dat 内の次の MTA オプションを使用して、SPF 処理に関する制限値を設定できます。
表 15–3 SPF 制限オプション
オプション |
説明 |
---|---|
SPF_MAX_RECURSION |
include: または redirect= による SPF レコードの入れ子の許容反復回数を指定します。この制限値を超えた場合の処理結果は、PermError になります。 デフォルト: 10 (RFC による規定) |
SPF_MAX_DNS_QUERIES |
DNS 検索を必要とする機構または修飾子 (include:、a:、mx:、ptr:、exists:、redirect=、exp= を含む) の数を指定します。この制限値は実際の DNS 検索の数をカウントするものではないため、1 つの機構によって複数の DNS クエリーが発生する可能性もあります。この制限値を超えた場合の処理結果は、PermError になります。 デフォルト: 10 (RFC による規定) |
SPF_MAX_TIME |
SPF 処理が完了するまでの許容時間 (秒数) を指定します。この値を超えた場合の処理結果は、TempError になります。デフォルト値は、RFC の規定より大きくなっています。 デフォルト: 45 |
さらに、option.dat 内の次の MTA オプションを設定することにより、SPF の処理結果 Fail、SoftFail、PermError、および TempError に対する SMTP サーバーの動作を制御できます。これらの処理結果のそれぞれに対して、SMTP サーバーは 2xx (成功)、4xx (一時的エラー)、または 5xx (恒常的エラー) の応答を返信できます。また、Fail と SoftFail に関して、MTA は「all」機構の結果として得られた SPF 処理結果とそれ以外の方法で明示的に参照された一致を区別できます。これにより、ユーザーは特定の結果と SPF レコードのデフォルトの結果を見分けることができます。これらのオプションの有効な値は 2、4、または 5 です。2、4、または 5 という値は、特定の SPF ステータスを取得した結果として SMTP サーバーから受信される 2xx、4xx、または 5xx の応答に対応しています。したがって、たとえば、SPF_SMTP_STATUS_FAIL=2 で、SPF レコードが「-a:192.168.1.44」(ユーザーの IP アドレス) で明示的にメールをブロックしている場合は、5xx 応答ではなく、「250 OK」でこのアドレスが受け入れられます。
表 15–4 SPF の失敗およびエラーのオプション
オプション |
説明 |
---|---|
SPF_SMTP_STATUS_FAIL |
SPF レコードの一致が「-all」以外の「-」付きの機構である場合に使用されます。 デフォルト: 5 |
SPF_SMTP_STATUS_FAIL_ALL |
一致した機構が「-all」である場合に使用されます。 デフォルト: 5 |
SPF_SMTP_STATUS_SOFTFAIL |
SPF レコードの一致が「~all」以外の「~」付きの機構である場合に使用されます。 デフォルト: 2 |
SPF_SMTP_STATUS_SOFTFAIL_ALL |
一致した機構が「~all」である場合に使用されます。 デフォルト: 2 |
SPF_SMTP_STATUS_TEMPERROR |
一時的エラー (通常は DNS 処理の問題に関連するもの) が発生した場合に使用されます。 デフォルト: 4 |
SPF_SMTP_STATUS_PERMERROR |
恒常的エラー (通常は、SPF 処理中に見つかった構文エラーやその他の技術上のエラーによるもの) が発生した場合に使用されます。これは、ローカル以外のエラーが原因で発生します。 デフォルト: 5 |