queryperf 설치 및 사용방법 (DNS 스트레스 테스트)

리눅스/DNS|2015. 1. 26. 17:34
반응형

1. 설치

# cd /usr/local/src

# wget http://ftp.isc.org/isc/bind9/9.3.6/bind-9.3.6.tar.gz
# tar xvzf bind-9.3.6.tar.gz
# cd bind-9.3.6/contrib/queryperf
# ./configure
# make
 

2. 사용 방법

우선 테스트 할 도메인 리스트를 만듭니다.

# cd utils

# chmod 755 gen-data-queryperf.py

# ./gen-data-queryperf.py -n 1000 -p 100 -t com > domains.txt

-n : 도메인 갯수

-p : 도메인 중복률 (100 은 100% 다른 도메인을 만들어냅니다)

-t : 도메인 종류 (.com 만 만듭니다)

 

# cd ..

# ./queryperf  -d utils/domains.txt -s dns1.sysdocu.tistory.com -q 1000

-d: 질의할 도메인 리스트

-s : 네임서버 (IP로도 질의 가능)

-q : 1초당 쿼리 갯수

반응형

'리눅스 > DNS' 카테고리의 다른 글

PDNS의 다양한 에러 로그 및 해결책  (0) 2015.01.26
BIND9를 위한 로그 설정  (0) 2015.01.26
네임서버 도메인 위임  (0) 2015.01.26
PowerDNS (PDNS) 설치 및 설정  (0) 2015.01.26
srv 레코드 등록 방법  (0) 2015.01.26

댓글()

네임서버 도메인 위임

리눅스/DNS|2015. 1. 26. 17:34
반응형

사이트 규모가 커짐에 따라 sysdocu.com 도메인의 서브도메인 group 을 생성 후

그 하위 도메인은 group.sysdocu.com 네임서버에서 관리하도록 하는 방법이 있습니다.

 

[zone 파일 수정]

 

1) 자사 타 네임서버로 연결할 경우

group      IN      NS      ns1.group

group      IN      NS      ns2.group

group      IN      NS      ns3.group

group      IN      NS      ns4.group
ns1.group      IN      A      192.168.10.1

ns2.group      IN      A      192.168.10.2

ns3.group      IN      A      192.168.10.3

ns4.group      IN      A      192.168.10.4 

 

2) 타사 네임서버로 연결할 경우

group.sysdocu.com.      IN      NS      ns11.awsdns-20.com.
group.sysdocu.com.      IN      NS      ns200.awsdns-58.co.uk.
group.sysdocu.com.      IN      NS      ns15.awsdns-58.co.uk.
group.sysdocu.com.      IN      NS      ns133.awsdns-44.org.

반응형

댓글()

PowerDNS (PDNS) 설치 및 설정

리눅스/DNS|2015. 1. 26. 17:34
반응형
PowerDNS 는 zone 파일 형식을 DB로 저장, 관리하여
좀더 유용하고 편리하게 사용할수 있게 해줍니다.
poweradmin 이라는 툴을 이용해 웹상에서도 쉽게 제어를 할 수 있습니다.
 
 
1. 설치
yum install pdns pdns-backend-mysql pdns-recursor
 
CentOS 6.4 에서 yum 으로 pdns 설치가 되지 않을경우 아래 url 참고하여 설치 진행을 해보시기 바랍니다.
 
 
 
2. DB 생성
mysql 에 root 관리자로 로그인하여 DB를 생성 합니다.
 
mysql -u root -p
Enter password: (패스워드 입력)
 
mysql> create database powerdns;
mysql> grant all privileges on powerdns.* to powerdns@localhost identified by 'sysdocu@pass';
mysql> flush privileges;
mysql> exit
 
아래 박스의 내용으로 pdns.sql 파일을 만들고 생성했던 DB에 insert 시킵니다.
 
vi pdns.sql
 
create table domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL, 
account         VARCHAR(40) DEFAULT NULL,
primary key (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
  id              INT auto_increment,
  domain_id       INT DEFAULT NULL,
  name            VARCHAR(255) DEFAULT NULL,
  type            VARCHAR(10) DEFAULT NULL,
  content         VARCHAR(10000) DEFAULT NULL,
  ttl             INT DEFAULT NULL,
  prio            INT DEFAULT NULL,
  change_date     INT DEFAULT NULL,
  primary key(id)
) Engine=InnoDB;

CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);

create table supermasters (
  ip VARCHAR(25) NOT NULL, 
  nameserver VARCHAR(255) NOT NULL, 
  account VARCHAR(40) DEFAULT NULL
) Engine=InnoDB;
 
mysql -p powerdns < pdns.sql
Enter password: (패스워드 입력)
 
 
3. 설정
아래 설정파일에서 기본으로 주석되어있는 행을 해제하고, 내용을 추가합니다.
 
vi /etc/pdns/pdns.conf
 
// 기본으로 주석 되어있는 부분입니다. 주석을 해제하여 해당 값으로 변경합니다.
allow-recursion=127.0.0.1,192.168.10.2    // 로컬호스트와 서버IP (recursion 을 원하지 않을경우 삭제하면 됩니다.)
config-dir=/etc/pdns

daemon=yes
disable-axfr=yes
guardian=yes
launch=gmysql
local-port=53
module-dir=/usr/lib/pdns    // 64bit 의 경우 /usr/lib64/pdns
recursor=168.126.63.1
setgid=pdns

setuid=pdns
socket-dir=/var/run

version-string=powerdns
 
// 추가로 입력해줘야 할 부분입니다.
gmysql-host=localhost
gmysql-user=powerdns
gmysql-password=sysdocu@pass
gmysql-dbname=powerdns

gmysql-port=3306
gmysql-socket=/tmp/mysql.sock    // 소켓 위치를 확실하게 적어야 합니다.
 
  
4. 구동
/etc/init.d/pdns start
여기까지만 해도 DNS를 DB화 하여 관리가 가능합니다.
하지만 레코드 등록시 MySQL 에 로그인해서 일일이 타이핑하기 싫으신분은
웹사이트에서 관리할 수 있는 PowerADMIN 을 설치하시면 됩니다.
 
 
* 참고
PowerDNS 기본 쿼리입니다.
 
mysql> use powerdns;
mysql> INSERT INTO `domains` VALUES (1,'sysdocu.com','',NULL,'MASTER',1,NULL);
mysql> INSERT INTO `records` VALUES (1,1,'sysdocu.com','MX','mail.sysdocu.com',300,10,1267002606);
mysql> INSERT INTO `records` VALUES (2,1,'mail.sysdocu.com','A','192.168.10.1',300,0,1267002606);
mysql> INSERT INTO `records` VALUES (3,1,'sysdocu.com','NS','ns.sysdocu.com',300,0,1267002606);
mysql> INSERT INTO `records` VALUES (4,1,'sysdocu.com','A','192.168.10.1',300,0,1267002606);
mysql> INSERT INTO `records` VALUES (5,1,'sysdocu.com','SOA','ns.sysdocu.com dnsmaster@sysdocu.com 2011120800 10800 3600 432000 300',300,0,1267002606);
mysql> INSERT INTO `records` VALUES (6,1,'www.sysdocu.com','A','192.168.10.1',300,0,1267002606);
mysql> INSERT INTO `records` VALUES (7,1,'www1.sysdocu.com','A','192.168.10.1',300,0,1267002606);
mysql> INSERT INTO `records` VALUES (8,1,'www2.sysdocu.com','A','192.168.10.1',300,0,1267002606);
mysql> INSERT INTO `records` VALUES (9,1,'ns.sysdocu.com','A','192.168.10.1',300,0,1267002606);
 
 
5. PowerADMIN 설치
웹에서 관리할 수 있도록 별도의 툴을 설치할 수 있습니다.
 
# tar xvzf poweradmin-2.1.6.tgz
# mv poweradmin-2.1.6 /home/sysdocu/public_html/poweradmin
# cd /home/sysdocu/public_html/poweradmin/inc
# cp -arp config-me.inc.php config.inc.php
 
웹브라우저에서 PowerADMIN 의 설치 디렉토리로 접속합니다.
 
