DMZとは?基本知識や仕組み、活用例を解説

セキュリティを向上させるために、ネットワークにDMZと呼ばれる領域を構築することがあります。さまざまな環境で利用される概念であり、耳にしたことがある人も多いでしょう。セキュリティを担保するために、ネットワークでは非常に重要な仕組みです。
ネットワークを理解するうえで非常に重要ですが、専門的であるがゆえに詳しく理解されていない分野でもあります。今回は、ネットワークのセキュリティを向上させるDMZについて詳しく解説します。
DMZの基本知識
最初にDMZとは何か、基本知識について解説します。
DMZの概要
DMZは、企業の内部ネットワークと外部ネットワーク(インターネット)との間に設けられる中間的なネットワークです。外部に公開するサーバーをこの領域に配置することで、セキュリティを確保しつつ、サービス提供を可能にできます。
そもそもインターネットにサーバーを直接公開すると、サイバー攻撃のリスクが高まってしまいます。そのため、DMZを用いて、以下のような多層防御を実現しなければなりません。
- 外部ネットワークとの境界:外部ファイアウォール
- 内部ネットワークとの境界:内部ファイアウォール
このように2つのファイアウォールを設けられるようになれば、外部からの攻撃が内部ネットワークに到達するリスクを軽減できるのです。
DMZの構成イメージ
一般的に、DMZは3つのゾーンに分けて構築します。
外部から内部への通信イメージ
インターネット
↓
外部ファイアウォール
↓
DMZ
↓
内部ファイアウォール
↓
社内ネットワーク
外部ファイアウォールは、インターネットからDMZへのアクセスを許可します。そしてDMZに公開用のサーバーを配置し、必要な通信のみを許可するのです。一方、内部ファイアウォールは、DMZから内部へのアクセスを厳しく制御し、攻撃が到達しないように設計します。
DMZの仕組み
解説したとおり、DMZの基本的な仕組みは、外部からアクセスされるシステムを内部ネットワークと分離することです。これには大きく分けて2つのパターンが存在します。
シングルファイアウォール型DMZ
シングルファイアウォール型DMZは、1台のファイアウォールだけでDMZを構築する方式です。ファイアウォールに内部用、DMZ用、外部用のポートを用意して、すべての通信を論理的に分離します。準備しなければならないファイアウォールは1台だけであるため、管理コストが軽減されることがメリットです。
ただし、ファイアウォールが1台しか存在しないため、問題が発生すると一気に内部へ侵入される可能性があります。また、トラブルが生じた際に通信がすべて止まってしまうなど、運用面でのリスクもあるのです。
デュアルファイアウォール型DMZ
一般的には、デュアルファイアウォール型DMZが用いられます。ネットワークの内側と外側に2台のファイアウォールを別々に設置し、それぞれに細かなセキュリティ設定を施すことで、より高いセキュリティを担保できるのが特徴です。これまで解説してきたDMZがこれに該当すると理解してください。
DMZを構築することによるメリット
続いては、DMZを構築することによって、どのようなメリットを受けられるのか解説します。
内部ネットワークの保護
DMZを設置する最も大きなメリットが内部ネットワークの保護です。一般的に外部へ公開せざるを得ないWebサーバーやメールサーバーは、常に攻撃の対象となり得ます。ただ、攻撃を完全に回避することは現実的ではありません。
そこで、攻撃される前提でDMZを設定することで、内部ネットワークの保護を目指します。例えば、DMZ内で攻撃を食い止められるように設計し、社内の重要なシステムへはアクセスできないようにするのです。ネットワークを分離して、セキュリティを高められることは大きなメリットです。
アクセス制御が明確化
DMZを設けると「どの通信をどの方向へ許可するか」というポリシーを整理できます。その結果、ファイアウォールなどセキュリティ面のルールを管理しやすくなることがメリットです。
例えば「HTTP通信はDMZ内のWebサーバーまで許可する」「ログ送信は内部ネットワークだけ許可する」などと設定します。このような設定をいくつも組み合わせてアクセス制御を完成させるため、どこでどの通信が発生しうるのかが明らかになりやすいのです。
セキュリティ監視・対策が容易
DMZ内は外部からアクセスされることが前提の環境です。そのため、この部分に対して監視やセキュリティ対策を集中して実現できることがメリットといえるでしょう。
例えば、IDSやIPS、WAFなどの連携は、DMZ内で重点的に実施することが考えられます。DMZが無く、個々のサーバなどに設定すると手間が生じますが、DMZの内で完結すれば設計や設定が容易になるのです。また、実際に攻撃が生じた際もいち早く検知できるようになります。
また、上記でも解説したとおり、アクセス制御との関係性も把握しやすいでしょう。その結果、正常な通信と異常な通信のパターンを把握しやすいなどのメリットも生じます。
DMZを構築することによるデメリット
DMZは、セキュリティ面で重要な要素ですが、デメリットもあります。
ネットワーク構造の複雑化
DMZを導入すると、ネットワーク構成が複雑になりやすいことがデメリットです。細かくネットワークを分離したり設定したりしなければなりません。
例えば、多くのDMZでは、外部ファイアウォールと内部ファイアウォールの2種類を管理することが求められます。DMZを構築しない場合は1種類の管理で済むため、構造が複雑になり、手間も増えることがデメリットです。
また、通信ポリシーの詳細な設計なども必要です。DMZが無い場合と比較すると、非常に細かく設計しなければなりません。大雑把な設計は許されず、結果としてネットワーク全体が複雑になってしまいます。
運用や保守のコストが増加
DMZ内のサーバーは、外部にさらされ、攻撃されるという前提のもと構築されます。そのため、通常よりも高レベルのセキュリティ対策が必要で、コストが増えることがデメリットです。
例えば、WAFやIPSなど、セキュリティ機器を導入したり管理したりしなければなりません。導入するだけでコストが生じ、セキュリティのために定期的な運用と保守でもコストが発生するのです。コストを抑えて手を抜いた運用としてしまうと、セキュリティ効果が下がり効果が下がってしまいます。
コストは一例ですが、セキュリティを高めると、コストも増加するということが一般的な考えです。場合によっては、システムの運用自体がコスト的な大きな負担となりかねません。
設定ミスによるリスクの高まり
DMZを設けたつもりでも、ファイアウォールやルーティング設定にミスがあるかもしれません。この場合「DMZを構築したから安全」という思い込みからリスクが高まる可能性があります。
例えば、外部から内部ネットワークに到達できる設定が残っていたとしましょう。しかし、DMZを構築していると「作業の際に閉じたはずだ」と考えるはずです。その結果、設定ミスに気づくことがなく、そのまま攻撃され続けかねません。
極端な例ではありますが、DMZの構築によって「安全な環境をが完成した」という考えを持ちがちです。本来はそうあるべきですが、設定ミスやベストプラクティスの変化もあり得るため、設定すれば終わりという考えは改めましょう。
システムの柔軟性が低下
新しいシステムを追加したり、既存のシステムを更新したりする際、DMZが柔軟性を下げかねません。さまざまな制限を設けてしまう仕組みであるため、トラブルの原因となりうることはデメリットです。
例えば、新しいAPIを連携したい際に、DMZ内では通信できないことがあります。その結果、別の場所にサーバーを構築するなど回避策が必要かもしれません。また、データベースへのアクセス制限が厳しく、開発効率が下がるなどの問題も考えられます。
セキュリティを高める以上、制約が生じてしまうことはやむを得ません。ただ、その点を認識しておかないと、DMZによって柔軟性が下がり後々、困ってしまう可能性があるのです。
DMZの代表的な活用例
DMZは、さまざまな用途に利用できる仕組みで、今回は代表例を紹介します。
公開Webサーバーの設置
会社のコーポレートサイトや製品紹介ページなど、不特定多数がアクセスするWebサーバーはDMZに配置します。これにより、攻撃されやすいWebサーバーが内部ネットワークと分離され、セキュリティを高められるのです。
特にWebアプリケーションは、SQLインジェクションなどの脆弱性を持ちやすい特徴があります。万が一、内部に侵入された際のダメージが大きいため、DMZでセキュリティを高めるべきです。
ただ、近年はWebサーバーをクラウドに配置するなど、内部ネットワークと切り離すことも増えてきました。DMZによって環境を分離する方法も有効ですが、クラウドの活用など根本的に別の環境に構築する方法を考えても良いでしょう。
メールゲートウェイサーバーの中継
インターネットとのメール送受信を担うメールサーバーは、DMZに配置すると良いでしょう。例えば、SMTP・POP3サーバーはDMZに配置することで、内部ネットワークと切り離せるのです。
一般的に、メールはマルウェアやスパムの侵入口になりやすい特徴を持ちます。そのため、メールを最初から内部ネットワーク内のメールサーバーで受信することは望ましくありません。攻撃メールを受け取った際に、大きなダメージを受けてしまうからです。
逆に、まずはDMZ内でメールを受信するようにすれば、内部ネットワークへの影響を最小限に抑えられます。問題がないと判断されたものだけを内部ネットワークへ転送すると、内部のセキュリティを保てるのです。
DNSサーバーの分離設置
DNSサーバーの中でも、外部向けの名前解決を担う公開用DNSサーバーはDMZに配置すると良いでしょう。内部向けにしか利用しないものは、内部ネットワーク内に設置して差し支えありません。
公開用DNSサーバーは、外部とのやり取りにも応答する必要があります。そのため、外部からの通信を受け入れる設定にせざるを得ず、攻撃対象となりかねません。Webサーバーと同様に、攻撃される前提でDMZ内に配置します。
なお、DMZの効果を高めるためには、公開用DNSサーバーと内部DNSサーバーを分離することが重要です。外部にも公開するものと、内部でしか利用しないものは明確に切り分けましょう。
リバースプロキシやWAFの設置
リバースプロキシやWAFをDMZに配置し、内部アプリケーションとの中継役とする方法があります。DMZ内で通信を評価してから内部ネットワークへ中継でき、セキュリティを大きく高められるのです。
また、リバースプロキシにロードバランサーの役割も持たせれば、通信量を制御できます。負荷分散や冗長構成に対応した環境を構築しやすくなり、セキュリティ面でも利便性の面でも効果があるのです。
まとめ
DMZの概要や役割について解説しました。導入の大きな目的は、内部ネットワークと外部ネットワークの分離であり、DMZはその間の盾として機能する空間です。大きな環境では、内部と外部を明確に分離する必要があり、DMZはその実現に大きく貢献してくれます。
近年はさまざまなセキュリティ技術が登場し、ネットワークの構築方法も変化してきました。しかし、DMZは現在でも変わらず強力なセキュリティ対策の一手段です。適切に理解し、最適なDMZの構築を目指しましょう。