실습> DNS 서버 설치
1. 패키지 설치
bind 패키지를 설치한다.
# yum -y install bind bind-chroot bind-utils
서버 재부팅 시 다시 네임서버를 시작하기 위해서 named를 활성화시킨다.
# systemctl enable named
2. 설정파일 수정
네임서버 설정 파일 : /etc/named.conf
도메인 설정 파일 : /etc/named.rfc1912.zones
https://datatracker.ietf.org/doc/html/rfc1912
listen-on port :
any; 로 설정하면 모든 IP주소가 53번 포트가 열리게 된다.
IP주소가 1개만 있으면 상관이 없지만 이 실습처럼 여러 개의 IP주소를 설정했을 경우에는
any; 로 설정하면 모든 IP주소에 53번 포트가 열리게 되므로 특정 IP주소만 열릴 수 있도록
설정하는 것이 좋다.
listen-on-v6 port 53 : IPv6 에 해당하므로 사용하지 않는다.
allow-query :
도메인 질의를 허용하는 클라이언트를 적는다. any라고 하면 아무곳에서나
접속해서 도메인에 대한 질의를 허용하는 것이다.
그래서 일반적으로 allow-query는 any로 둔다.
# vi /etc/named.conf
listen-on port 53 { any; };
// listen-on-v6 port 53 { ::1; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
3. 네임서버 시작
네임서버를 시작한다.
# systemctl start named
# netstat -nltup | grep 53
tcp 0 0 192.168.102.254:53 0.0.0.0:* LISTEN 3243/named
tcp 0 0 192.168.108.104:53 0.0.0.0:* LISTEN 3243/named
tcp 0 0 192.168.108.103:53 0.0.0.0:* LISTEN 3243/named
tcp 0 0 192.168.108.102:53 0.0.0.0:* LISTEN 3243/named
tcp 0 0 192.168.108.101:53 0.0.0.0:* LISTEN 3243/named
tcp 0 0 192.168.108.3:53 0.0.0.0:* LISTEN 3243/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3243/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 3243/named
tcp6 0 0 ::1:953 :::* LISTEN 3243/named
udp 0 0 192.168.102.254:53 0.0.0.0:* 3243/named
udp 0 0 192.168.108.104:53 0.0.0.0:* 3243/named
udp 0 0 192.168.108.103:53 0.0.0.0:* 3243/named
udp 0 0 192.168.108.102:53 0.0.0.0:* 3243/named
udp 0 0 192.168.108.101:53 0.0.0.0:* 3243/named
udp 0 0 192.168.108.3:53 0.0.0.0:* 3243/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 3243/named
윈도우에서 nslookup을 이용해서 도메인을 질의한다.
C:\Users\user1>nslookup
기본 서버: ns.dacom.co.kr
Address: 164.124.101.2
> server 192.168.108.3
기본 서버: [192.168.108.3]
Address: 192.168.108.3
> naver.com
서버: [192.168.108.3]
Address: 192.168.108.3
권한 없는 응답:
이름: naver.com
Addresses: 223.130.195.200
223.130.200.107
223.130.200.104
223.130.195.95
리눅스에서 nslookup을 이용해서 도메인을 질의한다.
# nslookup
> server 192.168.108.3
Default server: 192.168.108.3
Address: 192.168.108.3#53
> daum.net
Server: 192.168.108.3
Address: 192.168.108.3#53
Non-authoritative answer:
Name: daum.net
Address: 211.231.99.17
Name: daum.net
Address: 203.133.167.16
Name: daum.net
Address: 203.133.167.81
Name: daum.net
Address: 211.231.99.80
> exit
4. 도메인 등록
도메인 설정 파일 : /etc/named.rfc1912.zones
도메인 IP 주소
sbs.com 192.168.108.101 (웹서버 IP 주소)
포워드 존파일 : 도메인을 요청했을 때 IP주소 정보를 저장하고 있는 파일
리버스 존파일 : IP주소 정보를 요청했을 때 도메인 정보를 저장하고 있는 파일
/etc/named.rfc1912.zones 파일에 도메인을 등록한다.
등록하는 형식은 아래처럼 등록해야 한다.
zone "도메인명" IN {
type 네임서버종류;
file "포워드존파일";
allow-update { none; };
};
sbs.com 도메인에 대한 정보를 /etc/named.rfc1912.zones 맨 아래에 추가한다.
# vi /etc/named/rfc1912.zones
:
:(생략)
zone "sbs.com" IN {
type master;
file "sbs.com.zone";
allow-update { none; };
};
5. 포워드 존파일 생성
/etc/named.rfc1912.zones 에 저장된 도메인에 해당하는 파일을 생성한다.
/etc/named.conf : directory "/var/named";
/etc/named.rfc1912.zones : file "sbs.com.zone";
# cd /var/named
# vi sbs.com.zone
$TTL 60
@ IN SOA ns root (
2021111101; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns
IN A 192.168.108.3 ; sbs.com.
ns IN A 192.168.108.3 ; ns.sbs.com.
www IN A 192.168.108.3 ; www.sbs.com.
허가권과 소유권의 권한을 변경한다.
# chmod o= sbs.com.zone -c
# chgrp named sbs.com.zone -c
# ls -l sbs.com.zone
-rw-r-----. 1 root named 256 11월 11 21:06 sbs.com.zone
6. 네임서버 재시작
설정파일에 문제가 없는지 확인하고 이상이 없을 경우 재시작 한다.
# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones
# named-checkzone sbs.com sbs.com.zone
zone sbs.com/IN: loaded serial 2021111101
OK
# systemctl restart named
7. 도메인 질의
> server 192.168.108.3
Default server: 192.168.108.3
Address: 192.168.108.3#53
> sbs.com
Server: 192.168.108.3
Address: 192.168.108.3#53
Name: sbs.com
Address: 192.168.108.3
> www.sbs.com
Server: 192.168.108.3
Address: 192.168.108.3#53
Name: www.sbs.com
Address: 192.168.108.3
> ns.sbs.com
Server: 192.168.108.3
Address: 192.168.108.3#53
Name: ns.sbs.com
Address: 192.168.108.3
aaaa.sbs.com 은 없기 때문에 에러가 발생한다.
> aaaa.sbs.com
Server: 192.168.108.3
Address: 192.168.108.3#53
** server can't find aaaa.sbs.com: NXDOMAIN
abc
.sbs.com 은 없기 때문에 에러가 발생한다.
> abc.sbs.com
Server: 192.168.108.3
Address: 192.168.108.3#53
** server can't find abc.sbs.com: NXDOMAIN
>
윈도우에서 도메인을 질의한다.
C:\Users\user1>nslookup
기본 서버: ns.dacom.co.kr
Address: 164.124.101.2
> server 192.168.108.3
기본 서버: [192.168.108.3]
Address: 192.168.108.3
> sbs.com
서버: [192.168.108.3]
Address: 192.168.108.3
이름: sbs.com
Address: 192.168.108.3
> www.sbs.com
서버: [192.168.108.3]
Address: 192.168.108.3
이름: www.sbs.com
Address: 192.168.108.3
> ns.sbs.com
서버: [192.168.108.3]
Address: 192.168.108.3
이름: ns.sbs.com
Address: 192.168.108.3
> aaaa.sbs.com
서버: [192.168.108.3]
Address: 192.168.108.3
*** [192.168.108.3]이(가) aaaa.sbs.com을(를) 찾을 수 없습니다. Non-existent domain
> abc.sbs.com
서버: [192.168.108.3]
Address: 192.168.108.3
*** [192.168.108.3]이(가) abc.sbs.com을(를) 찾을 수 없습니다. Non-existent domain
> exit
주석은 설정파일 마다 다르다.
/etc/named.conf, /etc/named.rfc1912.zones
- # // /* ~ */
포워드 파일
- ;
주석을 확인하는 방법
# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones
# named-checkzone sbs.com sbs.com.zone
'Linux > Linux 실습' 카테고리의 다른 글
| [Linux] 도메인 정리 (0) | 2021.11.13 |
|---|---|
| [Linux] 도메인 + 가상 호스트 설정 (0) | 2021.11.12 |
| [Linux] 다양한 형식 웹 언어 (0) | 2021.11.12 |
| [Linux] 커널 보안 취약점 대처 (0) | 2021.11.12 |
| [Linux] HTML 로그인 페이지 구현 (0) | 2021.11.11 |