이름 지정/바인딩 구성을 dnssec-policy로 마이그레이션하는 중에 문제가 발생했습니다.

이름 지정/바인딩 구성을 dnssec-policy로 마이그레이션하는 중에 문제가 발생했습니다.

사용 가능한 DNSSEC 이름 서버가 있습니다. Fedora의 최신 BIND 9.18에서 실행됩니다. 나는 두 키(KSK, ZSK)를 모두 갖고 있고 부모님(DNS 방식)은 유효한 DS 레코드를 갖고 있으며 모든 것이 정상입니다. 진짜. DNSSEC 분석기도 설정에 만족합니다.

그런데 다음과 같은 로그 메시지가 나타났습니다.

"auto-dnssec" 옵션은 더 이상 사용되지 않으며 BIND 9.19에서 제거됩니다. dnssec-policy로 마이그레이션하세요.

9.19 업데이트가 언제 푸시될지는 모르겠습니다. 하지만 저는 그것을 준비하려고 노력했고 다음 구성을 교체했습니다(영역 블록에서).

auto-dnssec maintain;
inline-signing yes;

그리고:

dnssec-policy sk_policy;
inline-signing yes;

정책 자체는 최상위 구성에서 정의됩니다.

dnssec-policy "sk_policy" {
    keys {
        ksk key-directory lifetime unlimited algorithm ecdsa256;
        zsk key-directory lifetime unlimited algorithm ecdsa256;
        // zsk rollover postponed for later
        // zsk key-directory lifetime P90D algorithm ecdsa256;
    };  
    nsec3param iterations 0 optout no salt-length 0;
    parent-ds-ttl PT1H;
};

그러나 서버는 10분마다 오류를 기록합니다.

reconfiguring zone keys
zone_rekey:dns_dnssec_keymgr failed: error occurred writing key to disk

이 오류 메시지를 검색했을 때 Google에서는 아무것도 찾지 못했습니다.

키 디렉토리의 모든 것을 허용하기 위해 파일 권한을 사용해 보았고 SELinux를 일시적으로 비활성화하려고 시도했지만(정확히 말하면 엄격함 -> 느슨함) 경고가 생성되지 않았습니다. 지금까지는 아무것도 도움이 되지 않습니다. 서버가 어떤 파일을 쓰려고 하는지, 어디에, 무슨 오류인지 알 수 없습니다. 로그 파일 등도 삭제해 보았지만 이것은 프로덕션 머신이고 많은 실험을 할 수 없기 때문에 모든 것을 원래 상태로 복원하고 현재는 9.18 버전을 유지하고 있습니다.

"dnssec-policy"가 작동하도록 도와줄 수 있는 사람이 있나요?


업데이트 #2: - (예비) 답변으로 실험 요약을 게시했습니다. 나는 이 시행착오 실험을 중단하기 위해 여전히 좋은 정보 소스를 찾고 있습니다.

답변1

나는 같은 문제를 가지고있다:

zone_rekey:dns_dnssec_keymgr failed: error occurred writing key to disk

그냥 권한 문제인 것 같습니다.

디렉터리의 권한을 (774) /etc/bind/keys로 변경 rwxrwxr-- 하고 그 안에 있는 모든 파일을 rw-rw-r-- (664)로 변경했습니다.

  • keys디렉터리 소유자는 루트입니다.
  • keys디렉터리 그룹이 바인딩되었습니다.

그 후에는 괜찮습니다. 다음 메시지가 표시되고 일부 파일의 소유자가 변경되었습니다.

2023-02-05T17:27:16+0100 fake_servername 이름 [1234441]        .....(이전에도 관련 소식이 있었습니다)
2023-02-05T17:27:16+0100 fake_servernamenamed[1234441]: 일반: 경고: /etc/bind/keys/fake_domainname.de.+015+60580.private 파일에 대한 권한이 이번 기준으로 0664에서 0600으로 변경되었습니다. 작전 결과.

답변2

나는 성공했다고 생각합니다(아직 테스트하지 않은 키 롤오버를 제외하고). 나는 요약을 쓰기로 결정했습니다.

BIND의 DNSSEC 키는 공개 부분, 비밀 복사본, 키 상태 파일의 3개 파일로 구성됩니다. 확장자는 .key, .private..state

를 사용하면 auto-dnssec maintainDNSSEC 키 파일을 읽기 전용으로 만들 수 있습니다. 그러나 로 마이그레이션할 때 dnssec-policyBIND 서버는 상태뿐 아니라 중요한 파일과 세 파일 모두를 수정합니다. (이유를 모르겠습니다. 상태 파일이 있으면 "실제" 키 파일을 편집할 필요가 없어진다고 생각합니다.)

분명한 요구 사항은 중요한 파일에 대한 권한을 조정하는 것입니다.

나는 root:named디렉토리, 파일에 대해 소유자:그룹 및 모드를 사용했습니다. 분명히 이것이 유일한 가능한 설정은 아닙니다. 중요한 것은 서버가 파일을 수정할 수 있어야 한다는 것입니다. 개인 키는 보호되어야 합니다. "le luxe fou"에 대한 답변도 참조하세요. 그의 시스템에서 사용자는 이라고 불립니다.07700660namedbind

처음에 내가 겪었던 문제는 SELinux에 있었습니다. 이 섹션은 Fedora에만 해당될 수 있으며 SELinux 정책은 향후 변경될 수 있습니다. 처음에는 AVC 거부 메시지를 받지 못했기 때문에(어디서 실수했을 수도 있습니다), 이것이 바로 이 질문을 게시한 이유입니다.

요컨대, 나는 /etc/named/keys디렉토리에 열쇠를 가지고 있습니다. SELinux는 이 위치의 파일을 쓰기 금지 구성으로 처리합니다. 그래서 /var/named/keys서버가 파일을 수정할 수 있는 곳에 두었습니다 . 이것이 열쇠의 올바른 위치인지 확실하지 않습니다. 하지만 audit2allow꼭 필요한 경우가 아니면 로컬 정책을 추가하고 싶지 않습니다 .

최종 참고 사항: 서버 로그:

이 작업의 결과로 /var/named/keys/KXXX.+YYY+ZZZZ.private 파일의 권한이 0660에서 0600으로 변경되었습니다.

하지만 그렇지 않습니다. 권한은 변경되지 않았습니다. named( ) 사용자가 bind키 파일의 의도된 소유자일 수 있습니다. 이에 대한 문서를 찾지 못했습니다.

관련 정보