[리눅스마스터1급2차] DNS

gosu·2023년 10월 31일
0
post-thumbnail

DNS란?

  • 도메인과 IP 주소를 상호 변환하는 서비스입니다.
  • TCP-53, UDP-53 포트를 사용합니다.

DNS 서버의 종류

  • Primary Name Server : 마스터 서버입니다.
  • Secondary Name Server : Slave 서버로, 마스터 서버의 zone 파일 백업, 마스터에 문제 발생 시 보조 DNS로 사용됩니다.
  • Cashing Name Server : 도메인 관리 시 리졸빙 역할을 수행합니다.

DNS 서비스 설치

yum -y install bind

/etc/named.conf 파일

  • options, acl, logging, zone 등의 주요 구문이 있습니다.
  • 끝은 무조건 세미콜론 으로 끝나야합니다.
  • cat /etc/named.conf 명령어로 named.conf 파일의 정보를 출력하면 다음과 같습니다.

[root@localhost etc]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {
	listen-on port 53 { 127.0.0.1; };
	listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
	statistics-file "/var/named/data/named_stats.txt";
	memstatistics-file "/var/named/data/named_mem_stats.txt";
	recursing-file  "/var/named/data/named.recursing";
	secroots-file   "/var/named/data/named.secroots";
	allow-query     { localhost; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.root.key";

	managed-keys-directory "/var/named/dynamic";

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
	type hint;
	file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

/usr/share/doc/bind-9.11.4/sample/etc/named.conf

  • 다음 경로에서 sample named.conf를 확인할 수 있다

1. options 구문의 주요 설정 항목

  • forward : forwarders 옵션과 함께 사용하며 only 혹은 first의 값을 가진다.
    • only : 도메인 질의를 대신 받아준 다른 서버가 무응답시 자신도 무응답
    • first : 타 서버 무응답시 대신 응답
  • allow-query : 네임 서버에 질의할 수 있는 호스트 지정
  • allow-transfer : 존 파일 내용을 복사할 대상 제한
  • datasize : DNS 정보 캐싱에 사용할 메모리 크기 제한

2. acl 구문의 설정 항목

  • 여러 호스트들을 하나의 이름으로 지정하여 options 구문에 적용할 수 있다.
    • allow-query
    • allow-transfer

3. zone 파일

  • SOA (Start Of Authority) : 존파일을 시작하는 레코드
  • 도메인
    • 전체 도메인 지정시 : 맨 뒤에 . 작성
    • 호스트 명만 지정시 : 호스트명.도메인명
  • 타입
    • A : IPv4 주소
    • AAAA : IPv6 주소
    • NS : 도메인의 네임 서버 지정
    • MX 숫자 : 메일 서버 지정, 0 또는 정수 값을 기입하여 우선순위 지정 필요
    • CNAME : 호스트의 별칭 정의
    • PTR : 리버스 존에서만 사용하는 레코드, IP 주소 → 도메인
    • Rdata : IP주소, 도메인명, 호스트명을 지정하는 영역. 전체 도메인 명기시 반드시 . 작성

/etc/named.conf 예시

  • acl, options
acl "별칭" {호스트; 호스트; ...;};
options {
	directory "절대경로";
    allow-query {호스트; 호스트; ...;};
    forward only|first;
    forwarders {호스트; 호스트; ...;};
    datasize default;
}
  • zone
zone "google.com" IN {
	type	master;
    file	"google.com.db";
}

zone "10.168.192.in-addr.arpa" IN {
	type	master;
    file	"google.com.db.rev";
}

zone "." IN {
	type	hint;
    file	"named.ca";
}

/var/named/* (zone) 예시

/* [호스트] [TTL] [class] [record_type] [data]로 구성. */
$1800
@		IN	SOA	ns.google.com. master.google.com.(
				2023103117		;serial
                21600			;refresh
                900				;retry
                604800			;expire
                43200			;minimum
                )
        IN	NS	ns.google.com.
        IN	MX	10	mx1.google.com.
        IN	MX	20	mx2.google.com.
NS		IN	A	192.168.10.5
MX		IN	A	192.168.10.10
www		600	IN	A	192.168.10.3
www1	IN	CNAME	www
www2	IN	CNAME	www

※zone 주의사항※

  1. 메일 서버(MX)를 지정할 때 MX 레코드 뒤에 우선순위를 표기해주어야 한다.

    • 낮을수록 우선순위 높음
  2. 존의 기본 속성 정보(SOA) 부분의 refresh, retry, expire, minimum 의 지정은 초 단위 또는 1W, 1D, 1H 와 같이 지정한다.

  3. 도메인 주소 지정 시 끝에 점(.) 으로 마무리해주어야 한다.

  4. 관리자 메일 주소 지정 시 @ 대신 . 으로 표기하며, 역시 끝에 . 으로 마무리해준다.

    • admin@google.com (X)
    • admin.google.com. (O)

문제1

다음은 DNS 서버의 존(zone) 파일 설정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은내용을적으시오.(12점)

$TTL 1D
@ IN SOA ( ① ) ( ② ) (
                2014051301 ; serial
                1D ; refresh
                1H ; retry
                1W ; expire
                3H ) ; minimum
      IN NS ( ① )
      IN A 192.168.12.22
      IN ( ③ ) ( ④ )
www IN A 192.168.12.22
www1 IN ( ⑤ ) www
www2 IN ( ⑤ ) www

■ 조 건

  • 네임 서버의 주소는 ns.linux.or.kr로 설정한다.
  • 관리자 이메일주소는 posein@linux.or.kr로 설정한다.
  • 메일 서버는 linux.or.kr로 설정한다.
  • 호스트명이 www1 및 www2를 요청했을 경우에는 www로 연결되도록 설정한다.

문제1. 풀이

  1. ns.linux.or.kr.
  2. posein.linux.or.kr.
  3. MX 10
  4. linux.or.kr.
  5. CNAME

문제2

다음은 named.conf 설정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

options {
directory "/var/named";
forward ( ① );
( ② ) { 8.8.8.8; };
( ③ ) 1024M(;
( ④ ) { 192.168.64/24; };
};

■ 조 건

  • 서버로 들어온 도메인 질의 요청은 8.8.8.8 IP주소를 가진 호스트로 넘기고, 해당 서버에서응답이 없어도 질의에 응답하지 않는다.
  • DNS 관련정보 캐싱을 하는데 사용하는 메모리를 1024M로 제한한다.
  • 네임 서버에 질의할 수 있는 호스트를 192.168.64.0 네트워크 주소 대역에 속한 호스트만질의할 수 있게 설정한다.

문제2. 풀이

  1. only
  2. forwarders
  3. datasize
  4. allow-query

문제3

다음은 DNS 서버 운영을 위해 named의 환경 설정 파일에 주요 설정을 진행하는 과정이다. 작업 사항에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. DNS 서버에 질의 가능한 호스트는 192.168.5.0 네트워크 대역에 속한 호스트와 IP 주소가192.168.12.22인 호스트만 가능하도록 설정한다. ( ① )
나. 도메인에 대한 질의를 168.126.63.1 서버로 전달하고, 해당 서버가 그에 대한 응답이
없을 경우 그 질의에 대한 응답을 하지 않도록 설정한다. ( ② ) ( ③ )

■ 조건

  • ①번은 조건과 관련된 항목과 설정값만 한 줄로 기입한다.
  • ②~ ③번은 조건과 관련된 항목과 설정값을 한 줄씩 기입한다.

문제3. 풀이

  1. allow-query { 192.168.5.0/255.255.255.0; 192.168.12.22; };
  2. forward only;
  3. forwarders { 168.126.63.1; };

문제4

다음은 DNS 서버의 zone 파일을 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에알맞은내용을 적으시오.

@   IN SOA ns.ihd.or.kr. kait.ihd.or.kr ( 
                      --중략
                       3H ) ; minimum
    IN NS ns.ihd.or.kr. 
    IN A 192.168.12.22
    ( ① )
    ( ② )
    ( ③ ) 

■ 조건

  • ①번은 ihd.or.kr 도메인으로 메일을 받을 수 있도록 설정 내용을 한 줄로 기입한다.
  • ②번은 www 도메인을 사용하는 호스트의 IP 주소를 192.168.12.22로 설정한다.
  • ③번은 www1 도메인으로 접속하는 경우에도 www 호스트로 연결시킨다.

문제4. 풀이

  1. IN MX 10 ihd.or.kr.
  2. www IN A 192.168.12.22
  3. www1 IN CNAME www

문제4. 주의사항

  • IN을 기점으로 왼쪽과 오른쪽에 어떤 걸 써야할 지 헷갈린다.
  • 따라서 "랄로"로 외우면 된다. "랄로" → "를로"
    • (www) 를 (192.168.12.22)로
    • (www1) 를 (www)로

문제5

다음은 DNS 서버 운영을 위해 named의 환경 설정 파일에 주요 설정을 진행하는 과정이다. 작업 사항에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. IP 주소가 192.168.12.22에 대한 질의 시 도메인을 알려주는 리버스 존(reverse zone)
파일 설정을 한다. 리버스 존 파일명은 ihd.rev로 지정한다.
 zone ( ① ) IN {
 type ( ② );
 ( ③ );
 }
나. 도메인에 대한 질의를 168.126.63.1 서버로 전달하는데, 해당 서버가 그 질의에 대한
응답을 하지 않을 경우에만 질의에 응답하도록 설정한다.
 ( ④ );
 ( ⑤ );

■ 조건

  • 항목과 값 기입은 관련 설정 파일에서 사용하는 형식과 동일하게 기재한다.
    (예: 큰따옴표, 작은따옴표, 콜론, 세미콜론 등 기호 사용 주의)

문제5. 풀이

  1. "12.168.192.in-addr.arpa" 또는 "22.12.168.192.in-addr.arpa"
  2. master
  3. file "ihd.rev"
  4. forward first
  5. forwarders { 168.126.63.1; }

문제6

다음은 DNS 서버의 환경 설정 파일에 관련 내용에 따라 설정하는 과정이다. 조건에맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. IP 주소가 192.168.5.13 및 192.168.12.22인 호스트와 192.168.6.0 네트워크 대역에 속한
호스트를 ihd라는 하나의 명칭으로 지정한다. ( ① )
나. 도메인에 대한 질의를 다른 DNS 서버인 168.126.63.1로 넘기는데, 이 서버에서 응답이
없을 경우에만 질의응답을 처리한다.
( ② )
( ③ )
라. 네임 서버에 질의할 수 있는 호스트를 192.168.28.0 네트워크 대역에 속한 호스트, 192.168.12.17, ihd로 묶인 호스트만 가능하도록 설정한다. ( ④ )

■ 조건

  • ① ∼ ④번은 관련 설정 내용을 한 줄씩 기입한다.
  • ②번과 ③번은 순서 무관하게 기입한다.

문제6. 풀이

  1. acl "ihd" {192.168.5.13; 192.168.12.22; 192.168.6.0/255.255.255.0 };
  2. forward first;
  3. forwarders { 168.126.63.1; };
  4. allow-query { 192.168.28.0/255.255.255.0; 192.168.12.17; ihd; };

문제7

다음은 DNS 서버의 역 존(Reverse zone) 파일을 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

@ IN SOA   ( ① )   ( ② )
                 --중략
                 3H)   ;  minimum
( ③ ) 
( ④ )

■ 조건

  • IP 주소는 10.0.2.15이고, 설정하는 도메인은 ihd.or.kr이다.
  • 관리자 메일 주소는 kait@ihd.or.kr로 설정한다.
  • 네임 서버는 ns.ihd.or.kr을 사용한다.
  • 10.0.2.15인 IP 주소를 조회하면 ihd.or.kr가 나타나도록 설정한다.

문제7. 풀이

  1. ns.ihd.or.kr.
  2. kait.ihd.or.kr.
  3. IN NS ns.ihd.or.kr.
  4. 15 IN PTR ihd.or.kr.
profile
개발자 블로그 ^0^

0개의 댓글