オープンソース

Unbound〜DNSキャッシュサーバ〜

Unboundは、オープンソースのキャッシュDNSサーバソフトウェアです。DNSサーバソフトウェアとしては、従来は主にISCのBINDが使用されていました。しかしBINDは、キャッシュサーバと権威サーバの両方の機能を持っているため構造が複雑であること、歴史が長いため古い設計のコードが残っていることなどから、脆弱性が頻繁に発見されています。Unboundは、このようなBINDの問題を解決するキャッシュDNSサーバです。

目次

Unboundとは

Unboundとは、DNSのキャッシュサーバに特化したオープンソースソフトウェアです。オランダのNLnet Labsが開発し公開しています。Unboundは、IPv6対応(デュアルスタック)、DNSSECにも対応しており、今後、DNSキャッシュサーバに求められる機能は実装済です。また、UnboundはDNSキャッシュポイズニング攻撃に対する防御の機能を多く備え、高いセキュリティを実現しています。Unboundは、DNSキャッシュサーバに特化し、非常に高速に動作します。

Unboundは、設定が非常に簡単です。小規模サイトで利用する場合には、インストールした時に設定されるデフォルトの設定ファイルに、リクエストを受け付けるアドレスを設定するだけで、そのまま動作させることが可能です。大規模サイト向けには、並列スレッド数やキャッシュで利用するメモリサイズを大きくするなど、比較的簡単なチューニングを行うことで、高速に動作をさせることができます。

DNSキャッシュサーバとDNS権威サーバ

DNSサーバには、DNSキャッシュサーバとDNS権威サーバの二つの種類があります。

DNSキャッシュサーバは、クライアントからの名前解決のリクエストを受け付けて、名前解決の一連の調査を行ってくれるサーバです。調査した結果はキャッシュします。そのため、次回以降の問い合わせでは、インターネットへの問い合わせを行わず、キャッシュから回答をします。DNS問い合わせの処理を高速に行うとともに、インターネットへトラフィックを減らすことができます。

DNS権威サーバは、インターネット上でドメインやゾーンを管理するサーバです。組織に割り当てられたゾーンの権威ある情報を管理することからこう呼ばれています。DNSコンテンツサーバともいわれます。例えば、designet.jpを管理するDNS権威サーバは、www.designet.jpやmail.designet.jpなどの配下の名前とIPアドレスの情報を管理します。ドメインの名前空間はルートドメイン「.」を頂点とするツリー構造になっています。このツリーの特定のノード配下の一部または全部をゾーンと呼びます。

従来のDNSサーバでは、一台のサーバでDNSキャッシュサーバの機能とDNS権威サーバの両方の機能を提供していました。

Unbound:従来のDNSサーバ

しかし、2010年前後に大規模なDNSキャッシュへの攻撃が観測されてからは、二つの機能を分離することが推奨されています。DNSキャッシュが攻撃によって汚染されても、権威あるゾーンの情報まで影響が及ばないようにするためです。万一、権威あるゾーンの情報を書き換えられると、メールサーバやWWWサーバのアドレスなどの重要な情報が書き換えられ、利用者が攻撃者のサイトに誘導されてしまう可能性があります。これによって、機密情報が漏洩する危険があります。こうした被害を避けるため、それぞれ専用のサーバに分離することが求められています。さらに、両方の機能を持つサーバソフトウェアよりも、専用のサーバソフトウェアの方が安全だと言われています。

こうした背景の中で、UnboundはDNSキャッシュサーバに特化したソフトウェアとして注目されています。

Unbound:DNSキャッシュサーバに特化したソフトウェア画像

Unboundの特徴

従来使われていたBINDと比較しても、Unboundは多くの特徴があります。

インストールが簡単

Unboundは、Redhat Enterprise Linuxをはじめ、多くのディストリビューションでパッケージとして提供されています。そのため、入手が非常に簡単です。標準の設定に、リクエストを受け付けるIPアドレスや、利用を許可するクライアントのアドレスを定義するだけで、簡単に利用することができます。

脆弱性が少ない

Unboundは、セキュリティを重視して設計されており、発見されている脆弱性の数が少ないのが特徴です。2022年3月から2025年2月までに公表されたセキュリティアドバイザリの件数は、BINDが33件であるのに対してUnboundは8件となっています。頻繁に脆弱性がみつかるBINDとくらべると、セキュリティ面で安心して利用することができます。

高速に動作する

