Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dnsviz — リゾルバと権威サーバを調査してDNS委任とDNSSECセキュリティを分析し、ゾーンの挙動を検証・診断・可視化して導入準備を支援します。 | Kitploit
ツール/GitHubGitHub/dnsviz/dnsviz
構成監査情報収集ネットワークセキュリティ暗号化DNS分析DNS分析 第2位
GitHubdnsviz/dnsviz

dnsviz

リゾルバと権威サーバを調査してDNS委任とDNSSECセキュリティを分析し、ゾーンの挙動を検証・診断・可視化して導入準備を支援します。

リポジトリを見る
1.3k1639221日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

DNSViz

目次

  • インストール
  • 使用方法
  • デプロイ前のDNSテスト
  • Dockerコンテナ

説明

DNSVizは、ドメインネームシステム(DNS)の挙動と、そのセキュリティ拡張機能(DNSSEC)を分析・可視化するためのツールスイートです。このツールスイートは、https://dnsviz.net/ で提供されているWebベースの分析を支えています。

インストール

DNSVizは、Debian、Ubuntu、Fedora、Gentoo、FreeBSDなどの主要なオペレーティングシステムのパッケージリポジトリで入手できます。また、Red Hat Enterprise Linux (RHEL) 8および9、CentOS 8および9向けのExtra Packages for Linux (EPEL) リポジトリでも提供されています。(RHELおよびCentOSへのインストールについては、注記を参照してください。)いずれの場合も、そのオペレーティングシステムで標準的なパッケージインストールコマンドを使用してインストールできます。DNSVizは、HomebrewまたはMacPortsを使用してMac OS Xにもインストールできます。

このセクションの残りでは、依存関係のリスト、仮想環境へのインストール、およびRHEL 8または9、CentOS Stream 8または9へのインストールに関する注記など、他のインストール方法について説明します。

Dockerコンテナでの実行手順については、このドキュメントの後半でも説明しています。

依存関係

  • Python (2.7, 3.5 - 3.12) - https://www.python.org/ (Python 2.7のサポートは将来のリリースで削除される予定です。)

  • dnspython (1.13.0以降) - https://www.dnspython.org/

  • pygraphviz (1.3以降) - https://pygraphviz.github.io/

  • cryptography (36.0.0以降) - https://cryptography.io/

上記に記載されたソフトウェアの古いバージョンでもDNSVizで動作する可能性がありますが、サポート対象外です。例えば、cryptographyの2.6以前のバージョンでも動作するようです。また、DNSViz自体は依然としてPython 2.7で動作しますが、ソフトウェア依存関係の一部のバージョンはPython 2.7のサポートを終了していることにも注意してください:pygraphviz 1.6とdnspython 2.0.0はPython 2.7のサポートを終了しました。

オプションのソフトウェア

  • OpenSSL GOST Engine - https://github.com/gost-engine/engine

    OpenSSL 1.1.0以降では、アルゴリズム12(GOST R 34.10-2001)によるDNSSEC署名の検証や、タイプ3(GOST R 34.11-94)のダイジェストを作成するためにOpenSSL GOST Engineが必要です。GOSTサポートにはM2Cryptoも必要です。

  • M2Crypto - https://gitlab.com/m2crypto/m2crypto

    DNSVizの暗号化サポートのほぼすべてはcryptography Pythonモジュールで処理されますが、アルゴリズム12(GOST R 34.10-2001)およびダイジェストタイプ3(GOST R 34.11-94)のサポートにはOpenSSL GOST Engineが必要です。このエンジンは動的にロードする必要があり、cryptographyにはそのサポートがありません。したがって、アルゴリズム12またはダイジェストタイプ3をサポートする必要がある場合は、M2Cryptoもインストールする必要があります。

  • ISC BIND - https://www.isc.org/bind/

    コマンドラインでゾーンファイルや代替委任情報を指定して(すなわち、-N、-x、または-Dを使用して)、デプロイ前テストにDNSVizを使用する場合、1つ以上のゾーンを提供するためにnamed(8)が呼び出されます。ISC BINDが必要なのはこの場合のみであり、named(8)は(サーバーとして)実行されている必要はありません。

    DebianのデフォルトのAppArmorポリシーは、デプロイ前テストのためにDNSVizからnamed(8)を呼び出す際に問題を引き起こすことが知られています。AppArmorは次のコマンドでnamed(8)に対して一時的に無効にできます:

    $ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.named
    

    デプロイ前テストが完了したら、次のコマンドでnamed(8)のAppArmorを再び有効にできます:

    $ sudo apparmor_parser /etc/apparmor.d/usr.sbin.named
    

