'게시'에 해당되는 글 1건

  1. 2007.06.22 DNS 게시 - 1. DNS Advertiser 및 Resolver의 이해
DNS! 인터넷에서 여러가지 서비스를 제공하기 위해 반드시 사용해야 하는 핵심적인 구성요소입니다. 방화벽이 있고 그 안에 DNS 서버가 위치하는 경우에는 DNS 서버를 게시(Publishing)해야 합니다.

ISAServer.org에서는 DNS 게시에 관련된 자료를 연재하고 있습니다. 필요한 부분만 정리해서 올려 보겠습니다.

목차

I. DNS Advertiser 및 Resolver의 이해



1. DNS Advertiser(공개된 DNS 서버)

DNS 서버를 게시한다는 의미는 ISA 방화벽 뒷단에 위치한 내부 네트워크에 DNS 서버가 놓여 있다는 의미입니다. DNS 서버를 게시하는 목적은 방화벽의 보호 아래 외부 사용자(주로 인터넷)가 DNS 정보를 조회(이름풀이)할 수 있는 서비스를 제공하는 것입니다. 물론 DNS 서버는 자신이 등록한 도메인에 대한 정보만을 이름풀이하여 사용자에게 반환합니다.

외부 사용자가 게시된 내부의 DNS 서버로 패킷이 어떻게 전달되는지 살펴 봅니다. 먼저 외부 사용자는 ISA 방화벽의 외부 인터페이스인 공인 IP로 이름풀이를 요청합니다. ISA 방화벽은 게시 규칙을 검토하여 이를 바탕으로 내부의 DNS 서버로 해당 정보를 전달합니다. 이제 DNS 서버는 자신에게 등록된 도메인의 정보를 조회하여 ISA 방화벽으로 반환합니다. 마지막으로 ISA 방화벽은 이 정보를 외부 사용자에게 반환합니다.

그리고, DNS 서버의 역할 중에 하나가 바로 DNS 정보를 다른 DNS 서버로 부터 조회하여 이 값을 사용자에게 반환할 수 있다는 것입니다. DNS 서버는 자신이 등록한 DNS 정보에 대해서만 책임(Authoritative)이 있으며, 이 값을 정확히 반환하게 되어 있습니다. 하지만, 등록하지 않은 다른 도메인 이름에 대한 조회 요청이 들어오면 이 DNS 서버는 사용자를 대신하여 다른 DNS 서버로 조회 요청을 하여 해당 정보를 가져와 사용자에게 반환합니다. 즉, DNS 서버의 도메인 등록정보는 일반적으로 다른 DNS 서버에서 조회가 가능하고, 사용자 또는 DNS 서버를 관리하는 사람도 조회가 가능한 '도메인 정보를 공개한 DNS 서버'로 관리하게 됩니다. 이 서버를 영어로 DNS Advertiser라고 합니다.

따라서, 이러한 공개된 서버에서는 회사 네트워크의 중요한 비밀이 담겨 있는 정보를 포함해서는 절대로 안됩니다. 만약 포함하는 경우에는 방화벽에서 DNS 조회(이름풀이)에 관련된 포트를 제한해야 할 수도 있습니다.

2. DNS Resolver

관리자의 관리 하에 도메인 이름에 대한 액세스를 공개적으로 허용하도록 DNS Advertiser를 사용하는 경우에는 내부 사용자의 이름풀이 요청은 ISA 방화벽을 통해 아웃바운드 DNS 액세스로 연결합니다. DNS에서 아웃바운드 액세스를 허용할 때 내부 클라이언트와 서버들은 인터넷 상의 도메인 이름을 이름풀이하여 실제로 액세스할 수 있게 됩니다. 예를 들어, 내부 사용자가 웹 브라우저를 통해 http://moonslab.com을 입력하면, moonslab.com 도메인의 정보를 가지고 있고 이를 요청한 클라이언트에게 이름풀이를 제공해야 하는 DNS 서버가 반드시 존재해야 합니다. 이러한 DNS 서버는 인터넷 상의 이름풀이 요청을 처리 또는 내부 네트워크 도메인의 이름풀이도 책임져야 할 수도 있습니다. 이러한 서버를 바로 DNS Resolver라고 하며, 주 목적은 인터넷 상의(외부) 도메인의 이름풀이를 제공하는 것입니다.

