まぁるいしっぽ:DNSSECを学ぶ2(実践編)クリップピクスリスログウィキプロフまぁるいしっぽ元オタクだけど、いまや三姉妹のパパが、iPhone・ubuntu・カメラ・科学・SFなどなど雑多な興味ごとを書いていく連絡はこちら前の記事│このブログのトップへ│次の記事2010年04月01日DNSSECを学ぶ2(実践編)前回は、理論編でした。今回は、実際の設定をみていく。4.DNSSECの導入手順(1)BINDの入手BINDは、9.3系列でDNSECのDS方式をサポートしている。最新版は、ISCからbind9.7をダウンロードする。http://www.isc.org/software/bind/970-p1/download/bind-970-p1targz(2)インストールDNSECを使うには、OpenSSLのライブラリを使用しているので、以下のパッケージを導入しておく。openSSLlibssl-dev(3)コンパイル以下のように、上記のソースを展開しコンパイルする。オプションを使えるように、シェルの環境変数に以下を設定しておく。installこれで/usr/local/にバイナリがインストールされる。通常のDNSでは、ホストwww.beta.alphaのIPアドレスを検索するのに、以下の手順をとる。alphaのネームサーバ(NSレコード)を聞く。リゾルバは、alphaのネームサーバにbetaのネームサーバ(NS)を聞くリゾルバは、betaのネームサーバにwwwのホスト(A)を聞く以下での設定例での登場人物は、以下。TLD相当のalphaゾーン権威サーバその配下のbeta権威サーバDNSSECを検証するキャッシュサーバ今回ルートサーバは省略し、alphaとbetaとキャッシュサーバを作る。alphaがbetaに権利委任する。betaのゾーンに、wwwのAレコードがある。キャッシュサーバはalphaのKSKを信頼し、事前に登録しておく。この状況で、キャッシュサーバがwww.beta.alpha.を名前解決できれば成功である。通常のDNS設定は終わっているとし、そこから変更点のみを以下に記述していく。alpha.-rで疑似乱数を使っている。本番では/dev/randomを使うこと。その場合、作成時間が数十分かかる。-aでの暗号アルゴリズム指定は、NSEC3を使わなければRSASHA1でもよい。alpha.-fオプションでKSKであるフラグをたてている。ちなみにZSKは256。-bで鍵のビット長を指定する。KSKはZSKに比べて更新手順が複雑であり、そのため長期間使用する。ビット長は長めにとっておく。C)鍵の確認Kalpha.+007+11111.keyというファイルとKalpha.+007+22222.privateというファイルがそれぞれできる。+007は-aで指定したアルゴリズム番号。+11111は、鍵ID。.keyファイルの中をみると、以下のような形式に成っている。これが、そのままゾーンファイル内に記述するDNSKEYレコードである。DNSKEYの次の数値が257ならKSK、256ならZSKと見分けられる。AwEAA..(omitted).....BgM=D)ゾーンファイルへの追記KSKとZSKの*.keyファイルを、ゾーンファイルに追記する。;ZSKE)ゾーンファイルのシリアル番号を上げるこの後の手順で、ゾーンファイルにZSKで電子署名をするが、その際、SOAレコードも対象となるため、シリアル番号を署名前に変更しておかなければならない。署名後にシリアルを変えてしまうと、SOAが改竄されたと見なされてしまう。Kalpha.+007+22222.key-3のあとの数値は、乱数発生のシードなのでなんでもいい。これで、alpha.zoneファイルから、alpha.zone.signedファイルが出来上がる。G)named.confの変更named.confに、DNSSECの有効化オプションと、新しいsignedされたゾーンファイルを読み込ませる。reloadsyslogにエラーが出ないかを確認する。beta.alpha.C)ゾーンファイルへの追記KSKとZSKの*.keyファイルを、ゾーンファイルに追記する。Kbeta.alpha.+007+44444.keyこれで、beta.alpha.zoneファイルから、beta.alpha.zone.signedファイルが出来上がる。G)named.confの変更named.confに、DNSSECの有効化オプションと、新しいsignedされたゾーンファイルを読み込ませる。reloadsyslogにエラーが出ないかを確認する。DNSがbeta.alphaのKSK公開鍵を認証するために、betaはDSレコードを作成し、alphaに登録依頼をする。Kbeta.alpha.+007+33333.keyすると、以下のように表示される。08AAF36FB)DSレコードの登録alphaのゾーンファイル内に、上記2行を追記し、シリアル番号をあげて、ゾーンを再署名し、読み込ませる。(5)キャッシュサーバA)DNSSECの有効化named.confのoptionsにDNSSECの有効化と、検証をする、の以下2行を追記する。yes;};B)信頼できる鍵の登録trusted-keysというブロックを作り、信頼するDNSのKSKを追記する。DNSのKSKを登録する。reload6.動作テスト1)正常系キャッシュサーバ上で、digに+dnssecオプションを付けて検索する。a+sigchaseオプションを付けて検索する。aこのとき、./trusted-key.keyファイルは、上位のDNSの公開鍵を指定する。具体的には、Kalpha.+007+xxxxx.keyの内容から、コメントを除いたDNSKEYレコードを記述する。2)異常系alphaのDSレコードの数値を一文字変更して、再起動し、同じ検索をする。すると、Aレコードが表示されない。キャッシュサーバのsyslogに以下のようなエラーが出力される。Update(動的更新)をする設定を行う。(19)タグクラウド10.04264adeskbaraliasALIGNAPIappengineappleキーボードATOKbashCASEchainconqueconsumerdigdnssecDynamicElementEmacsEvernoteevervimexifGAEGalaxygithubGoogleimageiOSiOS5iPadiPhoneiPhone4iphoneスタンドjavascriptLeftMacOSnoteoauthofOSOSXPadfonepythonretinaRightrmagickRubySHELLsigchasesinatrasmbmountSTYLEtableTDTDLToTRTrusttwitterUbuntuupdateurischemeVAPORVimWindowsXxwindowかな遊びひらがなみらい科学館やはぶさアオシマキーボードクリップクロックスゴムバンドショートカットスキーマテキストエディタディレクトリ共有プラモプラモデルワッフル三段ベッド。