postfix / smtpd:警告:Milterサービスunixに接続:/var/run/opendkim/opendkim.sock:そのようなファイルまたはディレクトリはありません


36

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

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

これを修正するにはどうすればよいですか?

回答:


58
  1. opendkimが実行されているかどうかを確認します。(私はそれがあなたがソケットファイルを見たときだと思います。)
  2. opendkimを構成しましたか?構成ファイルは/etc/opendkim.confです。

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

  3. opendkimグループに接尾辞を追加

    opendkim.sockの許可が以下の場合

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

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

    次に、以下を実行します

    sudo adduser postfix opendkim
  4. chrootで実行されているPostfix

    修正/etc/default/opendkimSOCKETオプションをpostfix chrootロケーションに変更

    SOCKET = "local:/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. opendkimを再起動します

    sudoサービスopendkim restart
    

4
opendkimディレクトリーの許可が過度に制限されているため、同様の問題が見つかりました。
ダレルデュアン

1
opendkimは以前に動作していたはずですが、Ubuntu 15.04から15.10にアップグレードした後は動作していないことに気付きました。ソケットパス/etc/default/opendkimを、定義済みの同じものに更新して/etc/opendkim.conf修正しました。ありがとう!
ハプログ

私の問題は、chrootでpostfixを実行していて、unixソケットを使用していることです。あなたは、表示された場合 No such file or directoryの平均postfixのパスを見つけることができませんが、それはの/ var /スプール/ postfixのは/ var /実行/ opendkim /、ではないの/ var /実行/ opendkim内部のソケットを探したこと
HVNSweeting

@HVNSweeting(4)で説明されていませんか?
ジョン・シウ

それは、新しい答えを作成するのではなく、コメントして賛成した理由です。opendkimが適切に構成されていれば、TCPソケットが機能するはずなので、質問には非常に多くの問題が含まれています。ありがとう
HVNSweeting

11

Ubuntu 16.04 LTSでこの警告を修正するのに役立った簡単な要約:Postfixバージョン3.1.0-3ubuntu0.2 Opendkimバージョン2.10.3-3build1

  • (私はPostfixとOpendkimがすでにインストールされ、互いに統合されており、あなたが得る唯一の警告は「milter service local:/var/spool/postfix/opendkim/opendkim.sock:No such file or directory」に接続していると仮定します)

  • ユーザーopenfixをグループ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 = "local:/var/spool/postfix/var/run/opendkim/opendkim.sock"

  • 後置構成の編集:/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 restart opendkim

systemctl restart postfix

それでおしまい。なぜ書く必要があるのか​​分かりません

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

の代わりに

smtpd_milters = local:/var/spool/postfix/var/run/opendkim/opendkim.sock

。誰かが知っていれば、説明は大歓迎です。


2
postfixがCHROOTで実行される場合、構成パスはそれに関連しています。最終的に解決しようとする接尾辞になるでしょう/var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
暗く

5

Debianストレッチで同じ問題に直面していましたが、それはopendkimのsystemdサービスファイルの破損が原因でした。ソリューションについては、この回答を参照してください:https : //serverfault.com/a/847442/84962

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

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

1
私はUbuntuシステムを持っています。このアドバイスだけが役に立ちましたが、他のすべては機能しませんでした。
silpol

私が16.04を実行し、/lib/opendkim/opendkim.service.generateは存在しません
ローラン

Ubuntu 18.04で正常に動作します。ありがとうございました。
デュケ

これはDebianの9の上に私の問題を解決
jchook

2
smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock

usermod -G opendkim,opendmarc

5
これが質問にどのようになぜ答えるのかについての説明が含まれていれば、これははるかに良い答えになります。
スティーブンラウフ

3
Unix&Linuxへようこそ!このコードスニペットは質問を解決するかもしれませんが、説明を含めることは投稿の品質を向上させるのに本当に役立ちます。あなたが今尋ねている人だけでなく、将来読者のために質問に答えていることを忘れないでください!回答を編集して説明を追加し、適用される制限と仮定を示してください。
トビースパイト

1

別の方法は、を無効にすることですchroot。これはセキュリティに影響します。

vi /etc/postfix/master.cf

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

警告にはが表示さpostfix/cleanupれるため、このサービスのchrootを非アクティブ化できます。


0

Milterサービスunix:/clamav/clamav-milter.ctlへの接続:許可が拒否されました

ls -l / var / spool / postfix / clamav srw-rw ---- 1 clamav clamav 0 Apr 4 17:59 clamav-milter.ctl

clamav-milter.conf

ユーザーclamav MilterSocketGroup postfix MilterSocketMode 660

milterのユーザー権限

chown postfix:postfix /var/spool/postfix/clamav/clamav-milter.ctl

私のために働く


0

OpenDKIMとPostfixは異なるユーザーの権限で動作し、同じソケットから読み書きするため、問題が発生しました。

opendkimグループにpostfixユーザーを追加しました:

sudo usermod -a -G opendkim postfix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.