難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。
LinuC レベル2 202試験のサンプル問題(本番形式・解説付き)
LinuC レベル2 202試験(LPI-Japan・LinuC-2 202試験(Linuxサーバー運用))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録ですぐ解ける模試 第1回(56問)の冒頭から抜粋したオリジナル問題です。当サイトは全390問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。
設問1
named.confの構文チェックに加えて、その設定内でマスターゾーンとして定義されている全てのゾーンファイルについても読み込み検証を行いたい。named-checkconfコマンドに指定するオプションとして、最も適切なものはどれか。
- -p
- -z(正解)
- -v
- -t
解説
named-checkconfは既定ではnamed.conf自体の構文チェックのみを行い、そこで参照されているゾーンファイルの中身までは検証しない。-zオプションを付与すると、named.conf内でマスターとして定義されている各ゾーンファイルについても実際に読み込みを行い、named-checkzone相当の整合性チェックを併せて実行する。
他の選択肢が誤りである理由
- 「-p」-pはnamed.confおよびincludeされたファイルの内容を、エラーが無い場合に正規化した形式で標準出力へ書き出すオプションであり、ゾーンファイルの検証とは無関係である。
- 「-v」-vはnamed-checkconf自身のバージョン番号を表示して終了するオプションであり、設定内容やゾーンファイルの検証は行われない。
- 「-t」-t directoryは、named.conf中のinclude等の相対パス解釈を、指定ディレクトリへchrootした状態を模して処理させるためのオプションであり、ゾーンファイルの内容検証を行うものではない。
設問2
マスター(プライマリ)サーバーでゾーンファイルのリソースレコードを編集したが、SOAレコードのシリアル番号を更新し忘れた。この場合に起こる現象として、最も適切なものはどれか。
- 編集した内容がDNSSECの署名対象から外れたものと判定され、当該ゾーンに付与されていたRRSIGレコードがnamedによって自動的に無効化されるため、検証を行うリゾルバへはSERVFAILが返るようになる。
- スレーブサーバーはシリアル番号の値を参照せず、SOAレコードのREFRESHで指定した間隔が到来するたびに無条件でAXFRによるゾーン転送を実行するため、シリアル番号を更新していなくても編集した内容は次回の転送時に反映される。
- マスターサーバーのnamedがゾーンファイルの読み込み時にシリアル番号の不整合を検知してエラーログを出力し、当該ゾーンの提供自体を停止するため、そのゾーンの名前解決ができなくなる。
- スレーブ(セカンダリ)サーバーは、マスターから取得したSOAシリアル番号が自身の保持する値より大きくなっていないため変更なしと判断し、ゾーン転送(AXFR/IXFR)を行わずに古いデータを保持し続ける。(正解)
解説
スレーブサーバーは、マスターのSOAシリアル番号が自身の保持する値より大きい場合にのみゾーンに変更があったと判断してゾーン転送を行う。シリアル番号を更新し忘れると、レコードの内容自体は変更されていてもスレーブ側からは「変更なし」としか見えず、ゾーン転送がスキップされて反映漏れが起こる。運用上、ゾーンファイルを編集したら必ずシリアル番号をインクリメントする必要がある。
他の選択肢が誤りである理由
- 「編集した内容がDNSSECの署名対象から外れたものと判定され、当該ゾーンに付与されていたRRSIGレコードがnamedによって自動的に無効化されるため、検証を行うリゾルバへはSERVFAILが返るようになる。」シリアル番号の更新有無とRRSIGの有効性は別の仕組みであり、シリアルを更新し忘れたことで既存の署名が自動的に無効化されSERVFAILになるという挙動はない。
- 「スレーブサーバーはシリアル番号の値を参照せず、SOAレコードのREFRESHで指定した間隔が到来するたびに無条件でAXFRによるゾーン転送を実行するため、シリアル番号を更新していなくても編集した内容は次回の転送時に反映される。」スレーブはREFRESH間隔ごとにSOAクエリでシリアル番号を確認し、値が増えていない限りゾーン転送は行わない。無条件で毎回AXFRを実行する動作ではない。
- 「マスターサーバーのnamedがゾーンファイルの読み込み時にシリアル番号の不整合を検知してエラーログを出力し、当該ゾーンの提供自体を停止するため、そのゾーンの名前解決ができなくなる。」シリアル番号を更新し忘れたこと自体は構文エラーでも値の不整合でもないため、マスター側のnamedがゾーンの読み込みに失敗したりゾーン提供を停止したりすることはない。あくまでスレーブへの伝播が起きないだけである。
設問3
ベースDN dc=example,dc=com 配下から、匿名バインドで uid=taro に一致するエントリを検索するコマンドを入力せよ。
入力形式(コマンドを打ち込んで答える問題です)
ldapsearch -x -b "dc=example,dc=com" "(uid=taro)"(正解)
別解: ldapsearch -x -b 'dc=example,dc=com' '(uid=taro)'
解説
ldapsearch は -x で簡易認証(匿名バインドも含む)、-b でベースDN、続けてフィルタ(RFC 4515形式)を指定してLDAPディレクトリを検索するクライアントコマンドである。-x を省略すると既定でSASL認証が試みられ、多くの検証環境では失敗する点に注意する。検索スコープは既定でsubtree(ベースDN配下全体)であり、-s base/one/subで変更できる。
設問4
named-checkzoneコマンドとnamed-compilezoneコマンドの違いに関する記述として、最も適切なものはどれか。
- named-checkzoneはテキスト形式のゾーンファイルしか検証できず、-f rawを指定するとフォーマットエラーになる。一方のnamed-compilezoneはraw(バイナリ)形式のゾーンファイルしか受け付けないため、両者は入力できるファイル形式で完全に住み分けられており、互換性がない。
- named-checkzoneはBIND 9系列のパッケージにのみ含まれる検証コマンドで、named-compilezoneは開発が継続されているBIND 10系列で新設された全く別系統の検証コマンドである。BIND 9の環境にはnamed-compilezoneが同梱されないため、利用するにはBIND 10のパッケージを別途導入する必要がある。
- named-checkzoneは検証対象をマスターゾーンのみに限定しており、スレーブ用のファイルを指定するとエラーになる。named-compilezoneはセカンダリがゾーン転送で受け取ったファイル専用の検証コマンドであり、named.confでtype slaveと定義したゾーンに対してのみ使用できる。
- named-checkzoneは-oオプションの指定が任意で、省略時は出力ファイルを作らず検証のみを行う。named-compilezoneはnamed-checkzoneと同様の検証を行うが、-oによる出力ファイル名の指定が必須であり、検証結果をコンパイル済みのゾーンファイルとして書き出す。(正解)
解説
named-checkzoneとnamed-compilezoneは基本的に同様の構文・整合性チェックを行うツールである。実務上の主な違いは-oオプションの扱いで、named-checkzoneでは省略可能(省略時は検証のみ)なのに対し、named-compilezoneでは出力ファイル名の指定が必須であり、検証済みのゾーンデータを指定形式(text/rawなど)でファイルに書き出す点にある。
他の選択肢が誤りである理由
- 「named-checkzoneはテキスト形式のゾーンファイルしか検証できず、-f rawを指定するとフォーマットエラーになる。一方のnamed-compilezoneはraw(バイナリ)形式のゾーンファイルしか受け付けないため、両者は入力できるファイル形式で完全に住み分けられており、互換性がない。」両コマンドとも-fで入力形式、-Fで出力形式(text/raw/map等)を指定でき、扱えるファイル形式で住み分けられているわけではない。named-checkzoneでraw形式のゾーンファイルを検証することもできる。
- 「named-checkzoneはBIND 9系列のパッケージにのみ含まれる検証コマンドで、named-compilezoneは開発が継続されているBIND 10系列で新設された全く別系統の検証コマンドである。BIND 9の環境にはnamed-compilezoneが同梱されないため、利用するにはBIND 10のパッケージを別途導入する必要がある。」BIND 10はISCが開発していた別系統のプロジェクトだが2014年前後に開発が終了しており、named-compilezoneはBIND 9パッケージに含まれるコマンドである。追加導入が必要になるという説明も誤りである。
- 「named-checkzoneは検証対象をマスターゾーンのみに限定しており、スレーブ用のファイルを指定するとエラーになる。named-compilezoneはセカンダリがゾーン転送で受け取ったファイル専用の検証コマンドであり、named.confでtype slaveと定義したゾーンに対してのみ使用できる。」検証対象をマスターゾーンかスレーブゾーンかで使い分けるという仕様はない。マスター/スレーブの区別はnamed.conf上のゾーン運用形態の話であり、どちらのコマンドも与えられたゾーンファイルをそのまま検証する。
設問5
セキュアなDNS運用に関連する技術の説明として、最も適切なものはどれか。
- DANE(DNS-based Authentication of Named Entities)は、TLSAリソースレコードを用いて特定のホスト名・ポートで提供されるTLS証明書(またはその公開鍵)の正当性をDNS経由で確認する仕組みであり、TLSAレコード自体の信頼性を担保するためDNSSECで署名されたゾーンでの運用が前提となる。(正解)
- forwardersを設定したキャッシュサーバーにforward only;を指定した場合でも、転送先のサーバーが応答しないときは自動的に自分自身でルートサーバーから反復問い合わせを行い、名前解決を完了させる。この点はforward first;を指定した場合と同じ動作であり、両者の違いは転送先へ問い合わせを試みる回数だけである。
- namedをchroot環境で稼働させる場合、named の実行ファイルさえchroot先のディレクトリに配置すればよく、共有ライブラリや/dev/nullなどのデバイスファイル、named.confやゾーンファイルは、chroot先に用意しなくても自動的に参照される。namedは起動時にchroot先の外にある/usr/libや/etcを読み込んでからルートディレクトリを切り替えるためである。
- TSIG(Transaction SIGnature)は、公開鍵と秘密鍵のペアを用いた非対称鍵暗号方式でゾーンファイル全体に電子署名を付与する仕組みであり、dnssec-signzoneによって生成される。署名はRRSIGレコードとして署名済みゾーンファイルへ書き出され、リゾルバは親ゾーンからたどった鍵でその正当性を検証する。
解説
DANEはRFC 6698で定義され、TLSAレコードによって特定のサービス(ホスト名とポート)が提示すべきTLS証明書または公開鍵の情報をDNSに登録し、認証局(CA)に依存しない形で証明書の正当性を検証できるようにする仕組みである。ただしTLSAレコード自体が改ざん・偽装されると意味を成さないため、DNSSECによって当該ゾーンが署名され、レコードの正当性を検証できることが前提となる。
他の選択肢が誤りである理由
- 「forwardersを設定したキャッシュサーバーにforward only;を指定した場合でも、転送先のサーバーが応答しないときは自動的に自分自身でルートサーバーから反復問い合わせを行い、名前解決を完了させる。この点はforward first;を指定した場合と同じ動作であり、両者の違いは転送先へ問い合わせを試みる回数だけである。」forward only;を指定した場合、転送先が応答しなくても自分自身でルートサーバーから反復問い合わせを行うことはなく、名前解決はそのまま失敗する。転送先から応答が無いときに自己解決へフォールバックするのはforward first;(既定)の動作であり、両者の違いは問い合わせを試みる回数ではない。
- 「namedをchroot環境で稼働させる場合、named の実行ファイルさえchroot先のディレクトリに配置すればよく、共有ライブラリや/dev/nullなどのデバイスファイル、named.confやゾーンファイルは、chroot先に用意しなくても自動的に参照される。namedは起動時にchroot先の外にある/usr/libや/etcを読み込んでからルートディレクトリを切り替えるためである。」chroot環境ではnamedプロセスからchroot先の外部が一切見えなくなるため、共有ライブラリやデバイスファイル、named.conf、ゾーンファイルなど実行に必要な一式をchroot先のディレクトリ構造内に個別に用意(コピーやバインドマウント)する必要がある。「自動的に参照される」という説明は誤り。
- 「TSIG(Transaction SIGnature)は、公開鍵と秘密鍵のペアを用いた非対称鍵暗号方式でゾーンファイル全体に電子署名を付与する仕組みであり、dnssec-signzoneによって生成される。署名はRRSIGレコードとして署名済みゾーンファイルへ書き出され、リゾルバは親ゾーンからたどった鍵でその正当性を検証する。」TSIGは共有秘密鍵とHMAC(HMAC-MD5やHMAC-SHA256など)を用いた対称鍵方式であり、ゾーン転送や動的更新など個々のDNSメッセージ(トランザクション)を認証する仕組みである。公開鍵・秘密鍵のペアでゾーン全体に署名しRRSIGを生成するのはDNSSEC(dnssec-signzone)の役割であり、TSIGの説明としては誤り。
続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。
登録なしで50問解く