見出し画像

LPIC 202対策 DNS編

LPIC202の範囲にDNSがあります。
Configファイルの内容とかアーキテクチャ的なやつは暗記しないといけません。小豆本とかの教本を見てても記憶の定着が進まないので、やっぱり実機をいろいろいじくっていたほうが覚えると思います。

ワイがLPIC202を勉強していた時にやってみた内容を記事にしています。昔のメモ的な感じです。というわけでDNSの機能をインストールしてConfigファイルとかを見てみようと思います。

OSは↓記事で作成したCentOSを使います。セキュリティはガバガバです。


その1 DNSインストール

DNSをインストールします。DNSってかBINDのインストールです。

実行コマンド:yum install bind
途中でなんか聞かれますが、「y」で処理を進めます。

# yum install bind
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
* base: ty1.mirror.newmediaexpress.com
* extras: ty1.mirror.newmediaexpress.com
* updates: ty1.mirror.newmediaexpress.com
base                                                                                                          | 3.6 kB  00:00:00     
extras                                                                                                        | 2.9 kB  00:00:00     
updates                                                                                                       

〜略〜

依存性を更新しました:
 audit.x86_64 0:2.8.5-4.el7                   audit-libs.x86_64 0:2.8.5-4.el7         bind-libs-lite.x86_64 32:9.11.4-16.P2.el7_8.6 
 bind-license.noarch 32:9.11.4-16.P2.el7_8.6  dhclient.x86_64 12:4.2.5-79.el7.centos  dhcp-common.x86_64 12:4.2.5-79.el7.centos     
 dhcp-libs.x86_64 12:4.2.5-79.el7.centos      policycoreutils.x86_64 0:2.5-34.el7    

完了しました!

「完了しました!」って出力すればOKです。

もう一個インストールコマンドを実行します。
実行コマンド:yum install bind-utils
これも途中でなんか聞かれますので「y」で進めます。

# yum install bind-utils
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ty1.mirror.newmediaexpress.com
* extras: ty1.mirror.newmediaexpress.com
* updates: ty1.mirror.newmediaexpress.com
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ bind-utils.x86_64 32:9.11.4-16.P2.el7_8.6 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

〜略〜

Running transaction
 インストール中          : 32:bind-utils-9.11.4-16.P2.el7_8.6.x86_64                                                            1/1 
 検証中                  : 32:bind-utils-9.11.4-16.P2.el7_8.6.x86_64                                                            1/1 

インストール:
 bind-utils.x86_64 32:9.11.4-16.P2.el7_8.6                                                                                          

完了しました!

こっちも「完了しました!」って出力すればOKです。

その2 Configファイル

BINDの主なConfig設定は「/etc/named.config」です。
/etcの直下にあります

# ls -la /etc/named.conf 
-rw-r-----. 1 root named 1806  62 00:26 /etc/named.conf
#
# cat /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.
//
// 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 { 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";
	recursing-file  "/var/named/data/named.recursing";
	secroots-file   "/var/named/data/named.secroots";
	allow-query     { localhost; };

	/* 
	 - 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.root.key";

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

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

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

# 

このnamed.confにいろいろ設定を行えばDNSとして動きます。
パラメータの数がそこそこ多くて、意味とか覚えるのがすげー大変です。ワイ、どうやって覚えたかわからん。

その3 ゾーンファイル

ゾーンファイルはあれですかね。名前解決をする対象を管理する設定ファイルです。「/etc/named.config」にゾーンファイルの指定があります。

# cat /etc/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";

〜略〜

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

「directory」がゾーンファイルの格納場所で、「file」がファイル名の指定です。
なので↑のファイルだと「/var/named/named.ca」がゾーンファイルって内容です。

# ls -la /var/named/named.ca 
-rw-r-----. 1 root named 2253  45  2018 /var/named/named.ca
# 
[root@supercentos7 superuser]# cat /var/named/named.ca 

; <<>> DiG 9.11.3-RedHat-9.11.3-3.fc27 <<>> +bufsize=1200 +norec @a.root-servers.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46900
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1472
;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	199.9.14.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	199.7.91.13
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	198.97.190.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
b.root-servers.net.	518400	IN	AAAA	2001:500:200::b
c.root-servers.net.	518400	IN	AAAA	2001:500:2::c
d.root-servers.net.	518400	IN	AAAA	2001:500:2d::d
e.root-servers.net.	518400	IN	AAAA	2001:500:a8::e
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
g.root-servers.net.	518400	IN	AAAA	2001:500:12::d0d
h.root-servers.net.	518400	IN	AAAA	2001:500:1::53
i.root-servers.net.	518400	IN	AAAA	2001:7fe::53
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:9f::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 24 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Thu Apr 05 15:57:34 CEST 2018
;; MSG SIZE  rcvd: 811

ゾーンファイルは「Aレコード」とか「正引き/逆引き」とか、いろいろ覚えないといけまへん。(めんどい)
LPIC試験で出題する問題は、設定内容を読み取るような内容なのでちゃんと覚えなあかんです。

LPIC202のDNSの範囲で出てくるのはこの記事の部分が多かったと記憶してます。ただ他にもバージョンの隠蔽とかDNSSECとかも出てきますので、細々とした部分も覚えなあかん。

というわけで以上となります。たぶんLinuCでもこの記事の内容が出題されると思います。DNSに限らずLPIC202はパラメータの意味を覚える系の問題がたくさん出題されるので結構大変です。

今回はDNSの記事を書いてみましたが、今後他にもいろいろ勉強したことを記事にしたいと思いますー


この記事が気に入ったらサポートをしてみませんか?