私の正当なユーザーではないが、私の仮想ドメインの1つを送信者アドレスとして使用する受信メールを拒否するのは良いことです。
smtpd_sender_restrictions=reject_sender_login_mismatch
を使用して、既存のエイリアス/アカウント名を使用する受信メールを拒否できることはわかっていますが、攻撃者は仮想ドメインの1つで存在しないメールアドレスを使用できます。 (これはスパム検出に関して好まれます)。
仮想ドメインの1つを使用し、そのために認証されていない受信メールを拒否する最良の方法は何ですか?
メーリングリストと転送の問題により、SPFとDKIMはセットアップされていますが、SoftFailに設定されています。 SPFやDKIMではなく、前述のMXであるPostfixサーバーのソリューションを探していますドメイン。
2つの可能な方法を見つけましたが、もっと良い方法があるかもしれません。
1番目の方法:
smtpd_sender_restrictions =
reject_sender_login_mismatch,
permit_sasl_authenticated,
permit
ここで、ドメインテーブルにドメインが存在する場合、smtpd_sender_login_maps
を変更して、admin
のエントリを返します。このようにして、emailadressがmaibox/aliasとして存在しない場合でもレコードが返されますが、外部ドメインがfromアドレスである場合は返されません。
table = domain
query = SELECT username AS allowedUser FROM mailbox WHERE username="%s" AND deleted_at IS NULL \
UNION SELECT goto FROM alias WHERE address="%s" AND active = 1 \
UNION select 'admin' from domain where domain = '%d'
2番目の方法:
このアプローチは、ドメインが仮想ドメインでユーザーがcheck_sender_access
ではない場合に拒否アクションを返すsasl_authenticated
ルックアップを使用します。
smtpd_sender_restrictions =
reject_sender_login_mismatch,
permit_sasl_authenticated,
check_sender_access proxy:mysql:$config_directory/mysql_reject_virtual_domains.cf,
permit
mysql_reject_virtual_domains.cf
:
table = domain
query = select 'Reject 530 SMTP authentication is required' from domain where domain = '%d'
3番目の方法( masegaloeh に感謝):
smtpd_sender_restrictions =
reject_sender_login_mismatch,
permit_sasl_authenticated
reject_unlisted_sender,
permit
Cpu-load/SQL-queries reject_unlisted_sender がいくつ生成されるかわかりません。
明示的なreject_unlisted_sender
アクセス制限が指定されていない場合でも、Postfix SMTPサーバーが不明な送信者アドレスからのメールを拒否するように要求します。これにより、ワームやウイルスからの偽造メールの爆発を遅らせることができます。
アドレスは、virtual(5)エイリアスまたはcanonical(5)マッピングと一致する場合、常に「既知」と見なされます。
ユニオンなしの個別のクエリを使用するさらに別の1番目の方法:
virtual_sender_mailbox_maps.cf
query = SELECT '%s' AS email FROM domains WHERE name='%d' AND active=TRUE
main.cf
smtpd_sender_login_maps = ${proxysql}virtual_sender_mailbox_maps.cf
smtpd_sender_restrictions =
reject_sender_login_mismatch,
permit_sasl_authenticated,
permit
正しい方法は、ドメインにSPFを設定し、MTAでSPFを有効にすることです。次に、独自のドメイン偽造だけでなく、SPFが有効になっている他のすべてのドメインも保護します。
次の少なくとも1つを実装するようにしてください(どちらも優れています)。