설치를 진행하시면 됩니다.
 
 
[네임서버 위임시 참고사항]
PDNS 네임서버에서 특정 서브도메인(예: dns2.sysdocu.com)을 다른 네임서버로 위임을 해주었다면 PDNS 네임서버에서는 BIND와 다르게 해당 레코드가 질의되지 않습니다.
그렇지만 코넷이나 데이콤 네임서버 등 외부 네임서버에서는 정상 질의가 되므로, 서버나 PC 내부의 네임서버 설정을 PDNS 네임서버로 등록하여 사용할 일이 없다면 PDNS 네임서버 구성을 그대로 진행해도 됩니다.
(국내 문서는 거의 희박하고, 구글에서도 아직 해결책을 찾지 못했습니다. 해결책을 찾을 경우 바로 업데이트 하도록 하겠습니다.)

 

반응형

댓글()

srv 레코드 등록 방법

리눅스/DNS|2015. 1. 26. 17:33
반응형

1. 설정

 zone 파일에 아래 행을 추가합니다.
_sipfederationtls._tcp SRV 100 1 5061 sipfed.online.lync.com.

 

2. 확인

nslookup
server 192.168.10.2
Default server: 192.168.10.2
Address: 192.168.10.2#53
set type=srv
_sipfederationtls._tcp.sysdocu.com
Server:         192.168.10.2
Address:        192.168.10.2#53

_sipfederationtls._tcp.sysdocu.com      service = 100 1 5061 sipfed.online.lync.com.
>
 

반응형

댓글()

bind 구동시 오류 zone 파일 찾아내기

리눅스/DNS|2015. 1. 26. 17:33
반응형

도메인이 많을땐 named 시작 오류중에서

zone 파일 정상로드와 오류를 찾기가 번거롭습니다.

이때 아래와 같이 오류나는 zone파일만 추려서 살펴볼 수 있습니다.

 

[root@sysdocu ]# /etc/init.d/named start |grep ^[^zone] > result.txt

 

다시 쉘로 돌아오지 않는 경우에는 에러 메세지 전체 복사후 아래와 같이 걸러냅니다.

 

[root@sysdocu ~]# vi 111    <- 111파일 생성 후 내용 붙여넣기

[root@sysdocu ~]# cat 111 |grep ^[^zone] > result.txt


반응형

'리눅스 > DNS' 카테고리의 다른 글

PowerDNS (PDNS) 설치 및 설정  (0) 2015.01.26
srv 레코드 등록 방법  (0) 2015.01.26
DNS 의 Cache Poisoning 취약점 및 패치안내  (0) 2015.01.26
국내 통신사와 IDC 네임서버(DNS) IP  (0) 2015.01.26
dig 활용방법 가이드  (0) 2015.01.26

댓글()

DNS 의 Cache Poisoning 취약점 및 패치안내

리눅스/DNS|2015. 1. 26. 17:32
반응형

■ DNS 의 Cache Poisoning 취약점

   DNS 프로토콜에 Cache Poisoning 취약점으로 공격자는 취약한 DNS 를 사용하는 시스템에 조

   작된 DNS 쿼리를 전송하여 캐쉬의 정보를 변경, 정상적인 사이트에 접속 시 다른 사이트의 ip로

   변조시키는 방법입니다.

 

■ 대상

   DNS 프로토콜이 적용된 소프트웨어

 

