웹사이트 검색

CentOS 7에 빠르고 가벼운 DNS 서버 MaraDNS를 설치하는 방법


이 페이지에서

  1. MaraDNS 설치
  2. MaraDNS를 신뢰할 수 있는 이름 서버로 구성\n
  3. 재귀 이름 서버로 MaraDNS 구성

MaraDNS는 작고 무료이며 가벼운 도메인 이름 서버입니다. 캐싱, 재귀 또는 권한 이름 서버 역할을 하는 대체 오픈 소스 DNS 서버입니다. 구성이 매우 쉽고 Linux 및 Windows 플랫폼에서 사용할 수 있습니다. 여기에서 다운로드할 수 있습니다.

다음은 MarDNS의 몇 가지 흥미로운 특성입니다.

  • 쉬운 설치
  • 낮은 메모리 사용량(약 5MB의 RAM 사용)
  • Authoritative nameserver 및 Recursive nameserver 역할을 할 수 있습니다.\n
  • 놓치지 마세요. MaraDNS 웹사이트의 문서는 이해하기 매우 쉽습니다.\n

이제 CentOS 7에서 MaraDNS를 시작하겠습니다. 아래 단계는 MaraDNS의 설치 및 구성에 대해 안내합니다.

MaraDNS 설치

현재 CentOS 7용 MaraDNS에서 사용할 수 있는 RPM이 없으므로 소스에서 설치 및 컴파일할 예정입니다.

gcc를 설치합니다.

sudo yum install gcc

여기에서 최신 소스 아카이브를 다운로드하십시오. 다음과 같이 할 수 있습니다.

wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2

아카이브의 내용을 추출합니다.

tar -xjf maradns-2.0.11.tar.bz2

추출된 MaraDNS 디렉토리로 변경하고 프로그램을 컴파일 및 설치합니다.

cd maradns-2.0.11
sudo make
sudo make install

이제 MaraDNS가 설치되었습니다. MaraDNS 서비스는 /etc/init.d/maradns에 설치됩니다. 다음과 같이 간단히 서비스를 시작할 수 있습니다.

sudo /etc/init.d/maradns start

재귀 악마를 시작하려면 다음을 실행하십시오.

sudo /etc/init.d/maradns.deadwood start

기본적으로 권한 있는 네임서버는 포트 127.0.0.1에서 수신하고 재귀적 네임서버는 포트 127.0.0.2에서 수신합니다.

부팅 시 MaraDNS를 시작하도록 합시다.

chkconfig maradns on


재귀 DNS 서버의 init 스크립트는 chkconfig와 호환되어야 시작할 때 실행할 수 있습니다. /etc/init.d/maradns.deadwood 파일의 맨 위에 아래 내용을 추가합니다.

# chkconfig: - 55 45
# description: MaraDNS is secure Domain Name Server (DNS)
# probe: true

부팅 시 실행되도록 설정:

chkconfig maradns.deadwood on

MaraDNS를 신뢰할 수 있는 이름 서버로 구성

신뢰할 수 있는 DNS 서버는 주어진 도메인에 대한 URL과 IP의 매핑을 "알고\ 있습니다. 이들은 재귀 DNS 서버가 브라우저(Chrome, Firefox)와 같은 웹 클라이언트에 보내는 정보의 소스입니다. MaraDNS를 신뢰할 수 있는 네임서버로 구성할 수 있습니다. 같이:

MaraDNS의 구성 파일(예: /etc/mararc)을 편집합니다.

ipv4_bind_addresses = "127.0.0.1"
chroot_dir = "/etc/maradns"
csv2 = {} csv2["example.net."] = "db.example.net"

첫 번째 줄은 MaraDNS에게 IP-127.0.0.1에서 수신하도록 지시합니다. 쉼표로 구분하여 더 많은 IP를 추가할 수 있습니다. 예를 들어- 127.0.0.1, x.x.x.x

두 번째 줄 chroot_dir은 모든 영역 파일이 보관될 디렉토리를 언급하는 것입니다.

세 번째 줄은 csv2 = {} 명령으로 csv2 해시를 초기화합니다.

네 번째 줄은 도메인 이름 example.net에 대한 db.example.net이라는 영역 파일을 언급합니다.

다음은 자명한 도메인 이름 example.net에 대한 db.example.net이라는 영역 파일입니다.

example.net.      +14400    soa    ns1.example.net.  2012010117 14400 3600 604800 14400 ~ 
example.net.      +14400    ns     ns1.example.net. ~ 
example.net.      +14400    ns     ns2.example.net. ~ 
ns1.example.net.  +14400    a      127.0.0.1 ~ 
ns2.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    a      127.0.0.1 ~ 
www.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    mx     10 mail.example.net. ~
mail.example.net. +14400    a      127.0.0.1 ~

SOA(권한 시작) 줄부터 시작합니다. 그런 다음 신뢰할 수 있는 이름 서버 및 기타 레코드를 지정합니다. 레코드는 도메인 이름, TTL(Time to Live), 레코드 유형 및 레코드 값으로 구성됩니다.
두 가지 유의할 점은 모든 도메인 이름이 마침표로 끝난다는 것입니다. 레코드는 물결표 문자(~)로 끝납니다. 자세한 내용은 영역 파일의 형식에 대한 문서를 확인하십시오.

더 간단하게 하기 위해 example.net을 127.0.0.1로 가리킵니다. 방법은 다음과 같습니다.

example.net.    127.0.0.1 ~

다음과 같이 서비스를 다시 시작합니다.

sudo /etc/init.d/maradns restart

재귀 이름 서버로 MaraDNS 구성

웹 브라우저가 DNS 쿼리를 보낼 때(브라우저의 캐시에 매핑이 저장되어 있지 않다고 가정하면) 재귀 DNS 서버로 보내집니다. DNS 포워딩이라고도 합니다. 기본적으로 포트 127.0.0.2에서 수신하며 쉼표로 구분하여 더 많은 IP를 추가할 수 있습니다. 예를 들어 127.0.0.2, x.x.x.x. /etc/dwood3rc 파일에 아래 줄을 추가하여 MaraDNS를 재귀 이름 서버로 구성할 수 있습니다.

upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Forwarding requests to Google DNS Servers

다음과 같이 서비스를 다시 시작합니다.

sudo /etc/init.d/maradns.deadwood restart

MaraDNS 서버 설정이 완료되었습니다! :)

팁- MaraDNS 서버가 외부 DNS 쿼리에 응답하도록 하려면 다음을 수행해야 합니다.

두 구성 파일(/etc/mararc 및 /etc/dwood3rc)에 머신 공용 IP를 추가하고 다음과 같이 수정합니다.

/etc/mararc:

ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Replace x.x.x.x with your machine's public address.

/etc/dwood3rc:

bind_address="127.0.0.2, x.x.x.x" #Replace x.x.x.x with your machine's public address.

recursive_acl = "0.0.0.0/0" # 어디서나 연결을 허용합니다.

여기에서 이러한 샘플 파일을 사용할 수 있습니다. 다시 한 번 서비스를 다시 시작하는 것을 잊지 마십시오.

그게 다야!