CentOS 7에 빠르고 가벼운 DNS 서버 MaraDNS를 설치하는 방법
이 페이지에서
- MaraDNS 설치
- MaraDNS를 신뢰할 수 있는 이름 서버로 구성\n
- 재귀 이름 서버로 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" # 어디서나 연결을 허용합니다.
여기에서 이러한 샘플 파일을 사용할 수 있습니다. 다시 한 번 서비스를 다시 시작하는 것을 잊지 마십시오.
그게 다야!