DNS(Domain Name Server) 란? : https://nirsa.tistory.com/92?category=872350
[DNS] 리눅스 DNS 서버 구축 (2) : https://nirsa.tistory.com/108?category=872350
-
DNS 서버 설치
DNS 서버는 bind 패키지를 사용하며 패키지만 다운로드 받으면 되기에 DNS 서버 설치는 굉장히 간단 합니다. 아래 코드를 입력하여 패키지를 다운로드 받아 주세요.
yum -y install bind bind-utils
-
DNS 설정 파일 개념 및 위치
DNS의 핵심적인 파일은 크게 4가지로 나눠 집니다. 하지만 /etc/named.conf 설정에 대한 설명이 생각보다 길어지게 되어 이번 글에서는 /etc/named.conf 설정에 대한 설명만 다루고, 나머지는 추후 2편으로 업로드 하겠습니다.
빠르게 설정 내용만 보실 분들은 아래 중 빨간색으로 표시된 부분처럼만 설정 하시면 됩니다.
- 1. /etc/named.conf
네임 서버 데이터 베이스, root 존파일 위치, root 파일, 키파일, 접근제어 등 가장 핵심적인 설정 파일이라고 볼 수 있습니다. 이후 DNS-SEC 구성을 하거나 여러가지 보안 설정을 할때에 대부분의 설정이 이 파일을 사용 합니다.
아래 내용은 DNS-SEC 구성을 하지 않는다는 전제하에 작성하며 DNS-SEC 구성은 이후에 업로드 하겠습니다.
listen-on port 53 { 127.0.0.1; }; → DNS port 53에 어떤 IP가 접근할 수 있는지 설정 합니다. 불특정 다수의 유저에게 서비스 할땐 listen-on port 53 { any; }; 으로 설정 하고, 사설 DNS 서버로 사용할때엔 서비스할 사설 IP 대역만을 고정시켜주어 설정해줘야 보안이 상승 합니다. |
listen-on-v6 port 53 { ::1; }; → IPv6를 사용하지 않는다면 주석처리하여 없애 버리셔도 좋습니다. 위의 옵션이 IPv4의 DNS port 53번에 대한 설정 이였다면, 이 옵션은 IPv6의 DNS port 53번에 대한 설정 입니다. 기능은 IPv4와 동일하게 DNS port 53 any 입니다. |
directory "/var/named"; → 실제로 서비스할 DNS의 zone파일 디렉토리 경로를 설정 합니다. |
dump-file "/var/named/data/cache_dump.db"; → DNS cache dump 파일 생성 디렉토리 경로 입니다. 일반적으로 운영 할때에 자주 접하지는 않습니다. |
statistics-file "/var/named/data/named_mem_stats.txt"; → 메모리 통계 파일 생성 디렉토리 경로 입니다. 일반적으로 운영 할때에 자주 접하지는 않습니다. |
allow-query { localhost; }; → 재귀 질의가 올 때 응답할지에 대한 설정 입니다. 보안상의 문제가 있을 경우 재귀쿼리를 받을 IP 대역만을 허용하며, 일반적으로 allow-query { any; }; 를 사용 합니다. |
recursion yes: → 반복 질의에 대한 요청을 할지(DNS Cache Server), 안할지를 설정 합니다. 외부로 도메인을 접근할 수 없는 사설 DNS로 사용하는 경우가 아니면 yes 로 설정 합니다. |
dnssec-enable yes; / dnssec-validation yes; → DNS-SEC에 관한 설정 입니다. 별도로 DNS-SEC 설정을 하지 않는다면 의미가 없습니다. 만약 DNS 보안 설정에 대한 에러가 발생한다면 no로 바꿔주셔도 됩니다. |
bindkeys-file "/etc/named.root.key"; / managed-keys-directory "/var/named/dynamic"; → 마찬가지로 DNS-SEC에 관한 설정 입니다. (DLV : DNS Lookaside Validation) 무시하셔도 좋습니다. |
pid-file "/run/named/named.pid"; → DNS의 PID가 작성된 파일 |
session-keyfile "/run/named/session.key"; → TSIG session key (Master ↔ Salve 보안 트랙잭션 설정) 마찬가지로 무시 합니다. |
logggin { channel default_debug { file "data/named.run"; serverity dynamic; }; }; → DNS Server가 실행될때에 디버그 수준의 로그 파일을 남깁니다. 상대 경로 부분은 상단 옵션 중 directory에 작성된 경로를 기준으로 합니다. |
zone "." IN { type hint; file "named.ca"; }; → 참조할 루트 힌트가 작성되어 있는 파일명을 가르킵니다. 이 파일에는 전세계 루트 도메인(최상위 도메인)에 대한 정보가 들어 있습니다. 만약 이 파일에 대한 설정이 잘못 되었거나 해당 파일 내용이 모두 손실될 경우 루트 도메인에 대한 정보가 없어지므로 반복 질의를 수행할 수 없게 됩니다. |
include ~~~~ → include 두줄은 해당 경로에 있는 파일의 내용을 불러 옵니다. rfc는 존파일 등록 대한 정보를, root key는 DNS-SEC에 관한 설정을 담고 있습니다. 각 파일의 위치를 별도로 변경 시 이 부분을 수정해야 하며, 그냥 사용한다면 변경할 필요는 없습니다. (처음 설치할땐 rfc파일 안에 존파일 등록 정보를 넣지만, 블로그 글마다 파일명이나 위치 등이 다른 이유가 이 부분의 수정/설정 때문 입니다) |
[DNS] 리눅스 DNS 서버 구축 (2) : https://nirsa.tistory.com/108?category=872350
'APP & Server > DNS' 카테고리의 다른 글
[DNS] 관리툴 fmDNS 설치 시 에러 "ERROR:Could not connect to MySQL. Please check tour credentials." (0) | 2020.04.28 |
---|---|
[DNS] 관리툴 fmDNS 설치 및 구축 (fmDNS install, DNS Management Tool) (0) | 2020.04.28 |
[DNS] Master & Slave 개념 및 구축 방법 (3) | 2020.02.12 |
[DNS] 리눅스 DNS 서버 구축 (2) (/var/named.rfc1912.zones, /var/named/, zone파일, DNS 레코드, DNS파일 검증, CentOS7.7) (3) | 2020.02.05 |
DNS(Domain Name Server) 란? (3) | 2020.01.30 |