手当たり次第に書くんだ

CentOS8 内部DNSサーバー構築

目次に戻る

概要

内部向けのDNSサーバーを構築します。このDNSサーバーは内部サーバーの名前解決と、リゾルバとして使用します。

前提条件

OS

CentOS Stream 8を使用します。

SELinux

有効です。無効にする場合はこちらを参照して下さい。

Firewalld

無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。

標準ポート番号

TCP:53 (DNS), UDP:53 (DNS)

通常はUDPが使われます。TCPはゾーン転送やデータサイズにより使用されるようです。

設定

インストール

BINDをインストールします。bind-chrootが必要ならそれでも構いませんし、後続の設定や手順に変わりはありません。尚、bind-chrootはコンテナ環境ではうまく動きませんでした。

[root@centos ~]# dnf install bind

ゾーンファイル格納用ディレクトリ

デフォルトのゾーンファイル格納先は/var/namedですが、他のファイルも格納されているため、管理上、ディレクトリを分けています。必須ではありませんので、好みに応じて設定して下さい。

[root@centos ~]# mkdir /var/named/myzone
[root@centos ~]# chmod 770 /var/named/myzone
[root@centos ~]# chgrp named /var/named/myzone

/etc/named.conf

named.confはBINDの設定ファイルです。

named.confのデフォルト値

コメント行等をしたnamed.confは下記の通りです。

options {
    listen-on port 53 { 127.0.0.1; };
    listen-on-v6 port 53 { ::1; };
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    secroots-file "/var/named/data/named.secroots";
    recursing-file "/var/named/data/named.recursing";
    allow-query { localhost; };
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
    include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};
zone "." IN {
    type hint;
    file "named.ca";
};

named.confの設定

named.confを編集します。

[root@centos ~]# vi /etc/named.conf
options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { ::1; };
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    secroots-file "/var/named/data/named.secroots";
    recursing-file "/var/named/data/named.recursing";
    allow-query { any; };
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
    include "/etc/crypto-policies/back-ends/bind.config";
    version "";
    forwarders { 8.8.8.8; 8.8.4.4; };
};
logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};
zone "." IN {
    type hint;
    file "named.ca";
};
zone "si1230.com" {
    type master;
    file "myzone/si1230.com.zone";
};
zone "0.0.10.in-addr.arpa" {
    type master;
    file "myzone/0.0.10.in-addr.arpa";
};
listen-on port
デフォルト値は127.0.0.1です。anyに変更します。IPアドレスを指定すれば特定のインターフェイスだけ有効にできます。
allow-query
デフォルト値はlocalhostです。anyに変更します。IPアドレス、ネットワークアドレスを指定すれば範囲を限定できます。
version
追加です。BINDのバージョン情報を非表示にします。
forwarders
追加です。BIND自身が保持しないZone情報の名前解決を指定したDNSサーバーに転送します。例としてGoogleの公開DNSを指定しています。
zone “si1230.com”
si1230.com(例)の正引き設定です。デフォルトの格納先の場合はmyzone/が不要です。
zone “0.0.10.in-addr.arpa”
10.0.0.0/24(例)の逆引き設定です。デフォルトの格納先の場合はmyzone/が不要です。

ゾーンファイル

各ゾーンファイルを作成します。

正引き用ゾーンファイル

正引き用ゾーンファイルを作成します。

[root@centos ~]# vi /var/named/myzone/si1230.com.zone
$TTL 172800
@ IN SOA dns.si1230.com. root.si1230.com. (
    2021042701
    3600
    300
    360000
    86400
)
    IN NS dns.si1230.com.
    IN MX 10 smtp.si1230.com.

dns IN A 10.0.0.100
smtp IN A 10.0.0.101
www IN A 10.0.0.102

逆引き用ゾーンファイル

逆引き用ゾーンファイルを作成します。

[root@centos ~]# vi /var/named/myzone/0.0.10.in-addr.arpa

$TTL 172800
@ IN SOA dns.si1230.com. root.si1230.com. (
    2021042701
    3600
    300
    360000
    86400
)
    IN NS dns.si1230.com.

100 IN PTR dns.si1230.com.
101 IN PTR smtp.si1230.com.
102 IN PTR www.si1230.com.

ゾーンファイルのパーミッション変更

ディレクトリを分けているとこういった操作が簡単です。

[root@centos ~]# chmod 640 /var/named/myzone/*
[root@centos ~]# chgrp named /var/named/myzone/*

サービス起動設定

DNSサーバーを起動します。

[root@centos ~]# systemctl enable --now named.service
[root@centos ~]# systemctl status named.service

目次に戻る

CentOS8 内部DNSサーバー構築

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トップへ戻る