■ 취약점 내용

   공격자는 조작된 DNS 쿼리를 다량으로 전달하여 DNS 캐쉬서버의 내용을 임의로 변경할 수 있습

   니다. 요청한 주소의 원래 주소가 아닌 공격자가 지정한 주소로 변경하여 캐쉬를 변경할 수 있으

   므로 악성코드가 설치된 임의의 주소 등으로 변경이 가능합니다.
  

  이 취약점은 특정 DNS 소프트웨어에 한정되지 않고 DNS 프로토콜을 따르는 모든 소프트웨어에

  영향을 줍니다. DNS(Domain Name System)는 인터넷 인프라의 중요한 요소로 호스트 이름을 IP

  주소로 변경해 주거나 또는 반대의 역할을 수행합니다. 공격자는 조작된 DNS 정보를 전달하여 조

  작된 DNS 정보가 캐쉬 네임서버에 기록될 수 있도록 합니다. 이 공격기법은 Cache Poisoning 으

  로 불리며 다음과 같은 경우에 이번 취약점 영향을 받을 수 있습니다.

  

   DNS 프로토콜은 Transaction ID 라는 16비트의 필드를 가지고 있습니다. 쿼리 요청시 이 ID 번호

  가 임의로 선택되어 지는것을 예측하여 캐쉬 조작이 가능하고, ID 값은 32,768 개의 값이 존재하

  여 추측하기 힘들지만 취약점을 내포한 DNS 의 경우는 이보다 더 작은 번호로 예측하여 공격시도

  가 가능해 집니다. 
  

  또한, 요청된 쿼리에 대해 응답되는 쿼리는 같은 소스포트 번호를 사용하여 스푸핑이 더욱 쉽게

  가능해 집니다. 요청한 DNS 쿼리에 대해 응답을 주는경우 출발지와 목적지 포트가 동일하고 트랜

  젝션 ID 까지 같은 경우는, 올바른 것으로 판단되어 캐쉬에 잘못된 정보를 기록할 수 있게 됩니다.

 

  현재 이 취약점의 공격코드가 7/24일(한국시간) 공개되어 각별한 주의가 필요합니다.

 

■ 취약점 확인방법

  - 다음 명령 실행
    $dig @localhost +short porttest.dns-oarc.net TXT 또는 아래와 같이 IP로 조회
    $dig @해당서버IP +short porttest.dns-oarc.net TXT

 

  - 취약한 경우 응답 내용
     porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
     "해당서버IP is POOR: 26 queries in 3.6 seconds from 1 ports with std dev 0"  

  - 취약하지 않은경우 DNS 확인 결과
     z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
     "IP-of-GOOD is GOOD: 26 queries in 2.0 seconds from 26 ports with std dev 17685.51" 
 
■ 패치방법

   - 업그레이드

    캐시 DNS 서버로 사용되는 시스템을 운영 중이라면, 패치가 된 버전으로 업그레이드 합니다.
    패치버전: BIND 9.3.5-p1, BIND 9.4.2-p1, BIND 9.5.0-p1

   - 업그레이드 외에 recursive query 제한
     
     $ vi /etc/named.conf

      acl xxx { 127.0.0.1; 해당서버IP; };

      options { version "unknown";
       .
       .
       .
      allow-recursion { xxx; };
      };
 
       acl 리스트에 있는 IP에만 recursive query 허용하도록 설정합니다.


■ windows OS 사용자의 경우 아래 URL을 참조하여 해당 DNS취약점 패치를 업그레이드 하시기

   바랍니다.

   - 마이크로소프트 
     http://www.microsoft.com/korea/technet/security/bulletin/ms08-037.mspx 
   - ISC BIND 
     http://www.isc.org/index.pl?/sw/bind/bind-security.php

 

■ 언급되지 않은 소프트웨어는 사용하는 해당 DNS의 확인 후 취약점 여부를 반드시 확인할 것을

    권고합니다.

 

■ 참고정보

- CVE 정보 : CVE-2008-1447 
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1447 
- US-CERT 취약점 노트, VU#800113 
http://www.kb.cert.org/vuls/id/800113 

 

