서버 설정 · 2 min read · Oct 02, 2025
CentOS에서 깨끗한 djbDNS DNS 서버 - dnscache 및 tinydns - A부터 Z까지
CentOS에서 깨끗한 djbDNS DNS 서버 - dnscache 및 tinydns - A부터 Z까지
djbDNS란 무엇인가요? 그리고 우리는 왜 djbDNS를 사용할까요? DNS 서비스를 제공하는 새로운 관점이 있습니다. 각 DNS 서버 기능은 권한, 캐시, 포워드 등과 같은 별도의 서비스입니다. 또 다른 차이점은 서비스가 좀비를 방지하기 위해 신속하게 재시작하는 데몬 도구입니다.
요구 사항:
CentOS 5.4 클린 설치
루트로 로그인합니다.
# yum update# yum install gcc# mkdir pkg# cd pkg첫 번째 단계는 데몬 도구를 설치하는 것입니다:
# cd ~/pkg# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz# gunzip daemontools-0.76.tar# tar -xpf daemontools-0.76.tar# rm -f daemontools-0.76.tar# cd admin/daemontools-0.76# vi src/conf-ccgcc 줄 끝에 다음 줄을 추가합니다:
-include /usr/include/errno.h# ./package/installdjbdns가 작동하기 위해 준비해야 할 또 다른 패키지는 ucspi입니다:
# cd ~/pkg# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz# gunzip ucspi-tcp-0.88.tar# tar -xf ucspi-tcp-0.88.tar# cd ucspi-tcp-0.88# vi src/conf-ccgcc 줄 끝에 다음 줄을 추가합니다:
-include /usr/include/errno.h# make# make setup check다음 단계는 문서 게시입니다:
# cd ~/pkg# wget http://cr.yp.to/djbdns/doc.tar.gz다음으로 /doc 아래에 docs를 압축 해제합니다:
# gunzip < doc.tar.gz | (cd /; tar -xf -)시스템 문서에 병합하기 위해 다음 스크립트를 사용합니다:
#!/bin/sh
for i in packages commands cfunctions fileformats
do
sort -f /dev/null `find /doc/merge -name $i.html` > /doc/$i.new
mv /doc/$i.new /doc/$i.html
done스크립트를 파일에 저장합니다: script.sh
# chmod +x script.sh# ./script.sh# cd ~/pkg# wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz# gunzip djbdns-1.05.tar# tar -xf djbdns-1.05.tar# cd djbdns-1.05# vi src/conf-ccgcc 줄 끝에 다음 줄을 추가합니다:
-include /usr/include/errno.h# make# make setup check모든 컴파일이 완료되었습니다.
다음 단계는 DNS 서버 구성입니다.
DNSCACHE
두 개의 시스템 사용자 계정을 생성합니다:
# useradd -d /var/dnscache -s /bin/false dnscache# useradd -d /var/dnscache -s /bin/false dnslog캐시를 구성합니다:
# dnscache-conf dnscache dnslog /var/dnscache/dnscache 예: dnscache-conf dnscache dnslog /var/dnscache/dnscache 192.168.20.1
네트워크의 나머지 부분이 dnscache에 쿼리할 수 있도록 허용합니다:
# touch /var/dnscache/dnscache/root/ip/예: touch /var/dnscache/dnscache/root/ip/192.168
dnscache를 svscan에 의해 모니터링되는 서비스 목록에 추가합니다:
# ln -sf /var/dnscache/dnscache /service/ms-windows를 좋아하신다면… 모든 것이 제자리에 있는지 확인하기 위해 재부팅할 수 있습니다.
여기서 한 가지 점은 여전히 캐시 서버에서 쿼리를 할 수 없다는 것입니다. 왜냐하면 클라이언트가 이제 역 모드로 해결될 수 있기 때문입니다.
앞서 언급했듯이 이는 DNS 캐시 보안 기능 중 하나로 클라이언트를 역 체크하는 것입니다. 따라서 다음 단계에서는 우리를 위해 작동할 tinydns를 작업할 것입니다.
DNSTINY
다시 한 번, 두 개의 시스템 사용자 계정이 필요합니다:
# useradd -d /var/dnscache -s /bin/false tinydns# useradd -d /var/dnscache -s /bin/false tinylog# tinydns-conf tinydns tinylog /var/dnscache/tinydns 127.0.0.1이제 DNS 데이터베이스에 노드를 추가할 시간입니다:
# cd /var/dnscache/tinydns/root# ./add-ns internal 192.168.20.1# ./add-ns 20.168.192.in-addr.arpa 192.168.20.1# ./add-mx internal 192.168.20.2# ./add-host ns.internal 192.168.20.1# ./add-host mail.internal 192.168.20.2# ./add-alias unagi.internal 192.168.20.2# make이 노드는 수동으로 편집할 수 있는 데이터베이스 파일 /var/dnscache/tinydns/root/data로 이동합니다.
마지막 단계는 DNS 서비스 시작입니다:
# ln -sf /var/dnscache/tinydns /service새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.