본문 바로가기
프로그래밍/NETWORK HACKING

[네트워크 보안] DNS 역질의 구조 설계

by B T Y 2017. 7. 24.
반응형

DNS 역질의 구조 설계에 대해서 정리한다.

 

 

DNS Server 구축

 

1. bind

  #> yum install -y bind.i686
  #> yum install -y bind-utils.i686

 

2. 캐시 서버 설정
  - /etc/named.conf

 

 


3. bind 실행
  * DNS 캐시서버가 제대로 작동하지는지 nslookup이나 ping을 보내서 확인해볼수 있다.
  * listen-on port 53, allow-query를 any;로 설정 했는데 안된다면
    dns 보안 설정 문제로 dnssec-enable, dnssec-validation 설정을 no로 해주면 될수도 있다.

  * 설정한 DNS 서버에 도메인 정보가 없다면 기본적으로 캐시서버로 동작하게 된다.

 

 

( netstat -anu 명령어를 통해서 확인해보면 DNS 포트인 53번(UDP) 포트가 열려있는걸 확인 해볼수 있다 )

 

 

( 클라이언트인 윈도우에서 DNS 서버 주소를 설정해준다음에 ping을 이용해서

DNS 서비스가 제대로 동작하는지 확인해본다 )

 

 

( nslookup을 이용한 확인으로 DNS 서버가 정상적으로 작동한다면 위 그림처럼 동작한다 )

 

 

( 리눅스에서는 nslookup 명령어를 사용할때 서버를 직접 지정해줘야 된다 )

 

 

- DNS 서버 직접 구축 해보기( 구축 정보 )

 

도메인을 관리할 네임서버를 구축

  - 해당 도메인에 대한 권한을 가진다.

도메인 이름: black.net

  * 도메인 이름을 만들때 FQDN을 만족시켜줘야된다. ( .com , .net , .co.kr , ... )\
    ( 계층 구조에서 표현 가능한 이름 )

 

권한이 있는 서버: 192.168.6.112
권한이 있는 서버의 이름: ns.black.net

서브 도메인: www.black.net  -> 192.168.6.110
             mail.black.net  -> 192.168.6.123
            
ftp.black.net  -> 192.168.6.225
             ns.black.net  -> 192.168.6.112
 


1) 설정

  - /etc/named.rfc1912.zones

  * 해당 파일안에 구축할 서버 내용을 맨밑에 추가 시켜준다.
  * 설정후에 named-checkconf라는 명령어를 통해서 설정 파일에 오류를 검사해보고 에러가 없다면
    아무것도 뜨지 않는다.
    ( 예) named-checkconf /etc/named.rfc1912.zones )

 

 

 

( /etc/named-rfg1912.zones 설정파일에 해당 내용을 설정 해주고 file은 dns 홈디렉터리인

/var/named 안에 만들어서 설정해준다 )

 

 

 

 
- /var/named/black.net.zone 설정 내용

 

$TTL 30 ; 유효시간 ( 기본은 초단위 )
black.net.       IN SOA  ns.black.net. root.black.net. (
                                        20170721       ; serial
                                        30      ; refresh
                                        30      ; retry
                                        30      ; expire
                                        10 )    ; minimum
black.net. IN A 192.168.6.112
black.net. IN NS ns.black.org.

ns.black.net. IN A 192.168.6.112

 

www.black.net. IN A 192.168.6.110
mail.black.net. IN A 192.168.6.123
ftp.black.net. IN A 192.168.6.225


* @은 black.net.의 줄임표현
  ( 뒤에 .을 빼면 서브도메인으로 인식해 뒤에 메인 도메인이 한번 더 붙는다 )


클래스: 인터넷 클래스(IN)
  * 예전에는 다른 클래스도 있었지만 이제는 인터넷 클래스바께 없기 때문에 생략 가능하다.

레코드: 질의 하려는 도메인의 종류

        SOA( Start Of Authority ): 권한이 있는 네임서버
        A( Address ): 해당 도메인의 주소(ipv4)
        AAAA: ipv6
        MX( Mail eXchanger ): 메일서버
        NS( Name Server ): 네임서버
        CNAME( Canonical name ): 별칭
        ...


* root.black.net.은 관리자의 메일주소를 나타내는 필드
  ( 해당 설정파일에서 @은 다른 의미로 쓰이기 때문에
root@black.net. 대신에 .을 써준다 )

* named-checkzone black.net /var/named/black.net.zone
  ( zone 설정파일 에러 체크는 named-checkzone <확인할 도메인> <파일위치>이고 OK가 뜨면 에러 없음 )

 

 

( named-checkzone 명령어를 이용해 해당 도메인에 대한 설정파일 확인을 해주고 이상이 없으면 서비스를 재시작해준다 )

 

 

( nslookup을 통해서 설정 해둔 내용대로 DNS 서버가 동작하는지를 확인해보고 정상적으로

동작하지 않는다면 설정파일이나 네트워크 자체를 확인 해보는 방식으로 문제를 해결한다 )

 

 

 

- DNS 서버 역질의 구조 설계

  * 실제 DNS 서버 개념을 이해하기 위해서 크기만 축소시켜서 구축 해봤기 때문에 구조나 동작 원리는 똑같다.

 

   security.org(ROOT DNS): 192.168.6.200

 

                    main.security.org: 192.168.6.112

 

red.main.security.org: 192.168.6.123
  - win.red.main.security.org
  - linux.red.main.security.org
black.main.security.org: 192.168.6.112
  - win.black.main.security.org
  - linux.black.main.security.org
blue.main.security.org: 192.168.6.110
  - win.blue.main.security.org
  - linux.blue.main.security.org

 

 

- main.security.org

$TTL 30 ;
main.security.org.       IN SOA  ns.main.security.org. root.main.security.org. (
                                        20170721       ; serial
                                        30      ; refresh
                                        30      ; retry
                                        30      ; expire
                                        10 )    ; minimum
main.security.org. IN A 192.168.6.112
main.security.org. IN NS ns.main.security.org.
ns.main.security.org. IN A 192.168.6.112

 

red.main.security.org.  IN NS ns.red.main.security.org.
ns.red.main.security.org. IN A 192.168.6.123
black.main.security.org. IN NS ns.black.main.security.org.
ns.black.main.security.org. IN A 192.168.6.112
blue.main.security.org.  IN NS ns.blue.main.security.org.
ns.blue.main.security.org. IN A 192.168.6.110

 

 

- black.main.security.org

$TTL 30 ;
black.main.security.org.       IN SOA  ns.black.main.security.org. root.black.main.security.org. (
                                        20170721       ; serial
                                        30      ; refresh
                                        30      ; retry
                                        30      ; expire
                                        10 )    ; minimum
black.main.security.org. IN A 192.168.6.112
black.main.security.org. IN NS ns.black.main.security.org.
ns.black.main.security.org. IN A 192.168.6.112

 

win.black.main.security.org. IN A 192.168.6.12 
linux.black.main.security.org. IN A 192.168.6.112

 

 

반응형

댓글