今回はDNSサーバのソフトウェアではデファクトスタンダードとなっている「BIND」のインストールについて学んでいきます。
BINDとは
BINDは「Berkely Internet Domain」の略で、カリフォルニア大学バークレー校で開発されたソフトウェアです。
本来インターネットが普及する前は、各々のコンピュータにhostsというファイルを用意し、ドメインとIPアドレスの対応表を作成し、それを参照して名前解決を行っていました。
UNIX系のOSでは「/etc/hosts」、Windowsでは「C:\Windows\System32\drivers\etc\hosts」にファイルが残っており、クライアントPCが名前解決をする際は、このhostsファイルに記載されている内容が優先されます。
しかし、インターネットが普及し、その膨大なホスト数を管理するのに一つのファイルではとても効率が悪く、対応できなくなってきました。
つまり、ひとつのファイルでドメイン名とIPアドレスを集中的に管理するのではなく、ドメインごとに階層的に分散管理することで、情報の更新等が効率的に行えるようになります。
これがDNSの仕組みであり、これを実現しているのがBIND等のソフトウェアになります。
なお、現在ではBIND9が最新バージョンとなっているため、今回もこちらのバージョンを利用します。
BINDのインストール
それでは、マスターサーバであるCentOS7にBIND9をインストールしていきます。
> yum install bind bind-chroot > named -v BIND 9.9.4-RedHat-9.9.4-61.el7_5.1 (Extended Support Version)
上記のbindの中にbind, bind-utils, bind-libsの必要なパッケージが含まれており、bind-chrootはchroot環境構築用のパッケージになります。
chroot環境とはセキュリティ対策の一環で、簡単に言えばあるプログラムが利用するファイルシステムのルートディレクトリ(/)をある特定のディレクトリの中に閉じ込めてしまい、そこから上には行けない環境を作ってしまうことです。
これにより、万が一BINDの脆弱性を利用してシステムに侵入されても、攻撃者はそのchroot環境から出ることができなくなります(閉じ込められる)。
ここでは「/var/named/chroot/」をBINDが利用するルートディレクトリにします。
> cp /etc/named.conf /etc/named.conf.org > cd /var/named/chroot/ > mv /etc/named.conf etc/ > ln -s /var/named/chroot/etc/named.conf /etc/ > ls -l /var/named/chroot/etc/named.conf -rw-r-----. 1 root named 1793 11月 12 08:09 /var/named/chroot/etc/named.conf
上記内容の説明は以下となります。
- 1行目:バックアップファイルの作成
- 2行目:chroot環境のディレクトリへ移動
- 3行目:設定ファイルをchroot環境下へ移動
- 4行目:シンボリックリンクを作成
- 5行目:パーミッションが640、所有グループがnamedになっていることを確認
以上でBIND9のインストールは完了です。
次回はBINDの中核ファイルである「named.conf」の設定を行っていきます。