ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] DNS
    서버/리눅스 2017. 4. 28. 19:43

    DNS ( Domain Name Server / Service ) 

    port 53 ( 데몬 : named )

    네트워크 IP로 통신하는 번거로움을 Domain Name으로 바꿔서 사용할 수 있는 서비스를 하는 서버를 뜻한다.


    Domain name Server는 트리형태로 되어있어서 최상위 (.)서버부터 맨 뒷 DNS로 이루어져 있다.


    또한 DNS서버는 최초접속시 도메인이름과 IP를 매칭시킨 값을 파일에 저장시키고 다음부터 파일을 먼저 참조하게 되며


    파일에 작성된 도메인은 DNS를 접속하지않고 바로 IP로 매칭해서 서버에 접속할 수 있다.


    이 파일을 악용한게 [ 파밍 ] 이다. ( 파밍 : 도메인을 속여 상대방의 회원정보를 탈취 )

     

    #naver 찾아갈때 경로

    내 DNS(통신사) >> (.) DNS야 모르겠어

                         << (.) com  찾아가바

    내 DNS            >> com.아 모르겠어

        << naver DNS가바

    내 DNS            >> naverDNS야 모르겠어

         << 아그거 내 main도메인이야 연결해줄께


    #실습

    Server( bind.x86_64 )

    #>yum -y install bind.x86_64


    #설정파일

    DNS는 설정사항을 필수적으로 만들어야한다.

    /etc/named.conf                    : DNS데몬

    /etc/named.rfc1912.zone         : 클라이언트 연결파일 ( 어떤 도메인을 연결할지 정한다. )
    /var/named/*

    #>vi /etc/named.conf

    13 listen-on port 53 { any; };

    14 listen-on-v6 port 53 { any; };

    19 allow-query { any; };

    :wq

    : 초기값은 localhost 나 자신으로 되어있으므로 클라이언트가 아무리 요청해도 서버가 요청한게 아니기에 동작하지 않는다.

     따라서 any로 모두 변경한다 ( 라인넘버는 파일마다 다를 수 있다. )


    #>vi /etc/named.rfc1912.zones

    #>named-checkconf /etc/named.rfc1912.zones      : 파일체크 아무것도 안뜨면 오타가 없다는 것이다.


    맨아레에 zone ~ in 부분을 변경한다.  : 등록할 도메인


    type master : 모든것을 가지고 있다.

     slave   : 종속되어 있다.

     

    file은 zone이름 .zone이라고 만들어준다.

     

    allow-update : 실시간 update

    #>cd /var/named

    #>cp named.empty korea.com.zone    #empty는 연습용파일 ( 비어있는 ) 아까 설정했는 파일이름으로 복사한다.

    #>vi korea.com.zone

     

    :wq

    #>named-checkzone korea.com korea.com.zone

    loaded serial 0 : (정상이라고 뜬것이다.)

    #serial : zone 정보가 업데이트 되었는지를 슬레이브 네임서버에 전달하기 위해 사용 하는 숫자

    #refresh : 슬레이브 네임서버가 얼마를 주기로 마스터서버에 접속해서 정보를 점검할지 결정하는 시간

    #

    #>chown .named korea.com.zone

    #>systemctl restart named

     

    SOA ( start of authority ) : 도메인정보를 담고있다 라고 선언

    참고 : http://blog.missflash.com/534

    $TTL(Time to live)    :    도메인 서버 매칭시간 설정 ( 설정된 시간동안 다시물어보지않고 찾았던 결과를 던져준다. )

    @       :    해당 도메인이름을 말한다.

    ns.korea.com    : 네임서버이름 

    root.korea.com. : root@korea.com  (골뱅이는 맨앞과 충돌나므로 메일주소를 이렇게 입력! )

    (

    ; 콜론은 주석으로 사용된다.

    0       ; serial

    zone 정보가 업데이트 되었는지를
     슬레이브 네임서버에 전달하기 위해 사용 하는 숫자


                                            1D      ; refresh
     슬레이브 네임서버가 얼마를 주기로 마스터 서버에
     접속해서 정보를 점검할지 결정하는 시간


                                            1H      ; retry
     슬레이브 네임서버에서 마스터 서버 접근 실패시
     얼마나 후에 접근할지 결정하는 시간


                                            1W      ; expire
     슬레이브 네임서버가 retry 를 얼마동안 허용할지
     결정하는 시간


                                            3H )    ; minimum
     잘못된 호스트 정보를 저장할 시간

    )

    korea.com DNS의 네임서버이름은 : ns.korea.com 하위도메인서버없음 자기자신이 서버, 네임서버, 웹서버로 동작한다.

    NS <도메인 > : 네임서버의 도메인 설정 (공백은 자동으로 @로 자동으로 들어간다

    A <도메인> : 해당 도메인의 IP주소를 지정한다. ( 서버로 동작할 ip )

    @ NS <도메인>

    @ A   <도메인> 은 세트다

    ns IN A : 네임서버 ( 도메인서버만 가지고 있음 )

    www IN A : 웹서버 ( 웹서버만 가지고 있음 (host) )

    : 설정끝 실행!

     

    DNS 서비스 확인

    DNS자동할당을 하면 위와같은 방법으로 DNS를 찾는다.

    하지만 고정 DNS IP를 설정하면 바로 DNS를 찾아가는 번거로움을 줄일수 있다.

    #windows

    DNS 동작 확인 (window - cmd - nslookup)

     

    (ns.korea.com은 현재 누가사용중이므로 ip로 서버를 변경하고 테스트한다.)

    다 잘동작하는것을 알수있었다.

    #window

     


    바로 server로 접속할 수 있다.

    ( 실습후 다시 자동으로 DNS서버주소를 받아주시면 됩니다. )


    DNS 위임

    상위도메인은 하위도멘들의 대한 정보를 제공할 수 있다.

    예를들어 naver.com에는 카페, 메일, 블로그 들이 있다. 이 각각의 도메인들을 참조할때 naver.com 도메인을 참조하면

    blog.naver.com cafe.naver.com mail.naver.com 들의 도멘인을 제공받을 수 있지만.

    blog.naver.com를 직접참조하면 cafe.naver.com와 mail.naver.com 도메인을 제공받지 못한다. 


    #실습

    1차 DNS : korea.com

    #>vi /var/named/korea.com.zone

    #맨아래에 입력

    edu    IN    NS    ns.edu.korea.com

    ns.edu.korea.com     IN     A     100.100.100.129

    :wq

    #>cd /var/named

    #>named-checkzone korea.com korea.com.zone


    edu 네임서버의 도메인은 ns.edu.korea.com (edu네임서버는 www.edu.korea.com이 본 서버네임이다)

    ns.edu.korea.com. 의 IP를 불러준다. ( 클라이언트로 사용하던 리눅스를 서버로 쓰자. ) 

    파일체크 


    #100.100.100.129 ( 클라이언트였던 서버 )

    #>yum install -y bind.x86_64 

    3가지 설정파일을 똑같이 변경한다

    /etc/named.conf > 14 15 19 라인 { any; } 로 변경

    /etc/named.rfc1912.zones > korea.com에서 도메인 위치를 말해줄것이기에 맨아래에 아래와 같이 추가 작성한다.

    #맨아랫줄

    zone "edu.korea.com" IN {

            type master;

            file "edu.korea.com.zone";

            allow-update { none; };

    };

    :wq

    #>named-checkconf /etc/named.rfc1912.zones

    #>chown .named /var/named/edu.korea.com.zone

    3번째 작성파일은 네임서버를 구분하기 위해 서버이름과 같은 파일로 만든다.

    #>cd /var/named

    #>cp named.empty edu.korea.com.zone

    #>vi edu.korea.com.zone

    $TTL 3H

    @       IN SOA  ns.edu.korea.com. root.edu.korea.com. (

                                            0       ; serial

                                            1D      ; refresh

                                            1H      ; retry

                                            1W      ; expire

                                            3H )    ; minimum


            IN      NS      ns.edu.korea.com.

            IN      A       100.100.100.129

    ns      IN      A       100.100.100.129

    www     IN      A       100.100.100.129

    :wq

    위와같이 변경후 최상위 도메인부터 데몬을 재시작합니다.

    100.100.100.128#>systemctl restart named

    100.100.100.129#>systemctl restart named


    window > ctrl R(실행) > cmd > nslookup > 확인해본다.


     

    Web(port 80 | httpd.x86_64 )

     

    리눅스 - Apache

    Windows - IIS

    꼭 이것만 사용하라는 것이 아니라 OS마다 적합한 웹서비스가 있다.

    >> 다음포스터에서 계속

     

     

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

    [리눅스] 방화벽 ( Firewalld )  (0) 2017.05.04
    [리눅스] DNS설정 후 웹서버  (0) 2017.05.02
    [리눅스] SSH(Secure Shell)  (0) 2017.04.27
    [리눅스] Telnet  (0) 2017.04.26
    [리눅스] xinetd ( 서비스관리 데몬 )  (0) 2017.04.26

    댓글

Designed by Tistory.