Fedora Server
37(2023年2月1日頃更新)で、新規OpenDKIM
インストールが実行されました(バージョンはv2.11.0です)。構成には、署名テーブルとキーテーブルの作成、キーの作成、およびでの公開が含まれていましたDNS
。ここまでは順調です...
経由でテストしたところopendkim-testkey
、失敗しました。
初めて実行したときは「安全でないアクセス許可」というエラーが表示されましたが、それでもエラーは止まりませんでした。しかし、しばらくそのことに集中しました。所有権とアクセス許可を 6 回以上変更しただけで、エラーは消えませんでした。だから、今のところは気にしないことにします。
署名テーブルにエラーがあったに違いないと認識したので、微妙な変更を加えました。... 公式ドキュメントでは必須とは書かれておらず、まったく不要に思えるにもかかわらず、どうやら「_domainkey」の使用が要求されているようですが、どうやら必須のようです。署名テーブルのエントリにこの「_domainkey」テキストを追加するという一見ばかげた行為に従ったところ、少なくとも正しい がロードされているという表示が出て、さらに進んだため、そう思うのですkeyfile
。それでも、「クエリに失敗しました」というエラーがまだ表示されます。
明確にするために、セッションは次のようになります。
opendkim-testkey -d some-fqdn.com -s default -vvvvvvv
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: /etc/opendkim/keys/some-fqdn.com/<prefix>.private: WARNING: unsafe permissions
opendkim-testkey: key loaded from /etc/opendkim/keys/some-fqdn.com/<prefix>.private
opendkim-testkey: checking key 'default._domainkey.some-fqdn.com'
opendkim-testkey: 'default._domainkey.some-fqdn.com' query failed
まあ、ヒントをありがとうopendkim-testkey
!
からは何も役に立ちませんでしたsystemctl status opendkim.service
。ステータスは「アクティブ (実行中)」で、エラーは発生していないと表示されています。そこで、ログ (この場合は ) をチェックしたところ、いくつかのエントリがありました。最新のものであることを確認するために、コマンドで ping を実行しながらを/var/log/messages
切り替えてみたところ、次の結果が得られました。opendkim
systemctl reload
grep
tail -f
Mar 5 11:17:21 fs1 systemd[1]: Started opendkim.service - DomainKeys Identified Mail (DKIM) Milter.
Mar 5 11:17:21 fs1 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=opendkim comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Mar 5 11:17:22 fs1 abrt-notification[3173323]: Process 348313 (opendkim) crashed in _nl_load_domain.cold()
うわあ!クラッシュした?それならなぜ起動して動作中と表示されるのですか?おかしいですね!
調査してみると、_nl_load_domain.cold() は実際には C++ 関数であることがわかります。
関数の定義は次のように始まります:
internal_function
_nl_find_domain (const char *dirname, char *locale,
const char *domainname, struct binding *domainbinding)
{
struct loaded_l10nfile *retval;
const char *language;
const char *modifier;
const char *territory;
const char *codeset;
const char *normalized_codeset;
const char *alias_value;
int mask;
それだけでこの男はこう思うだろう。「うーん...次は何をしようか?」
(問題のドメインは、opendkim
! を除いて、かなり堅牢なライブでDNS zone
正常に動作しており、問題のシステムはDNS
クエリに完全にアクセスできることに注意してください。)
注記
OpenDKIM
受信メールのDKIM
キーは問題なく検証されています。署名部分も機能させる必要があります。