0

dovecot と postgresql を使用して仮想ユーザー用に exim4 を構成していますが、解決できない問題が発生しました。状況は次のとおりです。

「localdomain」ユーザーが別の「localdomain」ユーザーまたは外部ユーザーに電子メールを送信しようとすると、認証が必要になり、そうでない場合は操作を拒否する必要があります。

実際には、あらゆるタイプの smtp オープン リレーを回避しようとしています。

実際にはsmtpは正常に動作し、その要件を設定するだけで、この動作を取得するためにeximを正しく構成する正しい方法が見つかりません(aclまたはルートまたはトランスポートルールですか?)

この構成を定義するにはどうすればよいですか?

例:

220 my-server ESMTP Exim 4.84 2016 年 3 月 31 日 22:26:28 +0000
ローカルホスト
250-my-server こんにちは localhost [192.168.1.X]
250サイズ 52428800
250-8BITMIME
250-パイプライン
250 認証プレーン ログイン
250ヘルプ
メールアドレス: a@my-server.com
250OK
受信者: b@my-server.com
250 受け入れ
データ
354 「.」で終わるメッセージを入力してください。単独で行に
ユーザー「a@my-server.com」は認証されていません。
彼は使用するまでまだメッセージを送信できてはなりません
はローカル ドメインのユーザーであるため、「auth login」または「auth plain」の
.
250 OK id=1all3Q-0004l2-V4

例 2

220 my-server ESMTP Exim 4.84 2016 年 3 月 31 日 22:58:56 +0000
ローカルホスト
250-my-server こんにちは localhost [192.168.1.X]
250サイズ 52428800
250-8BITMIME
250-パイプライン
250 認証プレーン ログイン
250ヘルプ
メールアドレス: a@anotherserver.com
250OK
受信者: user@my-server.com
250 受け入れ
データ
354 「.」で終わるメッセージを入力してください。単独で行に
これはすでに有効です。
.
250 OK id=1allZR-00050E-Sq

ACL 構成ファイル:

acl_check_rcpt:
  受け入れる
    ホスト = :
    制御 = dkim_disable_verify

  .ifdef CHECK_RCPT_LOCAL_LOCALPARTS
  拒否
    ドメイン = +local_domains
    local_parts = CHECK_RCPT_LOCAL_LOCALPARTS
    message = アドレスの制限文字
  .endif

  拒否
    ドメイン = !+local_domains
    local_parts = CHECK_RCPT_REMOTE_LOCALPARTS
    message = アドレスの制限文字
  .endif

  受け入れる
    .ifndef CHECK_RCPT_POSTMASTER
    local_parts = ポストマスター
    。そうしないと
    local_parts = CHECK_RCPT_POSTMASTER
    .endif
    ドメイン = +local_domains : +relay_to_domains

  .ifdef CHECK_RCPT_VERIFY_SENDER
  拒否
    メッセージ = 失敗しました!
    !acl = acl_local_deny_exceptions
    !verify = 送信者
  .endif

  拒否
    !acl = acl_local_deny_exceptions
    送信者 = ${存在する場合{CONFDIR/local_sender_callout}\
                         {CONFDIR/local_sender_callout}\
                   {}}
    !verify = 送信者/コールアウト

  受け入れる
    ホスト = +relay_from_hosts
    制御 = 送信/送信者_保持
    制御 = dkim_disable_verify

  受け入れる
    認証済み = *
    制御 = 送信/送信者_保持
    制御 = dkim_disable_verify

  必要とする
    メッセージ = リレーが拒否されました!
    ドメイン = +local_domains : +relay_to_domains

  必要とする
    検証 = 受信者

  拒否
    !acl = acl_local_deny_exceptions
    受信者 = ${存在する場合{CONFDIR/local_rcpt_callout}\
                            {CONFDIR/local_rcpt_callout}\
                      {}}
    !verify = 受信者/コールアウト

  拒否
    message = 送信者のエンベロープ アドレス $sender_address はローカルでブラックリストに登録されています。これが間違っていると思われる場合は、postmaster に連絡してください
    !acl = acl_local_deny_exceptions
    送信者 = ${存在する場合{CONFDIR/local_sender_blacklist}\
                   {CONFDIR/local_sender_blacklist}\
                   {}}

  拒否
    メッセージ = 送信者の IP アドレス $sender_host_address はローカルでブラックリストに登録されています。これが間違っていると思われる場合は、postmaster に連絡してください
    !acl = acl_local_deny_exceptions
    ホスト = ${存在する場合{CONFDIR/local_host_blacklist}\
                 {CONFDIR/local_host_blacklist}\
                 {}}

  受け入れる
    ドメイン = +relay_to_domains
    エンドパス
    検証 = 受信者

  受け入れる
4

0 に答える 0