본문 바로가기
Linux/Ubuntu

Ubuntu - bind9를 이용한 DNS 설정하기

by Foxking 2021. 11. 24.

환경 - Ubuntu 18.04

 

DNS 설정을 위한 선행조건

  • bind9 패키지 설치
  • ufw(방화벽)에 53/tcp,udp 포트 추가
  • /etc/hosts 파일에 DNS 추가
  • /etc/bind/디렉토리 속 zone, rev파일 생성

 

1. bind9 패키지 설치

$ sudo apt-get install bind9

 

2. ufw(방화벽) 설정

$ sudo ufw enable     - Ubuntu는 기본적으로 방화벽이 Off 상태이므로, 꼭 방화벽을 먼저 활성화 합니다.
$ sudo ufw allow 53   - allow 명령을 이용하여 53번 포트를 추가해줍니다. (tcp,udp를 생략하면 둘 다 등록!!)

 

3. /etc/hosts 파일에 사용할 DNS 추가

$ sudo vi /etc/hosts
  127.0.0.1 localhost
  127.0.1.1 test-virtual-machine
  192.168.0.20 ns.test.local  <- 다음과 같이 로컬아이피와 사용할 DNS입력
  # The following lines are desirable for IPv6 capable hosts
  ::1 ip6-localhost ip6-loopback
  fe00::0 ip6-localnet
  ff00::0 ip6-mcastprefix
  ff02::1 ip6-allnodes
  ff02::2 ip6-allrouters

 

4. bind9 설정파일 변경

$ sudo vi /etc/bind/named.conf.options
  options {
    directory "/var/cache/bind";     <- 디렉토리 경로 설정
    dnssec-validation auto;           <-
    auth-nxdomain no;
    listen-on port 53 { localhost; 192.168.0.0/24; };     <- server가 query에 응답할 인터페이스와 포트를 지정
    allow-query { any; };      <- DNS query를 할 수 있는 host를 지정(any면 모두 가능)
    forwarders { 8.8.8.8; };    <- 포워딩에 사용될 IP를 입력
    recursion yes;               <- 재귀 query를 활성화
  };

 

5. bind9 영역 설정

$ sudo vi /etc/bind/named.conf.local
  // FORWARD
    ZONE zone "test.zone" IN {     <- domain 이름 지정
    type master;        <- type은 주로 master or slave로 사용
    file "test.zone";     <- test.zone 파일 경로 지정
    };
  // REVERSE
    ZONE zone "0.168.192.in-addr.arpa" IN {     <- IP를 역순으로 기재(/24이기에 x.x.x만 입력) 
    type master;      <- type은 주로 master or slave로 사용
    file "test.rev";     <- test.rev 파일 경로 지정
    };

 

6. bind9 zone 파일 생성

$ sudo vi /var/cache/bind/test.zone     <- 주의!! 꼭 named.conf.local 속 설정한 파일 이름으로 만들기!!
$TTL 86400
@        IN        SOA        ns.test.   root.ns.test. (
                                       1 ; Serial
                               604800 ; Refresh
                                86400 ; Retry
                              2419200 ; Expire
                                86400) ; Negative Cache TTL
;
@        IN        NS        ns.test.
ns        IN        A          192.168.0.20

 

7. bind9 zone 파일 생성

$ sudo vi /var/cache/bind/test.rev     <- 주의!! 꼭 named.conf.local 속 설정한 파일 이름으로 만들기!!
$TTL 86400
@        IN        SOA        ns.test.   root.ns.test. (
                                       1 ; Serial
                               604800 ; Refresh
                                86400 ; Retry
                              2419200 ; Expire
                                86400) ; Negative Cache TTL
;
@        IN        NS        ns.
20        IN        PTR       ns.test.

 

8. bind9 설정 구문 오류 테스트

# named-checkconf     <- 해당 명령어 입력 시 아무런 문구가 안뜨면 오류가 없는 것!

 

9. bind9 데몬 재시작

$ sudo systemctl restart bind9

 

10. nslookup으로 설정한 DNS 확인

$ nslookup
  > ns.test
     Name: ns.test.
     Address: 192.168.0.20

ns.test로 테스트 시 ns.test의 IP가 나오는걸 확인할 수 있다.

'Linux > Ubuntu' 카테고리의 다른 글

Ubuntu - Root 계정 활성화 및 SSH 설치, Root 접속 활성화  (0) 2021.11.24
Ubuntu - APM 설치 방법  (0) 2021.11.19

댓글