LinuC レベル2
技術解説セミナー
DNSの役割を理解しよう︕

2022/06/05（Sun） 13:00-14:15
LPI-Japanプラチナスポンサー 株式会社ゼウス・エンタープライズ
鯨井 貴博（LinuCエヴァンジェリスト）© LPI-Japan / EDUCO all rights reserved.

Who are you?（講師紹介）
鯨井貴博

LPI-Japan プラチナスポンサー
LinuCエヴァンジェリスト

株式会社ゼウス・エンタープライズ

Linuxとの出会い

⼤学時代 Unixの存在を知り、⽇経Linuxを読み始める。
2000年にVine Linux 2.0で⼀度挫折を経験。
その悔しさを忘れきれず、2007年 他業種からIT業界に転職しLinuxに再チャレンジ。
SE・商⽤製品サポート・インストラクター・プロジェクト管理などを経験し、現在に⾄る。
⾃分⾃⾝が学習で苦労した経験から、初⼼者を含む受講者に分りやすい講義を⾏うように⼼がけている。
また、興味の向くIT技術・オープンソースソフトウェアなどについて、Opensourcetehブログ（https://www.opensourcetech.tokyo/）で執筆中。
実際に⾃分でやってみる/使ってみる・開発者本⼈から話を聞いてみることを⼤切にしています。

Linus Torvaldsさん(Linux開発者)

Igor Sysoevさん(nginx開発者)

Alexei Vladishevさん(Zabbix開発者)© LPI-Japan / EDUCO all rights reserved.

2

ゼウス・エンタープライズからのお知らせ
提供するITサービス

https://www.zeus-enterprise.co.jp/solution/service/© LPI-Japan / EDUCO all rights reserved.

3

ゼウス・エンタープライズからのお知らせ
⼩学⽣向けプログラミング教室

https://www.it-training.tokyo/kids/index.html© LPI-Japan / EDUCO all rights reserved.

4

ゼウス・エンタープライズからのお知らせ
貸し会議室

https://www.zeus-enterprise.co.jp/ikebukuro_office/https://ginza168.tokyo/© LPI-Japan / EDUCO all rights reserved.

5

アジェンダ
1. LinuCについて- 試験概要と特徴

2.

技術解説

3.

Appendix

4.

Q&A

DNSの役割を理解しよう!
主題2.08︓ドメインネームサーバー- 2.08.1BINDの設定と管理- 2.08.2ゾーン情報の管理- 2.08.3セキュアなDNSサーバーの実現© LPI-Japan / EDUCO all rights reserved.

6

本⽇のゴールØ

DNSの役割を理解する

Ø

BINDの設定⽅法を理解する

Ø

BINDのゾーンファイル書式を理解する© LPI-Japan / EDUCO all rights reserved.

7

技術解説

LinuC について

© LPI-Japan / EDUCO all rights reserved.

8LinuCレベル１／レベル２ Version10.0とは

nLinuCとは
クラウド時代の即戦⼒エンジニアであることを証明するLinux技術者認定

ü現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化・コンテナを問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知⾒ü全⾯的に⾒直した「今」⾝につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込みüLinuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan / EDUCO all rights reserved.

9

クラウドを活⽤できるITエンジニアに必須の技術がまとまっている
AWSなどのパブリッククラウドを活⽤するための技術

AWSなどのパブリッククラウドを活⽤するための技術

間が
⽋けて
いる状態

仮想マシン／コンテナ技術、クラウドセキュリティ、
アーキテクチャ、ほか

オンプレミスのサーバーサイドLinux技術

オンプレミスのサーバーサイドLinux技術【今まで／その他】

Version10.0© LPI-Japan / EDUCO all rights reserved.

10LinuC Level1試験
101試験

102試験

