2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AlmaLinux9.2でDNSサーバを構築する(Bind)

Posted at

AlmaLinux9.2にBindをインストールしてDNSサーバを構築します。
今回はtest.localというゾーンを作成してレコードを登録します。

image.png

環境

AlmaLinux release 9.2 (Turquoise Kodkod)
bind-9.16.23-11.el9.x86_64
bind-utils-9.16.23-11.el9.x86_64

※firewalldとselinuxは停止済み

1.DNSパッケージのインストール

DNSサーバ用のパッケージとして、bindをインストールします。
また、DNS系コマンド(nslookup等)向けに、bind-utilsをインストールします。

インストール
# dnf install -y bind bind-utils

パッケージ bind-utils-32:9.16.23-11.el9.x86_64 は既にインストールされています。
依存関係が解決しました。
=================================================================================================================
 パッケージ                      アーキテクチャー      バージョン              リポジトリー                サイズ
=================================================================================================================
インストール:
 bind                            x86_64                32:9.16.23-11.el9       local_dvd_AppStream         488 k
依存関係のインストール:
 bind-dnssec-doc                 noarch                32:9.16.23-11.el9       local_dvd_AppStream          45 k
 python3-bind                    noarch                32:9.16.23-11.el9       local_dvd_AppStream          61 k
 python3-ply                     noarch                3.11-14.el9             local_dvd_BaseOS            103 k
弱い依存関係のインストール:
 bind-dnssec-utils               x86_64                32:9.16.23-11.el9       local_dvd_AppStream         113 k

トランザクションの概要
=================================================================================================================
インストール  5 パッケージ

《中略》

完了しました!

2.DNS設定ファイル編集(/etc/named.conf)

デフォルトから一部のみ変更しています。

設定部 設定項目 内容 意味
options listen-on 53 { 192.168.142.31; }; 自身のDNS-NWインターフェースの指定
options allow-query 192.168.142.0/24 DNS問合せ元のホスト指定
zone - "test.local" ゾーン名(正引きルール)
- type master このゾーンはこのサーバがマスター
- file "test.local" ゾーンデータのファイル名(正引き)
- allow-update none 他DNSの更新を反映しない
zone - "142.168.192.in-addr.arpa" ゾーン名(逆引きルール)
- type master このゾーンはこのサーバがマスター
- file "test.local.rev" ゾーンデータのファイル名(逆引き)
- allow-update none 他DNSの更新を反映しない
/etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { 192.168.142.31; };     ##### 編集箇所 #####
        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     { 192.168.142.0/24; };     ##### 編集箇所 #####

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;

        dnssec-validation yes;

        managed-keys-directory "/var/named/dynamic";
        geoip-directory "/usr/share/GeoIP";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";

        /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
        include "/etc/crypto-policies/back-ends/bind.config";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "test.local" IN {              ##### 編集箇所 #####
        type master;                ##### 編集箇所 #####
        file "test.local";          ##### 編集箇所 #####
        allow-update { none; };     ##### 編集箇所 #####
};                                  ##### 編集箇所 #####

zone "142.168.192.in-addr.arpa" IN {     ##### 編集箇所 #####
        type master;                     ##### 編集箇所 #####
        file "test.local.rev";           ##### 編集箇所 #####
        allow-update { none; };          ##### 編集箇所 #####
};                                       ##### 編集箇所 #####

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

3.正引き用設定ファイル作成

test.localドメインの正引き設定ファイルを作成します。

設定部 設定項目 内容 意味
$ TTL 86400 ゾーンレコードTTL秒。
@ IN SOA alma92-h1.test.local. root.test.local. プライマリDNSサーバ、管理者メールアドレス(FQDN)
- - 2020020501 ; Serial ゾーン情報のシリアル番号(バージョン)
- - 28800 ; Refresh セカンダリDNSサーバーの更新確認間隔(秒)
- - 14400 ; Retry 更新失敗時の再試行時間(秒)
- - 3600000 ; Expire 更新失敗時の情報利用時間(秒)
- - 86400 ) ; Minimum レコードのTTL(秒)
- IN NS alma92-h1.test.local. 自身が管理しているゾーンのDNSサーバー(FQDN)
alma92-h1 IN A 192.168.142.31 正引きレコード
alma92-h2 IN A 192.168.142.32 正引きレコード
/var/named/test.local
$TTL      86400
@         IN       SOA     alma92-h1.test.local.  root.test.local.(
                                        2020020501 ; Serial
                                        28800      ; Refresh
                                        14400      ; Retry
                                        3600000    ; Expire
                                        86400 )    ; Minimum
            IN NS alma92-h1.test.local.
