vSphere Client で、NSX-T 3.2 の 分散ファイアウォール(DFW)のルールを設定するウィザードを進めてみます。
ラボ環境についてはこちらをどうぞ。
前回はこちら。
今回の内容です。
設定された NSX-T 分散ファイアウォール環境の様子
ウィザードで作成された NSX-T のグループ、タグ、ポリシー/ルールを確認してみます。
分散ファイアウォール ルール
vSphere Client の「NSX」メニュー →「セキュリティ」→「ポリシー管理」→「分散ファイアウォール」にて、ファイアウォール ルールを確認します。
前回の「1. インフラストラクチャ サービスへのアクセス」で設定したルールは、「カテゴリ固有のルール」→「インフラストラクチャ」に設定されています。
「2. 環境間の通信を定義する」で設定したルールは、「カテゴリ固有のルール」→「環境」に設定されています。
「3. アプリケーションの通信戦略を定義する」で設定したルールは、「カテゴリ固有のルール」→「アプリケーション」に設定されています。
「4. デフォルト ファイアウォール ルールのアクションの定義」で設定したアクションは、「カテゴリ固有のルール」→「アプリケーション」の最後にある、「Default Layer3 Section」→「Default Layer3 Rule」設定されています。
NSX-T のグループ
NSX-T のグループは、vSphere Client の「NSX」メニュー →「インベントリ」→「グループ」で確認します。
「メンバーの表示」をクリックすると、グループに含まれる VM を確認できます。
メンバーの VM が表示されます。
NSX-T のタグ
NSX-T での VM へのタグ割り当ては、vSphere Client の「NSX」メニュー →「インベントリ」→「仮想マシン」で確認します。
「タグ」列に表示された数字をクリックすると、割り当てられているタグが表示されます。
タグの割り当てを変更するには、VM 行先頭のマーク →「編集」をクリックします。
下記のように、VM のタグ割り当てが編集できます。
NSX-T タグの一覧は、vSphere Client の「NSX」メニュー →「インベントリ」→「タグ」で確認します。
「割り当て先」列の数字をクリックすると、VM の一覧が表示されます。
タグを割り当てた VM が確認できます。
ファイアウォール ルールの追加と設定変更
ウィザードが完了したあとは、手作業でファイアウォール ルールを設定変更することになります。
除外リスト
NSX Manager の VM など、DFW の対象にしたくない VM については、除外リストに登録しておきます。ただし、このラボを管理するサーバはすべて NSX- T DFW の対象外になる環境に配置してあるので除外リストは利用していません。
除外リストは、vSphere Client の「NSX」メニュー →「セキュリティ」→「ポリシー管理」→「分散ファイアウォール」にある、「アクション」→「除外リスト」から設定できます。
ファイアウォール ルールの追加
分散ファイアウォールのルールや、グループ設定も従来の NSX-T と同様に手作業で設定変更できます。
ここでは、ウィザードではあえて設定していなかった、SSH 踏み台の通信許可ルールを追加しておきます。
SSH 踏み台グループ(SSH_JumpBox_Group)の作成
まず、SSH 踏み台の VM をメンバーとするグループを作成します。
vSphere Client の「NSX」メニュー →「インベントリ」→「グループ」を開きます。そして、「グループの追加」をクリックし、名前(今回は SSH_JumpBox_Group)を入力してから、コンピュート メンバーの「設定」をクリックします。
「メンバーシップ基準」タブで「条件の追加」をクリックして、「基準 1」で下記を選択/入力してから「適用」をクリックします。
- 仮想マシン
- 名前
- が次で始まる
- lab-ssh-
つまり、「仮想マシンの名前が lab-ssh- で始まる」に一致する VM がメンバーになります。
「適用」をクリックすると、グループが作成されます。
作成した SSH_JumpBox_Group グループのメンバーを確認してみます。「メンバーの表示」をクリックします。
「lab-ssh-01」という VM がメンバーとして含まれていることが確認できます。
SSH 許可ポリシー(SSH JumpBox Policy)とルールの作成
SSH 踏み台の SSH 接続を許可する DFW ルールを作成します。今回は、下記の通信を許可するルールを作成します。
- 運用端末 → SSH 踏み台
- SSH 踏み台 → 本番 / 開発 環境のサーバ
vSphere Client の「NSX」メニュー →「セキュリティ」→「ポリシー管理」→「分散ファイアウォール」→「カテゴリ固有のルール」→「インフラストラクチャ」にルールを追加します。
「ポリシーの追加」をクリックして、名前(今回は「SSH JumpBox Policy」)を入力します。ポリシーの順序は、マウスのドラッグ & ドロップで移動できます。
追加されたポリシーのチェックをオンにして、「ルールを追加」をクリックします。
追加されたルールに名前(今回は「Ext to JumpBox」)を入力して、送信元の編集ボタンをクリックします。
ルールで許可する送信元として、踏み台のネットワーク アドレスを指定します。
「IP アドレス」タブをクリックして、アドレス(今回は 192.168.1.0/24)を入力して、「適用」をクリックします。
宛先の編集ボタンをクリックします。
宛先として、先ほど作成した「SSH_JumpBox_Group」を選択して、「適用」をクリックします。
サービスの編集ボタンをクリックします。
「ssh」でフィルタリングして、「SSH」サービスを選択して、「適用」をクリックします。
同様に、「SSH 踏み台 → 本番 / 開発 環境のサーバ」の SSH 接続を許可するルールを追加します。
「ルールの追加」をクリックしてから、下記のようにルールを設定します。
- 名前: JumpBox to Servers
- 送信元: SSH_JumpBox_Group
- 宛先: PRD_Environment_Group、DEV_Environment_Group
- サービス: SSH
- マウスのドラッグ & ドロップで、先に作成した「Ext to JumpBox」ルールの後ろに移動する。
ルールを設定したら、「発行」をクリックします。
ポリシーが「進行中」になり、少し待って「更新」をクリックすると「成功」になるはずです。
デフォルト アクションの変更
前回の「4. デフォルト ファイアウォール ルールのアクションの定義」で、デフォルト ルールのアクションは「許可」を設定していました。
ここでは、ルールで許可していない通信が遮断されるように「却下」に設定変更します。
「カテゴリ固有のルール」→「アプリケーション」の最後にある、「Default Layer3 Section」→「Default Layer3 Rule」のアクションを「却下」に変更します。
「発行」をクリックすると、設定したルールが反映されます。
これで、DFW で許可していない通信は遮断されるはずです。ルールが作用しない場合は、対象の VM で、分散ポートグループを割り当てなおしたり、vMotion で移動したりするとルールが適用されるはずです。
ESXi での分散ファイアウォール ルールの様子
DFW のルールは、vDS の分散ポートグループに接続されている VM(の vNIC)に設定されます。実際にルールが設定されている様子は、ESXi にログインして確認できたりします。
ESXi に、SSH でログインしておきます。
[root@lab-esxi-114:~] vmware -vl VMware ESXi 7.0.3 build-19193900 VMware ESXi 7.0 Update 3
summarize-dvfilter コマンドで、prd-db-01 の vNIC に適用された dvfilter を表示してみます。grep で「-A 9」を指定して、マッチしたところから 9行を表示していますが、この行数は表示結果にあわせて調整します。
[root@lab-esxi-114:~] summarize-dvfilter | grep prd-db-01 -A 9 world 354510 vmm0:prd-db-01 vcUuid:'50 32 6e e3 a8 e1 71 72-d3 2c 31 3a 55 49 e8 47' port 67108892 prd-db-01.eth0 vNic slot 2 name: nic-354510-eth0-vmware-sfw.2 agentName: vmware-sfw state: IOChain Attached vmState: Attached failurePolicy: failClosed serviceVMID: 2 filter source: Dynamic Filter Creation moduleName: nsxt-vsip-19232595
ここから、フィルターの名前を取得しておきます。
[root@lab-esxi-114:~] F=$(summarize-dvfilter | grep prd-db-01 -A 9 | grep name | cut -d: -f2) [root@lab-esxi-114:~] echo $F nic-354510-eth0-vmware-sfw.2
「vsipioctl getrule」コマンドで、フィルターに設定されたルールが確認できます。ルールの ID をもとに、vSphre Client / NSX Manager から見たルールと紐付けることができます。
[root@lab-esxi-114:~] vsipioctl getrule -f $F
DFW のルールが適用されていれば、下記のように表示されるはずです。
以上、vSphere Client から NSX-T 分散ファイアウォールを設定してみる話でした。