bind のバージョンとホスト名の隠蔽

シェアする

bind にて、CHAOSクラスというサーバの診断情報を提供するクラスがあるようです。こちらに named.conf に制限をかけないと以下情報が応答されるようです。

  • bindバージョン
  • 稼働サーバのホスト名

バージョンは、脆弱性情報が把握されるため、漏らしたくない情報です。またホスト名も、インターネット上でサービス名にちなんだホスト名にしているが、内部管理にて異なるホスト名で管理している場合に、想定にてシステム環境が漏洩するため、あまり好ましくありません。

未対策のサーバからの情報取得方法(漏洩確認)

nslookup コマンドにて簡単に取得できます。

# nslookup -type=txt -class=chaos version.bind 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

version.bind    text = "9.9.4-RedHat-9.9.4-51.el7_4.1"
# nslookup -type=txt -class=chaos hostname.bind 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

hostname.bind   text = "sabao-srv"

うーん、情報を漏れていますね。

対策

対策は簡単です。named.conf に以下を追記だけですね。

# vi /etc/named.conf
options {
        version  "unknown";
        hostname "unknown";
};

で、namedを再起動して再確認です。

# nslookup -type=txt -class=chaos version.bind 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

version.bind    text = "unknown"

# nslookup -type=txt -class=chaos hostname.bind 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

hostname.bind   text = "unknown"

うん。ちゃんと隠されていますね。

他の漏洩情報の確認

他に、chaosクラスにて何か情報が洩れていないか確認です。ソースを追えば確実にわかるのでしょうが、私はソースを追うのは苦手なので、簡単に以下の方法で確認してみました。

# strings /usr/sbin/named | grep chaos
view "_bind" chaos {
        zone "version.bind" chaos {
        zone "hostname.bind" chaos {
        zone "authors.bind" chaos {
        zone "id.server" chaos {

お、他にも2つありますね。
確認です。

# nslookup -type=txt -class=chaos authors.bind 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

*** Can't find authors.bind: No answer

# nslookup -type=txt -class=chaos id.server 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

*** Can't find id.server: No answer

うん、何も漏れていませんね。

まとめ

たかが、bindですが、隠せる情報は隠したほうがいいですよ♪

ではでは。

トップへ戻る