1.01︓Linuxのインストールと仮想マシン・コンテナの利⽤
1.01.1Linuxのインストール、起動、接続、切断と停⽌
1.01.2仮想マシン・コンテナの概念と利⽤
1.01.3ブートプロセスとsystemd
1.01.4プロセスの⽣成、監視、終了
1.01.5デスクトップ環境の利⽤
1.02︓ファイル・ディレクトリの操作と管理
1.02.1ファイルの所有者とパーミッション
1.02.2基本的なファイル管理の実⾏
1.02.3ハードリンクとシンボリックリンク
1.02.4ファイルの配置と検索
1.03︓GNUとUnixのコマンド
1.03.1コマンドラインの操作
1.03.2フィルタを使ったテキストストリームの処理
1.03.3ストリーム、パイプ、リダイレクトの使⽤
1.03.4正規表現を使⽤したテキストファイルの検索
1.03.5エディタを使った基本的なファイル編集の実⾏
1.04︓リポジトリとパッケージ管理
1.04.1apt コマンドによるパッケージ管理
1.04.2Debianパッケージ管理
1.04.3yumコマンドによるパッケージ管理
1.04.4RPMパッケージ管理
1.05︓ハードウェア、ディスク、パーティション、ファイルシステム
1.05.1ハードウェアの基礎知識と設定
1.05.2ハードディスクのレイアウトとパーティション
1.05.3ファイルシステムの作成と管理、マウント
https://linuc.org/linuc1/range/101.html
https://linuc.org/linuc1/range/102.html

1.06︓シェルおよびスクリプト
1.06.1シェル環境のカスタマイズ
1.06.2シェルスクリプト
1.07︓ネットワークの基礎
1.07.1インターネットプロトコルの基礎
1.07.2基本的なネットワーク構成
1.07.3基本的なネットワークの問題解決
1.07.4クライアント側のDNS設定
1.08︓システム管理
1.08.1アカウント管理
1.08.2ジョブスケジューリング
1.08.3ローカライゼーションと国際化
1.09︓重要なシステムサービス
1.09.1システム時刻の管理
1.09.2システムのログ
1.09.3メール配送エージェント(MTA)の基本
1.10︓セキュリティ
1.10.1セキュリティ管理業務の実施
1.10.2ホストのセキュリティ設定
1.10.3暗号化によるデータの保護
1.10.4クラウドセキュリティの基礎
1.11︓オープンソースの⽂化
1.11.1オープンソースの概念とライセンス
1.11.2オープンソースのコミュニティとエコシステム© LPI-Japan / EDUCO all rights reserved.

11

LinuC Level2試験
201試験

2.01︓システムの起動とLinuxカーネル
2.01.1 ブートプロセスとGRUB
2.01.2 システム起動のカスタマイズ
2.01.3 Linux カーネルの構成要素
2.01.4 Linuxカーネルのコンパイル
2.01.5 カーネル実⾏時における管理とトラブルシューティング
2.02︓ファイルシステムとストレージ管理
2.02.1 ファイルシステムの設定とマウント
2.02.2 ファイルシステムの管理
2.02.3 論理ボリュームマネージャの設定と管理
2.03︓ネットワーク構成
2.03.1 基本的なネットワーク構成
2.03.2 ⾼度なネットワーク構成
2.03.3 ネットワークの問題解決
2.04︓システムの保守と運⽤管理
2.04.1 makeによるソースコードからのビルドとインストール
2.04.2 バックアップとリストア
2.04.3 ユーザへの通知
2.04.4 リソース使⽤状況の把握
2.04.5 死活監視、リソース監視、運⽤監視ツール
2.04.6 システム構成ツール
2.05︓仮想化サーバー
2.05.1 仮想マシンの仕組みとKVM
2.05.2 仮想マシンの作成と管理
2.06︓コンテナ
2.06.1 コンテナの仕組み
2.06.2 Dockerコンテナとコンテナイメージの管理
https://linuc.org/linuc2/range/201.html
https://linuc.org/linuc2/range/202.html

202試験

