すべてのDNSクエリを記録する方法は?


18

コンピューターが行うすべてのDNSクエリのログと、取得した応答をどのように作成できますか?

logs  dns 

回答:


13

tcpdumpすべてのポート53 UDPおよびTCPアクティビティをログに記録できます。


6
方法の詳細は?
e寿司

OP(または他のリーダー)がDNSサーバーにアクセスできることを確認できないため、これが最良の答えです-ローカルマシンのみです。@ e-sushiの質問に答えるには、ユーティリティを使用してtcpdumpを使用します(マニュアルページまたは例付きの優れた入門書をご覧ください)。最善の策は、ファイルにダンプし、そのデータをレビューと分析のためにWiresharkにプルすることです。
ジェームズシェウェイ

1
github.com/gamelinux/passivednsは、見ているだけでやっているようだ./doc/How-it-works.txt
mxmlnkn

5
tcpdump udp port 53
ブランノン

1
デフォルトではアウトバウンドネットワークインターフェースを選択しない場合があるため、もう少し必要です:tcpdump --list-interfacestcpdump udp port 53 --interface (pickone)。また、冗長性を考慮してください-vv
nobar

9

最も簡単な方法は、バインドをローカルにインストールすることです。Bindのほとんどのディストリビューションのデフォルトインストールは、非自動キャッシュのみです。

単純に追加しますlogging {}(で説明したようにconfigブロックBIND 9の構成のリファレンス)を使用するようにシステムを設定する127.0.0.1か、::1DNSリゾルバとしての。


2
バインドの大きさとセキュリティレコードの不備を考えると、多くの人は、ログ記録だけを目的としてそのようなものをインストールすることをためらうと思います。
jw013

バインドには、/ etc / resolv.confのネームサーバーが使用されないという問題はありませんが、ネームサーバーはバインド構成に明示的にリストする必要がありますか?
バナンイン

いいえ/etc/resolv.conf。システムリゾルバリストです。Bindのデフォルトの構成では、権限のあるネームサーバーを検索し、それらを要求します。すべての要求を特定のサーバー(またはISP、OpenDNS、Google Public DNSなどのセット)に転送できますが、構成で転送する必要はありません。私はこれをいつもしています。ネームサーバーのみをキャッシュするように設定した回数もカウントできません。
バハマ

6

dnsmasqは、BINDよりもDNSアグリゲーター/キャッシュデーモンとして構成する方がはるかに簡単であり、そのためには、パフォーマンスがちょうど良いかもしれません。ロギングを「デバッグ」にすると、すべての質問と回答syslogがデバッグメッセージ用に設定されたものに表示されます。

Dnsmasqは、ドメイン全体を127.0.0.1にエイリアスすることで、虐待的な広告主や「分析的な」クリープに侵入するダートバッグプライバシーを簡単に取り除くこともできます。


1

正しく思い出せば、Snortはユーザー定義のルールに基づいてトラフィックを選択的に監視できます。ただし、コンピュータ、つまりリゾルバがキャッシュから質問に回答できる場合、SnortはDNS要求のログを作成しません。


1

すべてのADNS要求を表示してファイルに保存するには、次を実行します。

script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f8" | tee dns.log

出力例:

Google COM。
wikipedia.org。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.