web-dev-qa-db-ja.com

Postfixの複数のチェック

Postfixで次のことを実現したいと思います。

  1. ブラックリストを介してすべての電子メールを実行します
  2. ドメインのリストに送信するすべてのクライアントを許可する
  3. 一部のクライアントが任意のドメインに送信できるようにする

これは私が持っているものです:(接尾辞は10.0.8.0にあり、送信者の一部は10.0.8.0と10.0.9.0です)

mynetworks_style = subnet

smtpd_recipient_restrictions = check_recipient_access sqlite:/etc/postfix/access-bl.query, check_client_access hash:/etc/postfix/trusted_clients, check_recipie
nt_access hash:/etc/postfix/local_domains, reject_unauth_destination, permit

したがって、現在、ブラックリストは機能します。ファイル/etc/postfix/trusted_clientsには、どこにでも送信できるユーザー(3)が含まれ、ファイル/etc/postfix/local_domainsには、送信できる場所(2)が含まれます。これらの2つは問題なく、適切に戻ります。

私の問題は、3つすべてを連携させることです。注文の問題かどうかわからない。現在、10.0.9.17からテストを送信しており、Relay access deniedを取得しています。追加した場合:

mynetworks = 10.0.8.0/24 10.0.9.0/24

そうすれば誰でもどこにでも送信できるので、#2は機能しません。

PostfixのバージョンはUbuntu14.04では2.10です。

何か案は?

postconf | grep restrictionsの出力:

smtpd_client_restrictions =
smtpd_data_restrictions =
smtpd_end_of_data_restrictions = 
smtpd_etrn_restrictions = 
smtpd_helo_restrictions = 
smtpd_recipient_restrictions = check_recipient_access sqlite:/etc/postfix/access-bl.query, check_client_access hash:/etc/postfix/trusted_clients, check_recipient_access hash:/etc/postfix/local_domains, reject_unauth_destination, permit_mynetworks
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination 
smtpd_sender_restrictions = 
4
xBlue

接尾辞2.10では、新しいパラメーターsmtpd_relay_restrictionsが導入されました。この制限は[〜#〜] before [〜#〜]smtpd_recipient_restrictionsで評価されます。

公式ドキュメントからの抜粋

smtpd_relay_restrictions(デフォルト:permit_mynetworks、permit_sasl_authenticated、defer_unauth_destination)PostfixSMTPサーバーがsmtpd_recipient_restrictionsの前にRCPTTOコマンドのコンテキストで適用するメールリレー制御のアクセス制限。評価のコンテキストと時間の説明については、SMTPD_ACCESS_READMEのセクション「SMTPアクセス制限リストの遅延評価」を参照してください。

したがって、このルールはRelay Access Deniedであるため、mynetworksの外部にあるクライアントはdefer_unauth_destinationを取得します。

解決策の1つは、制限(2)と(3)をsmtpd_relay_restrictionsに移動することです。

smtpd_recipient_restrictions = 
    check_recipient_access sqlite:/etc/postfix/access-bl.query

smtpd_relay_restrictions = 
    permit_mynetworks, 
    permit_sasl_authenticated, 
    check_client_access hash:/etc/postfix/trusted_clients, 
    check_recipient_access hash:/etc/postfix/local_domains,
    reject_unauth_destination

注:

  1. reject_unauth_destination は、smtpd_relay_restrictionsまたはsmtpd_recipient_restrictionsのいずれかに配置できます。両方の場所で繰り返す必要はありません。
  2. smtpd_relay_restrictionsは、プットリレールールを配置することを目的としていますが、smtpd_recipient_restrictionsは、スパムブラックリストのプレースホルダーです(たとえば、 reject_non_fqdn_sender )。
2
masegaloeh