chromebookのlinux開発環境に、bind9を構築し
アプリケーションからのdnsクエリログを確認したいと思います。
経緯:chromebookでminecraftが急にできなくなってしまったので、
その解析をしたいと思いました。
bind9のインストール
sudo apt install bind9
sudo apt install bind9-dnsutils
bind9の設定ファイルやnamed.confやオプション設定のパスの確認
sudo rndc status
を実行しますと、/etc/bind/named.conf が設定ファイルとして読み込まれていることがわかります。
今どきは、/etc/named.conf ではないんですね。
また、/etc/init.d/named を見てみますと、namedのオプション設定として、
/etc/default/named が読み込まれていることがわかりました。
bind9のログ設定
bind9が起動できない等のトラブル用に、ログ出力の設定をします。
ログフォルダとかが出来ていないので、作成しましょう。
sudo mkdir /var/named
sudo chown bind:bind /var/named
そして、namedの起動オプションを/etc/default/namedに書き設定します。
上のnamedファイルのように、OPTIONSに起動オプションを設定できます。
ログ出力のオプションは、「-L ログファイル」になります。
bind9を8.8.8.8でforworders設定する
/etc/bind/named.conf には、namedの設定はほぼなく、
別の設定ファイルをincludeで読み込んでいるだけです。
今回のDNSフォワーダー設定では、named,conf.localも、named.conf.default-zonesも不要なのでコメントアウトしてしまいます。
そして、/etc/bind/named.conf.options ファイルには
forwarders {
8.8.8.8;
};
8.8.8.8にDNSフォワードする設定と
// dnssec-validation auto;
dnssec-validation no;
上のセキュリティの設定を行います。
【注意】
上のセキュリティ設定を行わないと、8.8.8.8がクエリを返してくれません。
これで、最低限のbind9の設定が終わりました。
sudo systemcrl restart named
で、namedサービスを再起動すると
digコマンド等でDNSの名前解決が出来きまして、bind9の動作確認OKです。
クエリログ取得のbind9設定をする
query logging is OFF
デフォルト設定では、bind9はクエリログが無効になっていますので、
以下のコマンドで、DNSクエリログを有効にします。
sudo rndc querylog
query logging is ON
あとは、bind9のクエリログ出力設定を行えば、bind9のDNSクエリログが取得できるようになります。
named.conf.query ファイルを作成し、クエリログの取得設定をします。
logging {
channel "queries-log"{
file "/var/named/queries.log" versions 10 size 5M;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category queries{
"queries-log";
};
};
そして、named.confにincludeで読み込むような設定を入れます。
再度、namedデーモンを再起動すれば、クエリログが取得できるようになります。
sudo systemcrl restart named
resolv.confのnameserverに127.0.0.1を設定して、クエリログが出力され目的のDNSクエリを解析できました!
コメント