2.07︓ネットワーククライアントの管理
2.07.1 DHCPサーバーの設定と管理
2.07.2 PAM認証
2.07.3 LDAPクライアントの利⽤⽅法
2.07.4 OpenLDAPサーバーの設定
2.08︓ドメインネームサーバー
2.08.1 BINDの設定と管理
2.08.2 ゾーン情報の管理
2.08.3 セキュアなDNSサーバーの実現
2.09︓HTTPサーバーとプロキシサーバー
2.09.1 Apache HTTPサーバーの設定と管理
2.09.2 OpenSSLとHTTPSの設定
2.09.3 nginxの設定と管理
2.09.4 Squidの設定と管理
2.10︓電⼦メールサービス
2.10.1 Postfixの設定と管理
2.10.2 Dovecotの設定と管理
2.11︓ファイル共有サービス
2.11.1 Sambaの設定と管理
2.11.2 NFSサーバーの設定と管理
2.12︓システムのセキュリティ
2.12.1 iptables や firewalld によるパケットフィルタリング
2.12.2 OpenSSH サーバーの設定と管理
2.12.3 OpenVPNの設定と管理
2.12.4 セキュリティ業務
2.13︓システムアーキテクチャ
2.13.1 ⾼可⽤システムの実現⽅式
2.13.2 キャパシティプランニングとスケーラビリティの確保
2.13.3 クラウドサービス上のシステム構成
2.13.4 典型的なシステムアーキテクチャ© LPI-Japan / EDUCO all rights reserved.

12LinuC 学習のコツ①出題範囲の内容について調べてみる
公式ドキュメント・技術書など②実際に操作してみる
これが⼤事︕③学習の補助教材などを利⽤する・メールマガジン
・標準教科書・過去のセミナー資料
詳細は、https://lpi.or.jp/learning/

LPI-Japan LinuC通信「レベル2・レベル3を受けてみよう︕」でサンプル問題作ってるので、よかったら登録
してください︕© LPI-Japan / EDUCO all rights reserved.

13

LinuC 学習のコツ④過去セミナーの動画
https://www.youtube.com/user/LPIJapan© LPI-Japan / EDUCO all rights reserved.

14

LinuC 学習のコツ
学習の具体的な進め⽅(2~3か⽉程度)
試験範囲の確認(LinuC HP)●月頃、受験しようという目標を立てる↓
LinuC認定教材の購⼊・1週⽬読込 https://lpi.or.jp/linuc1/book.shtml
https://lpi.or.jp/linuc2/book.shtml↓
LinuC認定教材・Webサイトを参考に、実機操作(サーバ構築やコマンド操作)を試す※操作やトラブルシュートで⼒が⾝に付く︕
1ヶ⽉↓
LinuC認定教材 2週⽬読込●月●日頃、受験しようと決める↓問題集やメルマガサンプル問題で理解⼒確認 https://linuc.org/study/samples/※理解不⾜箇所の洗い出し↓
LinuC認定教材 3週⽬
2ヶ⽉※弱点の補強↓仕上げ
受験申込
受験日の変更も可能なので安心(80%)↓
問題を8~9割以上、正解となるまで繰り返し解く
苦⼿な部分を重点的に復習・受験まで継続して学習すること↓
2.5ヶ⽉
・繰り返し学習し、理解度/問題正解率を⾼めた状態で受験すること完全に理解した︕ 受験© LPI-Japan / EDUCO all rights reserved.
(100%)
学習開始(0%)

15

技術解説

DNSの役割を理解しよう︕（主題2.08︓ドメインネームサーバー）© LPI-Japan / EDUCO all rights reserved.

16

技術解説
2.08.1 BINDの設定と管理
重要度

3

概要
権威サーバー、再帰サーバー、キャッシュ専⽤DNSサーバーとして機能するようにBINDを設定できる。
これには、稼働中のサーバーを管理すること、ログの設定も含まれる。
詳細
BIND の設定ファイル、⽤語、ユーティリティ
named.conf, host, dig, nslookup
BIND の設定ファイルで、BINDゾーンファイルの位置を定義する。
named.conf
変更した設定ファイルおよびゾーンファイルの再読込
rndc, named-checkconf
代替ネームサーバーとしての dnsmasq, Unbound, NSD, PowerDNS について知っている。

© LPI-Japan / EDUCO all rights reserved.

17

技術解説
2.08.2 ゾーン情報の管理
重要度

2

概要
正引き、逆引きのゾーンファイルおよびルートヒントファイルを作成できる。
これには、レコードに適切な値を設定すること、ホストをゾーンに追加すること、ゾーンをDNSに追加することも含まれる。
また、他のDNSサーバーにゾーンの委任を⾏うことも含まれる。
詳細
BINDゾーンファイルのレイアウト、内容、ファイル配置
ゾーンファイルの書式, リソースレコードの書式
逆引きゾーンを含む、ゾーンファイルに新しいホストを追加する際の確認⽅法
named-compilezone, named-checkzone© LPI-Japan / EDUCO all rights reserved.