仮想環境へのインストール

DNSVizを仮想環境にインストールするには、最初に仮想環境を作成して有効化し、依存関係をインストールします:

$ virtualenv ~/myenv
$ source ~/myenv/bin/activate
(myenv) $ pip install -r requirements.txt

これによりPythonパッケージである依存関係がインストールされますが、これらのパッケージの一部には自動的にインストールされない非Python依存関係(pygraphvizに必要なGraphvizや、cryptographyに必要なOpenSSLなど)があることに注意してください。

次に、Python Package Index (PyPI)からDNSVizをダウンロードしてインストールします:

(myenv) $ pip install dnsviz

または、ダウンロードまたはクローンしたDNSVizのコピーからローカルにインストールします:

(myenv) $ pip install .

RHEL 8/9またはCentOS Stream 8/9に関する注記

DNSVizは、EPELリポジトリからRHEL 8または9、CentOS Stream 8または9にインストールできます。このセクションの手順に従ってEPELを有効にしてください。

RHEL 8および9のみ:次のコマンドでCodeReady Linux BuilderとExtra Packages for Enterprise Linux (EPEL)を有効にします:

$ sudo subscription-manager repos --enable codeready-builder-for-rhel-$(vers)-$(arch)-rpms
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(vers).noarch.rpm

($(vers)はバージョン(8または9)を指し、$(arch)はアーキテクチャ(例:x86_64またはaarch64)を指します。不明な場合は、sudo subscription-manager repos --listを実行して利用可能なオプションを確認してください。)

CentOS Stream 8または9のみ:次のコマンドでPowerToolsまたはCodeReady Linux BuilderとEPELを有効にします:

$ sudo dnf config-manager --set-enabled $(tool)
$ sudo dnf install epel-release

($(tool)はツールを指し、CentOS Stream 8の場合はpowertools、CentOS Stream 9の場合はcrbです。)

RHEL 8または9 および CentOS Stream 8または9の両方で、EPELが有効になったら、dnfを使用してDNSVizをインストールします:

$ sudo dnf install dnsviz

使用方法

DNSVizは、dnsvizコマンドラインユーティリティを使用して呼び出します。dnsviz自体には、probe、grok、graph、print、queryという複数のサブコマンドがあります。より詳細なドキュメントと使用方法については、各サブコマンドに関連するマニュアルページ("dnsviz-<サブコマンド> (1)"の形式、例:"man dnsviz-probe")を参照してください。

dnsviz probe

dnsviz probeは、1つ以上のドメイン名を入力として受け取り、再帰的(デフォルト)または権威DNSサーバーのいずれかに一連のクエリを実行し、その結果はJSON形式にシリアライズされます。

例

設定済みのDNSリゾルバ(つまり、/etc/resolv.conf内)を使用してドメイン名example.comを分析し、クエリと応答を"example.com.json"というファイルに保存します:

$ dnsviz probe example.com > example.com.json

同じ操作:

$ dnsviz probe -o example.com.json example.com

権威サーバーに直接クエリを実行してドメイン名example.comを分析します:

$ dnsviz probe -A -o example.com.json example.com

IANAルートサーバーからのリファラルを通じてサーバーを学習するのではなく、明示的に定義された権威サーバーにクエリを実行してドメイン名example.comを分析します:

$ dnsviz probe -A \
  -x example.com:a.iana-servers.org=199.43.132.53,a.iana-servers.org=[2001:500:8c::53] \
  -x example.com:b.iana-servers.org=199.43.133.53,b.iana-servers.org=[2001:500:8d::53] \
  -o example.com.json example.com

