'퍼블리싱'에 해당되는 글 2건

  1. 2007.06.22 DNS 게시 - 1. DNS Advertiser 및 Resolver의 이해
  2. 2007.01.09 [ISA 2000] DNS 서버 퍼블리싱
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

    DNS 호스팅에 가능한 시나리오는 두 가지가 있습니다.

    시나리오 1: ISA Server에서 DNS 서버를 사용한 DNS 호스팅

    기본적으로 ISA Server에는 미리 정의된 DNS 쿼리 패킷 필터가 포함되어 있습니다.

    Name: DNS Filter
    Filter Type: Predefined
    Protocol: UDP
    Direction: Send Receive
    Local Port: All ports
    Remote Port: Fixed port, 53
    Local Computer: Default IP address on the External interface(s)
    Remote Computer: All Remote Computers

    이전 패킷 필터의 방향이 원격 포트 53에서 "Send Receive"이기 때문에 필터를 사용하면 ISA Server는 사용자 데이터그램 프로토콜(UDP) 포트 53에서 수신 대기하는 외부 DNS 서버로 DNS 쿼리를 보내고 이 쿼리에 대한 응답을 받을 수 있습니다.

    필터는 ISA Server로 들어오는 DNS 쿼리를 사용하지 못합니다. 외부 클라이언트 컴퓨터에 대해 DNS 서버를 호스트하는 경우 사용자 지정 DNS 패킷 필터를 추가해야 들어오는 DNS 쿼리를 DNS 서버에서 수신할 수 있습니다. 이런 패킷 필터의 예는 다음과 같습니다.

    Name: DNS Query
    Protocol: UDP
    Direction: Receive Send
    Local Port: Fixed port, 53
    Remote Port: All ports
    Local Computer: Default IP address on the External interface(s)
    Remote Computer: All Remote Computers

    DNS 쿼리는 UDP 프로토콜을 사용하는 반면 주 DNS 서버와 보조 DNS 서버 간의 DNS 영역 전송은 TCP(전송 제어 프로토콜) 프로토콜을 사용합니다. ISA Server의 외부 네트워크 어댑터에서 보조 DNS 서버로 DNS 영역 전송이 필요할 경우 다음과 같이 다른 사용자 지정 패킷 필터를 만들어야 합니다.

    Name: DNS Zone transfer
    Protocol: TCP
    Direction: Both
    Local Port: Fixed port, 53
    Remote Port: All ports
    Local Computer: Default IP address on the External interface(s)
    Remote Computer: All Remote Computers

    승인 받지 않은 DNS 서버로 DNS 영역이 전송되는 것을 방지하려면 DNS 서버를 설정하여 지정된 DNS 서버로만 영역을 전송할 수 있도록 해야 합니다. 그렇지 않으면 지정된 원격 컴퓨터가 "All Remote Computers" 대신 보조 DNS 서버의 인터넷 프로토콜(IP) 주소가 되도록 이전 패킷 필터를 수정할 수 있습니다. DNS 영역 전송에 대한 자세한 내용은 Windows 2000 온라인 도움말을 참조하십시오.


    시나리오 2: ISA Server의 개인 네트워크에 있는 DNS 서버

    ISA Server의 개인 네트워크에 있는 DNS 서버를 사용하여 ISA Server의 네트워크 어댑터에 있는 클라이언트에 대한 DNS 쿼리를 확인하려면 DNS 게시 규칙을 만들어야 합니다.


    1. Server Publishing Rule을 마우스 오른쪽 단추로 누르고 New를 누른 다음 Rule을 누릅니다.
    2. 서버 게시 규칙의 이름을 입력하고 Next를 누릅니다.

    3. 내부 DNS 서버의 IP 주소와 ISA Server의 외부 인터페이스를 입력하고 Next를 입력합니다.

    4. 프로토콜로 DNS Query Server를 누르고 Next를 누릅니다.

    5. Any Request에 규칙을 적용하고 Next를 누른 다음 Finish를 누릅니다.

    ISA Server의 네트워크 어댑터에 있는 보조 DNS 서버로 DNS 영역을 전송해야 하는 경우 다른 서버 게시 규칙을 만들어야 합니다. 앞에서 설명한 DNS 쿼리 규칙과 동일한 일반 지침을 사용하고 프로토콜로 DNS Zone Transfer를 선택합니다.
    reTweet
    Posted by 문스랩닷컴
    blog comments powered by Disqus


      Web Analytics Blogs Directory