18

技術解説
2.08.3 セキュアなDNSサーバーの実現
重要度

2

概要
DNSサーバーをroot以外のユーザとしてchroot 環境で実⾏するよう設定できる。
これには、DNSサーバー間で安全なデータ交換を⾏うことも含まれる。
詳細
chroot 環境で稼働するようBINDを設定する。
forwarders⽂を使⽤してBINDの構成を分割する。
named.conf
DNSSEC および基本的なツールについて知っている。
dnssec-keygen, dnssec-signzone, TSIG(Transaction Signature)
DANE および関連レコードについて知っている。

© LPI-Japan / EDUCO all rights reserved.

19

技術解説

DNSの役割© LPI-Japan / EDUCO all rights reserved.

20

DNSの役割
Domain Name System
www.opensourcetech.tokyo (FQDN、ホスト名) ⇔ x.x.x.x（IPアドレス）の変換を担う①www.opensourcetech.tokyoを⾒たい④HTTPリクエスト

クライアント⑤HTTPレスポンス②w
IPア ww.o
ドレ penスを sour
教え cete
ch.
て
tok
yoの
③x
.x.
x.x
やで
~︕

www.opensourcetech.tokyo(Webサーバ)

DNSがない場合、クライアントがFQDNとIPアドレスの組み合わせをPCで全て管理しておく必要がある
しかも変更されるたび、更新が必要(hostsファイル)

DNSサーバ© LPI-Japan / EDUCO all rights reserved.

21

DNSの役割
名前解決の種類正引き

www.opensourcetech.tokyo (FQDN、ホスト名)

x.x.x.x（IPアドレス）の変換を担う
逆引き※FQDN︓Fully Qualified Domain Name(完全修飾ドメイン名)© LPI-Japan / EDUCO all rights reserved.

22

DNSの役割
hostsファイル（/etc/hosts）
IPアドレスとFQDNの組み合わせを記載するローカルファイル
ubuntu@linucserver:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 linucserver# The following lines are desirable for IPv6 capable hosts::1
ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters※Windowsの場合、C:¥Windows¥System32¥drivers¥etc に格納されており、更新には管理者権限が必要© LPI-Japan / EDUCO all rights reserved.

23

DNSの役割
DNSサーバの種類①www.opensourcetech.tokyoを⾒たい

クライアント②w
IPア ww.o
ドレ penスを sour
教え cete
ch.
て
tok
yoの
③x
.x.
x.x
やで
~︕

キャッシュDNSやクライアントは、知った情報を⼀定期間(TTL)記憶する※記憶している間は、
権威DNSに確認にいかない

②
IP -1
ア w
ド ww
②
レ .
-2
ス op
を en
.to
教 so
ky
え u
oの
て rc
et
DN
ec
Sに
h.
to
聞
ky
い
oの
て
や

権威DNSサーバ

キャッシュDNSサーバ

問

帰

再

合

い

せ

わ

e
et
c
ur
-3
o
②
ns てや
e
op 聞い
4
② NSに
D
②-5

.to
h
c

ルートDNS（.）※世界にA~Mの16台.tokyoを管理するDNSoのyk

opensourcetech.tokyoを管理するDNS※FQDNとIPアドレスの組み合わせ(レコード)を保持.xやで~︕②-6 x.x.x© LPI-Japan / EDUCO all rights reserved.

24

DNSの役割
BINDのDNSキャッシュ情報参照
ubuntu@linucserver:/var/cache/bind$ sudo rndc dumpdb → /var/cache/bindにnamed_dump.dbというファイルに出⼒しているubuntu@linucserver:/var/cache/bind$ lsmanaged-keys.bind managed-keys.bind.jnl named_dump.db
ubuntu@linucserver:/var/cache/bind$ cat named_dump.db → 出⼒されたキャッシュを確認;; Start view _default;;; Cache dump of view '_default' (cache _default);; using a 604800 second stale ttl$DATE 20220522144043; secure.
1123193 IN NS a.root-servers.net.
1123193 IN NS b.root-servers.net.
1123193 IN NS c.root-servers.net.
1123193 IN NS d.root-servers.net.
1123193 IN NS e.root-servers.net.
1123193 IN NS f.root-servers.net.
1123193 IN NS g.root-servers.net.
1123193 IN NS h.root-servers.net.
1123193 IN NS i.root-servers.net.
1123193 IN NS j.root-servers.net.
1123193 IN NS k.root-servers.net.
1123193 IN NS l.root-servers.net.
1123193 IN NS m.root-servers.net
以下省略© LPI-Japan / EDUCO all rights reserved.

