Ubuntu 22.04 에서 MaraDNS 3.5.0036 설치하기

리눅스/DNS|2023. 12. 17. 18:05
반응형

Ubuntu 22.04 에서 MaraDNS 설치하는 방법입니다.

apt 와 같은 패키지 관리 툴로 손쉽게 설치가 가능한 부분이 있지만,

# apt -y update

# apt -y install maradns

 

여기에서는 소스로 설치하고 관리하는 방법을 알려드립니다.

우선 MaraDNS 의 특징은 용량이 작고, 가볍고 (메모리 점유율이 낮음), 빠른 (Performance) 장점이 있습니다.

PowerDNS 는 DB 와 연동을하여 레코드로 zone 파일 내용을 관리하지만, MaraDNS 는 Bind 와 같이 파일로 레코드를 관리합니다.

 

 

1. 설치

 

소스를 설치하기 위해 gcc 컴파일러를 우선 설치 합니다.

# apt -y install gcc

 

그리고 현재 기준 MaraDNS 3.5.0036 버전을 다운로드하고 압축을 풀어 설치합니다.

- Download : https://maradns.samiam.org/download.html

# wget https://maradns.samiam.org/download/3.5/3.5.0036/maradns-3.5.0036.tar.xz

# tar xvf maradns-3.5.0036.tar.xz

# cd maradns-3.5.0036

# CC=cc

# export CC

# make

# make install

 

설치가 모두 마무리되면 출력된 내용과 같이 데몬을 실행해줍니다.

# systemctl start maradns
# systemctl start deadwood    // 필수 구동은 아니므로, 아래 설명 확인 후 구동 여부를 선택해주세요.

 

netstat 명령으로 포트가 확인되면 좋은데, MaraDNS 는 UDP 통신을 하므로, netstat 명령으로 포트가 확인되지 않아 프로세스 상태로 체크해봐야 합니다.

# systemctl status maradns

 

 

2. 설정

 

MaraDNS 는 역할에 따라 설정 파일이 두개로 나뉩니다.

 

1) /etc/mararc (관련 데몬 : maradns)

이 파일은 DNS 서버를 실행하는 데 사용되며, DNS 질의 및 응답 동작을 제어하는 다양한 설정을 포함합니다. 주요한 설정 사항은 zone 파일의 경로, Listen 주소, 캐싱 및 안전성 관련 설정 등이 있습니다.

 

2) /etc/dwood3rc (관련 데몬 : deadwood)

이 파일은 특정 환경에서의 DNS 서버 동작을 제어하는데 사용됩니다. DNS 캐시 설정, 불필요한 DNS 쿼리에 대한 차단, 차단된 도메인 목록 관리 등과 같은 설정을 포함할 수 있습니다. DNS 의 보안과 효율성을 향상시키는데 사용됩니다.

 

여기에서는 기본 설정만 다루겠습니다.

# vi /etc/mararc

csv2 = {}
csv2["sysdocu.kr."] = "db.sysdocu.kr"           # 등록할 도메인과 zone 파일 이름
ipv4_bind_addresses = "115.68.249.135"    # Binding 할 IP 주소 (ifconfig 로 확인되는 IP)
chroot_dir = "/etc/maradns"

 

* 외부 질의를 허용하려면 Binding 주소를 공인 IP 로 변경해야 합니다.

  VM 의 경우 ifconfig 명령으로 공인 IP 가 보이지 않는 경우에는 (공인과 연결된) 사설 IP 로 입력해 보시기 바랍니다.

 

도메인 zone 파일을 생성합니다.

# vi /etc/maradns/db.sysdocu.kr

sysdocu.kr.      +86400    soa    ns1.sysdocu.kr. dns@sysdocu.kr. 2023121701 86400 3600 604800 10800 ~
sysdocu.kr.      +86400    ns     ns1.sysdocu.kr. ~
sysdocu.kr.      +86400    ns     ns2.sysdocu.kr. ~
sysdocu.kr.      +86400    mx     10 mail.sysdocu.kr. ~
mail.sysdocu.kr. +86400    a      115.68.249.232 ~
ns1.sysdocu.kr.  +86400    a      115.68.249.232 ~
ns2.sysdocu.kr.  +86400    a      115.68.249.232 ~
sysdocu.kr.      +86400    a      115.68.249.232 ~
www.sysdocu.kr. +86400    a      115.68.249.232 ~

 

적용을 위해 데몬을 재시작 합니다.

# systemctl restart maradns

 

 

3. 테스트

 

로컬 또는 외부에서 질의 테스트를 해봅니다.

# nslookup sysdocu.kr 115.68.249.135
Server: 115.68.249.135
Address: 115.68.249.135#53

Name: sysdocu.kr
Address: 115.68.249.232

 

반응형

댓글()