유닉스 계열 컴퓨터에서의 DNS 서버 설정은 거의 비슷합니다. bind 라는 소프트웨어를 사용하는데.. 이 소프트웨어를 설치하면 돌아가는 데몬이 in.named 라는 데몬입니다. 솔라리스에는 전체설치를 하시면 이 소프트웨어는 기본 설치 되어 있습니다. 이 데몬은 시스템 부팅시에 /etc/named.conf 파일의 존재 여부에 따라 시작이 결정됩니다. 일단 DNS 의 구성 파일부터 살펴 봅시다. dns 구성 파일 종류 /etc/named.conf -> dns 환경 설정 파일 /var/named/zoneinfo -> dns 이름을 iP 로 바꿔주는 데이터 파일 /var/named/revzone -> IP 를 dns로 바꿔주는 데이터 파일 /var/named/localzone -> loopback dns 파일 /var/named/named.root -> root name server 기록 파일 할이야기가 많은데 .. 천천히 가보죠.. 먼저.. /etc/named.conf 파일부터 봅시다. 전제조건 ==================================================================== = 1. domain name 은 sunsol.net 으로 한다. = 2. IP 주소 권한 영역은 : 211.108.174.0 ~ 255 으로 한다. = 3. 주석문은 #, /*, */ 이다 하지만 ';' 는 문장의 끝을 뜻하는 문자이다. 주석과 마찬가지로 해석된다. = 4. /var/named 를 미리 만들고 이곳은 dns 데이터 파일의 저장 장소로 한다. = 5. Name Server 는 ultra30 번으로 하고 IP 주소는 211.108.174.30 이다. = 6. named.root 파일은 ftp://ftp.rs.internic.net/domain/named.root 에서 다운받기로 한다. =================================================================== 1. /etc/named.conf - dns 환경 설정 파일로 dns 데이터 파일이 저장될 위치와 각 파일이름 등을 정의한다. - - 내용.. -------------------------------------------------------------------------------- # vi /etc/named.conf options { directory "/var/named"; # dns 파일들이 저장될 위치 정의 pid-file "/etc/named.pid"; # in.named 프로세스의 pid 값을 저장하고 있는 파일 정의 }; zone "sunsol.net" in { # sunsol.net zone 을 정의 한다. : 도메인이름 -> IP로 type master; # 현재 이 서버의 역할 master 로 역할한다. file "sunsolnet"; # 이 파일이름은 sunsolnet 이다. }; zone "174.108.211.in-addr-arpa" in { # IP 를 도메인 이름을 바꾸어줄 IP 영역대 정의 type master; file "invsunsol"; # 파일이름은 invsunsol 이다. }; zone "0.0.127.in-addr.arpa" in { # loopback 도메인 설정 type master; file "loopback"; # 파일이름은 loopback 이다. }; zone "." in { type hint; file "named.root";# 내 도메인 안에 있지 않은 도메인네임을 질문할 최상위 도메인 서버정보를 담고 있는 파일 설정 }; -------------------------------------------------------------------------------- - 위에서 정의하는 파일은 모두 /var/named 라는 공간에 저장된다는 사실을 주의 하자.. - 그러면 /var/named 는 여러분이 미리 만들어 주어야 한다. - 이렇듯 named.conf 파일은 반드시 /etc/ 디렉토리 아래에 위치해 있어야 하며.  각 영역 파일들의 위치를 정의하고 있다. 2. /var/named/sunsolnet 파일 - 다음은 sunsol.net 이라는 도메인이 가지고 있는 host에 대해 외부에 이름을 알려줄 수 있는 IP 어드레스를 지칭한다. -------------------------------------------------------------------------------- # vi /var/named/sunsolnet sunsol.net. IN SOA ultra30.sunsol.net. root.ultra30.sunsol.net. ( 20011107 ; 시리얼 넘버, 호스트를 추가한다거나 아이피를 수정할 때 마다 이 값은 반드시 증가해야 한다. 10800 ; 재전송 타이머 초 단위 현재 표기되어 있는 시간은 12시간 3600 ; 재시도 타이머 초단위 현재 표기값은 한시간 604800 ; 만기 값 초단위 현재 표기값은 1주 86400 ; 캐시에 저장된 값을 유지할 시간 현재 표기값 하루 ) ; Name Servers sunsol.net. IN NS ultra30.sunsol.net. # ultra30 호스트를 Name Server 로 둔다. ;Host Addresses ; 여기서부터 호스트에 대한 IP 주소 정의 즉, 여기에 정의한 값을 이 DNS 서버에서 관리한다. localhost.sunsol.net. IN A 127.0.0.1 ultra30.sunsol.net. IN A 211.108.174.30 ultra20.sunsol.net. IN A 211.108.174.20 ultra3.sunsol.net. IN A 211.108.174.13 ; Aliases ; 위 호스트 에 대한 별명(CNAME) 즉, ultra20번은 ultra20.sunsol.net 이기도 하며 www.sunsol.net 이기도 하다. www.sunsol.net. IN CNAME ultra20.sunsol.net. ftp.sunsol.net. IN CNAME ultra3.sunsol.net. -------------------------------------------------------------------------------- - 기타 사항 IN : Internet class A : 뒤에 나오는 데이터 타입을 정의 IP 주소가 오는 것을 볼 수 있다. - 주의 : 반드시 도메인 명 뒤에는 . 을 찍어 주어야 한다. 그래야 완전한 도메인 명이 성립된다. 3. /var/named/invsunsol 파일 -------------------------------------------------------------------------------- # vi /var/anmed/invsunsol 174.108.211.in-addr.arpa. IN SOA ultra30.sunsol.net. root.ultra30.sunsol.net. ( 20011106 ; 앞의 zone 파일과 같습니다. 10800 ; 3600 ; 604800 ; 86400 ; ) ; Name Servers ; 이부분은 Name 서버의 IP 주소를 도메인 네임으로 바꾸는부분입니다. 30.174.108.211.in-addr.arpa. IN NS ultra30.sunsol.net. ;PTR records ; 이부분 은 각 IP 주소를 도메인 네임과 일치시키는 부분입니다. ; 앞의 sunsolnet 파일과 같은 항목이 들어가 있어야 합니다. 30.174.108.211.in-addr.arpa. IN PTR ultra30.sunsol.net. 20.174.108.211.in-addr.arpa. IN PTR ultra20.sunsol.net. 13.174.108.211.in-addr.arpa. IN PTR ultra3.sunsol.net. -------------------------------------------------------------------------------- - 위의 파일은 IP 로 질의가 들어왔을 때 도메인 네임을 되돌려 주는 부분입니다. 그러므로 나오는 항목은 sunsolnet 존 파일과 동일해야 합니다. 4. /var/named/loopback -------------------------------------------------------------------------------- # vi /var/named/loopback 0.0.127.in-addr.arpa. IN SOA ultra30.sunsol.net. root.ultra30.sunsol.net. ( 20011107 ; 10800 ; 3600 ; 604800 ; 86400 ; ) ; Nameservers ; 자기자신의 루푸백 도메인을 가리키는 곳입니다. ;여기서는 자기자신의 값만 정의 되어 있으면 됩니다. 1.0.0.127.in-addr.arpa. IN NS ultra30.sunsol.net. : 1.0.0.127.in-addr.arpa. IN PTR localhost -------------------------------------------------------------------------------- 5. /var/named/named.root - 원래 DNS 서버는 자기자신이 담당하고 있는 영역 이외의 부분은 자료로서 가지고 있지 않습니다. 위의 영역에 해당하지 않는 도메인은 named.root 파일에 정의된 root 도메인 서버로 질의를 넣어 결과값을 얻고 그 얻은 내용은 cache 파일에 저장합니다. 캐쉬파일에 넣어두는 기간은 앞에 설명드렸던 타이머에 의해 정의 됩니다. - 이 파일은 수정을 하지 않습니다. 이 파일은 internic 에서 관할하고 있는 nameless root 서버의 위치를 정의하고 있으므로 아래 주소에서 다운 받아 옵니다. - ftp://ftp.rs.internic.net/domain/name.root # vi /var/named/named.root 이 항목은 내용이 굉장히 많습니다. 따로 표기 하지 않겠습니다. 위 주소에서 다운 받으시기 바랍니다. 이 파일은 원래 3달에 한번씩 internic 에서 다운 받도록 권장하고 있습니다. 하지만 그럴 필요는 없습니다. root DNS 서버가 바뀌는 일은 거의 없으니까요.. 6. DNS 서버 설정 위의 작업이 다 완성 되면 네임 서버를 자기자신으로 맞추어 줍니다. -------------------------------------------------------------------------------- # vi /etc/resolv.conf domain sunsol.net nameserver 211.108.174.30 -------------------------------------------------------------------------------- 7. in.named 구동 -------------------------------------------------------------------------------- # /etc/init.d/inetsvc stop # /etc/init.d/inetsvc start -------------------------------------------------------------------------------- 8. 확인 # nslookup - 이 명령을 내린후 아무런 에러 없이 작동 되면 완성된 겁니다.
bind9 설치 | unix 2005/05/31 01:11 <a href="http://blog.naver.com/paulken/120013609095" class="external">http://blog.naver.com/ paulken/120013609095</a> ----------------------------------------------- BIND 9.3 를 이용한 DNS 서버 완벽 구성 가이드 ----------------------------------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 작성일:2004년 10월 21일 버전:0.2 히스토리: 0.1 2004년 10월 20일 작성 0.2 2004년 10월 21일 작성 변경된점:보다 세부적인 설정에 대한 부연 설명과 키공유에 대한 부분을 강화 작성자: 김석 [solaris2u@hotmail.com] 저작권: 저작권은 본인에게 있음 이 문서를 아래에 언급된 사이트 이외에 임의배포 및 복사, 전제를 금합니다. 오직 아래 언급된 사이트들의 회원들에게만 공개되는 것이며 타 사이트와 커뮤니티에 배포시에는 저작권에 위반으로 법적 제재를 받을 수 있습니다. 타 사이트 및 커뮤니티에 배포하시고자 하는 분들은 메일로 연락주시길 바랍니다. 본 문서의 상업적 이용을 금하며 학습용으로는 언제나 환영합니다. @@@본 문서는 편의상 존칭을 생략한 문서입니다. 양해 바랍니다.@@@ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 본 문서의 최신버전은 다음의 사이트에서 구하실 수 있습니다. cafe.naver.com/solatech [솔라리스 테크넷] www.solarisschool.com [솔라리스 스쿨] www.howtosolaris.co.kr [하우투솔라리스] www.freechal.com/sunsolve [프리챌 썬솔브 커뮤니티] *************************************************************************************** 작성자의 변: 솔라리스8 이하의 환경에서 BIND 8.x를 이용하여 구성하는 것과 달리 BIND 9.x 는 보안이 강화되었고 미묘한 부분에서 차이를 가지는데 인터넷에 떠도는 문서나 시중의 교재가 BIND 9를 이용하여 설치하는 것을 너무 장황하게 설명하거나, 실습을 따라서 구성해도 정상적으로 서비스되지 않는 문서가 너무 많아서 정리하였다. 본 문서는 BIND 9를 이용한 구성을 지원하지만 allow-query , allow-update 등 여타 보안에 필요한 요소는 구현하지 않았다. 필자는 간단하게 간편하게 구성하기 위해서 이번 문서에는 추가하지 않았으나 위에 언급한 내용이에외도 많은 보안적 요소가 있으니 보안을 위해 꼭 구성해 주기를 권장한다. 보안을 고려한 DNS에 대한 내용이 필요한 사람들은 www.krcert.or.kr 에서 확인하기를 바란다. -------------------------------------------------------------------------------------- 목표: BIND 9를 이용하여 DNS 를 구성하는 방법을 학습한다. 사용 OS : 솔라리스 9 또는 10 리눅스 8 또는 9 ( 리눅스도 솔라리스와 같은 방법으로 구성이 가능하다.) 하위 버전 OS 인 경우는 www.bind.org 에서 소스를 구하여 컴파일 후 사용하거나 www.sunfreeware.com 를 이용하여 소스설치를 진행한다. 이 문서에서는 컴파일을 통한 설치부터 구성까지 실습해 보도록 한다. -------------------------------------------------------------------------------------- #######시나리오####### solaris.co.kr 이라는 도메인의 네임 서버를 구성한다. 실습환경이므로 192.168.102.100 이라는 호스트가 www , mail , ns 를 모두 서비스한다고 전제한다. 소스 설치부터 진행하여 정방향 조회와 역방향 조회가 정확하게 구성되는지 테스트 한다. -------------------------------------------------------------------------------------- #######솔라리스9에서의 BIND 9.3 설치 하기######## 1. 파일 다운로드 받고 컴파일 하기 # gzip -dc bind-9.3.0.tar.gz | tar xvf - # cd bind-9.3.0 # ./configure --prefix=/bind --with-libtool --with-openssl --with-libtool : 공유라이브러리 빌드를 가능케 하는 옵션 --with-openssl : DNSSEC을 지원가능토록 함 , openssl이 설치되어 있어야 함 openssl이 설치된 경로가 패스가 없을시에는 --with-openssl=패스 형식으로 기재하여 사용. # make # make install # cd /bind/bin 컴파일이 종료되면 /bind/bin 에 check dig dnssec named nsupdate rndc tests win32 과 같은 디렉토리가 생성되어져 있다. 네임서버 데몬은 named 에 존재한다. ******중요************************************************************************* /etc/named.conf에서의 키 구성과 rndc.key의 이해가 요구되어진다. 일단, rndc는 네임서비스를 관리하는 데몬으로 /etc/rndc.conf로 구성이 가능하며 /etc/rndc.key에 의해 키 교환을 하게 되어 있다. /etc/named.conf에 아래와 같이 key 설정 구성을 하거나 include "/etc/rndc.key"; 내용을 이용하여 구성이 가능하다. key 키명{ algoritm "hmac-md5"; secret "xxxxxxxxxxx"; }; 자, 여기서 key 설정 부분을 자세히 보자. 다른 내용은 별도의 문서나 책을 참고하고 일단 secret 영역에 xxxxxxx 이런식으로 표현된 부분은 /bind/bin/dnssec 에 가면 dnssec-keygen 이라는 툴이 있다. 이 툴을 이용하여 공유키를 생성할 수 있는데 사용법은 아래와 같다. --------------------------------------------------- 문법: dnssec-keygen -a hmac-md5 -b 128 -n HOST 키 --------------------------------------------------- 따라서 내가 사용할 키가 rndckey 라는 키라면 =================================================== #dnssec-keygen -a hmac-md5 -b 128 -n HOST rndckey =================================================== 이런식으로 사용이 가능하다는 것이다. BIND 9.x 계열에서는 RSA ,DSA , HMAC-MD5 중에 HMAC-MD5만 지원한다. 따라서 -a 옵션으로 hmac-md5 알고리즘 으로 지정하고 -b 옵션을 이용하여 128비트 암호길이를 지정했다. 키를 더 복잡하게 구성하고자 한다면 최대 512비트까지 지정이 가능하다. -n HOST 뒤에는 네임서버간에서 사용할 공유키를 입력하면 된다. dnssec-keygen 도구가 정상적으로 실행되면 Krndckey.+157+14077.key 와 Krndckey.+157+14077.private 두개의 파일이 생성되어진다. Krndckey.+157+14077.key 을 에디터등으로 오픈하면 다음과 같다. ===================================================== #vi Krndckey.+157+14077.key rndckey. IN KEY 512 3 157 Y9iC3cahZ7I3+3NrtlG6nQ== ===================================================== 여기서 Y9iC3cahZ7I3+3NrtlG6nQ== 을 복사하여 key 키명{ algoritm "hmac-md5"; secret "xxxxxxxxxxx"; }; 이 부분을 아래와 같이 변경한다. key 키명{ algoritm "hmac-md5"; secret "Y9iC3cahZ7I3+3NrtlG6nQ==; }; 만일 /etc/rndc.conf 를 include 한다면 위에 key 영역 설정은 불필요하다. 2. /etc/named.conf 구성하기 ====================================================== #vi /etc/named.conf // generated by named-bootconf.pl options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; dump-file "/var/named/named.db"; //덤프파일 위치 지정 , 네임정보갱신시 덤프 생성 statistics-file "/var/named/named.stat";//통계처리 목적으로 생성, 메모리 통계 파일 위치지정 /* * forward (only|first) forwarders 옵션과 함께 사용. * forwarders {네임서버 IP ; 네임서버2 IP; ...}; --도메인에 대한 질의를 다른서버로 넘길때 * only : 다른 서버에게 질의를 지정했을시 무응답일때 자신도 응답하지 않는것. * first : 다른 서버에서 응답이 없을 때 자신이 응답하도록 할 때 설정. * notify (yes|no) --마스터 서버의 존 정보가 변경되었을 때 존의 2차 서버에 메시지 통보 * 기본값은 yes */ }; // // a caching only nameserver config // controls { inet 127.0.0.1 port 953 allow { localhost; } keys { rndckey; }; }; //key rndckey { // algorithm "hmac-md5"; // secret "Y9iC3cahZ7I3+3NrtlG6nQ=="; //}; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "solaris.co.kr" IN { type master; //type이 slave 인 경우는 masters { 주 네임서버 IP;}; 를 반드시 추가 file "solaris.zone"; allow-update { none; }; }; zone "102.168.192.in-addr.arpa" IN { type master; file "solaris.zone.rev"; allow-update { none; }; }; include "/etc/rndc.key"; ====================================================== 3.rndc 설정 파일 만들기 solaris10[/bind/bin/rndc] # ./rndc-confgen -k rndckey > /etc/rndc.conf solaris10[/bind/bin/rndc] # ./rndc-confgen -a -k rndckey solaris10[/bind/bin/rndc] # cat /etc/rndc.conf # Start of rndc.conf key "rndckey" { algorithm hmac-md5; secret "Y9iC3cahZ7I3+3NrtlG6nQ=="; }; options { default-key "rndckey"; default-server 127.0.0.1; default-port 953; }; # End of rndc.conf # Use with the following in named.conf, adjusting the allow list as needed: # key "rndckey" { # algorithm hmac-md5; # secret "kMojgiTutuePjyWROKKXKg=="; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { "rndckey"; }; # }; # End of named.conf solaris10[/bind/bin/rndc] # cat /etc/rndc.key key "rndckey" { algorithm hmac-md5; secret "Y9iC3cahZ7I3+3NrtlG6nQ=="; }; ---BIND에서 8과 9의 차이는 보안이 강화되었다는 점이 주목할 점이다. 기존의 BIND 8과는 달리 key를 통한 보안 인증체계를 지니고 있다. rndc 에 의해 네임서비스를 관리하려면 /etc/rndc.conf에 의해 관리되어진다. 두 파일의 키가 일치하는지 확인한다. 두 키가 일치되어야 추후에 rndc가 정상적으로 구동된다. 4.정방향 조회 영역 만들기 주의! 영역 구성시 BIND8과 BIND9의 큰 차이중에 하나가 바로 $TTL 이다. BIND 8.x에서는 상관없으나 BIND9.x 에서는 반드시 맨위에 기술되어야 한다. 그렇지 않으면 네임서비스는 동작하지 않는다. #vi /var/named/solaris.zone $TTL 10M @ 1D IN SOA ns.solaris.co.kr. root.solaris.co.kr. ( 42 ; serial (d. adams) 3M ; refresh 1M ; retry 1W ; expiry 1D ) ; minimum 1D IN NS ns.solaris.co.kr. 1D IN MX 10 mail.solaris.co.kr. 1D IN A 192.168.102.100 ns IN A 192.168.102.100 www IN A 192.168.102.100 mail IN A 192.168.102.100 solaris.co.kr. IN A 192.168.102.100 5.역방향 조회 영역 만들기 #vi /var/named/solaris.zone.rev $TTL 10M @ IN SOA ns.solaris.co.kr. root.solaris.co.kr. ( 2004101801 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ns.solaris.co.kr. 50 IN PTR ns.solaris.co.kr. 50 IN PTR www.solaris.co.kr. 50 IN PTR mail.solaris.co.kr. 6./etc/hosts 와 /etc/resolv.conf 구성 내용 확인 및 변경 #cat /etc/hosts 127.0.0.1 localhost localhost.localdomain 192.168.102.100 ns ns.solaris.co.kr #vi /etc/resolv.conf domain solaris.co.kr search solaris.co.kr nameserver 192.168.102.100 7.네임서비스 구동하기 패키지를 설치하지 않고 소스를 이용하여 설치한 경우는 named가 /bind/bin/named에 존재하므로 /bin/named 로 링크를 걸어주는 것이 사용상 용이하다. 링크거는 과정등은 생략한다. #named #ps -ef |grep named 데몬이 떠 있는지 확인한다. 이름서비스를 구동후 nslookup 이나 dig 같은 툴을 이용하여 테스트 한다. [root@ns root]# nslookup Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead. Run nslookup with the `-sil[ent]' option to prevent this message from appearing. > solaris.co.kr Server: 192.168.102.100 Address: 192.168.102.100#53 Name: solaris.co.kr Address: 192.168.102.100 > www.solaris.co.kr Server: 192.168.102.100 Address: 192.168.102.100#53 Name: www.solaris.co.kr Address: 192.168.102.100 > 192.168.102.100 Server: 192.168.102.100 Address: 192.168.102.100#53 100.102.168.192.in-addr.arpa name = mail.solaris.co.kr. 100.102.168.192.in-addr.arpa name = ns.solaris.co.kr. 100.102.168.192.in-addr.arpa name = www.solaris.co.kr. 정상적으로 구동되어짐을 알 수 있다. 8.rndc 구동하기 /bind/bin/rndc/#rndc reload 를 수행하여 rndc를 구동할 수 있다. 이 때 named는 반드시 구동되어 있어야 한다. 9. 장애 처리 하기 #tail -f /var/adm/messages 로그의 내용을 모니터링하면서 장애처리를 수행한다. rndc.conf 나 key 에러는 키 생성 부분의 문제이므로 확인 후 다시 시도해 본다.  출처 : blog.naver.com/paulken

'IT > Unix' 카테고리의 다른 글

Network 관련된 11개 파일  (0) 2009.02.26
backup 관련 명령어 요약  (0) 2009.02.25
메모리 사용량  (0) 2009.01.09
fuser  (0) 2009.01.07
Clock board TOD does not match TOD on any IO board  (0) 2008.12.18

+ Recent posts