[출처] KOREA IDC | SAHAGONG (http://www.koreaidc.com/bbs/set_view.php?b_name=idcnews&w_no=111)

반응형

'리눅스 > DNS' 카테고리의 다른 글

srv 레코드 등록 방법  (0) 2015.01.26
bind 구동시 오류 zone 파일 찾아내기  (0) 2015.01.26
국내 통신사와 IDC 네임서버(DNS) IP  (0) 2015.01.26
dig 활용방법 가이드  (0) 2015.01.26
[칼럼] DNS Cache Poisoning  (0) 2015.01.26

댓글()

국내 통신사와 IDC 네임서버(DNS) IP

리눅스/DNS|2015. 1. 26. 17:32
반응형
회사IP #1IP #2IP #3도메인 #1도메인 #2도메인 #3
KT168.126.63.1168.126.63.2 kns.kornet.co.krkns2.kornet.net 
하나로210.220.163.82219.250.36.130210.94.6.67qns1.hananet.netqns2.hananet.netqns3.hananet.net
하나로210.94.0.73221.139.13.130210.180.98.74cns1.hananet.netcns2.hananet.netcns3.hananet.net
하나로211.58.252.62211.58.252.94 ns.ngene.netns2.ngene.net 
하나로210.181.1.41210.181.4.51 ns.dreamx.comns2.dreamx.com 
하나로131.107.1.7210.94.0.7 ins1.hananet.netins2.hananet.net 
두루넷210.117.65.1210.117.65.2 nsgr1.thrunet.comnsgr2.thrunet.com 
신비로202.30.143.11203.30.143.11 ns.shinbiro.comns2.shinbiro.com 
데이콤164.124.101.2203.248.240.31 ns.dacom.co.krns2.dacom.co.kr 
드림라인210.181.1.24210.181.4.25 ns.cjdream.netns2.cjdream.net 
파워콤164.124.107.9203.248.252.2 cns2.bora.netcns3.bora.net 
KT IDC211.63.213.17661.78.38.120 ns.kt-idc.comns2.kt-idc.com 
데이콤IDC203.248.250.24203.248.250.25 ns1.kidc.netns2.kidc.net 
하나로IDC211.58.252.62211.58.252.94 ns.ngene.netns2.ngene.net 

 

 

[발췌] 웹프로그래머의 홈페이지 정보 블로그 (http://hompy.info/313

반응형

댓글()

dig 활용방법 가이드

리눅스/DNS|2015. 1. 26. 17:32
반응형

첨부파일 참조

 

[출처]  한국인터넷정보센터 | IP주소관리팀


dig_활용방법_가이드.pdf


반응형

댓글()

[칼럼] DNS Cache Poisoning

리눅스/DNS|2015. 1. 26. 17:31
반응형

안녕하세요^^ DNS Cache Poisoning에 대해 궁금해서 질문 올립니다.

DNS Cache를 잘못된 주소로 바꿔서 사용자가 DNS Query를 했을 때

잘못된 IP 주소로 응답하여 실제 원하는 웹 사이트가 아닌 공격자가 의도

하는 잘못된 웹사이트가 나오게 하는 것이라고 읽었습니다.

 

여기서 궁금한 점이

 

질문1)희생자 DNS Server가 공격자 DNS Server에게 Query를

하게 하느냐입니다. 설명이 나오긴 했었는데 이해하기 어려워서요 ^^

 

질문2)공격자 DNS Server가 잘못된 IP 주소를 응답한다고 하는데

단순히 DNS Server 안에 있는 레코드를 공격자가 원하는 IP 주소를

적어주면 되는 건가요?

 

안녕하세요. SecurityPlus입니다.

 

DNS Cache Poisoning은 recursion(순환질의)이 허용하도록 잘못된 구성된 DNS 혹은 취약한 버젼의 DNS에 대해 가능한 공격입니다.

 

먼저, 첫번째 질문은 희생자 DNS Server가 공격자 DNS Server에게 Query를 어떻게 하는가라는 질문은 상세한 공격 방식에 대한

설명으로 대신하도록 하겠습니다.

 

먼저, 공격자는 DNS Server를 준비하고, 주로 메일 시스템을 이용하여

공격할 목표 DNS 서버(vul.dns.com)에 속한 시스템 내의 존재하지 않는 사용자에게 공격자의 도메인(crack.dns.com)이

포함된 사용자 메일 계정(test@crack.dns.com)으로 메일을 보내거나,

공격자 도메인 상의 이미지 링크가 포함된 메일을 공격할 목표 DNS 서버에 속한 시스템

내의 사용자에게 메일을 보냅니다.

 

이러한 시도를 통해 메일을 받은 시스템이 해당 DNS의 캐쉬 서버에 공격자의 도메인(crack.dns.com)을

질의하도록 합니다.

 

그러나, 희생자의 DNS 캐쉬 서버 내에는 공격자의 도메인 정보가 없으므로 공격자의 도메인을 공격자의

DNS Server에게 질의를 하게 됩니다.

 

그럼, 공격자의 DNS Server에서는 공격자의 도메인과 IP 정보(crack.dns.com|211.211.24.240)를 주면서

Additional Resolution Record, 즉 추가적인 다른 도메인과 IP 정보(물론, 악의적인)를 제공(www.microsoft.com:211.211.24.239)합니다.

 

