LinuCレベル2 202試験の出題範囲「2.08.3 セキュアなDNSサーバーの実現」の技術的内容についての解説をまとめました。
重要度 2 概要 DNSサーバーをroot以外のユーザとしてchroot 環境で実行するよう設定できる。これには、DNSサーバー間で安全なデータ交換を行うことも含まれる。 詳細 chroot 環境で稼働するようBINDを設定する。
forwarders文を使用してBINDの構成を分割する。
・named.conf
DNSSEC および基本的なツールについて知っている。
・dnssec-keygen, dnssec-signzone, TSIG(Transaction Signature)
DANE および関連レコードについて知っている。

chroot環境の概要
chrootとは、「CHange ROOT」のことで、ルートディレクトリを変更する技術です。ここでのROOTとは特権ユーザではなく、ファイルシステムのルートディレクトリのことを指します。
UNIX系のファイルシステムは、「/」すなわちルートディレクトリを頂上としたツリー構造をとっています。このルートディレクトリを、たとえばですが「/var/chroot/」ディレクトリに変更する技術が「chroot」です。
「ルートディレクトリを変更する」といっても、すべてのソフトウェアでルートディレクトリが変更になるというわけではありません。特定のソフトウェア(主にサーバソフトウェア)において、chrootを利用する環境が整っており、ソフトウェア側で設定を行った際のみchrootが行われます。有名なところでは、BINDでchrootが利用できます。

DNSSECの概要
DNSSECとは、DNS Security Extensionsの略となります。
DNSSECでは、DNSサーバにおいてDNSゾーン情報をKSK(鍵署名鍵)/ZSK(ゾーン署名鍵)という2つの鍵で署名します。
レコード情報を受け取ったDNSクライアントでは、公開鍵を用いてそれを検証することでサーバからの応答が改竄されていないことを確認します。また、利用にはサーバ・クライアントともDNSSECに対応している必要があります。
通常のDNS通信に比べると複雑な仕組みとなりますが、鍵(KSK/ZSK)の作成方法・種類/役割など把握しておきましょう。

KSK(鍵署名鍵)とZSK(ゾーン署名鍵)の概要
DNSSECでは、KSK(鍵署名鍵)/ZSK(ゾーン署名鍵)という2つの鍵を使用します。それぞれの鍵の役割は以下です。
| 鍵の署名鍵(KSK: Key Signing Key) | ゾーンに署名した鍵に署名する |
| ゾーンの署名鍵(ZSK:Zone Signing Key) | ゾーンに署名する |
TSIG(Transaction Signature)の概要
TSIG:冗長構成のDNSサーバ間におけるゾーン転送をセキュアに行う仕組み

DNSトランザクション署名(TSIG)は、RFC 2845で定義されたネットワークプロトコルです。TSIGの主な目的は、DNSがDNSデータベースに対する更新を認証できるようにすることです。これにより、悪意のあるユーザーは、銀行のIPアドレスではなく、不正なIPアドレスを指すように名前解決レコードを変更できなくなります。TSIGは、一方向ハッシュおよび共有秘密キーを使用して、DNS更新リクエストを処理(または応答)するために接続のエンドポイントを認証する安全な手段を提供します。
DANE(DNS-based Authentication of Named Entities)の概要
DANE:DNSを用いて通信相手の認証を行うための仕組み

参考資料
本記事の作成に使用した参考資料を掲載します。
https://linuc.org/docs/seminar/20220605_linuc2.pdf