Unboundは、マルチCPU、マルチスレッドに対応しています。適切なリソースを定義することで、サーバの性能を効率よく利用して、高速に動作します。

設定が分かりやすい

Unboundの設定は、用途に応じたファイルで管理することができます。そのため、可読性が高く、管理もしやすいのが特徴です。

DNSSECやIPv6に対応

DNSSECは、DNS権威サーバが管理するゾーンの情報に電子署名をつけることで、情報の改竄を防ぐ機能です。DNSキャッシュへの攻撃を防ぐために導入された機能です。Unboundは標準設定のままでDNSSECに対応しています。また、UnboundはIPv6のディアルスタックに対応しています。IPv6とIPv4の両方のDNSリクエストに対して、一つのサーバで対応できます。また、AAAAなどのIPv6用のDNSレコードも処理することができます。DNSSECやIPv6に対応すると、DNSのパケットは従来のDNSが利用していたUDPのパケットには入りきらない場合があります。Unboundは、標準的なUDPだけでなく、UDPを使った拡張プロトコルであるEDNS0やTCPへの切り替えにも対応しています。

ローカルゾーンによる簡易DNS権威サーバ

Unboundは、DNSキャッシュ専用のサーバソフトウェアですが、ローカルにデータを管理することもできます。この機能は、簡易的なDNS権威サーバとしても利用できます。また、インターネット上のDNS情報が不足していたり、間違っていた場合には、その情報に上書きして独自の情報を返すこともできます。例えば、SPFレコードが定義されていないドメインのメールは、標的型攻撃に利用される可能性が高く、迷惑メールと判定されてしまう可能性も高くなります。相手のメールサーバが分かっている場合には、ローカルにレコードを定義することで、迷惑メールの判定をより精度の高いものにすることができます。また、標的型メール攻撃を防ことにもなります。

スタブゾーンによるDNS権威サーバとの連携

Unboundには、DNS権威サーバとの連携をスムーズに行うため、スタブゾーンの機能が提供されています。Unboundにスタブゾーンを定義することで、インターネット上のDNS情報とは関係なく、特定のゾーンを管理するサーバを設定できます。この機能があるため、Unboundは組織の内部DNSサーバを作る場合にも、上手く連携することができます。

フォワーディングサーバとしても利用可能

Unboundは、フォワーディングサーバとしても利用できます。フォワーディングサーバは、自分では名前解決の処理を行わず、他のサーバに依頼します。複数のDNSキャッシュサーバを利用する場合には、フォワーディングサーバ機能を使うことで、キャッシュを一元化できるメリットがあります。

攻撃に強い

Unboundには様々な攻撃検知や防御の機能があります。例えば、外部への問い合せする際に使用するソースポートの番号はランダムに選ばれます。これによりソースポートの番号が推測されにくくなり、キャッシュ攻撃の影響を受けにくくなっています。また、Rate Limit機能は、DNS水責め攻撃の対策として有効です。DNS水責め攻撃とは、権威サーバに大量の問い合わせを送ることで、権威サーバをサービス不能にする攻撃のことです。

BINDとUnboundとの違い

ここでは、BINDとUnboundの違いについて解説します。

BINDのみにある機能

BINDのみにあり、Unboundにはない機能は、次の通りです。

DNS権威サーバとしての機能

Unboundは、DNS権威サーバとして動作することはできません。ただし、ローカルデータを定義することで、簡易的なDNS権威サーバとして動作させることができます。

view機能

view機能は、クライアントのソースIPなどによって、DNSサーバとしての振る舞いを変える機能です。DNS権威サーバの機能としては便利な機能です。BINDでは、DNSキャッシュサーバとしても利用できますが、DNSキャッシュサーバで利用することはあまり多くありません。

Unboundのみにある機能

Unboundのみにあり、BINDにはない機能は、次の通りです。

DNSSECの検証の除外機能

設定したドメインに対して、DNSSECの検証を行わない機能です。Unboundでは、運用ミスや、DNSSEC鍵の一時的な失効など、何らかの原因でDNSSECの検証が失敗するようになったドメインをDNSSECの検査対象から外すことができます。

DNSキャッシュへの攻撃検知機能

Unboundには、キャッシュポイズニング攻撃を検知する機能があります。一定の閾値を越えたら、ログを出力したり、キャッシュをクリアしたりすることができます。また、Rate Control機能では、問い合わせ先のドメイン毎に流量制限などの防御を行うこともできます。このようなキャッシュサーバへの攻撃に対抗するための機能は、Unboundの方が豊富です。