25

DNSの役割
参考︓WindowsクライアントのDNSキャッシュ情報参照
C:¥Users>ipconfig /displaydns
Windows IP 構成
www.google.co.jp---------------------------------------レコード名 . . . . . . . : www.google.co.jp
レコードの種類 . . . . . : 28
Time To Live . . . . . .: 293
データの⻑さ . . . . . . : 16
セクション . . . . . . . : 回答
AAAA レコード. . . . . . : 2404:6800:4004:80c::2003
www.google.co.jp---------------------------------------レコード名 . . . . . . . : www.google.co.jp
レコードの種類 . . . . . : 1
Time To Live . . . . . .: 239
データの⻑さ . . . . . . : 4セクション . . . . . . . : 回答
A (ホスト) レコード. . . : 172.217.175.67© LPI-Japan / EDUCO all rights reserved.

26

DNSの役割
ルートDNSサーバ

ubuntu@linucserver:~$ cat /usr/share/dns/root.hints.
3600000
NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.
3600000
A
198.41.0.4
A.ROOT-SERVERS.NET.
3600000
AAAA
2001:503:ba3e::2:30;; FORMERLY NS1.ISI.EDU;.
3600000
NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.
3600000
A
199.9.14.201
B.ROOT-SERVERS.NET.
3600000
AAAA 2001:500:200::b;; FORMERLY C.PSI.NET(省略).
3600000
NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.
3600000
A
202.12.27.33
M.ROOT-SERVERS.NET.
3600000
AAAA 2001:dc3::35

https://www.nic.ad.jp/ja/newsletter/No45/0800.html© LPI-Japan / EDUCO all rights reserved.

27

DNSの役割
BIND
OSSのDNSサーバ

https://www.isc.org/bind/https://jprs.jp/tech/

重要度が⾼いサーバなので、脆弱性情報を⾒逃さないようにするべし© LPI-Japan / EDUCO all rights reserved.

28

DNSの役割
その他のDNSサーバ
dnsmasq, Unbound, NSD, PowerDNS

https://thekelleys.org.uk/dnsmasq/doc.html
https://nlnetlabs.nl/projects/unbound/about/https://www.nlnetlabs.nl/projects/nsd/about/https://www.powerdns.com/© LPI-Japan / EDUCO all rights reserved.

29

技術解説

BINDの設定© LPI-Japan / EDUCO all rights reserved.

30

BINDの設定
BINDの動作を制御する “named.conf”
レコード情報を保持する “ゾーンファイル” で構成される
include "/etc /bind/named.conf.options";
include "/etc /bind/named.conf.local";include "/etc /bind/named.conf.default-zones";
include "/etc /bind/named.conf.my-zones";
options {directory "/var/cache/bind";dnssec-validation auto;};

listen-on-v6 { any; };zone "opensourcetech.test" {type master;
file "/etc /bind/test.zone";};zone "1.168.192.in-addr.arpa" {type master;
file "/etc /bind/test.rev";
};

容
の内
e
n
.zo
test

$ORIGIN opensourcetech.test.
$TTL 604800@
IN
SOA
dns.opensourcetech.test.
root.opensourcetech.test. (2022051501; Serial
604800; Refresh
86400; Retry2419200; Expire
604800 ); Negative Cache TTL;
INNS
dns.opensourcetech.test.
IN
MX 10 mail.opensourcetech.test.
dns
INA
192.168.1.247
wwwINA
192.168.1.247
mail INA
192.168.1.247
ftp
INA
192.168.1.247
smbINA
192.168.1.247© LPI-Japan / EDUCO all rights reserved.

31

BINDの設定
named.conf
include "/etc/bind/named.conf.local";include “/etc/bind/named.conf.default-zones”;

・・・・・外部設定ファイルの参照先

