システム構築

サーバー構築のデージーネットTOP > システム構築 > DNSサーバ構築 > unboundによるDNSキャッシュサーバ

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

Open Smart Design

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

導入企業業種
ケーブルテレビ(岐阜県)
ユーザー規模
10,000人
利用OS
Linux(Red Hat Enterprise Linux 7)
導入月
2010年3月頃
お客様が悩まれていた課題
DNSのセキュリティ問題が多い
セキュリティ対策のため管理者の負担が大きい
利用者に安全なシステムを提供できていない

デージーネットが提案した「unboundによるDNSキャッシュサーバ」

解決ポイント

unboundを利用し、DNSキャッシュサーバを分離

メール・Webシステム更改にあわせて、DNSについても整理したいと思っているので、提案をしてほしいというご要望をいただきました。

DNSキャッシュサーバにunboundを提案

DNSとしては、bindを利用するのが一般的ですが、頻繁にキャッシュ制御の脆弱性が発見されます。bindをDNSマスタ・スレーブ兼キャッシュサーバとして利用していると、管理しているデータを改竄され、大きな影響が出る可能性がありました。

そのため、DNSキャッシュサーバを分離したDNSの構成を提案しました。さらに、DNSキャッシュサーバとしては、オープンソースソフトウェアのunboundを導入しました。unboundは、DNSキャッシュサーバに特化したソフトウェアです。そのため、unboundは動作が高速です。unboundには、DNSキャッシュが汚染されない工夫がされており、セキュリティ面でも優れています。

unboundを使用したユーザ向けDNSキャッシュサーバ

提案前にOSSを検証

デージーネットでは、独自にunboundを検証し、導入・運用方法を確立しました。その実績を元に、unboundを利用することを提案しましたので、安心して導入していただくことができました。

ご参考資料

  • DNS水責め攻撃対策の調査報告書
  • 2014年初旬からDNS水責めと呼ばれるDNSのDDoS攻撃が見られるようになりました。日本国内でもこの攻撃によるDNS障害が多く発生しております。本書は、OSSのunboundとunbound-reqmonを使用したDNS水責め攻撃対策について調査した内容をまとめたものです。

導入後の結果

DNSキャッシュサーバをunboundにしたことで、bindのキャッシュ制御の脆弱性問題を回避できるようになり、従来発生していたアップデート作業の回数を減らすことができるようになりました。DNSコンテンツサーバはbindのままですので、DNSへの追加を行うときの作業は今まで通りの運用となります。そのため、unboundを導入したことによる管理上の問題もありませんでした。



利用OSS

unboundとは

unboundは、DNSキャッシュに特化したDNSで、オランダのNLnet Labsが開発しています。unboundはIPv6対応(デュアルスタック)、DNSSECにも対応しています。そのため、今後DNSキャッシュに求められる機能がunboundには実装済みです。

unboundの特徴

  • unboundはキャッシュ機能に特化している

    unboundはキャッシュ機能に特化しており高速に動作します。

  • unboundは設定が容易

    unboundの設定は比較的簡単です。unboundを小規模サイトで利用する分には、unboundインストール時のデフォルトの設定ファイルでそのまま動作させることができます。また、unboundを大規模サイトで利用する場合であっても、並列スレッド数やキャッシュで利用するメモリサイズを大きくするなど、比較的簡単なチューニングで運用できます。

  • unboundはIPv6対応デュアルスタック

    unboundはIPv6に対応しています。unboundはIPv4/IPv6デュアルスタックであるため、IPv4/IPv6の両方へアクセスが可能です。

  • unboundはDNSSECに対応

    DNSキャッシュ汚染を防ぐためには重要です。近年、DNSSECの実装が進んでいます。unboundもDNSSECに対応しています。

unboundのキャッシュ汚染への耐性

DNSといえばBINDが有名でした。しかし、BINDのDNSキャッシュに関する脆弱性が頻繁に発見されるようになり、ソフトウェアのバージョンアップの対策を実施する必要が出てきました。一方で、unboundは、bindよりも脆弱性がすくなく、DNSキャッシュへの攻撃に対する防御システムを多数備えています。例えば、unboundの標準的な設定ファイルを見ると、次のようなパラメータが記載されています。

# グルーレコードを使ったDNSスプーフィング攻撃を回避する機能の有効化
harden-glue: yes

# DNSSEC機能に対する防御設定   
harden-dnssec-stripped: yes

# 上位ゾーンと下位ゾーンのNSセットが同期していない場合の挙動の設定
harden-below-nxdomain: yes

# DNSSECの署名の検証時に参照パスの検証を行う設定
harden-referral-path: yes

# 0x20に符号化されたランダムビットを使った偽造攻撃の検出設定
use-caps-for-id: no

# 望まない回答を受け取った回数によりキャッシュをクリアする機能の設定
unwanted-reply-threshold: 10000000
  

また、unboundは、動的にキャッシュをコントロールする機能を持っています。例えば、次のようなコマンドで、現在キャッシュされている情報を出力することができます。

# unbound-control dump_cache
  

もし、万一、不正なキャッシュがある場合には、キャッシュを削除することができます。

# unbound-control flush www.example.com
  

ドメインを指定して、該当ドメインの全キャッシュを削除することもできます。

# unbound-control flush_zone example.com
  

さらに、特定のドメインへのアクセスを禁止するような設定も追加できます。

# unbound-control local_zone example.com unsafe
  

unboundは、脆弱性が少ないだけではなく、このような多数の攻撃防御機能を備えたセキュアなDNSキャッシュサーバなのです。

unboundを利用したセキュリティの高いDNS

今回の事例のように、unboundによりDNSキャッシュを分離したシステム構成とすることで、DNSキャッシュ汚染に強いシステムにすることができます。また、BINDと、unbound双方を利用することで、登録等の使い勝手はBINDのままに、unboundによりDNSキャッシュを高速化できます。また、BINDには再帰クエリを禁止することでDNSキャッシュ汚染に関する問題を防ぐことができます。

デージーネットとunbound

BINDとunbound双方を利用したシステムでも、セキュリティ向上を図れますが、デージーネットでは、さらにDNSのセキュリティを高めるため、PowerDNSとunboundの利用を推奨しています。PowerDNSはPoweradminと組み合わせて使うことで、DNSSECに関連する処理も自動的に行われます。

デージーネットでは、unboundを利用したDNS水責め攻撃への対策も提案しています。その内容は、DNS水責め攻撃対策の調査報告書にまとめられています。unboundとunbound-reqmonを使用し、容易に導入できる対策となっています。

DNSサーバ構築の事例一覧

様々な事例を集めたモデルプラン(費用例付き)をお送りしています。

代表的な事例を集めた「モデルプラン」をお送りしています。費用の例も記載しておりますので、価格感も知って頂ける資料となっております。
ご希望の方は、下記よりお申し込みください。

モデルプランをご希望の方

unboundによるDNSキャッシュサーバの先頭へ