web-dev-qa-db-ja.com

openDKIMはメール転送を中断します

サーバーをPostfixに移行した後、OpenDKIMを使用してDKIMを実装することにしました。これを正常にインストールして実行できましたが、milterとして有効になっていると、サーバー上のすべてのメール転送が機能しなくなります。

たとえば、james @ example.comの下にメールボックスを作成し、それを別のアドレスに転送するように設定すると(外部と内部は等しく影響を受けます)、元の送信者は次のようなメッセージを受信しました。

This is the mail system at Host server.example.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

    The mail system

<[email protected]>: Command rejected

Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.7.1
Diagnostic-Code: X-Postfix; Command rejected

誰か提案や経験はありますか?私はqMailにかなり精通していますが、Postfixの経験はあまりありません。これは本番サーバーであるため、アドバイスなしに問題を解決したくないと思います。

次の行が/etc/postfix.main.cfからコメント化されると、この問題は解決されます。

### custom ###
# OpenDKIM
#milter_default_action = accept
#milter_protocol = 6
#smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768
#non_smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768

対応するメールログエラーは次のとおりです(これらは、上記の/etc/postfix.main.cfコードのコメントが解除されたときに表示されます。

Sep  8 10:09:09 server postfix/cleanup[24811]: BD99260811C5: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Command rejected; from=<[email protected]> to=<[email protected]>
Sep  8 10:09:09 server postfix/cleanup[24811]: BD99260811C5: to=<[email protected]>, relay=none, delay=0.22, delays=0.22/0/0/0, dsn=5.7.1, status=bounced (Command rejected)

ここでは、それぞれポート8891と12768でリッスンするサービスです。

[root@server ~]# netstat -anp|grep :8891
tcp     0   0 127.0.0.1:8891     0.0.0.0:*   EN      25137/opendkim
[root@server ~]# netstat -anp|grep :12768
tcp     0   0 127.0.0.1:12768    0.0.0.0:*   EN      33037/psa-pc-remote

完全な設定ファイルopendkim.confは ここ にあります。以下のコードは、そのトリミングされたバージョンです。

$ egrep -v '^#' opendkim.conf | egrep -v '$^'
PidFile /var/run/opendkim/opendkim.pid
Mode    sv
SendReports yes
SoftwareHeader  yes
Canonicalization    relaxed/relaxed
Selector    default
MinimumKeyBits  1024
KeyFile /etc/opendkim/keys/default.private
Syslog yes
SyslogSuccess yes
LogWhy yes
UMask 002
OversignHeaders From
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
SignatureAlgorithm rsa-sha256
AutoRestart Yes
UserID opendkim:opendkim
Socket inet:8891@localhost
1
Joe

私が見るところ、あなたのmilterの1つがpostfixのコマンドを処理できなかったためにあなたのメールが拒否されたようです。これはpostfixの問題ではありませんが、milterの1つが正しく動作していません。

あなたのconfでは、2つのmilterが定義されています:

  • Opendkimである1つのポート8891
  • Psa-pc-remoteである1つの1つのポート12768

2つのミルターは累積的であり、どちらが失敗の原因であるかは実際にはわからないことに注意してください。ただし、最初に問題が発生したわけではないように思われるため、後の方である可能性があります。たとえば、 この質問 を参照してください。

何らかの理由でpsa-pc-remoteが必要でない限り、このmilterを無効にして、opendkimのみを保持することを検討できます。それ以外の場合、解決策は私の専門分野外であり、質問にpleskタグを追加して、pleskのサポートに連絡することをお勧めします。

2
eltrai