티스토리 뷰

  1. bind9 설치하기

sudo apt-get install bind9 dnsutils 

2. 실험을 위한 도메인을 추가하기 위해서 /etc/bind/named.conf.local 파일을 수정

vi /etc/bind/named.conf.local 

파일을 보면, 신규(처음)인 경우, 주석("//"로 시작하는 줄) 만이 있을 뿐이다. 

다음 내용을 입력하고 저장한다.


 zone "mach.local" in {

  type master;

  file "/etc/bind/zones/mach.local.ns";

  allow-update { none; };

};


// For reverse lookups, going IP addy back to a hostname

zone "20.10.10.in-addr.arpa" in {

  type master;

  file "/etc/bind/zones/20.10.10.in-addr.arpa.ns";

  allow-update { none; };

}; 

*위에서 mach.local은 각자의 도메인으로 하도록 한다. 예를 들어, "test.local", "ta.local", "rt.lab"등 로컬에서 사용할 도메인명으로 하도록 한다.

* 20.10.10은 IP주소를 역순으로 기술한 것이다. 즉, 10.10.20.x라는 IP주소 대역을 역순으로 표현한 것이다.

* /etc/bind 하에는 zones이라는 디렉터리가 없으므로, 이를 생성해 주도록 한다.(필수는 아니고, 필자가 구분을 쉽게 하려고, 그렇게 했을 뿐이다.)

3. /etc/bind/zones 디렉터리 생성과 zone 파일 만들어 주기

cd /etc/bind

mkdir zones

cd zones 

zones 디렉터리 내에서  zone파일 생성하기

 vi /etc/bind/zones/mach.local.ns


$TTL 86400

; ns.mach.local은 DNS ,  관리자 메일주소 admin@mach.local을 admin.mach.local.으로 기술한다.

; 유의사항은 도메인 끝에 항상 '.'으로 종결된다는 점

@ IN SOA ns.mach.local. admin.mach.local. (

        2013042602; 수정할때 마다 증가시킨다. 보통 날짜+회수로 증가함 , 2013년 4월 26일 2번째 버전

        28800 ; refresh

        3600   ; retry

        604800;expire

        38400   ; negative cache ttl

        );

@       IN      NS      ns.mach.local.

@       IN       A       127.0.0.1

@       IN       AAAA   ::1

; private hosts


ns                IN      A       10.10.20.134


testserver              IN      A       10.10.20.134

nickname          IN      A       10.10.20.134

test2           IN      A       10.10.20.135

nickname2         IN      A       10.10.20.135

 

* 위에서 적색 표기한 것은 적절히 수정하도록 한다.


 vi /etc/bind/zones/20.10.10.in-addr.arpa.ns


 $TTL    604800

@   IN    SOA   ns.mach.local. admin.mach.local.  (

    2013042602 ; se = serial number

    604800         ; ref = refresh

    86400        ; ret = update retry

    2419200         ; ex = expiry

    604800         ; min = minimum

    )


@    IN    NS    ns.mach.local.


; private hosts, reverse lookup

134     IN    PTR    ns.mach.local.


134     IN    PTR    testserver.mach.local.

134     IN    PTR    nickname.mach.local.

135     IN    PTR    test2.mach.local.

135     IN    PTR    nickname2.mach.local.

위 과정이 끝나면, 2개의 파일이 수정이 잘 되었는지 검토 해본다.

2개 파일을 한번에(*) 검사하도록 하자. 

 named-checkzone *

위 검사에서 오류가 없다면, 잘~ 되고 있는 것이다. 오류가 있다면, 그 부분을 수정해야 한다.


4. vi /etc/resolv.conf파일 수정하기

nameserver 10.10.20.134

search mach.local.


# OpenDNS Fallback (configured by Linux Mint in /etc/resolvconf/resolv.conf.d/ta

il).

nameserver 208.67.222.222

nameserver 208.67.220.220 

위에서 208.67.222.222 는 공개 DNS이며, 본 글의 의도와는 전혀 무관하다. 공개 DNS는 대한민국내에서 골라서 써도 좋고, 아래 공개 DNS에서 골라도 좋다. 

5. name server 재시작하기

 /etc/init.d/bind9 restart

* /var/log/syslog에서 로그 메시지를 보고 잘~ 되었는지 판단해본다.

------------

팁: 공개 DNS리스트 -> http://linuxinternetworks.com/networks/list-of-public-dns-addresses/ 

팁: 잘~ 기록된 블로그, 특히, 마스터-슬레이브로 안전한 DNS 구성 방법이 인상적이다. -> http://linuxinternetworks.com/linux/how-to-install-and-configure-domain-name-service-dns-in-ubuntu-linux/

팁: 자신의 인터넷 방문 행적이 밝혀지는 것을 꺼린다면, DNS도 잘~ 골라 쓰는게 좋겠지. 물론, 인입 라인에서 감청하면 (UDP/53번 포트 트래픽 감청) 문제이긴 한데, 이 또한 53번 트래픽을 암호화채널로 터널링하여 극복할 수 있기도 하다.  

팁: DNS 트래픽과 보안: DNS트래픽의 행태를 다각도로 분석하면, 이 또한 트래픽 분석에 도움이 크다. 악성코드의 행태가 특히 그러하다.