root@servername
たとえば、電子メールが から送信された場合を除き、認証された SMTP 電子メールのみを許可する exim 設定が必要です。これが今日私が持っているものです:
acl_not_smtp (custom_begin_outgoing_notsmtp_checkall)
deny
authenticated = *
condition = ${if !eq {root@$primary_hostname}{${address:$h_from:}}}
message = REJECTED
accept
このソリューションは、認証されていないすべての電子メールをブロックします。もっと良い解決策をお持ちの方はいらっしゃいますか?
答え1
別の ACL である acl_smtp_rcpt を呼び出す必要があると思います。この ACL がサーバー上でどの名前にマップされているかを調べてください。Debian では、acl_check_rcpt です。
送信者をテストするには、送信者がすでに指定されている必要があります。これは、リモート エンドが "RCPT TO:" コマンドを送信する場合に当てはまります。試してみないと、acl_check_rcpt で次のような操作を行います。
accept authenticated = *
accept senders = root@servername
deny message = Rejected
簡単に偽造できる送信元アドレスに頼るべきではありません。送信元ホストに対してテストするには、
accept senders = root@servername
hosts = 127.0.0.1 : localhost
さらに、メッセージの送信元が自分のサーバーであることを確認します。
ほとんどの場合、ローカル メッセージは SMTP によって受信されません。設定内の ACL は acl_not_smtp になります。ただし、これがどの名前にマッピングされているか再度検索してください。