安定運用してしまうと軽視されがちなDNSサーバ、実は一番「ほっとけない」! DNSの設定ミスでSSHパスワードまで抜かれる可能性も?
今回は、前回取り上げたSendmailに代表されるMTA(メール配送エージェント、メールサーバ)とサーバ内に同居させることの多い、DNSのセキュリティ設定について紹介させていただく。紹介するDNSは最もシェアが高いと思われるBIND(Berkeley Internet Name Domain)である。
まずは、本連載ではお決まりの(?)バナー情報から紹介しよう。
BINDの場合では、接続が確立したときやコマンドを実行したときにバナーが表示されるのではなく、発行したクエリーの応答の中にBINDのバージョンが表示される。以下は、「dig」コマンドを用いてバージョン取得を行った結果の例である。
【digの実行結果】 ; <<>> DiG 9.2.4 <<>> @xxx.xxx.xxx.xxx version.bind chaos txt ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9660 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION: ;version.bind. CH TXT;; ANSWER SECTION: version.bind. 0 CH TXT "9.2.4";; AUTHORITY SECTION: version.bind. 0 CH NS version.bind.;; Query time: 34 msec ;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx) ;; WHEN: Sun Nov 4 10:32:00 2007 ;; MSG SIZE rcvd: 62 |
ANSWER SECTIONの次の行に「"9.2.4"」とバージョンが表示されていることが分かる。digで問い合わせる方法は、以下の「xxx.xxx.xxx.xxx」の部分をBINDが稼働しているホストのアドレスに変更し、実行する。
dig @xxx.xxx.xxx.xxx version.bind chaos txt (「version.bind」「chaos」「txt」の順番は上記通りでなくてもよい) |
Windowsにdigコマンドは付属していないが、以下のようにnslookupコマンドを実行することで同等の結果を取得することができる。
nslookup -type=txt -class=chaos version.bind xxx.xxx.xxx.xxx
|
この実行結果は以下のようになる。
【nslookupの実行結果】 *** Can't find server name for address xxx.xxx.xxx.xxx: Non-existent domain Server: UnKnown Address: xxx.xxx.xxx.xxx version.bind text = "9.2.4" version.bind nameserver = version.bind |
どうしてもWindows環境でdigを使いたい場合は、単体で配布しているサイトがあるので、そこからダウンロードすれば手っ取り早く利用することができるだろう。
それでは、このバージョン情報の隠ぺい方法を紹介しよう。
BINDの設定ファイル(/etc/named.confなど)内のoptions内に以下のように記述を追加する。
options { 〜 略 〜 version "tsuji"; 〜 略 〜 } ; |
versionに続く「"」で囲まれた中に任意の文字(何も書かなくてもよい)を記述することで、digやnslookupでバージョン情報の取得を試みたときにバージョン情報ではなく記述した任意の文字列を表示させることが可能である。上記の設定を施したBINDに対してdigでバージョン情報を取得した場合は、以下のように表示される。
【digの実行結果】 ; <<>> DiG 9.2.4 <<>> @xxx.xxx.xxx.xxx txt chaos version.bind ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13242 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION: ;version.bind. CH TXT;; ANSWER SECTION: version.bind. 0 CH TXT "tsuji" AUTHORITY SECTION: version.bind. 0 CH NS version.bind.;; ;; Query time: 38 msec ;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx) ;; WHEN: Tue Nov 6 15:56:02 2007 ;; MSG SIZE rcvd: 62 |
version.bindの行が「tsuji」と変化していることが分かる。空白や「unknown」などの任意の文字列を設定するとよいだろう。設定を行ったら、BINDの再起動を行うことで設定が反映される。
Copyright © ITmedia, Inc. All Rights Reserved.