본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 ESA 아웃바운드 메일 흐름을 위한 DANE 구현에 대해 설명합니다.
ESA 개념 및 구성에 대한 일반적인 지식
DANE을 구현하기 위한 요구 사항:
DANE은 아웃바운드 메일 검증을 위해 ESA 12에 도입되었습니다.
DANE(Named Entities)의 DNS 기반 인증.
DANE을 구현하려면 dnssec/DANE 쿼리를 수행하는 DNS 기능이 필요합니다.
ESA DNS DANE 기능을 테스트하려면 ESA CLI 로그인을 통해 간단한 테스트를 수행할 수 있습니다.
CLI 명령 'daneverify'는 도메인이 DANE 확인을 통과할 수 있는지 확인하기 위해 복잡한 쿼리를 수행합니다.
동일한 명령을 정상 작동이 확인된 도메인과 함께 사용하여 dnssec 쿼리를 해결하는 ESA 기능을 확인할 수 있습니다.
'ietf.org'는 세계적으로 알려진 소스입니다. cli 명령 'daneverify'를 수행하면 DNS 확인자가 DANE을 사용할 수 있는지 여부를 확인합니다.
유효한 통과: ietf.org에 대한 DANE 가능 DNS 서버 "DANE 성공" 결과
> daneverify ietf.org
SECURE MX record(mail.ietf.org) found for ietf.org
SECURE A record (4.31.198.44) found for MX(mail.ietf.org) in ietf.org
Connecting to 4.31.198.44 on port 25.
Connected to 4.31.198.44 from interface 216.71.133.161.
SECURE TLSA record found for MX(mail.ietf.org) in ietf.org
Checking TLS connection.
TLS connection established: protocol TLSv1.2, cipher ECDHE-RSA-AES256-GCM-SHA384.
Certificate verification successful
TLS connection succeeded ietf.org.
DANE SUCCESS for ietf.org
DANE verification completed.
INVALID FAIL: ietf.org에 대한 DANE 지원 DNS 서버 "BOGUS"가 아닙니다.
> daneverify ietf.org
BOGUS MX record found for ietf.org
DANE FAILED for ietf.org
DANE verification completed.
VALID FAIL(유효 실패): daneverify cisco.com > cisco는 DANE을 구현하지 않았습니다. 이는 dnssec 지원 확인자에서 예상되는 결과입니다.
> daneverify cisco.com
INSECURE MX record(alln-mx-01.cisco.com) found for cisco.com
INSECURE MX record(alln-mx-01.cisco.com) found. The command will still proceed.
INSECURE A record (173.37.147.230) found for MX(alln-mx-01.cisco.com) in cisco.com
Trying next MX record in cisco.com
INSECURE MX record(rcdn-mx-01.cisco.com) found for cisco.com
INSECURE MX record(rcdn-mx-01.cisco.com) found. The command will still proceed.
INSECURE A record (72.163.7.166) found for MX(rcdn-mx-01.cisco.com) in cisco.com
Trying next MX record in cisco.com
INSECURE MX record(aer-mx-01.cisco.com) found for cisco.com
INSECURE MX record(aer-mx-01.cisco.com) found. The command will still proceed.
INSECURE A record (173.38.212.150) found for MX(aer-mx-01.cisco.com) in cisco.com
DANE FAILED for cisco.com
DANE verification completed.
위의 테스트가 "VALID"인 경우:
"RELAY" 작업이 구성된 발신자 그룹/메일 흐름 정책이 DANE 확인을 수행합니다.
"ACCEPT" 작업이 구성된 발신자 그룹/메일 흐름 정책은 DANE 확인을 사용하지 않습니다.
주의: ESA에서 Destination Controls(대상 제어) "DANE"이 Default Policy(기본 정책)에서 활성화된 경우, 전달 실패 위험이 있습니다. RAT에 나열된 것과 같은 내부 소유 도메인의 경우 RELAY 및 ACCEPT 메일 플로우 정책을 모두 통과하며, 도메인에 대한 SMTP 경로가 있어야 합니다.
"Destination Host(대상 호스트)"가 "USEDNS"로 구성되지 않은 경우 DANE은 SMTP 경로에서 실패합니다.
DANE Opportunistic은 바운스 프로파일 타이머가 만료될 때까지 전달 대기열에 포함된 메시지를 전달하지 않습니다.
왜 그럴까요? SMTP 경로가 실제 대상을 수정하여 DNS를 제대로 사용하지 못할 수 있으므로 DANE 확인을 건너뜁니다.
해결 방법: SMTP 경로를 포함하는 도메인에 대해 DANE 확인을 명시적으로 비활성화하는 대상 제어 프로필 만들기
DANE 확인 중에 다음 조회가 수행됩니다.
각 검증은 후속 검증을 수행하기 위해 콘텐츠를 공급합니다.
보안:
안전하지 않음:
가짜:
NXDOMAIN
위의 기록 확인과 확인 결과를 조합하여 "DANE 성공"을 결정합니다. | DANE 실패 | DANE을 TLS로 대체하십시오."
예: example.com의 MX 레코드에 대해 전송된 RRSIG가 없는 경우, 상위 영역(.com)이 example.com에 DNSKEY 레코드가 있는지 여부를 확인합니다. 이는 example.com이 해당 레코드에 서명해야 함을 나타냅니다. 이 검증은 루트 영역(.) 키 검증에 도달하여 신뢰 체인이 완성되도록 계속되며, 루트 영역의 키는 ESA가 기대하는 값과 일치합니다(ESA에서 하드 코딩된 값은 RFC5011을 기반으로 자동 업데이트됩니다).
DANE 필수
참고: DANE OPPORTUNISTIC은 TLS 기본 설정처럼 작동하지 않습니다. 아래 차트의 ACTION 부분은 DANE FAIL이며, 필수 또는 기회주의에 대해 제공되지 않습니다. 타이머가 만료되고 전송이 종료될 때까지 메시지는 배달 대기열에 남아 있습니다.
데인 기회주의
다음 그림은 다중 어플라이언스 환경에서 DANE을 활성화할 때의 워크플로를 보여줍니다.
환경에 ESA 어플라이언스의 여러 레이어가 있는 경우, 하나는 스캔을 위한 레이어이고 다른 하나는 메시지 전달을 위한 레이어입니다. DANE이 외부 대상에 직접 연결되는 어플라이언스에만 구성되었는지 확인합니다.
ESA에 여러 DNS 확인자가 구성되어 있는 경우, DNSSEC를 지원하는 일부 DNSSEC를 지원하지 않는 일부 DNSSEC가 있으면, 우선 순위가 더 높은(낮은 숫자 값) DNSSEC 지원 확인자를 구성하여 불일치를 방지하는 것이 좋습니다.
이렇게 하면 비 DNSSEC 가능 확인자가 DANE을 지원하는 대상 도메인을 'Bogus'로 분류하지 않습니다.
DNS 확인자에 연결할 수 없으면 DNS는 보조 DNS 서버로 폴백됩니다. 보조 DNS 서버에서 DNSSEC를 구성하지 않으면 DANE 지원 대상 도메인에 대한 MX 레코드가 'Bogus'로 분류됩니다. 이는 DANE 설정(Opportunistic 또는 Mandatory)에 관계없이 메시지 전달에 영향을 줍니다. 보조 DNSSEC 지원 확인자를 사용하는 것이 좋습니다.
배달 상태
WebUI "전달 상태" 보고서에서 DANE 오류로 인해 의도하지 않은 대상 도메인 빌드업을 모니터링합니다.
서비스를 활성화하기 전에 이 작업을 수행한 다음, 며칠 동안 주기적으로 수행하여 지속적인 성공을 보장하십시오.
ESA WebUI > Monitor > Delivery Status > "Active Recipients" 열을 선택합니다.
메일 로그
로그 레벨에 대한 정보 수준의 기본 메일 로그
메일 로그는 DANE이 성공적으로 메시지를 협상했다는 매우 미묘한 지표를 보여줍니다.
최종 TLS 협상 아웃바운드는 로그 항목의 끝에 도메인을 포함하도록 약간 수정된 출력을 포함합니다.
로그 항목에는 "TLS success protocol" 다음에 TLS version/cipher "for domain.com"이 포함됩니다.
마법은 "용"에 있습니다.
myesa.local> grep "TLS success.*for" mail_logs
Tue Feb 5 13:20:03 2019 Info: DCID 2322371 TLS success protocol TLSv1.2 cipher DHE-RSA-AES256-GCM-SHA384 for karakun.com
메일 로그 디버그
Debug Level(디버그 레벨)의 Custom Mail Logs(맞춤형 메일 로그)에는 전체 DANE 및 dnssec 조회, 협상 필요, 검사 통과/실패 부분 및 성공 표시기가 표시됩니다.
참고: 디버그 레벨 로깅을 위해 구성된 메일 로그는 시스템 로드 및 컨피그레이션에 따라 ESA에서 과도한 리소스를 소비할 수 있습니다.
디버그 레벨 로깅을 위해 구성된 메일 로그는 시스템 로드 및 컨피그레이션에 따라 ESA에서 과도한 리소스를 소비할 수 있습니다.
일반적으로 메일 로그는 오랜 기간 동안 디버그 수준으로 유지되지 않습니다.
디버그 레벨 로그는 단기간에 엄청난 양의 메일 로그를 생성할 수 있습니다.
자주 사용하는 방법은 mail_logs_d에 대한 추가 로그 서브스크립션을 생성하고 DEBUG에 대한 로깅을 설정하는 것입니다.
이 작업은 기존 mail_logs에 대한 영향을 방지하고 서브스크립션에 대해 유지 관리되는 로그 볼륨을 조작할 수 있게 합니다.
생성된 로그의 볼륨을 제어하려면 유지할 파일의 수를 2-4개 파일과 같이 더 작은 수로 제한합니다.
모니터링, 평가 기간 또는 문제 해결이 완료되면 로그를 비활성화합니다.
디버그 수준으로 설정된 메일 로그는 매우 자세한 DANE 출력을 표시합니다.
Success sample daneverify
daneverify ietf.org
SECURE MX record(mail.ietf.org) found for ietf.org
SECURE A record (4.31.198.44) found for MX(mail.ietf.org) in ietf.org
Connecting to 4.31.198.44 on port 25.
Connected to 4.31.198.44 from interface 194.191.40.74.
SECURE TLSA record found for MX(mail.ietf.org) in ietf.org
Checking TLS connection.
TLS connection established: protocol TLSv1.2, cipher DHE-RSA-AES256-GCM-SHA384.
Certificate verification successful
TLS connection succeeded ietf.org.
DANE SUCCESS for ietf.org
DANE verification completed.
debug level mail logs during the above 'daneverify' exeuction.
Sample output from the execution of the daneverify ietf.org will populate the dns lookups within the mail logs
Mon Feb 4 20:08:47 2019 Debug: DNS query: Q('ietf.org', 'MX')
Mon Feb 4 20:08:47 2019 Debug: DNS query: QN('ietf.org', 'MX', 'recursive_nameserver0.parent')
Mon Feb 4 20:08:47 2019 Debug: DNS query: QIP ('ietf.org','MX','194.191.40.84',60)
Mon Feb 4 20:08:47 2019 Debug: DNS query: Q ('ietf.org', 'MX', '194.191.40.84')
Mon Feb 4 20:08:48 2019 Debug: DNSSEC Response data([(0, 'mail.ietf.org.')], secure, 0, 1800)
Mon Feb 4 20:08:48 2019 Debug: DNS encache (ietf.org, MX, [(8496573380345476L, 0, 'SECURE', (0, 'mail.ietf.org'))])
Mon Feb 4 20:08:48 2019 Debug: DNS query: Q('mail.ietf.org', 'A')
Mon Feb 4 20:08:48 2019 Debug: DNS query: QN('mail.ietf.org', 'A', 'recursive_nameserver0.parent')
Mon Feb 4 20:08:48 2019 Debug: DNS query: QIP ('mail.ietf.org','A','194.191.40.84',60)
Mon Feb 4 20:08:48 2019 Debug: DNS query: Q ('mail.ietf.org', 'A', '194.191.40.84')
Mon Feb 4 20:08:48 2019 Debug: DNSSEC Response data(['4.31.198.44'], secure, 0, 1800)
Mon Feb 4 20:08:48 2019 Debug: DNS encache (mail.ietf.org, A, [(8496573380345476L, 0, 'SECURE', '4.31.198.44')])
Mon Feb 4 20:08:48 2019 Debug: DNS query: Q('mail.ietf.org', 'AAAA')
Mon Feb 4 20:08:48 2019 Debug: DNS query: QN('mail.ietf.org', 'AAAA', 'recursive_nameserver0.parent')
Mon Feb 4 20:08:48 2019 Debug: DNS query: QIP ('mail.ietf.org','AAAA','194.191.40.84',60)
Mon Feb 4 20:08:48 2019 Debug: DNS query: Q ('mail.ietf.org', 'AAAA', '194.191.40.84')
Mon Feb 4 20:08:48 2019 Warning: Received an invalid DNSSEC Response: DNSSEC_Error('mail.ietf.org', 'AAAA', '194.191.40.84', 'DNSSEC Error for hostname mail.ietf.org (AAAA) while asking 194.191.40.84. Error was: Unsupported qtype') of qtype AAAA looking up mail.ietf.org
Mon Feb 4 20:08:48 2019 Debug: DNS query: Q('mail.ietf.org', 'CNAME')
Mon Feb 4 20:08:48 2019 Debug: DNS query: QN('mail.ietf.org', 'CNAME', 'recursive_nameserver0.parent')
Mon Feb 4 20:08:48 2019 Debug: DNS query: QIP ('mail.ietf.org','CNAME','194.191.40.83',60)
Mon Feb 4 20:08:48 2019 Debug: DNS query: Q ('mail.ietf.org', 'CNAME', '194.191.40.83')
Mon Feb 4 20:08:48 2019 Debug: DNSSEC Response data([], , 0, 1800)
Mon Feb 4 20:08:48 2019 Debug: Received NODATA for domain mail.ietf.org type CNAME
Mon Feb 4 20:08:48 2019 Debug: No CNAME record(NoError) found for domain(mail.ietf.org)
Mon Feb 4 20:08:49 2019 Debug: DNS query: Q('_25._tcp.mail.ietf.org', 'TLSA')
Mon Feb 4 20:08:49 2019 Debug: DNS query: QN('_25._tcp.mail.ietf.org', 'TLSA', 'recursive_nameserver0.parent')
Mon Feb 4 20:08:49 2019 Debug: DNS query: QIP ('_25._tcp.mail.ietf.org','TLSA','194.191.40.83',60)
Mon Feb 4 20:08:49 2019 Debug: DNS query: Q ('_25._tcp.mail.ietf.org', 'TLSA', '194.191.40.83')
Mon Feb 4 20:08:49 2019 Debug: DNSSEC Response data(['0301010c72ac70b745ac19998811b131d662c9ac69dbdbe7cb23e5b514b56664c5d3d6'], secure, 0, 1800)
Mon Feb 4 20:08:49 2019 Debug: DNS encache (_25._tcp.mail.ietf.org, TLSA, [(8496577312207991L, 0, 'SECURE', '0301010c72ac70b745ac19998811b131d662c9ac69dbdbe7cb23e5b514b56664c5d3d6')])
fail sample daneverify
[]> thinkbeyond.ch
INSECURE MX record(thinkbeyond-ch.mail.protection.outlook.com) found for thinkbeyond.ch
INSECURE MX record(thinkbeyond-ch.mail.protection.outlook.com) found. The command will still proceed.
INSECURE A record (104.47.9.36) found for MX(thinkbeyond-ch.mail.protection.outlook.com) in thinkbeyond.ch
Trying next A record (104.47.10.36) for MX(thinkbeyond-ch.mail.protection.outlook.com) in thinkbeyond.ch
INSECURE A record (104.47.10.36) found for MX(thinkbeyond-ch.mail.protection.outlook.com) in thinkbeyond.ch
DANE FAILED for thinkbeyond.ch
DANE verification completed.
mail_logs
Sample output from the execution of he danverify thinkbeyond.ch will populate the dns lookups within the mail logs
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q('thinkbeyond.ch', 'MX')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QN('thinkbeyond.ch', 'MX', 'recursive_nameserver0.parent')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QIP ('thinkbeyond.ch','MX','194.191.40.84',60)
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q ('thinkbeyond.ch', 'MX', '194.191.40.84')
Mon Feb 4 20:15:52 2019 Debug: DNSSEC Response data([(10, 'thinkbeyond-ch.mail.protection.outlook.com.')], insecure, 0, 3600)
Mon Feb 4 20:15:52 2019 Debug: DNS encache (thinkbeyond.ch, MX, [(8502120882844461L, 0, 'INSECURE', (10, 'thinkbeyond-ch.mail.protection.outlook.com'))])
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q('thinkbeyond-ch.mail.protection.outlook.com', 'A')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QN('thinkbeyond-ch.mail.protection.outlook.com', 'A', 'recursive_nameserver0.parent')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QIP ('thinkbeyond-ch.mail.protection.outlook.com','A','194.191.40.83',60)
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q ('thinkbeyond-ch.mail.protection.outlook.com', 'A', '194.191.40.83')
Mon Feb 4 20:15:52 2019 Debug: DNSSEC Response data(['104.47.9.36', '104.47.10.36'], insecure, 0, 10)
Mon Feb 4 20:15:52 2019 Debug: DNS encache (thinkbeyond-ch.mail.protection.outlook.com, A, [(8497631700844461L, 0, 'INSECURE', '104.47.9.36'), (8497631700844461L, 0, 'INSECURE', '104.47.10.36')])
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q('thinkbeyond-ch.mail.protection.outlook.com', 'AAAA')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QN('thinkbeyond-ch.mail.protection.outlook.com', 'AAAA', 'recursive_nameserver0.parent')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QIP ('thinkbeyond-ch.mail.protection.outlook.com','AAAA','194.191.40.84',60)
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q ('thinkbeyond-ch.mail.protection.outlook.com', 'AAAA', '194.191.40.84')
Mon Feb 4 20:15:52 2019 Debug: DNSSEC Response data([], , 0, 32768)
Mon Feb 4 20:15:52 2019 Debug: Received NODATA for domain thinkbeyond-ch.mail.protection.outlook.com type AAAA
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q('thinkbeyond-ch.mail.protection.outlook.com', 'CNAME')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QN('thinkbeyond-ch.mail.protection.outlook.com', 'CNAME', 'recursive_nameserver0.parent')
Mon Feb 4 20:15:52 2019 Debug: DNS query: QIP ('thinkbeyond-ch.mail.protection.outlook.com','CNAME','194.191.40.83',60)
Mon Feb 4 20:15:52 2019 Debug: DNS query: Q ('thinkbeyond-ch.mail.protection.outlook.com', 'CNAME', '194.191.40.83')
Mon Feb 4 20:15:53 2019 Warning: Received an invalid DNS Response: SERVER FAILED to IP 194.191.40.83 looking up thinkbeyond-ch.mail.protection.outlook.com
Mon Feb 4 20:15:53 2019 Debug: DNS query: QIP ('thinkbeyond-ch.mail.protection.outlook.com','CNAME','194.191.40.84',60)
Mon Feb 4 20:15:53 2019 Debug: DNS query: Q ('thinkbeyond-ch.mail.protection.outlook.com', 'CNAME', '194.191.40.84')
Mon Feb 4 20:15:54 2019 Warning: Received an invalid DNS Response: SERVER FAILED to IP 194.191.40.84 looking up thinkbeyond-ch.mail.protection.outlook.com
Mon Feb 4 20:15:54 2019 Debug: No CNAME record() found for domain(thinkbeyond-ch.mail.protection.outlook.com)
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
26-Aug-2019 |
최초 릴리스 |