options {directory “/var/cache/bind”; ・・・・bindの作業ディレクトリ指定
recursion yes;
・・・・再帰問い合わせの実施
listen-on-v6 { any; };・・・・IPv6通信⽤のIPアドレス指定};
zone “.” {・・・・ルートDNSサーバの情報
type hint;
file "/usr/share/dns/root.hints";};

設定⾏は、”;(セミコロン)” を最後に付ける
ディレクティブは、”{” で始まり、”}” で閉じる
192.168.1.0/24の逆引きは、” 1.168.192.in-addr.arpa” と書くなど慣れないと記載ミスをしやすい

zone “opensourcetech.test” { ・・・・ドメイン opensourcetech.test については、権威(master)であり、test.zone にレコード記載あり
type master;
file "/etc/bind/test.zone";};zone “1.168.192.in-addr.arpa” {type master;
file "/etc/bind/test.rev";};

・・・・ドメイン 192.168.1.0/24については、権威(master)であり、test.rev にレコード記載あり© LPI-Japan / EDUCO all rights reserved.

32

BINDの設定
forwarders・・・⾃分で再帰問い合わせを⾏わず、別のDNSに依頼する
named.conf
include "/etc/bind/named.conf.local";include “/etc/bind/named.conf.default-zones”;
options {directory “/var/cache/bind”;
recursion no;・・・・再帰問い合わせの実施
forwarders { 192.168.2.254; 192.168.2.253; };listen-on-v6 { any; };};zone “opensourcetech.test” {type master;
file "/etc/bind/test.zone";};zone “1.168.192.in-addr.arpa” {type master;
file "/etc/bind/test.rev";};© LPI-Japan / EDUCO all rights reserved.

33

BINDの設定
named-checkconf
設定ファイル(named.conf)の構⽂チェックツール
問題ない場合ubuntu@linucserver:~$ named-checkconf /etc/bind/named.conf
ubuntu@linucserver:~$ 何も表⽰されないミスがある場合 ※設定の最後の”;”を忘れている場合
ubuntu@linucserver:~$ named-checkconf /etc/bind/named.conf/etc/bind/named.conf:13: missing ';' before end of file

© LPI-Japan / EDUCO all rights reserved.

34

BINDの設定
ゾーンファイル(正引き)
root@opensourcetech.testを表す“opensourcetech.test”を意味する$ORIGIN opensourcetech.test.
$TTL 604800
・・・・問い合わせ時クライアントが取得したレコード情報の有効(キャッシュ)期間 Time To Live@IN
SOA
dns.opensourcetech.test. root.opensourcetech.test. (2022051501; Serial
無い場合、
604800; Refresh
⾃動的に ”opensourcetech.test”を補完する
86400; Retry2419200; Expire
ゾーンファイルのシリアルナンバー
ゾーン転送
空⽩は、”@”が補完される 604800 ); Negative Cache TTL
ゾーン情報更新のチェック間隔;
ゾーン転送失敗時の待機時間
master DNSの冗⻑構成 slaveINNS
dns.opensourcetech.test.
ゾーンを無効とみなすまでの時間
IN
MX 10 mail.opensourcetech.test.
ネガティブキャッシュ(問い合わせレコードが存在しない)の⽣存時間
dnsINA
192.168.1.247
レコードの種類www IN
A
192.168.1.247
SOA︓ゾーンの管理情報
mail
IN
A
192.168.1.247
A︓IPv4正引きftp
INA
192.168.1.247
AAAA︓IPv6正引き
smb
INA
192.168.1.247
NS︓ネームサーバ“www” の後に “opensourcetech.test” が補完される
MX︓メールサーバ ※優先度記載必須
PTR︓逆引きTXT︓テキスト
パラメータや記載⽅法・レコードの種類など覚えることが多く、CNAME︓別名⽤
慣れないと記載ミスをしやすい© LPI-Japan / EDUCO all rights reserved.

35