명심해야 할 중요한 사항은 바로 이것입니다. 내부 사용자는 DNS advertiser를 사용하여 이름풀이를 사용할 수 없고, 외부 사용자들은 이름풀이를 위해 내부 DNS Resolver를 사용해서는 안된다는 것입니다. 물론 예외 사항은 VPN 네트워크에 관련된 경우입니다.

3. DNS의 보안 강화

DNS 서버를 게시할 때에는 가급적 DNS Advertiser로 게시해야 합니다. 즉, 인터넷 사용자가 내부의 게시된 서버로 이름풀이 요청을 하여 정보를 가져갈 수 있어야 합니다. 만약, 이렇게 하지 않는 경우에는 어느 누구도(심지어 내부 사용자도) 도메인 정보를 알 수 없습니다.

DNS 서버는 결함 허용 등의 목적을 달성하기 위해 적어도 두 대의 DNS 서버를 두어야 하며, 가급적 네트워크가 다른 즉, 다른 서브넷에 위치하도록 하는 것이 좋습니다.

그리고, 만약 DNS 서버 컴퓨터에 여러 개의 IP 주소가 할당되어 있고, 특히 내부 네트워크에서 DNS 쿼리를 공유하여 문제가 발생하는 경우라면 DNS 요청을 처리할 인터페이스(NIC)를 강제로 지정할 수 있습니다.
 
사용자 삽입 이미지

전달자 탭에서는 전달자 사용을 체크를 해제해야 합니다. 앞에서 설명했다시피, DNS advertiser는 DNS resolver 역할을 수행하도록 하길 원하지 않기 때문입니다. 특히, 전달자를 허용할 경우에는 nslookup 명령어를 통해 DNS 서버의 도메인에 해당하는 모든 정보를 나열하여 볼 수 있으므로 보안상 막아야 합니다.
사용자 삽입 이미지

고급 탭에서는 재귀를 사용 안함오염에 대하여 캐시 보안을 선택하는 것이 좋습니다. 
사용자 삽입 이미지

루트 참고 탭에서는 인터넷 상에서 운영 중인 루트 서버의 목록을 보여줍니다. 이러한 루트서버는 전세계적으로 13대가 운영되고 있으며, 그 외에는 캐시 서버로 국내에서 운영중입니다. 루트 서버는 DNS 서버가 재귀 호출을 할 때 사용됩니다. 하지만, 우리는 DNS advertiser가 재귀로 사용할 것이 아니므로 루트 서버의 목록을 모두 삭제합니다. 서버를 선택하고 제거 버튼을 눌러 모두 삭제합니다. 아래 그림은  기본적으로 등록된 상태 화면입니다.
사용자 삽입 이미지

지금까지 DNS Advertiser와 DNS Resolver에 대해 간략히 설명했습니다. DNS advertiser는 자신이 등록한 도메인 정보에 대한 이름풀이 응답만 제공해 주고, 그 도메인 정보에 대해서는 권한(authoritative)을 갑니다. DNS 서버를 게시하는 경우에는 대부분 DNS advertiser로 구성하게 됩니다. DNS Resolver는 인터넷 상의 호스트에 대한 이름풀이를 제공해 줍니다.

다음 편에서는 DNS 아웃바운드 액세스에 대해 점더 자세히 알아 봅니다.


reTweet
Posted by 문스랩닷컴
blog comments powered by Disqus

    댓글을 달아 주세요



    Web Analytics Blogs Directory