性能

ベンチマークによると、UnboundはBINDの約3倍の問合せを処理することができます。Unboundは、名前解決しようとした対象がキャッシュにある場合も、ない場合でも同様に高速です。

デージーネットの取り組み

デージーネットでは、Unboundについて調査・検証を行った結果を「Unbound調査報告書」にてまとめました。調査報告書は無料でダウンロードすることができます。

またデージーネットでは、Unboundを活用したDNS構築サービスを行っています。デージーネットで構築した場合には、導入後支援サービス「Open Smart Assistance」にて保守サポートもご利用いただけます。

Unbound「構築事例/情報の一覧」

Unbound調査報告書

無料資料ダウンロード

Unboundとは、オープンソースのキャッシュDNSサーバソフトウェアです。BINDのキャッシュサーバ機能を代替するソフトウェアとして開発されました。本書はUnboundについて調査した内容をまとめたものです。

Unbound水責め攻撃対策調査報告書

無料資料ダウンロード

本書は、DNSサーバに対する水責めと呼ばれる攻撃の対策についての調査報告書です。高速・堅牢なキャッシュDNSサーバであるUnboundのセキュリティ機能が、攻撃の対策として有効であるか検証を行ないました。

unboundによるDNSキャッシュサーバ構築事例

unboundによるDNSキャッシュサーバ構築事例の画像

加入ユーザ向けのDNSキャッシュサーバをUnboundを使って構成しました。提案前にunboundを独自に検証したことで、安心して導入していただくことができました。導入の結果、DNSキャッシュサーバを分離した構成となり、DNSセキュリティの向上が実現できました。

DNSキャッシュサーバの水責め攻撃対策構築事例

DNSキャッシュサーバの水責め攻撃対策構築事例の画像

近年、日本国内のISPでDNSキャッシュサーバの障害が報告されています。DNS水責め攻撃とよばれる攻撃が行われたためです。そのため、各ISPでは対策に追われています。本事例は、デージーネットがDNSキャッシュサーバにDNSサーバへの水責め攻撃の対策を行ったものです。

児童ポルノブロッキング対応DNSキャッシュサーバ構築事例

児童ポルノブロッキング対応DNSキャッシュサーバ構築事例の画像

児童ポルノブロッキングは、ICSAから公開されている児童ポルノ掲載アドレスリストを使って、有害サイトを閲覧できなくする仕組みです。本事例は、DNSキャッシュサーバが問い合わせを受けたときに、児童ポルノ掲載サイトへの問い合わせを別サイトに誘導する仕組みを構築しました。

標的型メール攻撃対策システム構築事例

標的型メール攻撃対策システム構築事例の画像

標的型攻撃で使われるメールは、送信者を偽装して送信されるものが多いことが知られています。本事例は、オープンソースソフトウェアのSaMMAとENMAを組み合わせて、送信者を偽装したメールの添付ファイルを自動的に削除することで、標的型攻撃を回避する機能を実現したものです。

OSSのおすすめDNSサーバ構築「キャッシュDNSサーバ」

おすすめDNSサーバ構築の画像

NSDと同じコミュニティが開発しているキャッシュDNSサーバです。ここではOSSのDNSキャッシュサーバソフトウェアの選定ポイントを紹介し、比較してみます。

DNSサーバのおすすめOSS比較9選!選定ポイントも解説

DNSサーバ比較

DNSサーバとは、インターネットの名前解決を行うサーバーのことを言います。ここでは、おすすめの各DNSサーバのOSSの特徴を比較し、DNSサーバソフトウェアを選定する際に重視すべきポイントをまとめました。

デモのお申込み

もっと使い方が知りたい方へ
Unboundの操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。Unboundのデモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

OSS情報「Unbound」

Unbound〜DNSキャッシュサーバ〜
ここでは、DNSのキャッシュサーバに特化したDNSサーバのソフトウェアである「Unbound」を紹介します。
UnboundのDNS攻撃対策
Unboundの特徴は、DNSに関連した攻撃に対して様々な対策を行うことができることです。ここでは、どのような対策を行うことができるのかを解説します。
Unboundのシステム構成とBINDからの移行
ここでは、Unboundを利用する場合のシステム構成について説明します。
Unboundのインストール
ここでは、CentOS7でUnboundを設定する方法について解説します。

Unbound〜DNSキャッシュサーバ〜の先頭へ