BINDの設定
ゾーンファイル(逆引き)“192.168.1.0/24” を意味する$ORIGIN 1.168.192.in-addr.arpa.
$TTL 604800@
IN
SOA
dns.opensourcetech.test. root.opensourcetech.test. (2022051501; Serial
604800; Refresh
86400; Retry2419200; Expire
604800 ); Negative Cache TTL;
INNS
dns.opensourcetech.test.
247
IN
PTR
www.opensourcetech.test.
247
IN
PTR
dns.opensourcetech.test.
無い場合、
247
IN
PTR
mail.opensourcetech.test.
⾃動的に ”opensourcetech.test”を補完する
247
IN
PTR
ftp.opensourcetech.test.
247
IN
PTR
smb.opensourcetech.test.

IPアドレスのドメイン(1.168.192.in-addr.arpa)に含まれない
第4オクテットを記載

パラメータや記載⽅法に慣れていないと、記載ミスをしやすい© LPI-Japan / EDUCO all rights reserved.

36

BINDの設定
named-checkzone
ゾーンファイルの構⽂に間違いがないかチェックするツール
正引きゾーンファイルのチェック
ubuntu@linucserver:~$ named-checkzone opensourcetech.test /etc/bind/test.zone
zone opensourcetech.test/IN: loaded serial 2022051501
OK
逆引きゾーンファイルのチェック
ubuntu@linucserver:~$ named-checkzone 1.168.192.in-addr.arpa /etc/bind/test.rev
zone 1.168.192.in-addr.arpa/IN: loaded serial 2022051501
OK© LPI-Japan / EDUCO all rights reserved.

37

BINDの設定
設定変更時は、プロセスを再起動や設定ファイル再読み込みが必要
ubuntu@linucserver:~$ sudo systemctl start named
ubuntu@linucserver:~$ sudo systemctl reload named
ubuntu@linucserver:~$ sudo systemctl restart named
ubuntu@linucserver:~$ sudo rndc reconfig
ubuntu@linucserver:~$ sudo rndc status
version: BIND 9.16.1-Ubuntu (Stable Release) <id:d497c32>
running on linucserver: Linux x86_64 5.4.0-109-generic #123-Ubuntu SMP Fri Apr 8 09:10:54 UTC 2022
boot time: Fri, 27 May 2022 17:31:45 GMT
last configured: Fri, 27 May 2022 17:31:55 GMT
configuration file: /etc/bind/named.conf
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 104 (97 automatic)
debug level: 0xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 0/150
TCP high-water: 0© LPI-Japan / EDUCO all rights reserved.
server is up and running

38

技術解説

DNSクライアントツール© LPI-Japan / EDUCO all rights reserved.

39

DNSクライアントツール
nslookupubuntu@linucserver:/etc/bind$ nslookup> server 192.168.1.247
・・・・問い合わせをするDNSサーバ指定
Default server: 192.168.1.247
Address: 192.168.1.247#53> www.opensourcetech.test
Server:192.168.1.247
Address:
192.168.1.247#53

・・・・正引き確認

Name: www.opensourcetech.test
Address: 192.168.1.247> 192.168.1.247
247.1.168.192.in-addr.arpa
247.1.168.192.in-addr.arpa
247.1.168.192.in-addr.arpa
247.1.168.192.in-addr.arpa
247.1.168.192.in-addr.arpa

・・・・逆引き確認name = smb.opensourcetech.test.
name = dns.opensourcetech.test.
name = www.opensourcetech.test.
name = mail.opensourcetech.test.
name = ftp.opensourcetech.test.

© LPI-Japan / EDUCO all rights reserved.

40

DNSクライアントツール
hostubuntu@linucserver:~$ host www.opensourcetech.test 192.168.1.247
Using domain server:
Name: 192.168.1.247
Address: 192.168.1.247#53
Aliases:

・・・・正引き確認

www.opensourcetech.test has address 192.168.1.247
ubuntu@linucserver:~$ host 192.168.1.247 192.168.1.247
Using domain server:
Name: 192.168.1.247
Address: 192.168.1.247#53
Aliases:

・・・・逆引き確認

247.1.168.192.in-addr.arpa domain name pointer mail.opensourcetech.test.
247.1.168.192.in-addr.arpa domain name pointer smb.opensourcetech.test.
247.1.168.192.in-addr.arpa domain name pointer www.opensourcetech.test.
247.1.168.192.in-addr.arpa domain name pointer dns.opensourcetech.test.
247.1.168.192.in-addr.arpa domain name pointer ftp.opensourcetech.test.

© LPI-Japan / EDUCO all rights reserved.

