Windows 10などクライアントOSしかない環境で、DNSサーバーを稼働させたい場合、サードパーティーのソフトウェアが必要になりますが、無料かつ安心して利用できるDNSサーバーソフトとなると、選択肢が限られます。
その中でおススメなのが、Linux環境では定番のDNSサーバー「BIND9」のWindows版です。
そこでここでは、オープンソースの無料DNSサーバー「BIND9」を使って、WindowsでDNSサーバーを構築する方法を紹介します。なお、ここでは構築が容易なDNSキャッシュサーバーを構築します。
目次
BIND9とは
「BIND」は、オープンソースのDNSサーバーソフトウェアで、インターネット上で稼働している多くのDNSサーバーがBINDを利用していると言われています。
BINDは一般的にはUNIX系のプラットフォームで利用されることが多いですが、WindowsやMacOSもサポートされています。
BIND9の使い方
BIND9の入手とインストール
まずは、公式サイトのダウンロードページからWindows用のZIPファイルをダウンロードします。
執筆時点でダウンロードできる最新バージョンは「9.16.26」です。
ZIPファイル「BIND9.16.26x64.zip」をダウンロードしたら、ファイルのプロパティ画面を開いて「全般」タブの下部にある「許可する」にチェック入れて「OK」をクリックします。
次に、ZIPファイルを展開してフォルダー内の「BINDinstall.exe」を右クリックし「管理者として実行」を選択します。
インストール画面が表示されたら、以下の項目を設定してから画面右上の「Install」をクリックします。
- Target Directory:C:¥BIND9
- Service Account Name:named(Windowsに登録されるユーザーアカウントで、BINDサービスを実行するときに利用されます。)
- Service Account Password:十分に複雑なパスワードを設定
- Confirm Service Account Password:確認のために再度パスワードを入力
- Options:既定値のまま
インストール中に「Microsoft Visual C++ 2017 Redistributable」のセットアップが起動したときは「ライセンス条項および使用条件に同意する」にチェック入れて「インストール」をクリックします。
「Microsoft Visual C++ 2017 Redistributable」のインストールが完了したら「閉じる」をクリックします。
インストールが完了すると「BIND installation complete successfully」と表示されるので「OK」をクリックし、インストーラー画面は「Exit」で閉じます。
アクセス許可設定
インストール時に作成したService Account「named」は、インストールフォルダー(ここでは、C:¥BIND9)に対して、書き込み・変更権限が必要になるので、権限を付与します。
インストールフォルダー(ここでは、C:¥BIND9)のプロパティ画面を開き「セキュリティ」タブの「編集」をクリックします。
「アクセス許可」画面が表示されるので「追加」をクリックします。
「ユーザーまたはグループの選択」画面が表示されるので「選択するオブジェクト名を入力してください」欄に「named」と入力して「名前の確認」をクリックします。
入力した名前がオブジェクト名として表示されたら「OK」をクリックします。
「アクセス許可」画面に戻ると「グループまたはユーザー名」の一覧に「named」が追加されているので、クリックして選択した状態で「アクセス許可」から「変更」の許可にチェック入れて「OK」をクリックします。
プロパティ画面に戻るので「OK」をクリックします。
BIND9の設定
BIND9の設定は、インストールフォルダーの「etc」フォルダー内に「named.conf」 というテキストファイルを用意して、このファイルに記述します。
ここでは、DNSキャッシュサーバーとして稼働させるための必要最低限の設定として、次の内容を記述します。
options {
listen-on {any;};
listen-on-v6 {any;};
directory "C:\BIND9";
empty-zones-enable no;
recursion yes;
allow-query {any;};
allow-recursion {any;};
allow-query-cache {any;};
forwarders {192.168.10.254;}; #ここには転送先のDNSサーバーアドレスを記述します。
dnssec-validation no;
};
設定ファイルを作成したら、設定ファイルに文法などの誤りがないかを確認するために、コマンドプロンプトを起動して以下のコマンドを順に実行します。
C:\> cd c:\BIND9\bin
C:\BIND9\bin> named-checkconf.exe
コマンド実行後、以下の画面のように何も表示されなければOKです。
なお、本格的にDNSサーバーとして稼働させる場合は、セキュリティやロギングといった点も考慮して設定ファイルを記述する必要があります。
named.confファイルの記述方法は、他のプラットフォームのBINDとほとんど同じなので、記述方法をインターネット上で調べたいときは、オンラインマニュアルだけでなく、他のプラットフォーム向けの情報も参考になるでしょう。
BIND9の開始
設定が完了したら、スタートメニューのプログラム一覧から「Windows管理ツール」>「サービス」を起動して、サービス一覧から「ISC BIND」サービスを開始します。
なお、Windows版のBINDでは、ログがアプリケーションイベントログとしても記録されているので、サービスを起動したら、イベントビューアーでBIND関連のエラーが発生いていないか確認しましょう。
ファイアウォールの設定
つぎに、スタートメニューのプログラム一覧から「Windows管理ツール」>「セキュリティが強化された Windows Defender ファイアウォール」を起動し、以下の内容で「受信の規則」を追加します。
- 規則の種類:プログラム
- このプログラム:C:¥BIND9\bin\named.exe
- 操作:接続を許可する
- プロファイル:既定値(すべてにチェックが入った状態)
- 名前:任意の管理しやすい名前(例:BIND9)
動作確認
BINDの動作確認としては、他のマシンから名前解決を実行して、正常な応答が返ってくるかを確認します。
たとえば、DNSサーバーを構築したマシンのIPアドレスが「192.168.10.217」の場合、他のWindowsマシンで、コマンドプロンプトから以下のコマンドを実行します。
C:\> nslookup www.google.co.jp 192.168.10.217
コマンド実行後、以下の画面のように応答が返ってくればOKです。
あとがき
BINDは、インターネットに公開されているような本格的なDNSサーバーでも利用できるため、しっかりと設定しようとすると、それなりに手間がかかりますが、ここで紹介したように簡易的にDNSサーバーを立てたいときにも、必要最小限のシンプルな設定で比較的短時間で構築することができますよ。