web-dev-qa-db-ja.com

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

Squeezeからwheezyにアップグレードした後、debianのpostfixに問題があります。 Postfixはdkim-filterを使用してメッセージに署名するように設定されました。更新前は、すべてが問題なく動作していましたが、サービス(tcpまたはunixソケット)との接続で失敗するようになりました。 opendkimへのdebianの切り替えのせいかもしれないと思ったので、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でリッスンしていました。

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

38
rogers
  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 
    

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

    次に、以下を実行します

    Sudo adduser postfix opendkim
  4. Chrootで実行されているPostfix

    /etc/default/opendkimを変更し、[〜#〜] socket [〜#〜]オプションを変更して、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の再起動
    
63
John Siu

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

  • (私はPostfixとOpendkimがすでにインストールされ、相互に統合されていると想定していますが、表示される唯一の警告は「Milterサービスへの接続: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"

  • 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 restart opendkim

systemctl restart postfix

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

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

の代わりに

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

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

14
Fedorov7890

Debianストレッチでも同じ問題に直面していましたが、opendkimのsystemdサービスファイルが壊れていることが原因であることが判明しました。解決策についてはこの回答を参照してください: https://serverfault.com/a/847442/84962

この修正は、要約すると次のようになります。

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart
5
Serrano
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

代わりにchrootを無効にすることもできます。これはセキュリティに影響します。

vi /etc/postfix/master.cf

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

警告はpostfix/cleanupなので、このサービスのchrootを非アクティブ化できます。

1
Plup

エラーでMilterサービスに接続します:

unix:/clamav/clamav-milter.ctl: Permission denied

このファイル:

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

ショー:

user clamav
MilterSocketGroup postfix
MilterSocketMode 660 

milterのユーザー権限

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

私のために働く

0
gjerich

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

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

Sudo usermod -a -G opendkim postfix
0
Alex Gvar