3
2

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 3 years have passed since last update.

CentOS7でDNSサーバの構築

Last updated at Posted at 2020-07-04

CentOS7上でDNSサーバ構築

bindを使用してのDNSサーバを構築手順を記載していきます。
IPアドレスやドメイン名等はご自身の環境に置き換えてください。
内容の細かな説明等は省略しています。
設定は検証用の設定です。

1. パッケージなどを最新の状態にする


yum install update 

2. bindのインストール

yum install bind

3. bind-chrootのインストール

yum install bind-chroot

4. bind-utilsのインストール

yum install bind-utils

5. named-chrootの自動起動

systemctl start named-chroot
systemctl status named-chroot
systemctl enable named-chroot

6. 正引きゾーンファイルの作成・編集

cd /var/named/chroot/var/named
cp -ip named.localhost test.local.zone
vim test.local.zone

下記のIPアドレスやドメイン名等はご自身の環境に合わせてください。

test.local.zone
$TTL 1D
@    IN  SOA     ns.test.local. root.test.local. (
                    0   ; serial
                    1D   ; refresh
                    1H   ; retry
                    1W   ; expire
                    3H )  ; minimum
      IN   NS       ns.test.local.
    IN   MX       10 mail.test.local.
@     IN   A      192.168.1.13
ns    IN   A      192.168.1.13
mail  IN   A      192.168.1.13

7. 設定ファイルの構文が正しいかチェック

named-checkzone test.local /var/named/chroot/var/named/test.local.zone

エラーではなく、OKが出れば問題ないです。

8. /etc/resolv.confの編集

/etc/resolv.confに今回のDNSサーバのIPアドレスを追加します。


vim /etc/resolv.conf

下記の設定に変更します。

nameserver 127.0.0.1

9. named.confの編集

  • listen-on port 53をanyに変更
  • allow-queryをanyに変更
  • ゾーン情報の追加
  • forwardersの追加
//
// 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.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

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";
        allow-query     { any; };

        /*
         - 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-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
        forwarders{
            8.8.8.8;
            1.1.1.1;
       };
};

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

zone "." IN {
        type hint;
        file "named.ca";
};

zone "test.local" IN { ←この test.local のゾーン情報を追加します。
        type master;
        file "test.local.zone";
        allow-query {any;};
};

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

10. bind(named-chroot)の再起動

systemctl restart named-chroot

下記のコマンドで正常に起動できている事を確認します。

systemctl status named-chroot

11. その他の変更点

SELinuxのアクセス制限を解除

setenforce 0

firewalldの無効化

systemctl stop firewalld

12. 名前解決の確認

dig test.local
dig google.com
3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?