이때, 희생자의 DNS 캐쉬 서버는 공격자의 DNS Server가 추가적으로 전해준 악의적인 정보(www.microsoft.com:211.211.24.239)

TTL 시간동안 캐싱하고 있으며, TTL 시간 동안 해당 DNS 캐쉬 서버를 바라 보고 있는 사용자가

www.microsoft.com 을 질의하면 정상적인 IP 대신 악의적인 IP로 응답하고, 사용자는 잘못된 IP로

접속하게 됩니다.

 

두 번째 질문은 공격자 DNS Server가 잘못된 IP 주소를 응답한다고 하는데 단순히 DNS Server 안에 있는 레코드를 공격자가 원하는 IP 주소를 적어주면 되는 건가요? 라는 질문에 대해 답변 드리도록 하겠습니다.

 

두 번째 질문은 위에서 설명드린 공격 방식으로도 이해가 되겠으나, DNS 패킷을 조작해서 공격하는 방식으로 셜명 드리겠습니다.

위 공격법 이외에 DNS 패킷을 조작하여 공격하는 방식을 이용할 때에는 위의 복잡한 과정 없이 희생자 DNS 서버에 악의적인 도메인과

IP 정보를 마치 응답한 것처럼 속여서 응답 패킷을 보내는 것으로

 

이 때,  관건은 DNS 응답 패킷에 있어서, 질의에 대한 응답을 식별하기 위한 16bit의 ID를 사용하고 있어, 응답 Port와 해당 ID를 추측

해야 하는 어려움이 있습니다.

 

그러나, 이를 이용하여 직접적인 악의적 DNS 응답으로 공격이 이뤄질 수도 있습니다.

 

따라서, 단순히 DNS 서버 안에 공격자가 원하는 IP 주소를 적기는 만만치 않죠....^^a

 

그럼, 참고하시기 바랍니다.

 

안녕히 계세요.

 

 

[출처] PowerComputing OF BlueStorm | BlueStorm ( http://blog.naver.com/lemonaroma98/60022468542 )

반응형

댓글()

DNS 운용시 알아 두면 좋은 것

리눅스/DNS|2015. 1. 26. 17:31
반응형

1. 버전 알아 내기와 감추기

   1) 로컬 서버에서 확인

       # named -v

   2) nslookup 이용

       # nslookup

       > server kns.kornet.net
       Default Server:  kns.kornet.net
       Address:  168.126.63.1

       > set class=chaos
       > set type=txt
       > version.bind
       Server:  kns.kornet.net
       Address:  168.126.63.1

       VERSION.BIND    text = "Cyber World Leader Kornet!"
       >

       * 보통 보안을 위해서 위와 같이 변경을 합니다.

   3) dig 이용

       # dig @kns.kornet.net txt chaos version.bind

       ; <<>> DiG 8.3 <<>> @kns.kornet.net txt chaos version.bind
       ; (1 server found)
       ;; res options: init recurs defnam dnsrch
       ;; got answer:
       ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44330
       ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
       ;; QUERY SECTION:
       ;;      version.bind, type = TXT, class = CHAOS

       ;; ANSWER SECTION:
       VERSION.BIND.           0S CHAOS TXT    "Cyber World Leader Kornet!"

       ;; Total query time: 1 msec
       ;; FROM: ns.telate.com to SERVER: 168.126.63.1
       ;; WHEN: Tue Jun  7 14:39:20 2005
       ;; MSG SIZE  sent: 30  rcvd: 81
   4) 버전 감추기

       - named.conf 파일에 아래와 같이 넣어 줍니다.

          options { version "x.x.x"; }

          // 이렇게 하면 버전 정보가 x.x.x 로 출력 됨.

 

2. DNS 캐시

   1) rndc 또는 ndc(bind8) 명령으로 캐시 내용을 추출함.

       # ndc dumpdb

       이후 named_dump.db 파일을 열어서 확인 함.

   2) 윈도우 OS에서 확인

       c:> ipconfig /displaydns  --> 캐시 내용이 출력됨.

       c:> ipconfig /flushdns  --> 캐시를 초기화 함.

       * 윈도우가 멍청해서 가끔 잘못된 dns lookup을 할 경우가 있음으로 위의 명령을

          활용하면 유용합니다.

 

