Hyper-Vで仮想版Guardianを構築してみた

 Oct 26, 2023 4:45:19 PM  株式会社テリロジー 技術統括部

こんにちは。

今回は、マイクロソフト社提供の仮想化ソフト”Hyper-V”を使って、仮想版Guardianを構築してみましたので、その手順をご紹介します。

 

準備

・作成するGuardian

  • モデル:Guardian Virtual Series
  • vCPU4
  • RAM8GB
  • ディスク:20GB

・必要なもの

  • Windowsベースのマシン(Hyper-Vを有効化しておく)
  • Guardian Virtual SeriesVHDイメージファイル

 

構築手順

今回は、このような構成になるように構築していきます。

画像1-4

 

やるべき作業は、ざっくりと次の3つです。

  1. 仮想スイッチの作成
  2. 仮想マシン(Guardian)の作成
  3. ポートミラーリングの設定

以下、詳細を説明していきます。
順不同な部分もありますが、なるべくスムーズな手順でご紹介します。

 

仮想スイッチの作成

Guardian作成の前に、まず仮想スイッチを2つ(管理ポート用・モニターポート用)作成しておきます。Guardianに仮想スイッチを接続することで、Guardianに仮想NICが追加されていきます。

Hyper-Vマネージャーを開き、右側ペインにある[仮想スイッチマネージャー]から、仮想スイッチを作成することができます。

無題46

 

1.1. 仮想スイッチの新規作成

仮想スイッチマネージャーを開いたら、左側ペインで[新しい仮想ネットワークスイッチ]を選択、右側ペインで仮想スイッチの種類[外部]を選択し、[仮想スイッチの作成]を押します。
2つ作成します。

画像2-Oct-26-2023-03-08-21-3570-AM

 

1.2. プロパティの編集

左側ペインに追加された仮想スイッチを選択し、右側ペインにて仮想スイッチのプロパティを以下のように設定します。

※名前は好きなように設定してください。
※物理NICは物理マシンによって名称が異なるため、適宜確認してください。
[拡張]は、左側ペインで「+」マークを押すと表示されます。
1つ目(管理ポート用スイッチ)
名前:vSwitch_mgmt
種類:外部ネットワーク:物理NIC 01
   ☑管理オペレーティングシステムに…

無題8
2つ目(モニターポート用スイッチ)
名前:vSwitch_mgmt
種類:外部ネットワーク:物理NIC 02
拡張:☑NDISキャプチャ

無題9
画像3-4

 

以上で仮想スイッチの作成は完了です。

 

仮想マシン(Guardian)作成

続いて、実際にGuardianを作成していきます。

2.1. 仮想マシン作成

Hyper-Vマネージャーを開いたら、左側ペインにあるマシン名を右クリックし、[新規]>[仮想マシン]を選択します。仮想マシンの新規作成ウィザードが表示されます。

無題2無題3 

ウィザードに従って、設定を行っていきます。
名前と場所の指定は何でも構いません。
ここでは名前を「Guardian-01」とし、格納場所はデフォルトのままにします。
[次へ]を押します。

無題5 

世代の指定では、[第1世代]を選択し、[次へ]を押します。

無題6

 

メモリの割り当てでは、今回は8GBRAMを想定しているため、8192MBと入力します。
[次へ]を押します。

無題7

ネットワークの構成では、Guardianに接続する仮想スイッチを選択します。ここでは一つしか選択できないため、ひとまず管理用スイッチとして作成した[vSwitch_mgmt]を選択します。
これにより、Guardianに仮想NICが1つ追加されます。
[次へ]を押します。

無題10

仮想ハードディスクの接続では、[既存の仮想ハードディスクを使用する]を選択し、Guardian Virtual SeriesVHDイメージファイルを指定します。[次へ]を押します。

無題13無題12

これまでの内容を確認し、[完了]を押します。

無題14

 この段階でGuardianの作成自体はできましたが、起動する前にもう少し設定を行っていきます。

 

2.2. ディスクの拡張

Hyper-Vでは、仮想マシンのディスク容量のデフォルトが4GBになっています。Guardianは最低でも20GB必要なので、ディスクの拡張が必要です。なお一度拡張すると、縮小はできないのでご注意ください。

Hyper-Vマネージャーの右側ペインにある[ディスクの編集]をクリックすると、仮想ハードディスクの編集ウィザードが表示されます。

無題22

ディスクの場所では、先ほど作成したGuardianVHDイメージファイルを指定します。
[次へ]を押します。

無題25

操作の選択で[拡張]を選択し、[次へ]を押します。

無題26

新しいサイズを20GBに設定し、[次へ]を押します。

無題27

[完了]を押して、ディスクの拡張設定を終了します。

無題28

 

2.3. CPUの設定

次に、CPUの数を設定します。
作成した仮想マシン「Guardian-01」を右クリックし、[設定]を選択します。

無題41

