이번 실습에서는 리눅스 환경에서 BIND(Berkeley Internet Name Domain)를 사용해 DNS 서버를 구축하고, 정방향 및 역방향 zone 파일을 직접 설정해 보았다. 실제 도메인을 직접 등록하지 않고도 로컬 환경에서 도메인을 nslookup, ping으로 확인해 보는 과정까지 경험해 보았다.
1. DNS란?
DNS(Domain Name System)는 사람이 기억하기 쉬운 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해 주는 시스템이다.
ex) ahhyun.co.kr => 192.168.x.x
2. BIND란?
BIND는 리눅스에서 가장 널리 사용되는 DNS 서버 소프트웨어이다.
정방향(도메인=> IP), 역방향(IP=> 도메인) 변환을 모두 지원한다.
BIND 주요 설정 파일
파일 경로 | 설명 |
/etc/bind/named.conf.options | DNS 서버의 전역 옵션 |
/etc/bind/named.conf.local | 정방향/역방향 zone 설정 |
/var/cache/bind/ | 기본 zone 파일 저장 디렉터리(디렉터리 옵션에서 지정) |
3. BIND 설치 및 서비스 실행
apt update
apt install bind9 bind9-libs bind9-utils
설치 후 서비스 상태 확인 및 실행 :
systemctl is-active bind9
systemctl start bind9
4. 방화벽 설정
DNS는 TCP/UDP 53번 포트를 사용하므로 다음과 같이 방화벽 설정을 해준다:
ufw allow 53
5. 정방향 zone 설정 (도메인 => IP)
/etc/bind.named.conf.local 파일에 아래와 같이 zone 설정을 추가:
zone "ahhyun.co.kr" {
type master;
file "/var/cache/bind/ahhyun.co.kr.zone";
};
정방향 zone 파일 예시 (ahhyun.co.kr.zone)
$TTL 604800
@ IN SOA ns.ahhyun.co.kr. root.ns.ahhyun.co.kr. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS ns.ahhyun.co.kr.
ns IN A 192.x.x.x
A IN A 192.x.x.x
6. 역방향 zone 설정 (IP => 도메인)
/etc/bind/named.conf.local 파일에 다음과 같이 추가:
zone "248.x.x.in-addr.arpa" {
type master;
file "/etc/bind/db.10";
};
역방향 zone 파일 (db.10)
$TTL 604800
@ IN SOA ns.ahhyun.co.kr. root.ns.ahhyun.co.kr. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS ns.ahhyun.co.kr.
135 IN PTR ahhyun.co.kr.
7. 옵션 파일 설정 (/etc/bind/named.conf.options)
options {
forwarders {
192.x.x.x;
8.8.8.8;
};
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on port 53 { any; };
allow-query { any; };
recursion yes;
};
8. 호스트 이름 설정
hostnamectl set-hostname ah1
9. 테스트
- 정방향 확인 :
nslookup ahhyun.co.kr
- 역방향 확인:
nslookup 192.x.x.x
- ping 테스트:
ping ahhyun.co.kr
10. 오류 해결 팁
- zone 파일 작성 시 ; 주석 빠짐 여부 주의
- 설정 후 반드시 서비스 재시작:
systemctl restart bind9
11. 마무리
이번 실습에서는 BIND를 활용한 DNS 서버 구축, zone 파일 설정, 도메인 <=> IP 매핑 테스트까지 진행했다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'리눅스 서버 구축' 카테고리의 다른 글
리눅스 네트워크 서버 - Nginx 웹 서버 설치 및 가상 호스트 설정 (0) | 2025.05.28 |
---|---|
리눅스 핵심 네트워크 서버 - Apache 설치 및 SSL 인증서 자동 설정 실습 (2) | 2025.05.27 |
리눅스 Application 네트워크 서버 - Tomcat 설치 및 자동 실행 설정 (4) | 2025.05.27 |
리눅스 Application 네트워크 서버 - DHCP 서버 구축 및 설정 실습 (0) | 2025.05.25 |
리눅스 Application 네트워크 서버 - SSH 서버 구축 및 MobaXterm 활용 (2) | 2025.05.25 |