41

DNSクライアントツール
dig(正引き)ubuntu@linucserver:~$ dig @192.168.1.247 www.opensourcetech.test; <<>> DiG 9.16.1-Ubuntu <<>> @192.168.1.247 www.opensourcetech.test; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59778;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096
; COOKIE: fbd650458f8322140100000062910ef8dd82414dcab408d5 (good);; QUESTION SECTION:;www.opensourcetech.test.
INA
・・・・問い合わせ内容;; ANSWER SECTION:
www.opensourcetech.test. 604800 IN

A;; Query time: 0 msec;; SERVER: 192.168.1.247#53(192.168.1.247);; WHEN: Fri May 27 17:48:40 UTC 2022;; MSG SIZE rcvd: 96

192.168.1.247

・・・・DNSサーバからの回答

・・・・問い合わせに関する統計情報© LPI-Japan / EDUCO all rights reserved.

42

DNSクライアントツール
dig(逆引き)ubuntu@linucserver:~$ dig @192.168.1.247 -x 192.168.1.247; <<>> DiG 9.16.1-Ubuntu <<>> @192.168.1.247 -x 192.168.1.247; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42403;; flags: qr aa rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096
; COOKIE: cb2b08dddb06dbf70100000062910f2c5c2c3aa1126009c7 (good);; QUESTION SECTION:;247.1.168.192.in-addr.arpa. IN
PTR;; ANSWER SECTION:
247.1.168.192.in-addr.arpa. 604800 IN
247.1.168.192.in-addr.arpa. 604800 IN
247.1.168.192.in-addr.arpa. 604800 IN
247.1.168.192.in-addr.arpa. 604800 IN
247.1.168.192.in-addr.arpa. 604800 IN

PTR
PTR
PTR
PTR
PTR

;; Query time: 0 msec;; SERVER: 192.168.1.247#53(192.168.1.247);; WHEN: Fri May 27 17:49:32 UTC 2022;; MSG SIZE rcvd: 193

smb.opensourcetech.test.
www.opensourcetech.test.
ftp.opensourcetech.test.
dns.opensourcetech.test.
mail.opensourcetech.test.

© LPI-Japan / EDUCO all rights reserved.

43

Appendix© LPI-Japan / EDUCO all rights reserved.

44

Appendix
chroot”/var/chroot”などのディレクトリを、
ファイルシステムのトップディレクトリである”/”にみせかける⼿法
これにより攻撃者にBIND(named)を乗っ取られた場合に、システム全体に影響が及ぶのを防ぐもの
https://linuc.org/study/knowledge/420/© LPI-Japan / EDUCO all rights reserved.

45

Appendix
DANE
DNS-Based Authentication of Named Entitiesの略で、認証情報をDNSを⽤いて通信するための仕組み
https://www.nic.ad.jp/ja/basics/terms/dane.html

DNSSECDNS問い合わせに対する応答が改ざんなどされていないか検証する仕組み
https://www.nic.ad.jp/ja/newsletter/No43/0800.html
TSIG
Transaction SIGnatureの略で、
DNSのメッセージに対して電⼦署名を⾏うことで通信経路上における改ざんを防ぐ仕組み
https://jprs.jp/tech/material/rfc/RFC2845-ja.txt© LPI-Japan / EDUCO all rights reserved.

46

Appendix
LinuCレベル2 202試験
主題2.08の例題と解説
https://linuc.org/study/samples/index/s/2_08/© LPI-Japan / EDUCO all rights reserved.

47

本⽇のまとめØDNSの役割を理解するØBINDの設定⽅法を理解するØBINDのゾーンファイル書式を理解する

構築には慣れが必要だが、達成感がある︕※特に設定ファイルやゾーンファイル
設定や動作を理解することで、DNSのトラブルシュート⼒が増す
独⾃ドメインの取得やドメイン管理の業務に役に⽴つ© LPI-Japan / EDUCO all rights reserved.

48

Q&A

© LPI-Japan / EDUCO all rights reserved.

49

Thank you for join todayʼs seminar!

https://www.opensourcetech.tokyo/
https://twitter.com/matt_zeus
https://www.facebook.com/takahiro.kujirai.1© LPI-Japan / EDUCO all rights reserved.

50