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でリッスンしていました。
これを修正するにはどうすればよいですか?
Opendkimを設定しましたか?構成ファイルは/etc/opendkim.conf
です。
サイト/ドメインとdkim.keyパスに一致するようにファイルを更新する必要があります。
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
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
Opendkimを再起動します
sudoサービスopendkimの再起動
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
ローカルソケット:/var/spool/postfix/var/run/opendkim/opendkim.sock
/ etc/defaults/opendkim、追加
SOCKET = "local:/var/spool/postfix/var/run/opendkim/opendkim.sock"
# 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
。誰かが知っていれば、説明は大歓迎です。
Debianストレッチでも同じ問題に直面していましたが、opendkimのsystemdサービスファイルが壊れていることが原因であることが判明しました。解決策についてはこの回答を参照してください: https://serverfault.com/a/847442/84962
この修正は、要約すると次のようになります。
/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart
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を非アクティブ化できます。
エラーで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
私のために働く
OpenDKIMとPostfixが異なるユーザーの権限で動作し、同じソケットから読み書きするため、問題が発生しました。
Opendkimグループにpostfixユーザーを追加しました:
Sudo usermod -a -G opendkim postfix