본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, 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 SUCCESS" 결과
> 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.
잘못된 실패:IETF.org에 대한 비 DANE 지원 DNS 서버 "FUS" 결과
> daneverify ietf.org
BOGUS MX record found for ietf.org
DANE FAILED for ietf.org
DANE verification completed.
유효한 실패: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에 기본 정책에서 대상 제어 "DANE"가 활성화된 경우, 전달 실패 위험이 있습니다. RAT에 나열된 도메인과 같은 내부 소유 도메인이 RELAY 및 ACCEPT 메일 플로우 정책을 모두 통과하고 도메인에 대한 SMTP 경로가 있는지 확인합니다.
"Destination Host"가 "USEDNS"로 구성되지 않은 경우 DANE는 SMTP 경로에서 실패합니다.
DANE Opportunistic은 바운스 프로파일 타이머가 만료될 때까지 전달 대기열에 메시지를 포함하는 메시지를 전달하지 않습니다.
왜?SMTP 경로가 실제 대상을 수정하기 때문에 DANE 확인을 건너뛰고 DNS를 제대로 사용하지 못할 수 있습니다.
해결책:SMTP 경로가 포함된 도메인에 대해 DANE 확인을 명시적으로 비활성화하려면 대상 제어 프로필 생성
DANE 확인 중에 다음 조회가 수행됩니다.
각 확인은 후속 확인을 수행하기 위해 콘텐츠를 제공합니다.
보안:
안전하지 않음:
가짜:
NXDOMAIN
위의 레코드 검사와 확인 결과를 조합하여 "DANE Success(DANE 성공)"를 결정합니다. | DANE 실패 | DANE를 TLS로 대체합니다."
예:example.com의 MX 레코드로 전송된 RRSIG가 없는 경우, example.com에 DNSKEY 레코드가 있는지 확인하기 위해 상위 영역(.com)이 확인되며, 이는 example.com이 해당 레코드에 서명해야 함을 나타냅니다.이 검증은 루트 영역(.) 키 확인을 통해 신뢰 종결의 체인을 계속 이어갑니다.에 도달하면 루트 영역의 키가 ESA가 기대하는 것과 일치합니다(RFC5011에 따라 자동 업데이트되는 ESA의 하드 코드된 값).
DANE 필수
DANE 필수
참고:DANE 기회주의적은 TLS가 선호하는 방식으로 동작하지 않습니다.아래 차트의 ACTION 부분(DANE FAIL 결과)은 Mandatory(필수) 또는 Opportunistic(기회주의적)에 대해 제공되지 않습니다.타이머가 만료될 때까지 메시지는 배달 대기열에 남아 있다가 전달이 종료됩니다.
DANE 기회주의적
DANE 기회주의적
다음 그림은 여러 어플라이언스 환경에서 DANE를 활성화할 때의 워크플로를 보여줍니다.
환경에 ESA 어플라이언스의 여러 레이어가 있는 경우, 하나는 스캐닝용, 다른 하나는 메시지 전달용 DANE는 외부 대상에 직접 연결하는 어플라이언스에만 구성되도록 합니다.
다중 ESA 설계.전달 ESA에 구성된 DANE
ESA에 여러 개의 DNS 리졸버가 구성되어 있고 DNSSEC를 지원하는 몇 개는 DNSSEC를 지원하지 않는 경우, Cisco에서는 DNSSEC 지원 리졸버를 높은 우선순위(낮은 숫자 값)로 구성하여 불일치를 방지하는 것이 좋습니다.
이렇게 하면 비 DNSSEC 지원 확인자가 DANE를 지원하는 대상 도메인을 'Fauthe'로 분류하지 않습니다.
DNS 확인자에 연결할 수 없으면 DNS가 보조 DNS 서버로 돌아갑니다.보조 DNS 서버에서 DNSSEC을 구성하지 않으면 DANE 지원 대상 도메인에 대한 MX 레코드가 'Boxing'으로 분류됩니다. 이는 DANE 설정(기회주의적 또는 필수)에 관계없이 메시지 전달에 영향을 미칩니다. 보조 DNSSEC 지원 해결 프로그램을 사용하는 것이 좋습니다.
배달 상태
WebUI "Delivery Status" 보고서에서 목적지 도메인의 의도하지 않은 빌드를 모니터링합니다(잠재적으로 DANE 오류).
서비스를 활성화하기 전에 이 작업을 수행한 다음 며칠 동안 주기적으로 수행하여 지속적인 성공을 보장합니다.
ESA WebUI > Monitor > Delivery Status > "Active Recipients" 열을 선택합니다.
메일 로그
로그 수준에 대한 정보 수준의 기본 메일 로그
메일 로그는 DANE가 성공적으로 협상한 메시지에 대해 매우 미묘한 표시기를 보여줍니다.
최종 TLS 협상 아웃바운드는 로그 항목 끝에 도메인을 포함하도록 약간 수정된 출력을 포함합니다.
로그 항목에는 "TLS success protocol" 다음에 TLS 버전/암호 "for domain.com"이 포함됩니다.
마법은 "for"에 있습니다.
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
메일 로그 디버그
디버그 레벨의 사용자 지정 메일 로그는 전체 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)