unboundとは
unboundとは、DNSのキャッシュサーバに特化したDNSサーバのソフトウェアである。オランダのNLnet Labsが開発し、オープンソースソフトウェアとして公開している。IPv6対応(デュアルスタック)、DNSSECにも対応しており、今後、DNSキャッシュサーバに求められる機能は実装済である。また、キャッシュに特化しているため、非常に高速に動作する。
unboundは、設定が簡単で、小規模サイトで利用する分には、インストールした時に設定されるデフォルトの設定ファイルでそのまま動作させることが可能である。大規模サイト向けには、並列スレッド数やキャッシュで利用するメモリサイズを大きくするなど、比較的簡単なチューニングを行うことで運用できる。
DNSのキャッシュ汚染
DNSサーバといえばbindが有名であるが、DNSキャッシュに関する脆弱性の問題がときおり発生する。DNSはインターネットにおけるサービスの中でも重要なものであるため、bindを利用しているサーバは早急にアップデートすることが求められるが、これが管理者の負担になっている部分も少なくない。
unboundは、DNSキャッシュが汚染されないような工夫がされており、高い耐性を持っている。ただし、DNSキャッシュ汚染に強いからといって、アップデートが不要なわけではなく、バグ修正等行われているので、バージョンアップ情報をチェックし、必要に応じてアップデートすべきである。
DNSラウンドロビン
unboundは、初期リリースではDNSラウンドロビンに対応していなかった。これは、ラウンドロビンを期待していたサーバにとっては不都合であったが、バージョン1.4.17でサポートされた。
DNS水責め攻撃対策
unboundのバージョン1.5.4から、ratelimitという機能が追加された。この機能は、水責め攻撃と呼ばれる攻撃の対策に利用できる。
水責め攻撃は、ランダムなサブドメインの名前解決要求を大量に送ることで、キャッシュDNSと権威DNSの両方を停止させる攻撃である。クエリの送信元IPアドレスもランダムであるため、ファイアウォールなどで対策が難しいという特徴がある。unboundのratelimitを使うことで、攻撃対象になっているDNSゾーンに、自動的に流量制限を行なうことができる。流量制限をかけることで、キャッシュDNSや権威DNSの負荷を下げることができる。
ただしこの機能では、既にキャッシュされている情報は、制限対象にならない。そのため、多くのユーザが利用しているドメインの名前解決は、制限対象になりにくい。ほとんどの場合、攻撃者のみが制限対象になる。
そのため、サービスを一般利用している善良なユーザへの影響を最小限に抑えながら、水責め攻撃への対策を行うことができる。
セキュリティの高いDNSサーバ構成
DNSコンテンツサーバとDNSキャッシュサーバを分離したシステム構成とすることで、DNSキャッシュ汚染による攻撃に強いシステムにすることができる。また、DNSコンテンツサーバにbindを利用し、DNSキャッシュサーバにunboundを利用することで、サーバの登録等の使い勝手はbindのままに、DNSキャッシュサーバを高速化できる。また、bindには再帰クエリを禁止することでDNSキャッシュ汚染に関する問題を防ぐことができる。
多数のクライアントからの問い合わせが発生するインターネットサービスプロバイダだけではなく、コンテンツ提供しているサーバからDNS問い合わせが発生するコンテンツプロバイダなどでも有効に機能すると考えられる。
【カテゴリ】:DNS  オープンソースソフトウェア  
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |