Fedora 서버의 OpenDKIM, opendkim-testkey가 키를 로드하고 확인 중이라고 말한 다음 "쿼리 실패"라고만 표시됩니다. 무엇이 잘못되었는지 어떻게 찾고 수정합니까?

Fedora 서버의 OpenDKIM, opendkim-testkey가 키를 로드하고 확인 중이라고 말한 다음 "쿼리 실패"라고만 표시됩니다. 무엇이 잘못되었는지 어떻게 찾고 수정합니까?

37 일 Fedora Server(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. 오류 없이 상태가 "활성(실행 중)"이라고 나와 있습니다. 그래서 로그(이 경우 /var/log/messages)를 확인해 보니 몇 가지 항목이 있었습니다. 따라서 최신 상태인지 확인하기 위해 명령을 핑하는 동안 순환 opendkim하여 다음을 얻었습니다.systemctl reloadgreptail -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키의 유효성을 검사하고 있습니다! 서명 부분도 작동하게 해야 합니다!

관련 정보