このドキュメントでは、SMTP認証ユーザ名をヘッダーのFrom:アドレスと比較するメッセージフィルタの作成方法について説明します。
Cisco AsyncOS for Emailバージョン15.0以降に関する知識があることが推奨されます。
SMTP認証機能を使用すると、Cisco Eメールセキュリティアプライアンス(ESA)に接続してEメールを送信するEメールクライアントに対して、SMTP認証を使用できます。 この機能により、認証されたセッションが発信メールをリレーできるようになるため、クライアントはヘッダーのFrom:アドレスをスプーフィングできます。スプーフィングを防止するために、Cisco AsyncOS for Emailバージョン6.5以降にはメッセージフィルタ条件が組み込まれており、認証済みSMTPユーザ名をヘッダーのFrom:アドレスと比較し、そのユーザ名をXヘッダーに記録します。
メッセージフィルタ条件を使用すると、管理者は、SMTP認証セッション中に発信でリレーされたメッセージを比較するフィルタ(次のセクションのルールなど)を記述できます。SMTPクレデンシャルが侵害された場合、送信側クライアントは複数のヘッダーFrom:アドレスを生成することがよくあります。この条件が成立すると、認証されたユーザ名がヘッダーのFrom:アドレスに一致する場合にだけ、メッセージの配信が許可されます。一致しない場合、メッセージはスプーフィングされたヘッダーのFrom:として扱われ、設定されたメッセージフィルタアクションが適用されます。メッセージフィルタ処理は、任意の最終処理にすることができます。この例のルールでは、検疫処理を使用しています。フィルタ条件の構文は次のとおりです。
smtp-auth-id-matches("<target>" [, "<sieve-char>"])
オプションのsieve-charパラメータでは、比較アドレスのその後の部分を無視するために使用するデリミタ文字(たとえば、+)を指定します。これは、表に示されているように、通常はプラスアドレッシングに使用されます。
フィルタを使用すると、次のターゲットのいずれかに対する比較が可能になります。
| SMTP認証ID | ふるいにかける文字 | 比較アドレス | 一致する内容? |
|---|---|---|---|
| あるユーザ | otheruser@example.com | No | |
| あるユーザ | someuser@example.com | Yes | |
| あるユーザ | someuser@face.localhost | Yes | |
| 一部のユーザー | someuser@example.com | Yes | |
| あるユーザ | someuser+folder@example.com | No | |
| あるユーザ | + | someuser+folder@example.com | Yes |
| someUser@example.com | someuser@forged.com | No | |
| someUser@example.com | someuser@example.com | Yes | |
| someUser@example.com | someuser@example.com | Yes |
この変数置換$SMTPAuthIDを使用すると、認証済みSMTPセッション中にリレーされるメッセージのメッセージヘッダーに、認証済みユーザ名を含めることができます。
Msg_Authentication: if (smtp-auth-id-matches("*Any"))
{
# Always include the original authentication credentials in a
# special header.
insert-header("X-SMTPAUTH", "$SMTPAuthID");
if (smtp-auth-id-matches("*FromAddress", "+") and
smtp-auth-id-matches("*EnvelopeFrom", "+"))
{
# Username matches. Verify the domain.
if (header('from') != "(?i)@example\.com" or mail-from != "(?i)@example\.com")
{
# User has specified a domain which cannot be authenticated.
quarantine("forged");
}
}
else
{
# User claims to be a completely different user.
quarantine("forged");
}
}
| 改定 | 発行日 | コメント |
|---|---|---|
1.0 |
11-Jun-2014
|
初版 |