左側ペインで[プロセッサ]を選択し、[仮想プロセッサの数]を変更します。今回は”4”にします。Guardianにおける推奨のCPU数は、最低でも4つ必要になります。変更後、[適用]を押します。

無題17

 

2.4. 仮想NICの追加

次に、仮想NICを追加します。
Guardianは、管理用・モニター用として少なくとも2つのNICが必要ですが、この段階ではまだ管理用のNICしかありません。

左側ペインで[ハードウェアの追加]を選択後、右側ペインで[ネットワークアダプター]を選択し、[追加]を押します。

無題18

 

左側ペインに追加されたネットワークアダプターを選択し、右側ペインでモニターポート用の仮想スイッチ「vSwitch_monitor」を選択します。

無題42

[OK]を押して一旦設定画面を閉じます。
これでモニター用の仮想NICを1つ追加できました。

 

ポートミラーリング設定

ここからは、仮想スイッチ(vSwitch_monitor)にポートミラーリング設定をしていきます。物理NIC02側のポートに流れてくるトラフィックを、Guardian側のポートにミラーリングします。この設定を行わないと、Guardianは上手くトラフィックをモニタリングできません。

無題47

3.1. ミラーリング元の指定

まずは、ミラーリングとなるポートを指定します。
今回は、このポートをミラーリング元として設定します。無題44

この設定は、ホストOS(Windows)Power Shellで行います。

まず、Windows PowerShellを管理者として実行します。

無題33

次に、下記を実行します。

$ExtPortFeature=Get-VMSystemSwitchExtensionPortFeature -FeatureName "Ethernet Switch Port Security Settings" $ExtPortFeature.SettingData.MonitorMode=2
Add-VMSwitchExtensionPortFeature -ExternalPort -SwitchName モニター用仮想スイッチ名 -VMSwitchExtensionFeature $ExtPortFeature

「モニター用仮想スイッチ名」の部分は適宜自分の設定した名前にしてください。
今回は「vSwitch_monitor」です。無題34

これで、vSwitch_monitorの物理NIC側のポートをミラーリング元として設定できました。

正しく設定できているか確認するためには、Power Shellで下記を実行します。

Get-VMSwitchExtensionPortFeature -FeatureName "Ethernet Switch Port Security Settings" -SwitchName モニター用仮想スイッチ名 -ExternalPort | select -ExpandProperty SettingData

出力された値のうち、MonitorModeの欄が”2”になっていれば、ミラーリング元として設定できています。無題35

 

3.2. ミラーリング先の指定

次に、ミラーリングとなるポートを指定します。
今回は、この部分をミラーリング先として設定します。無題45

この設定は、Hyper-Vマネージャーの、Guardian-01の設定画面(2.3. を参照)から行います。

設定画面を開いたら、まず左側ペインの[vSwitch_monitor]のところにある「+」ボタンを押します。[ハードウェアアクセラレータ]を選択し、右側ペインで[仮想マシンキューを有効にする]のチェックを外します。

無題20細かい説明は省きますが、ここにチェックが入っているとミラーリングされたトラフィックをキャプチャできません。

次に、左側ペインで [高度な機能]を選択し、ポートミラーリングのモードを[移行先]にします。
[OK]を押して設定画面を閉じます。

無題21

これで、vSwitch_monitorの仮想NIC側のポートを、ミラーリング先として設定できました。

ポートミラーリングの設定は以上です。

 

起動

仮想スイッチの作成、仮想マシンの作成、ポートミラーリングの設定が完了したので、いよいよGuardian-01を起動してみます。

Hyper-Vマネージャーで、Guardian-01を右クリック>[接続]でコンソール画面を開き、[起動]を押します。

無題29無題30

起動中…

無題32

起動できました!

ログイン後、管理用NICにIPアドレスを振ることで、SSHやブラウザ接続ができるようになります。

ちなみに、Hyper-VGuardianを作成すると、NIC名はhn0, hn1, ...という名前になります。
今回は、最初に接続した管理用NICがhn0、後に接続したモニター用NICがhn1となっています。

無題38

 

最後に、物理NIC01には操作端末や社内ネットワークを繋ぎ、物理NIC02にはキャプチャしたいトラフィックを流します。

無題48

 

以上で、Hyper-V上でのGuardian構築手順の紹介は終わりです。

 

終わり

今回は、Hyper-Vに仮想版Guardianを構築する方法をご紹介しました。

所々「なぜこの設定をいれるのか」というような箇所があったかもしれませんが、それらに関してはまた別の機会に詳しく解説しようと思います。


RECENT POST「Nozomi Networks」の最新記事


Nozomi Networks

NOZOMIの仮想アプライアンスをKVMにデプロイしてみた

Nozomi Networks

OT と CPS の文脈における OSI モデルとサイバーセキュリティの基礎

Nozomi Networks

Hyper-Vで仮想版Guardianを構築してみた【補足編】

Nozomi Networks

変電所と送電網のサイバーセキュリティと信頼性の向上

Hyper-Vで仮想版Guardianを構築してみた