同じですが、dnsviz probeに名前を解決させます:

$ dnsviz probe -A \
  -x example.com:a.iana-servers.org,b.iana-servers.org \
  -o example.com.json example.com

ルートから開始して、権威サーバーにクエリを実行し委任を辿ることにより、ドメイン名example.comとそのすべての祖先を分析します:

$ dnsviz probe -A -a . -o example.com.json example.com

明示的な再帰リゾルバを使用して複数の名前を並列に(4スレッドで)分析します(192.0.1.2と2001:db8::1を正当なリゾルバアドレスに置き換えてください):

$ dnsviz probe -s 192.0.2.1,[2001:db8::1] -t 4 -o multiple.json \
  example.com sandia.gov verisignlabs.com dnsviz.net

dnsviz grok

dnsviz grokは、JSON形式のシリアライズされたクエリ結果(つまり、dnsviz probeの出力)を入力として受け取り、入力内の対応するコンテンツに基づいて指定されたドメイン名を評価します。出力もJSON形式にシリアライズされます。

例

dnsviz probeによって生成されたクエリ/応答出力を処理し、シリアライズされた結果を"example.com-chk.json"というファイルに保存します:

$ dnsviz grok < example.com.json > example.com-chk.json

同じ操作:

$ dnsviz grok -r example.com.json -o example.com-chk.json example.com

情報レベルの情報のみを表示します:説明、ステータス、警告、エラー:

$ dnsviz grok -l info -r example.com.json -o example.com-chk.json

関連する警告またはエラーがある場合にのみ説明を表示します:

$ dnsviz grok -l warning -r example.com.json -o example.com-chk.json

関連するエラーがある場合にのみ説明を表示します:

$ dnsviz grok -l error -r example.com.json -o example.com-chk.json

ルートキーをDNSSECトラストアンカーとして使用し、応答の認証ステータスも示します:

$ dig +noall +answer . dnskey | awk '$5 % 2 { print $0 }' > tk.txt
$ dnsviz grok -l info -t tk.txt -r example.com.json -o example.com-chk.json

dnsviz probeの出力を直接dnsviz grokにパイプします:

$ dnsviz probe example.com | \
      dnsviz grok -l info -o example.com-chk.json

同じ操作ですが、途中で生の出力を(再利用のために)保存します:

$ dnsviz probe example.com | tee example.com.json | \
      dnsviz grok -l info -o example.com-chk.json

一度に複数の名前をエラーレベルで評価します:

$ dnsviz grok -l error -r multiple.json -o example.com-chk.json

dnsviz graph

dnsviz graphは、JSON形式のシリアライズされたクエリ結果(つまり、dnsviz probeの出力)を入力として受け取り、入力内の対応するコンテンツに基づいて指定されたドメイン名を評価します。出力は、渡されたオプションに応じて、画像ファイル、dot(有向グラフ)ファイル、またはHTMLファイルになります。

例

dnsviz probeによって生成されたクエリ/応答出力を処理し、結果を視覚的に表すグラフを"example.com.png"というpngファイルに生成します。

$ dnsviz graph -Tpng < example.com.json > example.com.png

同じ操作:

$ dnsviz graph -Tpng -o example.com.png example.com < example.com.json

同じ操作ですが、対話型HTML形式を生成します:"example.com.html"というファイルに対話型HTML出力:

$ dnsviz graph -Thtml < example.com.json > example.com.html

同じ操作(ファイル名はドメイン名と出力形式から生成されます):

$ dnsviz graph -Thtml -O -r example.com.json

代替のDNSSECトラストアンカーを使用します:

$ dig +noall +answer example.com dnskey | awk '$5 % 2 { print $0 }' > tk.txt
$ dnsviz graph -Thtml -O -r example.com.json -t tk.txt

dnsviz probeの出力を直接dnsviz graphにパイプします:

$ dnsviz probe example.com | \
      dnsviz graph -Thtml -O
ツールをダウンロード