본문 바로가기

네임서버

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

반응형

우분투 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 서비스로 등록할 수 있습니다.

 

반응형