|
Linux(CentOS6.2) BIND9.9.7-P2 ソースファイルによるインストール(バージョンアップ)方法 |
|
|
|
|
|
|
|
|
Linux(CentOS6.2)でのソースファイルによるBINDのバージョンアップする手順の一例を示す。 |
|
今回は、2015/7/28に公表されたBIND9の脆弱性に対応するため、BIND9.9.7-P2にバージョンアップしてみた。 |
|
|
|
|
|
|
|
|
ここでは、 |
|
・ 64bit環境 |
|
・ 新しいBINDを、既存のBINDとは同じディレクトリにインストール(上書きインストール)する |
|
として説明する。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
手順の流れ |
|
1. BINDのダウンロードおよび検証 |
|
|
|
|
2. make , ar , gcc , opensslv.hのPATHの確認 |
インストール済みであれば省略 |
|
|
3. 共有ライブラリのPATHの設定 |
|
|
|
|
4. BINDのコンパイル |
既存のBINDと同じディレクトリにインストール |
|
|
5. make install前の動作確認 |
不要なら飛ばしても良い |
|
|
6. BINDインストール、起動、動作確認 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.BINDのソースのダウンロードと検証 |
|
BINDを提供しているISCでは、ファイルの正当性確認のためにPGP署名を用意している。 |
|
検証のためには、ソースファイル以外にもISCのPGP公開鍵と署名ファイルが必要となる。 |
|
GnuPGによる検証方法の詳細は、GnuPGを使ったPGP署名の確認方法を参照。 |
|
|
|
|
|
|
|
|
[ 設定例 ] |
|
# more /etc/redhat-release |
今のOSはこれ。 |
|
|
CentOS release 6.2 (Final) |
|
|
|
|
|
|
|
|
|
|
|
# date |
|
|
|
|
2015年 8月 1日 土曜日 12:27:07 JST |
|
|
|
|
|
|
|
|
|
|
|
$ su - |
|
|
|
|
|
|
|
|
|
|
|
# gpg --list-keys |
rootユーザになって現在インポート済みの公開鍵を確認 |
|
|
/root/.gnupg/pubring.gpg |
ISCの公開鍵は入っているようだがすでに2015/1/31と期限切れのため、 |
|
|
------------------------ |
ISCの公開鍵のインポートも必要 |
|
|
pub 2048R/189CDBC5 2013-01-31 [満了: 2015-01-31] |
|
|
|
|
uid Internet Systems Consortium, Inc. (Signing key, 2013) <codesign@isc.org> |
(そもそもpgpを入れてなければ、 yum install gnupg でインストール) |
|
|
|
|
|
|
|
|
|
# exit |
|
|
|
|
|
|
|
|
|
|
|
# cd /home/test1000/download/ |
ファイルのダウンロード先として適当なディレクトリを用意し、移動 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ ls |
確認 |
|
|
PGPkey2013.key bind-9.8.4-P1 bind-9.9.6-P1 bind-9.9.6-P1.tar.gz.asc |
以前のものとかもある |
|
|
bind-9.8.4-P1.tar.gz bind-9.9.6-P1.tar.gz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# vi PGPkey2015.key |
ISCの公開鍵用のファイル(ファイル名は適用)をつくり、ここにISCのHPで公開されている |
|
|
-----BEGIN PGP PUBLIC KEY BLOCK----- |
PGPkey2015の内容をコピー。 |
|
|
Version: GnuPG v1.4.11 (GNU/Linux) |
|
|
|
|
|
|
|
PGPkey2015のURL |
|
|
mQENBFR9szQBCADAwiKoEyFh32NHLc+c1vGgZ2lDKvXd7MoZZAOM2NUJkaDqt+Xy |
https://www.isc.org/downloads/software-support-policy/openpgp-key/ |
|
|
537ycGmZRqukpGUsa0fDeqjOq+l4paX3QnW1DEs8ypnWi5Zme4lYHysmNeG33ihe |
|
|
|
|
SMeGRbnZi+9VTho3NGv3iM9gtRMDXTB5wi7OCu0XNypUtR2afP9F9EgRs4nJ5iMz |
|
|
|
|
(省略) |
|
|
|
|
ULyyX4kfu+mZj8AthxMpVDyaHil9WCX1uwGo+6rkiuAMvURbn05h5C92t2QUQJE1 |
|
|
|
|
rvBKpzLEBW8qQq5foo+8yHHWpzue4i4r2uEJ3+FLUsjtlU+3F+Pq |
|
|
|
|
=dem0 |
|
|
|
|
-----END PGP PUBLIC KEY BLOCK----- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ wget http://ftp.isc.org/isc/bind9/9.9.7-P2/bind-9.9.7-P2.tar.gz |
wgetで、BIND本体、署名ファイルの2つをダウンロード |
|
|
$ wget http://ftp.isc.org/isc/bind9/9.9.7-P2/bind-9.9.7-P2.tar.gz.asc |
|
|
|
|
|
|
|
|
|
|
|
$ ls |
|
|
|
|
PGPkey2013.key bind-9.8.4-P1.tar.gz bind-9.9.6-P1.tar.gz.asc |
|
|
|
|
PGPkey2015.key bind-9.9.6-P1 bind-9.9.7-P2.tar.gz |
|
|
|
|
bind-9.8.4-P1 bind-9.9.6-P1.tar.gz bind-9.9.7-P2.tar.gz.asc |
|
|
|
|
|
|
|
|
|
|
|
$ su - |
|
|
|
|
|
|
|
|
|
|
|
# cd /home/test1000/download/ |
|
|
|
|
|
|
|
|
|
|
|
# gpg --import PGPkey2015.key |
ISCの公開鍵をインポート |
|
|
gpg: 鍵911A4C02: 公開鍵“Internet Systems Consortium, Inc. (Signing key, 2015-2016) |
|
|
|
|
<codesign@isc.org>”を読み込みました |
|
|
|
|
gpg: 処理数の合計: 1 |
|
|
|
|
gpg: 読込み: 1 (RSA: 1) |
|
|
|
|
|
|
|
|
|
|
|
# gpg --list-keys |
インポートした公開鍵の確認(赤字のほう) |
|
|
/root/.gnupg/pubring.gpg |
鍵ID:911A4C02 |
|
|
------------------------ |
|
|
|
|
pub 2048R/189CDBC5 2013-01-31 [満了: 2015-01-31] |
|
|
|
|
uid Internet Systems Consortium, Inc. (Signing key, 2013) <codesign@isc.org> |
|
|
|
|
|
|
|
|
|
|
|
pub 2048R/911A4C02 2014-12-02 [満了: 2017-01-31] |
|
|
|
|
uid Internet Systems Consortium, Inc. (Signing key, 2015-2016) <codesign@isc.org> |
|
|
|
|
sub 2048R/1BD14881 2014-12-02 [満了: 2017-01-31] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# gpg --verify bind-9.9.7-P2.tar.gz.asc bind-9.9.7-P2.tar.gz |
署名の確認 |
|
|
gpg: 2015年07月21日 02時14分12秒 JSTにRSA鍵ID 911A4C02で施された署名 |
鍵ID:911A4C02で署名されていることが確認できた |
|
|
gpg: “Internet Systems Consortium, Inc. (Signing key, 2015-2016) <codesign@isc.org>”からの正しい署名 |
ただし、その公開鍵が本当にISCのものかは証明されていない |
|
|
gpg: 警告: この鍵は信用できる署名で証明されていません! |
↓ |
|
|
gpg: この署名が所有者のものかどうかの検証手段がありません。 |
自分の鍵を作成して、公開鍵を署名することによって左記の警告を出力させないこともできるが、 |
|
|
主鍵の指紋: ADBE 9446 286C 7949 05F1 E075 6FA6 EBC9 911A 4C02 |
その公開鍵を自分で勝手に信頼しただけであり、証明できたわけではない |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.make , ar , gcc , opensslv.hのPATHの確認 |
|
make(gmake)、ar、gcc、opensslv.hについては、./configure実行時に必要となる |
|
CentOSのインストールに選択したパッケージによっては、これらがインストールされていないことがある |
|
solarisと違ってCentOSではPATHは通っていると思うが、念のため確認をする |
|
|
|
|
|
|
|
|
[ pathの確認 ] |
|
$ which make |
一般ユーザでmakeへのパスが通っていることを確認 |
|
|
/usr/bin/make |
見つからなかったら、find とか locate make とかで探してみる |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ ls -l /usr/bin/gmake |
gmakeはmakeのシンボリックリンク |
|
|
lrwxrwxrwx. 1 root root 4 12月 6 21:07 2012 /usr/bin/gmake -> make |
|
|
|
|
|
|
|
|
|
|
|
$ which ar |
一般ユーザでarへのパスが通っていることを確認 |
|
|
/usr/bin/ar |
|
|
|
|
|
|
|
|
|
|
|
$ which gcc |
一般ユーザでgccへのパスが通っていることを確認 |
|
|
/usr/bin/gcc |
|
|
|
|
|
|
|
|
|
|
|
# ls /usr/include/openssl/opensslv.h |
パスは通っていなくても、configureの中で/usr、/usr/local、/usr/local/ssl、/usr/pkg /usr/sfw |
|
|
/usr/include/openssl/opensslv.h |
の各ディレクトリにあるinclude/openssl/opensslv.hを検索するようになっている |
|
|
|
|
|
そのどれかのディレクトリにインストールされていれば問題ない |
|
|
|
|
|
それ以外にインストールしているのであれば、--with-openssl で指定すればよい |
|
|
|
|
|
|
|
|
|
3.共有ライブラリのPATHの設定 |
|
共有ライブラリのPATHを設定しなくても、多くの場合BINDのインストールは可能。 |
|
デフォルトの/libと/usr/lib以外にも、BINDのほうで/usr/local/ssl/libや/usr/sfw/libなども参照するようになっている。 |
|
|
|
|
|
|
|
|
CentOSでは、32bitオブジェクトと64bitオブジェクトが参照するライブラリパスとして、異なる環境変数が用意されている。 |
|
32bitオブジェクトが参照するライブラリパスの設定として、/etc/ld.so.conf、LD_LIBRARY_PATH、LD_RUN_PATHがあるが、/etc/ld.so.conf以外は設定されていない。 |
|
|
|
|
|
|
|
|
アプリケーションによるが、BINDではmake前に環境変数を参照している様子。 |
|
/libと/usr/lib以外の場所にある共有ライブラリを参照させたい場合は、LD_RUN_PATHを使用した方が良い。 |
|
/etc/ld.so.conf ・・・ システム全体が参照する |
|
設定を変えるとシステム全体に影響する |
|
LD_LIBRARY_PATH ・・・ コンパイル時に参照し、プログラム起動時にも参照する |
|
そのため、コンパイルしたユーザと起動ユーザが参照するパスが異なっていたり、LD_LIBRARY_PATHの変更をすると影響を受ける |
|
対応策として/etc/profileで全てのユーザが同じパスを見るようにする方法があるが、設定変更は全てのユーザに影響する |
|
LD_RUN_PATH ・・・ コンパイル時に参照先パスとしてバイナリに埋め込む |
|
そのため、LD_LIBRARY_PATHのような問題は起きない |
|
|
|
|
|
|
|
|
[ 設定例 ] |
|
$ LD_RUN_PATH=/usr/local/ssl/lib |
LD_RUN_PATHの設定 |
|
|
$ export LD_RUN_PATH |
※ PATHの設定は必要な場合のみ実施 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.BINDのコンパイル |
|
makeまでは一般ユーザで行う。 |
|
また、makeで作成された実行ファイルの確認やnamed.confが使用できることを確認する。 |
|
|
|
|
|
|
|
|
[ 設定例 ] |
|
$ pwd |
bindのソースを落としたディレクトリに移動 |
|
|
/home/test1000/download |
|
|
|
|
|
|
|
|
|
|
|
$ ls |
|
|
|
|
PGPkey2013.key bind-9.8.4-P1.tar.gz bind-9.9.6-P1.tar.gz.asc |
|
|
|
|
PGPkey2015.key bind-9.9.6-P1 bind-9.9.7-P2.tar.gz |
|
|
|
|
bind-9.8.4-P1 bind-9.9.6-P1.tar.gz bind-9.9.7-P2.tar.gz.asc |
|
|
|
|
|
|
|
|
|
|
|
$ tar xvzf bind-9.9.7-P2.tar.gz |
解凍と展開 |
|
|
|
|
|
|
|
|
|
$ ls |
|
|
|
|
PGPkey2013.key bind-9.8.4-P1.tar.gz bind-9.9.6-P1.tar.gz.asc bind-9.9.7-P2.tar.gz.asc |
|
|
|
|
PGPkey2015.key bind-9.9.6-P1 bind-9.9.7-P2 |
|
|
|
|
bind-9.8.4-P1 bind-9.9.6-P1.tar.gz bind-9.9.7-P2.tar.gz |
|
|
|
|
|
|
|
|
|
|
|
$ cd bind-9.9.7-P2 |
移動 |
|
|
|
|
|
|
|
|
|
$ ps -ef | grep named |
./configureに指定するオプションは現在のbindと合わせる場合、 |
|
|
named 1830 1 0 12:06 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot |
先に現在のbindのオプションを確認する |
|
|
|
|
|
まずはpsでnamedのフルパス確認 |
|
|
|
|
|
|
|
|
|
$ /usr/sbin/named -V |
-V(大文字) を指定して確認 |
|
|
BIND 9.9.6-P1 (Extended Support Version) <id:3612d8fb> built by make with '--prefix=/usr' ' |
※ 間違ったオプションを指定していてもbindは(見た感じ)普通に動くことがあるので、 |
|
|
--exec-prefix=/usr' '--localstatedir=/var' '--sysconfdir=/etc' '--disable-openssl-version-check' ' |
./configure --helpでオプションの文字が間違っていないか確認しておく |
|
|
--enable-ipv6' '--enable-threads' '--enable-chroot' |
|
|
|
|
compiled by GCC 4.4.6 20110731 (Red Hat 4.4.6-3) |
|
|
|
|
using OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013 |
|
|
|
|
using libxml2 version: 2.7.6 |
|
|
|
|
|
|
|
|
|
|
|
$ /usr/sbin/named -v |
普通先に確認しているだろうが、ついでに -v(小文字)で現在のbindのバージョンを確認 |
|
|
BIND 9.9.6-P1 (Extended Support Version) |
|
|
|
|
|
|
|
|
|
|
|
$ more ../bind-9.9.6-P1/config.log |
前回バージョンアップした際の./configureは、named -Vだけではなくても |
|
|
(省略) |
config.logでも確認は可能。 |
|
|
$ ./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --disable-openssl-ve |
|
|
|
|
rsion-check --enable-ipv6 --enable-threads --enable-chroot |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ ./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --disable-openssl-ve |
./configute実行(実際には1行) |
|
|
rsion-check --enable-ipv6 --enable-threads --enable-chroot |
オプションについては後述 |
|
|
|
|
|
最後にmake cleanも実行される |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ make |
mak 実行 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ ldd ./bin/named/named |
リンクされている共有ライブラリの確認 |
|
|
linux-vdso.so.1 => (0x00007fff911ff000) |
|
|
|
|
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00000032c5400000) |
|
|
|
|
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x0000003a3b000000) |
|
|
|
|
libdl.so.2 => /lib64/libdl.so.2 (0x00000032b8c00000) |
|
|
|
|
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000032b9000000) |
|
|
|
|
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00000032c2800000) |
|
|
|
|
libz.so.1 => /lib64/libz.so.1 (0x00000032b9400000) |
|
|
|
|
libm.so.6 => /lib64/libm.so.6 (0x00000032b8800000) |
|
|
|
|
libc.so.6 => /lib64/libc.so.6 (0x00000032b8400000) |
|
|
|
|
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00000032c3800000) |
|
|
|
|
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00000032c4400000) |
|
|
|
|
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00000032c2c00000) |
|
|
|
|
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00000032c3000000) |
|
|
|
|
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00000032c3c00000) |
|
|
|
|
libresolv.so.2 => /lib64/libresolv.so.2 (0x00000032ba400000) |
|
|
|
|
/lib64/ld-linux-x86-64.so.2 (0x00000032b8000000) |
|
|
|
|
libselinux.so.1 => /lib64/libselinux.so.1 (0x00000032ba000000) |
|
|
|
|
|
|
|
|
|
|
|
$ ldd ./bin/named/named |
共有ライブラリが正常にリックされていなかった場合の例(昔の実例) |
|
|
linux-gate.so.1 => (0x00958000) |
./configureのオプションが間違っていたりPATHが通っていない場合、ライブラリが |
|
|
libcrypto.so.6 => /lib/libcrypto.so.6 (0x005fb000) |
見つからなかったり不足していることがある。 |
|
|
libc.so.6 => /lib/libc.so.6 (0x00110000) |
左記の例は、./configureのオプションで--enable-threads を |
|
|
libdl.so.2 => /lib/libdl.so.2 (0x009ac000) |
左記の例は、./configureのオプションで--enable-threads を--enable-thread とした場合 |
|
|
libz.so.1 => /usr/lib/libz.so.1 (0x009d9000) |
の状態を示す。 |
|
|
/lib/ld-linux.so.2 (0x00807000) |
あるべきはずの、libpthread.so.0が見当たらない。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ ./bin/named/named -V |
makeによって作成された実行ファイルの確認をする。 |
|
|
BIND 9.9.7-P2 (Extended Support Version) <id:304c9a9f> built by make with '--prefix=/usr' ' |
まずは、 -V(大文字)で./confugureで指定したオプションであっているか確認 |
|
|
--exec-prefix=/usr' '--localstatedir=/var' '--sysconfdir=/etc' '--disable-openssl-version-check' ' |
|
|
|
|
--enable-ipv6' '--enable-threads' '--enable-chroot' |
|
|
|
|
compiled by GCC 4.4.6 20110731 (Red Hat 4.4.6-3) |
|
|
|
|
compiled with OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013 |
|
|
|
|
linked to OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013 |
|
|
|
|
compiled with libxml2 version: 2.7.6 |
|
|
|
|
linked to libxml2 version: 20706 |
|
|
|
|
|
|
|
|
|
|
|
$ ./bin/named/named -v |
つづいて -v(小文字)で実行ファイルのバージョン確認 |
|
|
BIND 9.9.7-P2 (Extended Support Version) |
|
|
|
|
|
|
|
|
|
|
|
$ su - |
実行ファイルでのnamed.confの文法チェックもしておく |
|
|
|
|
|
chroot環境(一般ユーザではアクセス不可)のため、いったんrootユーザになって |
|
|
# cd /home/test1000/download/bind-9.9.7-P2/ |
named-checkconfを実施する |
|
|
|
|
|
何も表示されなければ、問題なし。 |
|
|
# ./bin/check/named-checkconf /var/named/chroot/etc/named.conf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
named-checkconfのエラー例 |
|
|
# ./bin/check/named-checkconf /var/named/chroot/etc/named.conf |
named.confで設定が誤っている場合は、named-chekconfを実施すると、 |
|
|
/var/named/chroot/etc/named.conf:39: boolean expected near 'ye' |
エラー内容が表示される |
|
|
|
|
|
(左記だと、39行目の yeという文字近くがおかしいという意味で、 yesのsをわざと消したから) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# vi /var/named/chroot/etc/named.conf |
今回は、DNSSECの無効化、ゾーン転送で取得したゾーンファイルを引き続きテキスト形式 |
|
|
: |
で保存したいと考えているので、named.confを編集。 |
|
|
options { |
|
|
|
|
|
|
|
|
|
|
|
dnssec-enable no; |
|
|
|
|
dnssec-validation no; |
|
|
|
|
masterfile-format text; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
# ./bin/check/named-checkconf /var/named/chroot/etc/named.conf |
再度実行ファイルで named.confの文法をチェック。 |
|
|
|
|
|
|
|
|
|
# named-checkconf /var/named/chroot/etc/named.conf |
現在のnamedでも文法的に問題ないことを確認。 |
|
|
|
|
|
エラーが出た場合は、作業の切り戻しの際、named.confも元に戻す必要がある。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.make install前の動作確認 |
|
make install前に作成した実行ファイルが正常に動作するかどうかを確認するため、一度現在のnamedを停止し、新しいnamedで起動してみる。 |
|
『そんなことすると2度手間だし、2回もnamedを再起動するとDNSサーバの負荷が心配だからやらなくても良い』、という考えであれば、ここの5の作業は不要。 |
|
|
|
|
|
|
|
|
[ 設定例 ] |
|
|
|
|
|
|
|
|
# ps -ef | grep named |
既存のnamedサービスのプロセス確認 |
|
|
named 1830 1 0 12:06 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot |
|
|
|
|
|
|
|
|
|
|
|
# ls -l /var/named/chroot/var/named/local/example.com.db |
現在、example.comのセカンダリをしているので、その情報を確認。 |
|
|
-rw-r--r-- 1 named named 416 8月 1 14:14 2015 /var/named/chroot/var/named/local/example.com.db |
|
|
|
|
|
|
|
|
|
|
|
# file /var/named/chroot/var/named/local/example.com.db |
テキスト形式 |
|
|
/var/named/chroot/var/named/local/example.com.db: ASCII text |
|
|
|
|
|
|
|
|
|
|
|
# grep serial /var/named/chroot/var/named/local/example.com.db |
今のシリアル番号の確認 |
|
|
2015080101 ; serial |
|
|
|
|
|
|
|
|
|
|
|
# pwd |
|
|
|
|
/home/test1000/download/bind-9.9.7-P2 |
現在はbind9.9.7-P2の実行ファイルがあるディレクトリ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# service named stop |
現在のnamedを停止 |
|
|
named を停止中: . [ OK ] |
|
|
|
|
|
|
|
|
|
|
|
# ./bin/named/named -u named -t /var/named/chroot |
すぐさま、新しいnamedを起動 |
|
|
|
|
|
|
|
|
|
# ps -ef | grep named |
|
|
|
|
named 22459 1 0 14:18 ? 00:00:00 ./bin/named/named -u named -t /var/named/chroot |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# tail -600 /var/log/messages |
ログの確認。 |
|
|
: |
|
|
|
|
01-Aug-2015 14:18:03.215 general: info: received control channel command 'stop' |
|
|
|
|
Aug 1 14:18:08 vm-centos62 named[22459]: built with '--prefix=/usr' '--exec-prefix=/usr' '--localstatedir=/var' ' |
|
|
|
|
--sysconfdir=/etc' '--disable-openssl-version-check' '--enable-ipv6' '--enable-threads' '--enable-chroot' |
|
|
|
|
: |
|
|
|
|
Aug 1 14:18:08 vm-centos62 named[22459]: loading configuration from '/etc/named.conf' |
|
|
|
|
: |
|
|
|
|
|
|
|
|
|
|
|
# tail -600 /var/named/chroot/var/log/named/named.info |
named.confでnamedに関するログの設定をしているのであれば、 |
|
|
|
|
|
そちらでもログを確認する。 |
|
|
|
|
|
|
|
|
|
# ./bin/rndc/rndc status |
実行ファイルのrndc statusを実施 |
|
|
version: 9.9.7-P2 (BIND11) <id:304c9a9f> |
versionが9.9.7-P2であることを確認 |
|
|
CPUs found: 2 |
( ) 内は、named.conf内で、 versionオプションで指定した文字が入る。 |
|
|
worker threads: 2 |
もしここに現在のバージョンが入っている場合は表示させないようにすること! |
|
|
UDP listeners per interface: 2 |
|
|
|
|
number of zones: 105 |
|
|
|
|
debug level: 0 |
|
|
|
|
xfers running: 0 |
|
|
|
|
xfers deferred: 0 |
|
|
|
|
soa queries in progress: 0 |
|
|
|
|
query logging is ON |
|
|
|
|
recursive clients: 0/2900/3000 |
|
|
|
|
tcp clients: 0/100 |
|
|
|
|
server is up and running |
|
|
|
|
|
|
|
問い合わせの確認 |
|
|
# dig @localhost example.co.jp ns |
正引きドメインや逆引きドメインを管理しているDNSであれば、 |
|
|
# dig @localhost -x 192.168.24.133 |
それらのドメインを自分自身に問い合わせて、 flagにaa がついた回答があることを確認する |
|
|
# dig @localhost www.example.co.jp aaaa |
|
|
|
|
|
|
|
|
|
|
|
# dig @localhost www.google.co.jp |
キャッシュサーバであれば、適当なドメイン(今回はwww.google.co.jp)を問い合わせて、 |
|
|
# dig @localhost -x 173.194.126.175 |
正引き、逆引きができることを確認。 |
|
|
# dig @localhost www.google.co.jp aaaa |
|
|
|
|
# dig @localhost -x 2404:6800:4004:807::1018 |
|
|
|
|
|
|
|
|
|
|
|
# dig @192.168.24.138 example.com axfr |
セカンダリDNSであれば、digでプライマリDNSにaxfrで問い合わせて |
|
|
|
|
|
ゾーン転送ができるか確認 |
|
|
|
|
|
(digによる動作確認なので、namedとは別問題だが…) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
可能であれば、プライマリDNSで適当なゾーンのシリアル番号を上げて、 |
|
|
|
|
|
すぐにゾーン転送されるかを確認する。 |
|
|
|
|
|
今回はexample.comのプライマリDNS側でシリアル番号を上げてみた。 |
|
|
|
|
|
|
|
|
|
# ls -l /var/named/chroot/var/named/local/example.com.db |
ファイルが更新されていることを確認 |
|
|
-rw-r--r-- 1 named named 416 8月 1 14:41 2015 /var/named/chroot/var/named/local/example.com.db |
|
|
|
|
|
|
|
|
|
|
|
# file /var/named/chroot/var/named/local/example.com.db |
テキスト形式のままであることを確認 |
|
|
/var/named/chroot/var/named/local/example.com.db: ASCII text |
|
|
|
|
|
|
|
|
|
|
|
# grep serial /var/named/chroot/var/named/local/example.com.db |
シリアル番号が上がっていることを確認 |
|
|
2015080102 ; serial |
|
|
|
|
|
|
|
|
|
|
|
# dig +noall +ans +multi @localhost example.com soa |
digコマンドでもシリアル番号が上がっていることを確認 |
|
|
example.com. 1000 IN SOA dns1.example.com. root.example.com. ( |
|
|
|
|
2015080102 ; serial |
|
|
|
|
120 ; refresh (2 minutes) |
|
|
|
|
60 ; retry (1 minute) |
|
|
|
|
180 ; expire (3 minutes) |
|
|
|
|
180 ; minimum (3 minutes) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# vi /var/named/chroot/var/named/local/example.co.jp.db |
プライマリDNSであれば、適当なゾーンのシリアル番号を上げて、 |
|
|
: |
すぐにセカンダリにゾーン転送されるかを確認する。 |
|
|
2015080101 ; serial |
今回はexample.co.jpのシリアル番号を上げてみた。 |
|
|
: |
|
|
|
|
|
|
|
|
|
|
|
# ./bin/rndc/rndc reload |
実行ファイルのrndcで reloadができることを確認 |
|
|
server reload successful |
|
|
|
|
|
|
|
|
|
|
|
# dig +noall +ans +multi @192.168.24.138 example.co.jp soa |
セカンダリDNSに対してdigで問い合わせ |
|
|
example.co.jp. 1000 IN SOA dns1.example.co.jp. root.example.co.jp. ( |
シリアル番号が上がっていることを確認 |
|
|
2015080101 ; serial |
|
|
|
|
120 ; refresh (2 minutes) |
|
|
|
|
60 ; retry (1 minute) |
|
|
|
|
180 ; expire (3 minutes) |
|
|
|
|
180 ; minimum (3 minutes) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.BINDインストール、起動、動作確認 |
|
|
|
|
|
|
|
|
[ 設定例 ] |
|
|
|
|
|
|
|
|
# pwd |
|
|
|
|
/home/test1000/download/bind-9.9.7-P2 |
|
|
|
|
|
|
|
|
|
|
|
# ps -ef | grep named |
現在のプロセス確認 |
|
|
named 22459 1 0 14:18 ? 00:00:00 ./bin/named/named -u named -t /var/named/chroot |
|
|
|
|
|
|
|
|
|
|
|
# make install |
make install 実行 |
|
|
|
|
|
|
|
|
|
# kill -9 22459 |
現在起動中のnamedを停止 |
|
|
|
|
|
ここでは5の続きのため、killコマンドで停止させている |
|
|
|
|
|
|
|
|
|
# ps -ef | grep named |
停止したことを確認 |
|
|
|
|
|
|
|
|
|
# service named start |
serviceコマンドでnamedを起動 |
|
|
named を起動中: [ OK ] |
もし、5を飛ばしているのであれば、 service named restart となる。 |
|
|
|
|
|
|
|
|
|
# ps -ef | grep named |
namedプロセスが起動したことを確認 |
|
|
named 30091 1 0 15:11 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以下、正常性の確認(ほぼ5と同じなので、詳細は5を参照) |
|
|
|
|
|
|
|
|
|
# tail -600 /var/log/messages |
ログの確認 |
|
|
# tail -600 /var/named/chroot/var/log/named/named.info |
|
|
|
|
|
|
|
|
|
|
|
# rndc status |
バージョン確認 |
|
|
|
|
|
|
|
|
|
# dig @localhost example.co.jp ns |
権威DNSサーバとしての問い合わせ確認 |
|
|
# dig @localhost -x 192.168.24.133 |
|
|
|
|
# dig @localhost www.example.co.jp aaaa |
|
|
|
|
|
|
|
|
|
|
|
# dig @localhost www.google.co.jp |
キャッシュDNSサーバとしての問い合わせ確認 |
|
|
# dig @localhost -x 173.194.126.175 |
|
|
|
|
# dig @localhost www.google.co.jp aaaa |
|
|
|
|
# dig @localhost -x 2404:6800:4004:807::1018 |
|
|
|
|
|
|
|
|
|
|
|
# dig @192.168.24.138 example.com axfr |
digによるゾーン転送確認 |
|
|
|
|
|
|
|
|
|
# ls -l /var/named/chroot/var/named/local/example.com.db |
セカンダリDNSとしてのゾーン転送確認 |
|
|
# file /var/named/chroot/var/named/local/example.com.db |
プライマリDNSサーバ側でシリアル番号を上げてみて、正常に反映されているかを確認 |
|
|
# grep serial /var/named/chroot/var/named/local/example.com.db |
|
|
|
|
# dig +noall +ans +multi @localhost example.com soa |
|
|
|
|
# tail /var/named/chroot/var/log/named/named.info |
|
|
|
|
|
|
|
|
|
|
|
# vi /var/named/chroot/var/named/local/example.co.jp.db |
プライマリDNSサーバとしてのゾーン転送確認 |
|
|
# rndc reload |
ゾーンのシリアル番号を上げてみて、セカンダリDNSに正常に反映されているかを確認 |
|
|
# dig +noall +ans +multi @192.168.24.138 example.co.jp soa |
|
|
|
# tail /var/named/chroot/var/log/named/named.info |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
■ ./configureのオプションについて |
|
./configureで指定できる各種オプションは、 ./configure --help で確認できる(ただし、全てではない様子) |
|
また、READMEファイルにオプションの説明がある |
|
|
|
|
|
|
|
|
[ 主なオプションの説明 ] |
|
--prefix=PREFIX |
省略時は、/usr/local |
|
|
--exec-prefix=EPREFIX |
省略時は、prefixの値 |
|
|
--sysconfdir=DIR |
named.confが保存されるディレクトリ 省略時は、PREFIX/etc |
|
|
--localstatedir=DIR |
zoneなどのファイルが保存されるディレクトリ 省略時は、PREFIX/var |
|
|
--enable-openssl-version-check |
OpenSSLのバージョンをチェックする 省略時はチェックする |
|
|
--disable-openssl-version-check |
OpenSSLのバージョンをチェックしない |
|
|
--enable-threads |
マルチスレッディングを有効にする |
|
|
|
シングルCPUでもこのオプションをつけても特に問題はない |
|
|
--enable-ipv6 |
IPv6を有効にする デフォルトは、IPv6を自動検出 |
|
|
--disable-ipv6 |
IPv6を無効にする |
|
|
--disable-chroot |
chrootを無効にする デフォルトは、chroot有効 |
|
|
--with-openssl=PATH |
使用するOpenSSLのパスを指定 |
|
|
--with-openssl=yes |
OpenSSLを使用する 省略時はyes DNSSECを使用する場合はOpenSSL必須 |
|
|
--with-openssl=no |
OpenSSLを使用しない |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|