BIND
bind: dns 서버 구축 프로그램
bind-utils: DNS 서버 질의를 위해 사용되는 유틸리티 제공
bind-libs: bind와 bind-utils가 사용하는 라이브러리 패키지
bind-chroot: chroot 환경에서 bind 사용을 위한 파일 제공
Install bind
1 | yum install bind* | cs |
DNS는 기본적으로 UDP 53번 포트로 동작하며, DNS 헤더를 포함한 메시지 크기가 512바이트를 초과할 경우에 TCP 53번 포트로 변경하여 동작하도록 설
계되어 있다. 또한, 마스터와 슬레이브 네임 서버 간, 존 전송 시에도 많은 양의 데이터를 전송하기 때문에 TCP를 사용한다.
/var/named/named.ca 루트 네임 서버는 전 세계 13개로 운영되며, TCP로 동작하게 되어 부하를 발생하지 않게 하기 위함이다.
루트 네임서버 정보 갱신은 rs.internic.net/domain/named.root 파일을 다운받아 named.ca파일을 덮어 씌우면 된다.
bind settings
/etc/named.conf
1 2 3 4 5 | zone "." IN { type hint; file "named.ca"; }; | cs |
chroot
보안 등의 이유로 가상의 새로운 루트 디렉토리를 지정하여 서비스를 사용하도록 하는 것. DNS 서비스의 경우, /var/named/chroot를 최상위 디렉토리로 인식하게 하여 사용한다.
OPTIONS section in named.conf
1 2 3 4 5 6 7 8 9 10 11 12 | options { // listen-on port 53 { 127.0.0.1; }; listen-on port 53 { any; }; // 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"; // allow-query { localhost; }; // allow-transfer { ; }; 2nd NS's address // masters { ; }; master NS's address in 2nd NS | cs |
외부 접근 설정, 2차 네임 서버 또는 마스터 네임 서버 지정 옵션 등 추가
/etc/resolve.conf - 리졸버 설정 파일
1 2 3 4 | search sample-test.com nameserver 119. nameserver 168. | cs |
자신의 도메인을 search 지시자에 명시하고, 네임서버로 사용할 자신의 IP를 nameserver 지시자에 명시한다.
/etc/host.conf - 호스트 설정 파일
1 2 3 | multi on order hosts, bind | cs |
hosts 파일과 DNS 질의
순서 설정.
multi: 시스템 내의 hosts 파일에 복수의 IP 주소를
설정하는 옵션
/etc/named.rfc1912.zones - 각 존 파일 명시
1 2 3 4 5 6 | zone "sample-test.com" IN { type master; file "sample-test.com.zone"; allow-update { none; }; }; | cs |
- /etc/named.rfc1912.zones 파일에 도메인 존 추가 및 존 파일 명시 (이 경우 named.conf 파일에 include로 named.rfc1912.zones 파일을 명시해야 한다. 아닐경우 /etc/named.conf에 작성)
/var/named/new_zone.zone - DNS 데이터베이스 존 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $TTL 1D @ IN SOA ns.sample-test.com. admin.sample-test.com. ( 20180727 ; serial 1D ; refresh 1H ; retry 1W ; expire 1D ) ; minimum IN NS ns.sample-test.com. IN A 119.x.x.x ns IN A 119.x.x.x www IN A 119.x.x.x web IN CNAME www ; IN NS ns2.sample-test.com. ;ns2 IN A IPv4_address_of_2nd_NS | cs |
- Zone 파일 상단에 TTL 기본 값을 명시해 준다.
- @은 현재 zone을 의미하며, SOA에 권한을 가진 네임 서버를 명시하고, 관리자 메일을 적는다. @의 혼용을 막기 위해 ‘.’을 사용한다.
n Serial: zone 파일 레코드의 갱신 정보. 보통 생성/수정된 날짜를 작성
n Refresh: 서브 네임 서버가 마스터 네임 서버의 갱신 내용을 확인하기 위해 체크하는 시간
n Retry: 서브 네임 서버가 마스터 네임 서버에 접속 시도 실패 시, 재시도할 시간
n Expire: 서브 네임 서버가 가져온 마스터 네임서버의 정보의 만료 시간
n Minimum: TTL 값 설정 부분. 존 파일 상단 $TTL과 같음
Access control on zone file
1 2 3 | [root@localhost ~]# ll /var/named/sample-test.com.zone -rw-r--r-- 1 root named 340 Jul 27 14:33 /var/named/sample-test.com.zone | cs |
- named 데몬에서 접근 가능하도록 존 파일의 소유권을 변경해 준다.
- named-checkconf: named.conf 파일 유효성 검사 유틸
named-checkzone: zone 파일 유효성 검사 유틸
Restart the named
1 2 3 4 | [root@localhost ~]# service named restart Stopping named: . [ OK ] Starting named: [ OK ] | cs |
1 2 3 4 5 | [root@localhost ~]# ss -ant State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 3 119.x.x.x:53 *:* LISTEN 0 3 127.0.0.1:53 *:* | cs |
Test with dig or nslookup
'System Engineering > Linux' 카테고리의 다른 글
Apache: Security settings (0) | 2018.08.03 |
---|---|
Apache: httpd set-up (0) | 2018.08.03 |
DNS Query Tools: nslookup and dig (0) | 2018.07.27 |
SSH security settings (0) | 2018.07.27 |
HTTP Header Sample Analysis - www.daum.net (0) | 2018.07.24 |