公開日:2021年12月10日最終更新日: 2021年12月10日
クラウドが主流となっている現在、ネットワーク設定はコンソール上から非常に簡単に行うことができるようになっています。
ただ、基本的なネットワークの知識がないと、意味のない設定やセキュリティ上問題が残る構成になってしまうことも多々あります。
今回はそんなネットワークの基本的な考え方であるセグメントを分ける意味から、Azure上でネットワークを構成するVNetについてご紹介したいと思います。
目次 <Contents>
ネットワークセグメントの基本
ネットワークには基本的な考え方としてセグメント分けというものがあります。
自社内で信頼できる範囲をLANセグメント、社外で信頼できないインターネット部分をWANセグメント、公開用サーバーやメールサーバー、DNSサーバーなどを配置している緩衝地帯をDMZセグメントなどと呼ぶのが一般的です。
クラウドでネットワークが仮想化されていてもこの基本は変わらないと言えるでしょう。
これらの違いはIPネットワークでサブネットやセグメント境界でルーティングの設計することで構築することができます。192.168.1.0/24がLANセグメントに設定されていたとすると、192.168.2.0/24がDMZセグメント、社外のWANセグメントはグローバルなIP空間であったりとサブネットや境界ルーティングで設計をすることができます。
セグメントは細かく分ければ分けるほど機能的にセキュリティを強化できるため、サーバーセグメントや検疫セグメント、管理セグメントなと様々な構成が世にありますが、その分管理や設定の手間が増えるため、運用も視野に入れたベストプラクティスな設計が必要と言えるでしょう。
Azure VNetとは
Azure VNet(Virtual Network)とはAzure上で構成できる仮想論理ネットワークです。VNet内にVM(仮想マシン)を作ることで他のリソースとの通信が可能となるため、VM構築の際は必須の設定となります。
VNetはそれ自体の中にサブネット分けをすることが可能な他、要件に応じて複数のVNetを作成することもできますが、VNet間を相互に通信するにはVPN接続やピアリングの設定が必要となります。
また、複数のリージョンを跨いで設定をすることはできません。リージョンの冗長性も確保したい場合は設計段階からVPN接続やピアリング設定を考慮する必要があります。
VNetを作成してみよう
もっとも基本的なVNetを構成して概要を理解していきたいと思います。構成はインターネットに公開されているDMZセグメント、データベースや管理サーバーなどがあるサーバーセグメント、クライアントやオンプレが接続されるLANセグメントといった形をサブネット分けで実現します。
また、通信対象となるVMも一緒に作成していきます。
1. VNetの作成
1Azureポータル上から「仮想ネットワーク」を選択します。
2「仮想ネットワークの作成」を選択します。
3①既にあるサブスクリプションとリソースグループを選択(なければ作成します)し、名前とリージョンを決めて
②「IPアドレス」をクリックします。
4デフォルトのサブネット設定が既にありますが、ここにサブネットを追加していきます。
「サブネットの追加」を選択します。
5①「サブネット」と
②「IPアドレス」を設定します。
※今回は[Server]と[10.0.1.0/24]とします。
③「追加」をクリックします。
6追加されました。
同様にDMZのサブネットを作成するため同じ手順を行います。
7今度は[DMZ]と[10.0.2.0/24]とします。
追加できたら「Review + create」をクリックします。
8内容を確認し、「Create」をクリックするとVNetが作成されます。
2. VMの作成
サブネットに配置するVMを作成していきます。defaultにはクライアント、ServerにはDBサーバー、DMZには公開WEBサーバーを置くイメージで作っていきます。
本稿では具体的な作成方法は省きますがそれぞれサブネットを選択してIPを設定していってください。DMZ以外にパブリックIPは不要です。
defaultサブネット | Client 10.0.0.4 |
---|---|
Serverサブネット | DB-Srv 10.0.1.4 |
DMZサブネット | WEB-Srv 10.0.2.4 |
※第4オクテットの1~3はAzure設備で予約されています。
NSGでセキュリティ設定
このままだとサブネット間は管理ネットワークを通して通信ができてしまうのでVNet自体にNSGの設定を割り当てていきます。通常VMを作成時に基本のNSGがVMのインターフェース自体に割り当たっていますが、明示的にサブネットでセキュリティを分けましょう。
NSGの詳細は、Network Security GroupでIPやポートを制限してセキュリティ対策を参照ください。
1. NSGのVNetへの割り当て
1作成したVNetを仮想ネットワークから選択します。
2①「サブネット」から
②NSGを割り当てたいサブネットを選択します。
3①「ネットワークセキュリティグループ」からVM作成時にできた基本のNSGを選択し
②「保存」をクリックします。
同様の操作をすべてのサブネットで行います。
4設定できました。
2. NSG設定
1DMZにはWEBサーバー、ServerにはDBサーバー、defaultにはClientとしていますので、必要な通信のみをNSGで設定していきます。送信元IPも必要な物のみ許可します。
DMZ | ポート:22,80,443 許可 |
---|---|
Server | ポート:22,1433(DB想定) 許可 |
default | ポート:22 許可 |
2設定できました。
※DMZやClientのSSHが任意(any)許可されているのは記事執筆の都合上です。実際はClientからや自端末からのみ許可するなどIP制限などしてください。これら設定によりVNet内にセグメント分けされた機能的なネットワークを作成することができます。
以上で基本的なシステムのセキュリティ設定ができました。以降はVM上でWEBサーバー、DBサーバー、クライアントなど役割の設定をしていく形になります。
まとめ
VNetの設定とNSGの設定を行うことで基本的なシステムのセグメント分けを行うことができました。今回はVMを中心として設定していますが、Azure上の他のリソースにアクセスする際もVNetの設定が必要ですので、押さえておくと良いでしょう。
クラウドの仮想ネットワークはなんとなくで設定でき、通信できてしまうこともありますが、基本を押えたうえでしっかりした設計・設定ができるようにしておくと、セキュリティ事故を未然に防いだりトラブル防止に繋がります。