ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DNS 서버 2
    linux/centOS 2018. 7. 17. 14:25

    3) 도메인 등록

     

     

    RR(Record Type, Resource Record) 종류에 따른 등록 방법

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

    () NS Record Type (Name Server)

    linux2XX.example.com. IN NS ns1.linux2XX.example.com.

    ns1.linux2XX.example.com. IN A 172.16.9.2XX

     

    () A Record Type (Address)

    www.linux2XX.example.com. IN A 172.16.9.2XX

    ftp.linux2XX.example.com. IN A 172.16.9.2XX

    cafe.linux2XX.example.com. IN A 172.16.9.2XX

     

    () MX Record Type (Mail Exchange)

    linux2XX.example.com. IN MX 10 mail.linux2XX.example.com.

    mail.linux2XX.example.com. IN A 172.16.9.2XX

    linux2XX.example.com. IN MX 20 mail2.linux2XX.example.com.

    mail2.linux2XX.example.com. IN A 172.16.9.241

     

    () CNAME Record Type (Canonical Name)

    www IN A 172.16.9.2XX

    ftp IN A 172.16.9.2XX

    or

    www IN A 172.16.9.2XX

    ftp IN CNAME www

     

    () PTR Record Type (Pointer Address)

    2XX IN PTR ns1.linux2XX.example.com.

    2XX IN PTR www.linux2XX.example.com.

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

     

    (시나리오) 도메인 등록 요청이 들어 왔다. 요청이 들어온 내용을 확인해 보면 다음과 같다.

    WEB 서버 등록 요청: www.linuxXXX.example.com -> 172.16.9.XXX

    FTP 서버 등록 요청: ftp.linuxXXX.example.com -> 172.16.9.XXX

    MAIL 서버 등록 요청: mail.linuxXXX.example.com -> 172.16.9.XXX

    CAFE 서버 등록 요청: cafe.linuxXXX.example.com -> 172.16.9.XXX

     

     

    (도메인 등록 방법)

    () Forward Zone 파일에 등록

    # vi /var/named/chroot/var/named/exampleXXX.zone (Domain -> IP)

    -> 반드시 등록 해야 함. (www IN A 172.16.9.2XX)

    () Reverse Zone 파일에 등록

    # vi /var/named/chroot/var/named/exampleXXX.rev (IP -> Domain)

    -> 반드시 등록할 필요 없음. (2XX IN PTR www)

     

     

    Forward Zone 파일에 등록

    # cd /var/named/chroot/var/named

    # vi example2XX.zone

    $TTL 4

    @ IN SOA ns1.linux2XX.example.com. root.linux2XX.example.com. (

    42 ; serial (d. adams)

    3H ; refresh

    15M ; retry

    1W ; expiry

    1D ) ; minimum

    IN NS ns1

    ns1 IN A 172.16.9.2XX

     

    ;; (1) WEB Server

    www IN A 172.16.9.2XX

    ;; (2) FTP Server

    ftp IN A 172.16.9.2XX

    ;; (3) MAIL Server

    linux2XX.example.com. IN MX 10 mail.linux2XX.example.com.

    mail IN A 172.16.9.2XX

    ;; (4) etc

    cafe IN A 172.16.9.2XX

    -> 실습할 때는 Reverse Zone 파일에 등록하지는 않는다.

    -> Reverse Zone 파일에는 반드시 등록할 필요가 없기 때문이다.

    -> 이 파일에 Zone Entry를 등록할 때 필드와 필드 구분은 탭/스페이스로 한다.(권장: )

     

    # service named restart

    -> Zone 파일이 수정되면 변경된 사항을 적용시키기 위해서 데몬(named) restsart가 필요하다.

    -> 서비스를 restart 할때는 반드시 /var/log/messages 파일을 같이 모니터링 한다.

    # nslookup www.linux2XX.example.com (# nslookup www)

    # nslookup ftp.linux2XX.example.com (# nslookup ftp)

    # nslookup cafe.linux2XX.example.com (# nslookup cafe)

    # nslookup -q=MX linux2XX.example.com

     

    DNS와 웹서버 연동

     

    ----- DNS Client ---- ----- DNS Server ----- ---- WEB Server -----

     

    http://www.linuxXXX.example.com ------> named(53)

    <------ # cat exampleXXX.com

    www.linuxXXX.example.com. IN A 172.16.9.XXX

     

    ----------------------------------------------------> httpd(80)

    <---------------------------------------------------- httpd.conf

      

     

    # ls /etc/httpd/conf --> httpd.conf 파일 존재 확인

    httpd.conf magic

     

    # ls /var/www/html --> index.html 파일 존재 확인

    #

    -> index.html 파일 존재하지 않는다.

    # cp /etc/passwd /var/www/html/index.html

     

    # service httpd restart

    Stopping httpd: [FAILED]

    Starting httpd: [ OK ]

     

    [참고] 리눅스에서 호스트이름(Hostname) 변경하는 경우

    # system-config-network-tui

    or

    # vi /etc/sysconfig/network 파일 수정

    # vi /etc/hosts <----- 일부 프로그램들이 호스트이름을 확인(: oracle, apache, ....)

    # service network restart

     

    [참고] "service httpd restart" 에러메세지

    # service httpd restart

    Stopping httpd: [FAILED]

    Starting httpd: httpd: apr_sockaddr_info_get() failed for linux249.example.com

    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for

    ServerName

    # vi /etc/hosts

    .......

    172.16.9.2XX linux2XX.example.com linux2XX

    # service httpd restat

     

    # pgrep -lf httpd (# ps -ef | grep httpd)

    5836 /usr/sbin/httpd

    5838 /usr/sbin/httpd

    5839 /usr/sbin/httpd

    5840 /usr/sbin/httpd

    5841 /usr/sbin/httpd

    5842 /usr/sbin/httpd

    5843 /usr/sbin/httpd

    5844 /usr/sbin/httpd

    5845 /usr/sbin/httpd

     

    윈도우 창에서 확인(IP 확인)

    (Linux) # firefox http://172.16.9.2XX

     

    윈도우 창에서 확인(도메인 이름으로 확인)

    (Linux) # firefox http://www.linux2XX.example.com

     

    # cd /var/www/html

    # vi index.html

    <HTML>

    <BODY>

    <CENTER><H1>linux2XX</H1></CENTER>

    </BODY>

    </HTML>

     

    윈도우 창에서 확인 (http://www.linux2XX.example.com)

    -> http://www.linux2XX.example.com

    -> 파트너시스템들에 대해서 http://www.linux249.example.com 요청을 해 본다.

     

    (Linux) # firefox http://www.linux2XX.example.com

    (Linux) # firefox http://www.linux249.example.com

     

     

     

    4) DNS 부하 분산(DNS Load Balancing)

     

    (L4 부하분산)

     

    +------ Web1 ------+

    | |

    ----- L4 ------+------ Web2 ------+------ NAS/NFS

    | |

    +------ Web3 ------+

     

     

    (DNS 부하분산)

     

    +------ Web1 ------+

    | |

    ---- DNS ------+------ Web2 ------+------ NAS/NFS

    | |

    +------ Web3 ------+

     

    DNS load balancer는 오로지 round robin(순서대로 돌아가면서 배정) 밖에 사용할 수 없다.

    L4 switchRR(round robin) 외에 다른 여러 기능들도 사용할 수 있다.

     

     

    다음은 "Windows Vista""cmd" 창에서 실행한것이다.

     

    <CTRL + ESC> => cmd => <ENTER>

     

    c:\> nslookup www.daum.net

    서버: qns1.hananet.net

    Address: 210.220.163.82

     

    권한 없는 응답:

    이름: top.g.daum.net

    Addresses:211.115.77.213

    211.115.77.214

    211.32.117.30

    211.115.77.211

    211.115.77.212

    Aliases: www.daum.net

     

    c:\> nslookup www.daum.net

    서버: qns1.hananet.net

    Address: 210.220.163.82

     

    권한 없는 응답:

    이름: top.g.daum.net

    Addresses:211.115.115.212

    222.231.51.40

    222.231.51.77

    222.231.51.78

    211.115.115.211

    Aliases: www.daum.net

     

    c:\> nslookup www.daum.net

    서버: qns1.hananet.net

    Address: 210.220.163.82

     

    권한 없는 응답:

    이름: top.g.daum.net

    Addresses:211.115.77.214

    211.32.117.30

    211.115.77.211

    211.115.77.212

    211.115.77.213

    Aliases: www.daum.net

    -> 1~2초 정도에 한번씩 nslookup 명령어를 통해 정보를 요청해 보면, 첫번째 오는 아이피 주소가 변경된다는 것을

    알수 있다. 출력된 내용의 첫번째 아이피쪽으로 도메인에 대한 IP 요청을 하게 된다.

     

     

     

    (시나리오) 다음과 같이 도메인 등록을 해 달라고 요청이 들어왔다. 하나의 도메인 이름에 대해서 3개의 아이피가

    연결 된다고 한다.

    도메인이름(www.linux2XX.example.com) -> (172.16.9.2, 172.16.9.3, 172.16.9.4)

     

    Forward Zone 파일에 등록

    # cd /var/named/chroot/var/named

    # vi example2XX.zone

    $TTL 4

    @ IN SOA ns1.linuxXXX.example.com. root.linuxXXX.example.com. (

    42 ; serial (d. adams)

    3H ; refresh

    15M ; retry

    1W ; expiry

    1D ) ; minimum

    IN NS ns1

    ns1 IN A 172.16.9.XXX

     

    ;; (1) WEB Server

    ;www IN A 172.16.9.2XX <----- 주석(;)처리

    www IN A 172.16.9.2 <----- 새로운 라인 등록

    www IN A 172.16.9.3 <----- 새로운 라인 등록

    www IN A 172.16.9.4 <----- 새로운 라인 등록

     

    ;; (2) FTP Server

    ftp IN A 172.16.9.XXX

     

    ;; (3) MAIL Server

    IN MX 10 mail

    mail IN A 172.16.9.XXX

     

    ;; (4) etc

    cafe IN A 172.16.9.XXX

     

    # service named restart

    -> Zone 파일 수정 내용 적용

     

    DNS 부하 분산 테스트

    # nslookup www.linux2XX.example.com (# nslookup www)

    Server: 172.16.9.XXX

    Address: 172.16.9.XXX#53

     

    Name: www.linuxXXX.example.com

    Address: 172.16.9.3

    Name: www.linuxXXX.example.com

    Address: 172.16.9.4

    Name: www.linuxXXX.example.com

    Address: 172.16.9.2

     

    # nslookup www.linux2XX.example.com (# nslookup www)

    Server: 172.16.9.XXX

    Address: 172.16.9.XXX#53

     

    Name: www.linuxXXX.example.com

    Address: 172.16.9.2

    Name: www.linuxXXX.example.com

    Address: 172.16.9.3

    Name: www.linuxXXX.example.com

    Address: 172.16.9.4

     

    # nslookup www.linux2XX.example.com (# nslookup www)

    Server: 172.16.9.XXX

    Address: 172.16.9.XXX#53

     

    Name: www.linuxXXX.example.com

    Address: 172.16.9.4

    Name: www.linuxXXX.example.com

    Address: 172.16.9.2

    Name: www.linuxXXX.example.com

    Address: 172.16.9.3

     

     

     

    5) Master DNS Server/ Slave DNS Server 구축

     

    ----- Master DNS Server ----- ----- Slave DNS Server -----

    (172.16.9.2XX) (172.16.9.1XX)

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

     

    [그림] 실습 구조(Master/Slave DNS Server)

     

    (전제조건) Master DNS ServerClone을 통해 Slave DNS Server를 구축한다.

    [Master DNS Server] Original OS

    Master DNS Server 네트워크 설정 파일들의 MAC 주소를 삭제한다.

    # vi /etc/sysconfig/network-scripts/ifcfg-eth0

    # vi /etc/sysconfig/network-scripts/ifcfg-eth1

     

     

    [Slave DNS Server] Clone OS

    Power ON

    네트워크 설정

    - 호스트 이름 : linux2XX.example.com -> linux1XX.example.com

    - 아이피 : (eth0) 172.16.9.2XX -> 172.16.9.1XX

    (eth1) 192.168.10.2XX -> 192.168.10.1XX

    - /etc/hosts 파일 편집 (-> # service sendmail restart)

    172.16.9.1XX linux1XX.example.com linux1XX

    로그아웃 -> 로그인

     

    [Master DNS Server] Original OS

    Power ON

     

    Master DNS Server : 172.16.9.2XX (ns1.linuxXXX.example.com)

    Slave DNS Server : 172.16.9.1XX (ns2.linuxXXX.example.com)

     

    한개의 도메인(example2XX.com)에 두개의 DNS 서버(ns1/ns2.example2XX.com)가 존재한다.

    두개의 DNS 서버는 각각 다른 IP(172.16.9.2XX/172.16.9.1XX)를 가지고 있다.

    (윈도우) cmd.exe

    <CTRL + ESC> => "cmd"

    C:\> nslookup q=NS seoul.ac.kr

    C:\> nslookup q=NS kornet.net

    C:\> nslookup q=NS naver.com

    C:\> nslookup q=NS daum.net

     

     

    [Master DNS Server] 172.16.9.2XX

    -> Master DNS 서버의 전원 ON

     

    주설정 파일 정보 확인 및 설정

    Master DNS 서버에서 주 설정 파일은 특별히 설정할 필요가 없다.

     

    # cat /etc/named.caching-nameserver.conf (# vi /var/named/chroot/etc/named.caching-nameserver.conf)

    -> 정보만 확인

     

    # vi /etc/named.rfc1912.zones (# vi /var/named/chroot/etc/named.rfc1912.zones)

    ..... (중략) .....

    zone "0.in-addr.arpa" IN {

    type master;

    file "named.zero";

    allow-update { none; };

    };

     

    zone "linux2XX.example.com" IN {

    type master;

    file "exampleXXX.zone";

    also-notify { 172.16.9.1XX; 172.16.9.2XX; }; <----- 라인 추가

    };

     

    zone "9.16.172.in-addr.arpa" IN {

    type master;

    file "exampleXXX.rev";

    also-notify { 172.16.9.1XX; 172.16.9.2XX; }; <----- 라인 추가

    };

    "also-notify { 172.16.9.140; 172.16.9.2XX; };" 자신의 Slave DNS 서버에게 변경 사항을 알려주는 설정

    (주의) 이 설정이 없으면, 실시간적으로 Slave DNS 서버에 업데이트가 가능하지 않다.

    Forward-Zone/Reverse-Zone 파일 설정

    # cd /var/named/chroot/var/named

    # ls

    data example2XX.zone localhost.zone named.ca named.ip6.local named.zero

    example2XX.rev localdomain.zone named.broadcast named.ca.old named.local slaves

    -> Forward Zone, Reverse Zone 파일을 변경할 것이다.

     

    # vi example2XX.zone

    $TTL 4

    @ IN SOA ns1.linux2XX.example.com. root.linux2XX.example.com. (

    42 ; serial (d. adams)

    3H ; refresh

    15M ; retry

    1W ; expiry

    1D ) ; minimum

    IN NS ns1

    IN NS ns2 <----- 새로운 라인 추가

    ns1 IN A 172.16.9.2XX

    ns2 IN A 172.16.9.1XX <----- 새로운 라인 추가

     

    ;; (1) Web Server

    ;www IN A 172.16.9.2XX

    www IN A 172.16.9.2

    www IN A 172.16.9.3

    www IN A 172.16.9.4

     

    ;; (2) FTP Server

    ftp IN A 172.16.9.2XX

     

    ;; (3) MAIL Server

    IN MX 10 mail

    mail IN A 172.16.9.2XX

     

    ;; (4) etc

    cafe IN A 172.16.9.2XX

     

    # vi exampleXXX.rev

    $TTL 4

    @ IN SOA ns1.linuxXXX.example.com. root.linuxXXX.example.com. (

    1997022700 ; Serial

    28800 ; Refresh

    14400 ; Retry

    3600000 ; Expire

    86400 ) ; Minimum

    IN NS ns1.linux2XX.example.com.

    IN NS ns2.linux2XX.example.com. <----- 새로운 라인 추가

    2XX IN PTR ns1.linux2XX.example.com.

    1XX IN PTR ns2.linux2XX.example.com. <----- 새로운 라인 추가

     

    존 파일 수정 적용

    /var/log/messages 파일을 모니터링 하면서 namedrestart 한다.

     

    [TERM1] # tail -f /var/log/messages

    [TERM2] # service named restart

     

    # nslookup -q=NS linux2XX.example.com

    Server: 172.16.9.249

    Address: 172.16.9.249#53

     

    linux249.example.com nameserver = ns1.linux249.example.com.

    linux249.example.com nameserver = ns2.linux249.example.com.

    [Slave DNS Server]

    -> Slave DNS 서버의 전원 ON

     

    네트워크 설정

    Slave DNS 서버는 Master DNS 서버를 Clone 한것이므로 IP 설정이 같다. 따라서 IP 설정이 중첩되므로 IP 설정 부터 해야 한다.

    Slave DNS 서버를 부팅한 후에 "system-config-network-tui" 실행후 IP 설정을 할 때, DHCP에 체크가 되어 있을 것이다. 그럼 DHCP 체크를 제거하고 IP 설정을 한다.

     

    # system-config-network-tui (# setup)

    -> 네트워크 설정을 한다.

     

    Static IP : 172.16.9.1XX / 255.255.255.0

    DNS Server : 172.16.9.2XX

    DNS Server : 172.16.9.1XX

     

    Hostname : linux1XX.example.com

    Primary DNS : 172.16.9.2XX

     

    /etc/hosts 파일 편집

    /etc/sysconfig/network-scripts/ifcfg-(eth0|eth1).bak 삭제

     

    # service network restart

    -> 설정 내용 적용

     

    주 설정 파일 확인 및 설정

     

    (필요하면 명령어 수행)

    # vi /etc/resolv.conf

    # yum -y install caching-nameserver

    # vi /etc/named.caching-nameserver.conf

    # vi /etc/named.rfc1912.zones

    # cd /var/named/chroot/var/named

    # ls

     

     

    # cat /etc/named.caching-nameserver.conf

    -> 내용만 확인한다.

     

    # vi /etc/named.rfc1912.zones

    ..... (중략) .....

    };

     

    zone "0.in-addr.arpa" IN {

    type master;

    file "named.zero";

    allow-update { none; };

    };

     

    zone "linux2XX.example.com" IN {

    type slave; <----- 정보변경(master -> slave)

    masters { 172.16.9.2XX; }; <----- 새로운 라인 추가(172.16.9.2XX : Master DNS Server)

    file "slaves/example2XX.zone"; <----- 정보변경

    };

     

    zone "9.16.172.in-addr.arpa" IN {

    type slave; <----- 정보변경(master -> slave)

    masters { 172.16.9.2XX; }; <----- 새로운 라인 추가(172.16.9.2XX : Master DNS Server)

    file "slaves/example2XX.rev"; <----- 정보변경

    };

     

    # service named restart

    -> 변경 내용 적용

     

    존 파일 확인

    # cd /var/named/chroot/var/named/slaves

    # ls -l

    -rw-r--r-- 1 named named 419 Aug 8 11:23 exampleXXX.rev

    -rw-r--r-- 1 named named 567 Aug 8 11:23 exampleXXX.zone

    -> 2개의 파일이 만들어진것을 확인 할 수 있다.

     

    # cat exampleXXX.zone

    $ORIGIN .

    $TTL 4 ; 4 seconds

    linuxXXX.example.com IN SOA ns1.linuxXXX.example.com. root.linuxXXX.example.com. (

    42 ; serial

    10800 ; refresh (3 hours)

    900 ; retry (15 minutes)

    604800 ; expire (1 week)

    86400 ; minimum (1 day)

    )

    NS ns1.linuxXXX.example.com.

    $ORIGIN linuxXXX.example.com.

    cafe A 172.16.9.XXX

    ftp A 172.16.9.XXX

    MX 10 mail

    mail A 172.16.9.XXX

    ns1 A 172.16.9.XXX

    www A 172.16.9.2

    A 172.16.9.3

    A 172.16.9.4

     

    # cat exampleXXX.rev

    $ORIGIN .

    $TTL 4 ; 4 seconds

    9.16.172.in-addr.arpa IN SOA ns1.linuxXXX.example.com. root.linuxXXX.example.com. (

    1997022700 ; serial

    28800 ; refresh (8 hours)

    14400 ; retry (4 hours)

    3600000 ; expire (5 weeks 6 days 16 hours)

    86400 ; minimum (1 day)

    )

    NS ns1.9.16.172.in-addr.arpa.

    $ORIGIN 9.16.172.in-addr.arpa.

    140 PTR ns2

    XXX NS ns2

    PTR ns1

     

     

    ☆  dns 보안 및 참고

    (1) DNS 서버 점검

     

    회사에서 DNS 서버를 구축하고 DNS 서버가 정상적으로 세팅이 되었는지, 또는 보안적인 설정이 잘 되었는지 확인 하기 위해서는 "한국인터넷진흥원"에서 제공하고 있는 점검 서비스를 이용하면 된다.

     

    DNS 보안 설정 점검 사이트

    http://krnic.or.kr/jsp/business/operate/dnsModify.jsp

     

    DNS 최적화 설정 점검 사이트

    http://www.serverchk.com

    http://www.dnsstuff.com

    http://www.dnsreport.com

     

     

    (2) DNS 보안

     

    DNS 보안에 대한 몇가지 이슈

    chroot 환경 설정

    DNS 프로그램 업데이트/패치

    allow-transfer, allow-query 사용

    최근 보안 버그 확인

    인증방식/데이터암호화

     

    'linux > centOS' 카테고리의 다른 글

    FTP  (0) 2018.07.20
    웹 서버  (0) 2018.07.18
    DNS 서버 1  (0) 2018.07.12
    네트워크 설정  (0) 2018.07.11
    centos  (0) 2018.07.10

    댓글

Designed by Tistory.