3. BIND에서 보안 옵션들

    1) recursion 방지

        named.conf 에  options { allow-recursion { 172.0.0.1; 192.168.0.0/24; };}; 추가 하면

        해당 네트워크나 IP에서만 recursion 커리를 할 수 있음.

        * recursion 을 막아 두면 해당 도메인에 대한 네임서버만 쿼리에 대하여 리스폰스 합니다.

    2) 존트랜스퍼 방지

        named.conf 에 options { allow-transfer { 192.168.0.1; }; }; 추가 하여

        slave 네임서버만 zone transfer를 할 수 있도록 함.

        * bind가 기본값이 zone transfer 가 되도록 되어 있음으로 slave서버가 없다면

          options { allow-transfer ( none; }; };  으로 셋팅 하시기 바랍니다.

    3) zone transfer 되는지 확인하기

         # dig @ns.test.co.kr test.co.kr axfr

         # nslookup

         > server ns.test.co.kr

         > ls -t test.co.kr
         [ns.test.co.kr]
         *** Can't list domain telate.com: Unspecified error
         >

         * 보통 위와 같이 나오면 zone transfer 되지 않는 것임

           (zone transfer 는 TCP에서 동작 함)

 

4.  dig 유틸리티 사용

   1) 기본 사용법

        dig [@server] domain [<query-type>] [<query-class>] [+<query-option>]
             [-<dig-option>] [%comment]

          - @server : 네임서버 주소 기본값은 /etc/resolv.conf 값

          - domain : 질의 하고자 하는 도메인 ( . 을 사용 하면 root 도메인, -x 역도메인)

          - query-type

              a : network address

              any :  모든 정보 커리 함

              mx : mail exchanger

              soa : zone 파일 등록 정보

              hinfo : 호스트 정보

              axfr : zone transfer

              txt : text 형태

          - query-class

              in : Internet class domain
              any : all/any class information

          - +query-option

              +tree : 계층 구조를 알 수 있음.

              +multiline : zone 파일 설정 그대로 보여 줌

              +vc  : TCP로 쿼리를 함.

           * 기타 man 도움말을 활용 하기 바람.

    2) 응용 예

       - root 네임서버 알아 내기

          # dig @a.root-server.net. . ns

       - 국내 kr 네임서버 알아 내기

          # dig @a.root-server.net. kr. ns

       - zone transfoer 되는지 확인하기

          # dig @ns.test.co.kr test.co.kr axfr

       - bind 버전 알아 내기

          # dig @kns.kornet.net txt chaos version.bind

       - 역도메인 알아 내기

          # dig -x 192.168.0.1

       - soa 정보 보기

          # dig test.co.kr soa +multiline

        - 네임 서버로 부터 응답을 찾아 오는 과정 보기

          # dig test.co.kr +tree

 

5. dnstop 유틸리티 사용

    # dnstop -s fxp0    --> 여기서 fxp0 는 NIC장치명 (리눅스에서는 eth0)

     1 new queries, 94 total queries                   Tue Jun  7 14:54:40 2005

     SLD                           count      %
     -------------------- --------- ------
     co.kr                          78   83.0
     floweris.com                 5    5.3
     daejeonflower.com        2    2.1
     tongdaemun-flower.co   2    2.1
     thru-the.net                  2    2.1
     hyoksung.com              1    1.1
     hanmin.net                   1    1.1
     ultradns.org                 1   1.1
     ultradns.net                 1    1.1
     gunchi.org                   1    1.1

 

6. zone 파일 오류 찾기

   -  bind를 디버깅 모드로 실행
       # named -d 1 &
       named.run 파일에 관련 디버깅 메시지가 기록됨

       이 파일을 분석하면 대부분의 문법 오류 등을 찾을 수 있음.

 

 

작성 : 마그마(필명) putter@naver.com

 
 


반응형

댓글()

IP로 리버스 도메인 등록서버 확인하기

리눅스/DNS|2015. 1. 26. 17:31
반응형

# dig -x 211.110.10.126 +trace

 

위처럼 해당 IP로 질의해보면 최종적으로 어느 서버에 리버스도메인을 등록해야하는지 나옵니다.

반응형

댓글()