postfix/smtpd: 警告: Milter サービス unix:/var/run/opendkim/opendkim.sock に接続中: ファイルまたはディレクトリが存在しません。

postfix/smtpd: 警告: Milter サービス unix:/var/run/opendkim/opendkim.sock に接続中: ファイルまたはディレクトリが存在しません。

squeezeからwheezyにアップグレードした後、Debianでpostfixの問題が発生しました。 Postfixは、dkim-filterを使用してメッセージに署名するように設定されています。アップデート前はすべてうまくいきましたが、現在はサービス(tcpまたはunixソケット)への接続が失敗します。 Debianがopendkimに切り替えたからかもしれないと思ってdkim-filterを削除し、opendkimをインストールしました。同じ問題です。 tcpオプションの代わりにunixファイルソケット接続を設定してみました。同じ問題です。

postfix/smtpd: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory

または(TCP / IPを使用):

postfix/cleanup: warning: connect to Milter service inet:localhost:8891: Connection refused

二度確認しました。ソケットファイルが存在し、サービスがポート8891でリッスンしています。

この問題を解決するにはどうすればよいですか?

答え1

  1. opendkimが実行されていることを確認してください。 (私の考えでは、これはあなたが見ているソケットファイルのようなものです。)
  2. opendkimを構成しましたか?設定ファイルは/etc/opendkim.conf

    サイト/ドメインと一致するようにファイルを更新する必要があります。dkimkey道。

  3. opendkimグループにサフィックスを追加する

    opendkim.sock権限が次の場合:

    $ls -l /var/run/opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6月2日14時56分opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 5月2日 14:56 opendkim.sock
    

    そうでない場合は、inUMaskに設定されていることを確認してください。0002/etc/opendkim.conf

    次に、次のようにします。

    sudo adduser postfix opendkim
  4. Postfixはchrootで実行されます。

    修正する/etc/default/opendkim、変えるソケットpostfix chroot ロケーションオプション

    SOCKET="ローカル:/var/spool/postfix/var/run/opendkim/opendkim.sock"

    ディレクトリを作成し/var/spool/postfix/var/run/opendkimて権限を変更する必要があります。

    sudo mkdir -p /var/spool/postfix/var/run/opendkim
    sudo chown opendkim:opendkim /var/spool/postfix/var/run/opendkim
    
  5. オープンキムの再起動

    sudoサービスopendkimの再起動
    

答え2

Ubuntu 16.04 LTSでこの警告を解決するのに役立つクイックサマリー:Postfixバージョン3.1.0-3ubuntu0.2 Opendkimバージョン2.10.3-3build1

  • (PostfixとOpendkimが既にインストールされ、互いに統合されていると仮定して、「Milterローカルサービスに接続しています。/var/spool/postfix/opendkim/opendkim.sock:そのファイルまたはディレクトリがありません」という警告のみが表示されます。)

  • opendkimグループにユーザーサフィックスを追加する(すでに完了した場合はスキップ)

sudo adduser postfix opendkim

  • ディレクトリの作成と所有者の設定(すでに完了した場合はスキップ)

sudo mkdir -p /var/spool/postfix/var/run/opendkim

sudo chown opendkim:opendkim /var/spool/postfix/var/run/opendkim

  • 権限を確認してください:

ls -l /var/spool/postfix/var/run/opendkim

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • opendkim設定ファイル(/etc/opendkim.conf)を編集し、次の行を追加します。

ローカルソケット:/var/spool/postfix/var/run/opendkim/opendkim.sock

/etc/defaults/opendkim、追加

SOCKET="ローカル:/var/spool/postfix/var/run/opendkim/opendkim.sock"

  • postfix設定の編集:/etc/postfix/main.cf
# Milter configuration
# Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6
milter_default_action = accept
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock
  • サービスの再起動(または再起動)

systemctl 再起動 opendkim

systemctl postfixの再起動

それはすべてです。なぜ書くのか分からない

smtpd_milters = unix:var/run/opendkim/opendkim.sock

変える

smtpd_milters =ローカル:/var/spool/postfix/var/run/opendkim/opendkim.sock

。ご存知の方はご説明をお願いします。

答え3

Debian Stretchでも同じ問題がありましたが、opendkimの破損したシステムサービスファイルが原因であることがわかりました。回避策については、次の回答をご覧ください。https://serverfault.com/a/847442/84962

この修正は次のように要約されます。

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart

答え4

代替は無効にすることですがchroot、これはセキュリティに影響します。

vi /etc/postfix/master.cf

# service type  private unpriv  chroot  wakeup  maxproc command + args
cleanup   unix  n       -       n       -       0       cleanup

postfix/cleanupこのサービスに対してchrootを無効にするように警告が表示されます。

関連情報