소개
이 문서에서는 DNScrypt 기능을 차단하는 ASA 방화벽의 문제를 해결하는 방법에 대해 설명합니다.
개요
Cisco ASA 방화벽은 Umbrella Virtual Appliance에서 제공하는 DNScrypt 기능을 차단할 수 있습니다. 이렇게 하면 Umbrella Dashboard 경고가 표시됩니다.

이러한 오류 메시지는 ASA 방화벽 로그에서도 확인할 수 있습니다.
Dropped UDP DNS request from inside:192.168.1.1/53904 to outside-fiber:208.67.220.220/53; label length 71 bytes exceeds protocol limit of 63 bytes
DNSCrypt 암호화는 DNS 쿼리의 내용을 보호하도록 설계되었으므로 방화벽에서 패킷 검사를 수행하지 못하도록 차단합니다.
원인
이러한 오류로 인해 사용자가 DNS 확인에 영향을 주지 않아야 합니다.
가상 어플라이언스는 DNScrypt의 가용성을 확인하기 위해 테스트 쿼리를 전송하며, 이는 차단된 테스트 쿼리입니다. 그러나 이러한 오류 메시지는 Virtual Appliance가 회사의 DNS 트래픽을 암호화하여 추가 보안을 추가하지 않고 있음을 나타냅니다.
해결
가상 어플라이언스와 Umbrella의 DNS 리졸버 간 트래픽에 대해 DNS 패킷 검사를 비활성화하는 것이 좋습니다. 이렇게 하면 ASA에서 로깅 및 프로토콜 검사가 비활성화되지만 DNS 암호화를 허용하여 보안이 향상됩니다.
참고: 이러한 명령은 지침으로만 제공되며 프로덕션 환경을 변경하기 전에 Cisco 전문가와 상담하는 것이 좋습니다.
또한 ASA의 이러한 결함도 DNSCrypt에 문제가 발생할 수 있는 DNS over TCP에 영향을 줄 수 있습니다.
CSCsm90809 TCP를 통한 DNS 검사 지원
패킷 검사 예외 - IOS 명령
- 208.67.222.222 및 208.67.220.220에 대한 트래픽을 거부하는 규칙을 사용하여 'dns_inspect'라는 새 ACL을 생성합니다.
access-list dns_inspect extended deny udp host <Appliance IP> host 208.67.220.220 eq domain
access-list dns_inspect extended deny tcp host <Appliance IP> host 208.67.220.220 eq domain
access-list dns_inspect extended deny udp host <Appliance IP> host 208.67.222.222 eq domain
access-list dns_inspect extended deny tcp host <Appliance IP> host 208.67.222.222 eq domain
access-list dns_inspect extended permit udp any any eq domain
access-list dns_inspect extended permit tcp any any eq domain
For VA 2.2.0, please also add our 3rd and 4th resolver IPs which are also enabled for encryption. This will not be needed for 2.2.1+
access-list dns_inspect extended deny udp host <Appliance IP> host 208.67.220.222 eq domain
access-list dns_inspect extended deny tcp host <Appliance IP> host 208.67.220.222 eq domain
access-list dns_inspect extended deny udp host <Appliance IP> host 208.67.222.220 eq domain
access-list dns_inspect extended deny tcp host <Appliance IP> host 208.67.222.220 eq domain
- ASA에서 현재 DNS 검사 정책을 제거합니다. 예를 들면 다음과 같습니다.
ciscoasa(config)# policy-map global_policy
ciscoasa(config-pmap)# class inspection_default
ciscoasa(config-pmap-c)# no inspect dns
- #1단계에서 생성한 ACL과 일치하는 클래스 맵을 만듭니다.
class-map dns_inspect_cmap
match access-list dns_inspect
- global_policy 아래에서 policy-map을 구성합니다. #3단계에서 만든 클래스 맵과 일치해야 합니다. DNS 검사를 사용하도록 설정하십시오.
policy-map global_policy
class dns_inspect_cmap
inspect dns
- 활성화되면 다음을 실행하여 트래픽이 제외에 도달했는지 확인할 수 있습니다.
sh access-list dns_inspect
패킷 검사 예외 - ASDM 인터페이스
- 해당되는 경우 먼저 DNS 패킷 검사를 비활성화합니다.이 작업은 Configuration(컨피그레이션) > Firewall(방화벽) > Service Policy Rules(서비스 정책 규칙)에서 수행됩니다.

- 이 예에서는 DNS 검사가 Global Policy 및 'inspection_default' 클래스 아래에서 활성화됩니다. 강조 표시하고 Edit(편집)를 클릭합니다. 새 창에서 "Rule Action(규칙 작업)" 탭 아래의 'DNS' 확인란의 선택을 취소합니다.

- 이제 DNS 검사를 다시 구성할 수 있으며, 이번에는 트래픽 면제를 추가로 적용할 수 있습니다. Add(추가) > Add Service Policy Rule(서비스 정책 규칙 추가)...을 클릭합니다.

- "Global - Applies to all interfaces(전역 - 모든 인터페이스에 적용됨)"를 선택하고 Next(다음)를 클릭합니다(원하는 경우 특정 인터페이스에도 적용할 수 있음).

- 클래스 맵에 이름을 지정하고(예: 'dns-cmap') "Source and Destination IP Address (uses ACL)(소스 및 대상 IP 주소(ACL 사용))" 옵션을 선택합니다. Next(다음)를 클릭합니다..

- "Do not match" 작업을 사용하여 검사하지 않을 트래픽을 구성하는 것으로 시작합니다.
Source의 경우 'any' 옵션을 사용하여 Umbrella의 DNS 서버로 향하는 모든 트래픽을 제외할 수 있습니다. 또는 특정 가상 어플라이언스 IP 주소만 제외하도록 여기서 네트워크 개체 정의를 생성할 수 있습니다.

- Destination 필드에서...를 클릭합니다. 다음 창에서 Add(추가) > Network Object(네트워크 개체)를 클릭하고 IP 주소가 '208.67.222.222'인 개체를 만듭니다. IP 주소가 '208.67.220.220'인 개체를 만들려면 이 단계를 반복합니다.


- 두 Umbrella 네트워크 객체를 모두 Destination(대상) 필드에 추가하고 OK(확인)를 클릭합니다.

- 다음 창에서 'DNS' 상자를 선택하고 Finish(마침)를 클릭합니다.

- 이제 ASA에 'dns-cmap'에 대한 새로운 전역 정책이 표시됩니다. 이제 ASA에서 검사하는 나머지 트래픽을 구성해야 합니다. 이는 'dns-cmap'을 마우스 오른쪽 버튼으로 클릭하고 "Insert After..." 옵션을 선택하여 수행합니다. 새 규칙을 생성합니다.

- 첫 번째 창에서 Next(다음)를 클릭한 다음 "Add rule to existing traffic class(기존 트래픽 클래스에 규칙 추가):" 라디오 버튼을 선택합니다. 드롭다운에서 'dns-cmap'을 선택하고 Next(다음)를 클릭합니다.

- 작업을 'Match'로 둡니다. DNS 검사의 대상이 되는 트래픽의 Source, Destination 및 Service를 선택합니다. 예를 들어, TCP 또는 UDP DNS 서버로 이동하는 모든 클라이언트의 트래픽을 매칭합니다. Next(다음)를 클릭합니다.

- 'DNS' 옵션을 선택한 상태로 두고 Finish(마침)를 클릭합니다.
- 창 하단에서 Apply(적용)를 클릭합니다.

추가 정보
ASA 면제를 구성하는 대신 DNScrypt를 비활성화하려면 Umbrella 지원에 문의하십시오.