Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Unboundのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Unbound
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:Domain Name System]] [[en:Unbound]] [[zh-hans:Unbound]] {{Related articles start}} {{Related|DNSSEC}} {{Related|BIND}} {{Related|DNSCrypt}} {{Related|dnsmasq}} {{Related|Pdnsd}} {{Related articles end}} [https://unbound.net/ Unbound] は検証をおこなったり再帰・キャッシュをする DNS リゾルバです。[[Wikipedia:Unbound (DNS Server)|Wikipedia]] によると :Uboundは、いくつかのオープンソースプロジェクトにおいて、Berkeley Internet Name Domain ([[BIND]]) をデフォルトのベースシステムのネームサーバーとして置き換えており、ほとんどのアプリケーションにおいて、より小さく、よりモダンで、より安全であると認識されています。 == インストール == [[公式リポジトリ]]から {{Pkg|unbound}} パッケージをインストールしてください。 さらに、[[DNSSEC]] 検証をするには {{Pkg|expat}} パッケージが必要です。 == 設定 == デフォルト設定は {{ic|/etc/unbound/unbound.conf}} に含まれています。さらに、他のオプションが使われているサンプル設定ファイルが {{ic|/etc/unbound/unbound.conf.example}} に存在します。以下のセクションでは様々な設定を説明します。詳しい設定は {{ic|man unbound.conf}} を見てください。 特に指定しない場合、以下のセクションで説明しているオプションは設定ファイルの {{ic|server}} セクションの下に記述してください: {{hc|/etc/unbound/unbound.conf| server: ... ''setting'': ''value'' ... }} === ローカル DNS サーバー === ローカル DNS サーバーとして ''unbound'' を使いたい場合、[[resolv.conf]] でネームサーバーを {{ic|::1}} と {{ic|127.0.0.1}} に設定してください。 {{hc|/etc/resolv.conf| nameserver ::1 nameserver 127.0.0.1 options trust-ad }} ネームサーバーの設定が[[Resolv.conf#DNS 設定の保護|変更されないように設定]]する必要があります。 {{Tip|1={{pkg|openresolv}} パッケージをインストールして {{ic|/etc/resolvconf.conf}} の {{ic|1=name_servers=127.0.0.1}} 行をアンコメントして {{ic|resolvconf -u}} を実行することで {{ic|/etc/resolv.conf}} を生成できます。}} 設定のテスト方法については [[Resolv.conf#Linux における DNS]] を読んでください。 [[resolv.conf]] に変更を加えた後に {{ic|127.0.0.1}} が使用されていることを確認してください。 === アクセス制御 === IP アドレスによってクエリに応答するインターフェイスを指定できます。''localhost'' で listen するには、以下を使用: interface: 127.0.0.1 全てのインターフェイスで listen するには、以下を使用: interface: 0.0.0.0 {{ic|access-control}} オプションを使うことでさらに細かくアクセスを設定できます: access-control: ''subnet'' ''action'' 例: access-control: 192.168.1.0/24 allow ''action'' に指定できるのは {{ic|deny}} (メッセージを破棄), {{ic|refuse}} (エラー応答), {{ic|allow}} (再帰を許可), {{ic|allow_snoop}} (再帰と非再帰を許可) です。デフォルトでは、ローカルホスト以外の全てが拒否されます。 === ルートヒント === アドレスがキャッシュされていないホストを問い合わせられた場合、リゾルバはサーバーツリーの一番上からルートサーバーに問い合わせて、アドレスを問い合わせることができるトップレベルドメインの場所を知る必要があります。Unbound にはデフォルトで hints が付属していますが、古くなっている可能性があるのでルートヒントファイルを使用することを推奨します。 ''unbound'' に {{ic|root.hints}} ファイルを指定: root-hints: "/etc/unbound/root.hints" それからルートヒントファイルを ''unbound'' の設定ディレクトリに配置してください。以下のコマンドを実行するだけで配置できます: {{bc|<nowiki># curl -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache</nowiki>}} ルートサーバーのリストを最新に保つために {{ic|root.hints}} は6ヶ月ごとに更新すると良いでしょう。手動で実行してもよいですし、[[Systemd/タイマー]]を使う方法もあります。タイマーを使う場合は[[#ルートヒント systemd タイマー]]を参照。 === DNSSEC 検証 === ''unbound'' は自動的にルートサーバーの信頼鍵アンカーファイルを {{ic|/etc/trusted-key.key}} から {{ic|/etc/unbound/trusted-key.key}} にコピーします。DNSSEC 検証を使用するには以下の文字列を追加して ''unbound'' にファイルを指定してください: trust-anchor-file: trusted-key.key DNS サーバーへの[[#クエリの転送|転送]]を設定した場合、上記をコメントアウトしてください。そうしないと、DNS クエリが失敗するようになります。DNS サーバーが対応している場合にのみ DNSSEC 検証が行われるようになります。 {{Note|DNSSEC のチェックを有効にすると最初のルックアップ時の DNS 問い合わせ時間が長くなります。アドレスがローカルにキャッシュされたら、瞬時に解決されます。}} ==== 検証のテスト ==== DNSSEC が機能しているかどうかをテストするには、{{ic|unbound.service}} を[[起動]]後に次の手順を実行します。 $ unbound-host -C /etc/unbound/unbound.conf -v sigok.verteiltesysteme.net 応答は、IP アドレスの横に {{ic|(secure)}} という文字があるはずです。 $ unbound-host -C /etc/unbound/unbound.conf -v sigfail.verteiltesysteme.net ここでは、{{ic|(BOGUS (security failure))}} を含む応答が必要です。 さらに、次のように ''drill'' を使ってリゾルバのテストをすることができます。 $ drill sigfail.verteiltesysteme.net $ drill sigok.verteiltesysteme.net 最初のコマンドの {{ic|rcode}} が {{ic|SERVFAIL}} に、2番目のコマンドの {{ic|rcode}} が {{ic|NOERROR}} になっていれば問題ありません。 === クエリの転送 === {{Tip|転送を設定することで Unbound から [[DNSCrypt]] を使うことができます。[[DNSCrypt#Unbound]] を参照。}} DNS クエリを送りたいローカルネットワークに DNS サーバーが存在しクエリを転送したい場合、以下の行を記述してください: private-address: ''local_subnet/subnet_mask'' 例: private-address: 10.0.0.0/24 {{Note|プライベートアドレスを使うことで DNS Rebind 攻撃から身を守ることができます。RFC1918 ネットワーク (10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 169.254.0.0/16 fd00::/8 fe80::/10) を有効にすることができます。Unbound はデフォルトでは機能を有効にしません。}} ローカルアドレスの正引き・逆引きの両方でローカル DNS サーバーを使うには、正引きと逆引きのそれぞれで以下のような行を設定する必要があります (下の例で使用している 10.0.0.1 は DNS 機能を提供するサーバーの IP アドレスに置き換えてください): local-zone: "10.in-addr.arpa." transparent 上記の行は逆引きを正しく動作させるために必要です。 forward-zone: name: "mynetwork.com." forward-addr: 10.0.0.1 forward-zone: name: "10.in-addr.arpa." forward-addr: 10.0.0.1 {{Note| フォワードゾーンとスタブゾーンには違いがあります。スタブゾーンは、権限のある DNS サーバーに直接接続されている場合にのみ機能します。これは、信頼できる DNS を提供している BIND DNS サーバーからの検索では機能しますが、内部検索が別の DNS サーバーに転送される非結合サーバーへのクエリを参照している場合、ここで参照をマシンのスタブゾーンとして定義しても機能しません。この場合、フォワードゾーンを上記のように定義する必要があります。フォワードゾーンは他の DNS サーバに向けてデイジーチェーン検索を行うことができるからです。つまり、フォワードゾーンは再帰的に DNS サーバへの問い合わせを参照することができます。スタブゾーンを不適切に使用すると、問題を示すエラーメッセージが表示されないため、この区別は重要です。}} 以下のようにすることでローカルホストの正引き・逆引きを設定できます: local-zone: "localhost." static local-data: "localhost. 10800 IN NS localhost." local-data: "localhost. 10800 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800" local-data: "localhost. 10800 IN A 127.0.0.1" local-zone: "127.in-addr.arpa." static local-data: "127.in-addr.arpa. 10800 IN NS localhost." local-data: "127.in-addr.arpa. 10800 IN SOA localhost. nobody.invalid. 2 3600 1200 604800 10800" local-data: "1.0.0.127.in-addr.arpa. 10800 IN PTR localhost." デフォルトの正引きゾーンで、ローカルマシンやローカルネットワークの外側のサーバーを使用するには、設定ファイルに以下を追加 (例として Google と OpenDNS の DNS サーバーを指定しています): forward-zone: name: "." forward-addr: 8.8.8.8 forward-addr: 8.8.4.4 forward-addr: 208.67.222.222 forward-addr: 208.67.220.220 上記の設定で ''unbound'' は外部ルックアップの正引きゾーンで Google と OpenDNS サーバーを使用します。 {{Note|OpenDNS はレスポンスから DNSSEC レコードを省略するため、[[#DNSSEC 検証|DNSSEC 検証]]を有効にする場合は上記の設定は使わないでください。}} == 使用方法 == === Unbound の起動 === {{ic|unbound.service}} を[[起動]]・[[有効化]]してください。 === Unbound の遠隔操作 === ''unbound'' には {{ic|unbound-control}} ユーティリティが付いており、リモートの unbound サーバーを管理することができます。{{Pkg|pdnsd}} の [[Pdnsd#pdnsd-ctl|pdnsd-ctl]] コマンドに似ています。 ==== unbound-control の設定 ==== 使用する前に、以下の設定が必要です: 1) まず、以下のコマンドを実行してください: # unbound-control-setup 自己署名証明書とサーバーとクライアントの秘密鍵が生成されます。これらのファイルは {{ic|/etc/unbound}} ディレクトリに保存されます。 2) その後、{{ic|/etc/unbound/unbound.conf}} を編集して以下の内容を記述してください。{{ic|control-enable: yes}} オプションは必須ですが、他のオプションは必要に応じて変更できます。 remote-control: # Enable remote control with unbound-control(8) here. # set up the keys and certificates with unbound-control-setup. control-enable: yes # what interfaces are listened to for remote control. # give 0.0.0.0 and ::0 to listen to all interfaces. control-interface: 127.0.0.1 # port number for remote control operations. control-port: 8953 # unbound server key file. server-key-file: "/etc/unbound/unbound_server.key" # unbound server certificate file. server-cert-file: "/etc/unbound/unbound_server.pem" # unbound-control key file. control-key-file: "/etc/unbound/unbound_control.key" # unbound-control certificate file. control-cert-file: "/etc/unbound/unbound_control.pem" ==== unbound-control を使う ==== ''unbound-control'' で使用できるコマンドの例: * 再設定しないで統計を出力 # unbound-control stats_noreset * キャッシュを標準出力にダンプ # unbound-control dump_cache * キャッシュを消去して設定をリロード # unbound-control reload 詳しくは {{ic|man 8 unbound-control}} を参照してください。 == ヒントとテクニック == === ブロック通知 === [https://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&startdate%5Bday%5D=&startdate%5Bmonth%5D=&startdate%5Byear%5D=&mimetype=plaintext adservers] ファイルを作成して以下の設定を Unbound に追加してください: {{hc|/etc/unbound/unbound.conf| ... include: /etc/unbound/adservers }} {{Note|これらのホストでいくつかの OK ステータスを返すために、あなたがコントロールするサーバへの 127.0.0.1 リダイレクションを変更して、そのサーバに空の 204 応答させることができます。 [http://www.shadowandy.net/2014/04/adblocking-nginx-serving-1-pixel-gif-204-content.htm このページ] を参照してください。}} === 権威 DNS サーバーの追加 === 検証・再帰・キャッシュ DNS サーバーと権威 DNS サーバーを同じマシンで動作させたい場合、[[NSD]] のページを参照してください。全ての機能を提供する DNS サーバーを動作させるより、権威サーバーとキャッシュサーバーを分けることでセキュリティを向上させることができます。[[NSD]] のページには BIND から移行する際に役立つ情報を載せています。 === WAN と DNS === listen しているサーバーの設定ファイルやインターフェイスを変更することで、ローカルネットワーク外のマシンからのクエリから LAN 内の特定のマシンにアクセスできるように設定できます。どこからでもアクセスできるようにするウェブサーバーやメールサーバーなどで有用です。 === ルートヒント systemd タイマー === 以下は[[#ルートヒント]]に書かれている方法で {{ic|root.hints}} を1ヶ月ごとに更新する systemd サービスとタイマーの例です: {{hc|1=/etc/systemd/system/roothints.service|2= [Unit] Description=Update root hints for unbound After=network.target [Service] ExecStart=/usr/bin/curl -o /etc/unbound/root.hints <nowiki>https://www.internic.net/domain/named.cache</nowiki> }} {{hc|1=/etc/systemd/system/roothints.timer|2= [Unit] Description=Run root.hints monthly [Timer] OnCalendar=monthly Persistent=true [Install] WantedBy=timers.target}} {{ic|roothints.timer}} systemd タイマーを[[起動]]・[[有効化]]してください。 == トラブルシューティング == === num-threads の問題 === {{ic|unbound.conf}} の man ページより: outgoing-range: <number> Number of ports to open. This number of file descriptors can be opened per thread. 一部のウェブサイトでは {{ic|num-threads}} は CPU コアの数に設定するように推奨しています。{{ic|unbound.conf.example}} サンプルファイルの記述: # number of threads to create. 1 disables threading. # num-threads: 1 ただし {{ic|num-threads}} を {{ic|1}} より大きな値に設定すると ''unbound'' を起動したときにログにファイル記述子の数が多すぎるという警告が吐かれます。小規模なネットワークで Unbound を使っている場合、{{ic|num-threads}} を {{ic|1}} より大きな値に設定して性能をあげようとしても無駄です。設定したい場合は [http://www.unbound.net/documentation/howto_optimise.html 公式ドキュメント] を参照してください。 {{ic|outgoing-range}} はできるだけ大きな値に設定してください。上記で参照しているウェブページのセクションには {{ic|1024}} の制限を越える方法が書かれています。複数のクライアントを同時にさばくことが可能です。シングルコアなら {{ic|950}} を、デュアルコアなら {{ic|450}} を、クアッドコアなら {{ic|200}} を試して下さい。{{ic|num-queries-per-thread}} は {{ic|outgoing-range}} の数字の半分に設定するのが最適です。 {{ic|outgoing-range}} の制限により {{ic|num-queries-per-thread}} も制限されるため、 {{ic|outgoing-range}} に {{{ic|1024}} 制限がないように、 {{Pkg|libevent}} でコンパイルすることをお薦めします。負荷の高い DNS サーバ用にこの方法でコンパイルする必要がある場合は、 {{Pkg|unbound}} パッケージを使用する代わりに、ソースからプログラムをコンパイルする必要があります。 == 参照 == * [https://fedoraproject.org/wiki/Changes/Default_Local_DNS_Resolver Fedora change to Unbound] * [https://github.com/jodrell/unbound-block-hosts/ Block hosts that contain advertisements]
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
Unbound
に戻る。
検索
検索
Unboundのソースを表示
話題を追加