実践Linux
CentOS8        CentOS8 目次へ  TOP(HOME)へ


DNSサーバー(BIND)          2020年7月



DNSサーバ(bind 9.11.13-3)

●インストール状況の調査
 # dnf list installed | grep bind
 bind-utils等はあるがbind本体などがインストールされていないので、インストール。
 # dnf install -y bind bind-chroot

 namedを起動していない状態では/var/named/chroot/var/named配下には何もファイルはない状態。bindを起動すると、ここにファイルがマウントされるようになっている。

●設定ファイル
 /etc/named.conf
       /named.rfc1912.zones ローカル部分の設定ファイル
 /var/named/ゾーンファイル

●/etc/named.confの編集

acl my-network {    // 追加:aclで、my-networkという名前を定義し、IPアドレスを設定
  192.168.7.0/24;
  333.333.333.208/29;
  localhost;
};

options {
  listen-on port 53 { 127.0.0.1; 192.168.7.1; 333.333.333.210; };
    // 追記しないとLAN内部から外に出られない
  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";

  //オープンリゾルバ対策
  //権威DNSサーバーとして何処からもクエリを受け取り、キャッシュサーバーはLANからのみクエリを許可

  #allow-query { localhost; };
// コメントアウト
  allow-query { any; };
// 何処からのクエリでも受け取る
  recursion yes;
// キャッシュDNSサーバーとして動作
  allow-recursion { my-network; };
// 追加:リゾルバーとしての応答をmy-networkからのみ許可
  allow-query-cache { my-network; };
// 追加:キャッシュの内容をmy-networkのみに返す

  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";
};

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

###########################以下を追加###########################
zone "my-dom.xxx" {
  type master;
  file "my-dom.zone";
  allow-update { localhost; };
  allow-transfer { 333.333.333.211; ***.***.***.***; };
    セカンダリ(***.***.***.***はプロバイダのものを記入)
  notify yes;
};

逆引きはプロバイダによるが、自サーバーにはおかない。 プロバイダ側に設定。
プロバイダ側の逆引き設定で、ns1.my-dom.xxxとns2.my-dom.xxxを設定する。

●/var/named/my-dom.zone
$TTL 3H
@ IN SOA ns1.my-dom.xxx.  root.my-dom.xxx.  (
0        ;serial(d.adams)
10      ;refresh
1H     ;retry
1W     ;expiry
3H )   ;minimum
IN NS ns1
IN NS ns2
IN NS ***.***.***.jp.               プロバイダのNAMEサーバー
IN A 333.333.333.210
IN MX 10 mail
localhost IN A 127.0.0.1
ns1 IN A 333.333.333.210
ns2 IN A 333.333.333.211
mail IN CNAME ns1
www IN CNAME ns1

※内容を変更した場合は、シリアル番号を増やしておくこと。そうでないとセカンダリ等に変更したことが伝わらない。

●/var/named/my-dom.zoneのプロパティ変更
 ファイルのアクセス権の変更  所有者root グループnamed アクセス640
 SELinuxタイプの確認
 # ls -Z /var/named
 named_zone_tならばOK。

●/etc/resolve.conf

nameserver 127.0.0.1
nameserver ***.***.***.***  プロバイダのアドレスを指定。
nameserver 192.168.7.1

●firewalldの設定
 trustedゾーンに対しては、必要ない。
 externalゾーンの設定
 # firewall-cmd --get-services  定義されているサービス一覧
 # firewall-cmd --list-service --zone=external
 # firewall-cmd --add-service=dns --zone=external
 # firewall-cmd --add-service=dns --zone=external --permanent

●namedサービスを起動
 namedは起動しない。named-chrootのみ起動するようにする。
 # systemctl --type=service list-unit-files  インストールされたサービス一覧
 # systemctl --type=service list-units | grep named  実行中のサービスにnamedがあるか
 # systemctl start named-chroot
 # systemctl enable named-chroot

テスト 
 # named-checkconf -z  エラーが表示されなければOK。
 # service named checkconfig  上と同様。
 # named-checkzone my-dom.xxx /var/named/my-dom.zone
 # dig @333.333.333.210 my-dom.xxx AXFR  ゾーン転送のテスト
 # dig www.my-dom.xxx
 # host www.my-dom.xxx
 # nslookup  等々

●ドメインを追加したいときは、「CentOS7/ドメインの追加」参照


TOP(HOME)へ

目 次
HOME
 全体のシステム構成&目次

CentOS7-8の新機能(systemdとfirewalld)

CentOS8
CentOS8のインストール〜ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
Sambaサーバー
openVPNサーバー

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
  EC-CUBEショッピングサイト構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加
PHP7.1をインストール

CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学