ENCORE CLOUD ARCHITECTURE TIL 3/19 Linux CentOS

신민창·2021년 3월 19일
0

TIL

목록 보기
29/46

DNS 서버 구축 : BIND(Berkeley Internet Name Domain)

DNS 서버 (BIND) 설치

# yum info bind
# yum install bind
bind 정보 확인
# rpm -ql bind
서비스 정보 확인
# systemctl status named.service
서비스 설정 파일 확인 및 수정
# vi /etc/named.conf
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; };

해당 파일을 아래와 같이 변경

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { none; };
        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     { any; };

방화벽에서 DNS 서비스 차단 해제

# firewall-cmd --add-service=dns --permanent
# firewall-cmd --reload
DNS 서비스 시작
# systemctl start named.service
# systemctl enable named.service
서비스 동작상태 확인
# systemctl status named.service

동작 테스트

윈도우 시스템에서 cmd 창 열고 nslookup 실행

C:\Users\Playdata>nslookup
기본 서버:  UnKnown
Address:  192.168.4.254

> server 192.168.100.100
기본 서버:  [192.168.100.100]
Address:  192.168.100.100

> www.naver.com
서버:    [192.168.100.100]
Address:  192.168.100.100

권한 없는 응답:
이름:    www.naver.com.nheos.com
Addresses:  223.130.195.95
          223.130.195.200
Aliases:  www.naver.com

이와 같이 설정할 경우, BIND는 Cache 전용 DNS 서버로 동작

/etc/hosts 파일, DNS 요청, DNS 캐시의 우선순위 (클라이언트)
/etc/hosts
DNS 캐시 (시스템)
DNS 요청

우선순위 (DNS서버)
관리하고 있는 영역
DNS 캐시
DNS 요청

BIND 영역 설정

/var/named

ex) 실습 환경 예시
example.local 도메인 구성
ns.example.local : 192.168.100.100
mail.example.local : 192.168.100.101
www.example.local : 192.168.100.100
ftp.example.local : www.example.local

정방향조회 영역 파일 생성 : /var/named/data/example.local.zone
$TTL 3H
@       IN SOA  ns.example.local.  root.example.local. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

@       IN      NS      ns.example.local.
        IN      MX 10   mail.example.local.
        IN      A       192.168.100.100

ns      IN      A       192.168.100.100
mail    IN      A       192.168.100.101
www     IN      A       192.168.100.100
ftp     IN      CNAME   www



역방향조회 파일 설정 :  /var/named/data/db.192.168.100
$TTL 3H
@       IN SOA  ns.example.local. root.example.local. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

@       IN      NS      ns.example.local.
100     IN      PTR     ns.example.local.
101     IN      PTR     mail.example.local.
100     IN      PTR     www.example.local.

/etc/named.conf 파일 수정

...

zone "example.local" IN {
type master;
file "data/example.local.zone";
};

zone "100.168.192.in-addr.arpa" {
type master;
file "data/db.192.168.100";
};

...

영역 설정 확인

named-checkzone
# named-checkzone <영역이름> <파일이름>
ex) named-checkzone example.local /var/named/data/example.local.zone
확인: /var/named/data/example.local.zone 영역 파일 내 잘못 작성된 레코드 삽입 후 테스트
abcde      IN      WRONG       192.168.100.100


named-checkconf
# named-checkconf <설정파일이름>
		ex) named-checkconf /etc/named.conf

확인: /etc/named.conf 파일에 임의로 아래 내용 추가 후 테스트

zone "example2.local" IN {
        type master
        file "data/example2"
};


문법상 세미콜론(;) 기호가 빠져있어 체크시 에러 발생

zone "example2.local" IN {
        type master;
        file "data/example2";
};

이 경우 에러가 나지 않음

영역 파일 권한 설정

/var/named/data 내 영역파일을 root 사용자로 작성할 경우 root 사용자의 소유 및 root 그룹의 소유로 생성되며, 다른 사용자에게 읽기 권한이 없음
→ 파일 소유권을 named:named로

# chown named:named /var/named/data/example.local.zone
# chown named:named /var/named/data/db.192.168.100
→ 파일 권한을 644(rw-r--r--)로 변경
# chmod 644 /var/named/data/example.local.zone
# chmod 644 /var/named/data/db.192.168.100

서비스 재시작 후 동작 확인
정방향조회
역방향조회

0개의 댓글