네임서버

우분투 22에서 BIND 9를 소스에서 설치하고 systemd 서비스로 등록하는 방법

변군이글루 2025. 5. 12. 14:55
반응형

우분투 22.04에서 BIND 9.20.8을 소스에서 설치하고 systemd 서비스로 등록하는 방법

BIND 9.20.8 소스 설치

필요한 개발 도구와 의존성을 설치

sudo apt update

sudo apt install -y build-essential \
libssl-dev libuv1-dev libnghttp2-dev \
libcap-dev libjemalloc-dev pkg-config \
python3-ply

BIND 9.20.8 소스 다운로드

wget https://downloads.isc.org/isc/bind9/9.20.8/bind-9.20.8.tar.xz
tar -xJf bind-9.20.8.tar.xz
cd bind-9.20.8

소스 컴파일 및 설치

configure 스크립트 실행

./configure \
--prefix=/usr/local \
--sysconfdir=/etc/named \
--with-libtool \
--enable-threads \
--with-openssl \
--with-libuv

컴파일 및 설치

make -j$(nproc)
sudo make install

설치 확인

/usr/local/sbin/named -v

BIND 설정

설정 디렉토리 생성 및 기본 설정 파일 복사

sudo mkdir -p /etc/named
sudo cp doc/misc/named.conf /etc/named/named.conf

named.conf 수정

sudo vim /etc/named/named.conf
options {
    directory "/var/cache/bind";
    listen-on port 53 { any; };
    allow-query { any; };
};

캐시 디렉토리 생성

sudo mkdir -p /var/cache/bind
sudo chown -R bind:bind /var/cache/bind
sudo chmod -R 770 /var/cache/bind

bind 사용자 생성

sudo groupadd bind
sudo useradd -r -g bind -d /var/cache/bind -s /sbin/nologin bind

systemd 서비스 등록

  • systemd 서비스 파일 생성
sudo vim /etc/systemd/system/named.service
[Unit]
Description=BIND 9 Domain Name Server
After=network.target
Documentation=man:named(8)

[Service]
Type=forking
ExecStart=/usr/local/sbin/named -u bind -c /etc/named/named.conf
ExecReload=/usr/local/sbin/rndc reload
ExecStop=/usr/local/sbin/rndc stop
Restart=on-failure
PIDFile=/run/named/named.pid

[Install]
WantedBy=multi-user.target

PID 디렉토리 생성

sudo mkdir -p /run/named
sudo chown bind:bind /run/named
sudo chmod 775 /run/named
728x90

systemd 설정 리로드

sudo systemctl daemon-reload

서비스 활성화(부팅 시 자동 시작)

sudo systemctl enable --now named.service

서비스 재시작

sudo systemctl restart named.service

서비스 상태 확인

sudo systemctl status named.service

로그 확인

vim /etc/named.logging.conf
logging {
    channel default_log {
        file "/var/log/named/default.log" versions 3 size 20m;
        severity info;
        print-time yes;
    };
    category default { default_log; };
};

로그 디렉토리 생성

sudo mkdir -p /var/log/named
sudo chown bind:bind /var/log/named
sudo chmod 770 /var/log/named

테스트

로컬에서 DNS 쿼리 테스트

dig @127.0.0.1 scbyun.com

원격에서 테스트

dig @<서버_IP> scbyun.com

 

BIND 9.20.8을 성공적으로 설치하고 systemd 서비스로 등록할 수 있습니다.

 

반응형