alma92-h1   IN A 192.168.142.31
alma92-h2   IN A 192.168.142.32

4.逆引き用設定ファイル作成

test.localドメインの逆引き設定ファイルを作成します。

設定部 設定項目 内容 意味
$ TTL 86400 ゾーンレコードTTL秒。
@ IN SOA alma92-h1.test.local. root.test.local. プライマリDNSサーバ、管理者メールアドレス(FQDN)
- - 2020020501 ; Serial ゾーン情報のシリアル番号(バージョン)
- - 28800 ; Refresh セカンダリDNSサーバーの更新確認間隔(秒)
- - 14400 ; Retry 更新失敗時の再試行時間(秒)
- - 3600000 ; Expire 更新失敗時の情報利用時間(秒)
- - 86400 ) ; Minimum レコードのTTL(秒)
- IN NS alma92-h1.test.local. 自身が管理しているゾーンのDNSサーバー(FQDN)
31 IN PTR alma92-h1.test.local. 逆引きレコード
32 IN PTR alma92-h2.test.local. 逆引きレコード
/var/named/test.local.rev
$TTL      86400
@         IN       SOA     alma92-h1.test.local.  root.test.local.(
                                        2020020501 ; Serial
                                        28800      ; Refresh
                                        14400      ; Retry
                                        3600000    ; Expire
                                        86400 )    ; Minimum
     IN NS alma92-h1.test.local.
31   IN PTR alma92-h1.test.local.
32   IN PTR alma92-h2.test.local.

5.DNSコンフィグ確認

各設定のコンフィグ内容が正しいかを確認していきます。

基本設定ファイル

/etc/named.conf
# named-checkconf

ゾーン設定ファイル

/var/named/test.local
# named-checkzone test.local /var/named/test.local
zone test.local/IN: loaded serial 2020020501
OK
/var/named/test.local.rev
# named-checkzone test.local.rev /var/named/test.local.rev
zone test.local.rev/IN: loaded serial 2020020501
OK

7.サービス起動

DNSサービスを起動します。

DNSサービスの再起動
# systemctl restart named
DNSサービス自動起動設定
# systemctl enable named
DNSサービス確認
# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
     Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; preset: disabled)
     Active: active (running) since Sun 2023-06-04 20:06:35 JST; 6s ago
    Process: 28260 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, stat>
    Process: 28262 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 28263 (named)
      Tasks: 4 (limit: 11107)
     Memory: 15.6M
        CPU: 115ms
     CGroup: /system.slice/named.service
             mq28263 /usr/sbin/named -u named -c /etc/named.conf

8.DNSクライアント設定

クライアントとなるサーバ側の設定としては、パッケージのインストールを行い、リゾルバ設定を記述すればOKです。

パッケージインストール
# yum install -y bind-utils
《中略》
完了しました!
リゾルバ設定
# vi /etc/resolv.conf
/etc/resolv.conf
# Generated by NetworkManager
search test.local
nameserver 192.168.142.31

rhel7ぐらいまではdomainでドメイン記載していましたが、最近はドメインを複数記載可能なsearchに代用されているようです。

8.DNS動作確認

DNSクライアント側から、nslookupコマンドでDNSサーバの応答を確認します。

正引き確認
# nslookup alma92-h1
Server:         192.168.142.31
Address:        192.168.142.31#53

Name:   alma92-h1.test.local
Address: 192.168.142.31
逆引き確認
# nslookup 192.168.142.31
31.142.168.192.in-addr.arpa     name = alma92-h1.test.local.
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?