NSX-T Identity FW

今回はNSX-TのIdentity FWについてまとめました。

 

概要

Identity FWについて

VDIの普及に伴い、特定の仮想マシンに異なるユーザがログインする場合があります。仮想マシンに営業チームの社員がログインしている場合は、その仮想マシンに対しては営業チームのサーバへのアクセスは許可するが、他チームへのアクセスは禁止させたと思います。

 

また、もし、仮想マシンに経理チームの社員がログインしている場合は、その仮想マシンに対しては経理チームのサーバへのアクセスは許可するが、他チームへのアクセスは禁止させたいと思います。

仮想マシンにログインしているユーザを確認し、DFWのルールを手動で変更すれば、仮想マシンにログインしているユーザの種類によって、仮想マシンがアクセス可能な対象を制御することは可能ですが、現実的ではありません。

 

NSX-TではIdentity FWと呼ばれる機能を使用することで、仮想マシンにログインしているユーザが所属するActive DirectoryのSecurity Groupを基に、トラフィックを許可/ブロック可能です。NSX Managerは仮想マシンにインストールされたVMware Tools経由で仮想マシンにログインしたユーザが所属するActive DirectoryのSecurity Groupを認識し、自動でDFWのルールを更新します。

 

 

注意点として、NSX Managerが仮想マシンにログインしたユーザが所属するActive DirectoryのSecurity Groupの情報をVMware Tools経由で取得するには、仮想マシンにVMware Toolsをインストールする際にNSXファイル自己検証ドライバとNSXネットワーク自己検証ドライバも一緒にインストールする必要があります。

 

検証結果

検証内容、構成

Active Directoryでalice(Group 1に所属)とbob(Group 2に所属)のユーザアカウントを作成します。
Segment 1に所属する仮想マシンをActive Directoryに参加させます。

NSX-TでIdentity FWを有効にし、Group 1に所属しているユーザがログイン中の仮想マシンは20.1.1.101、Group 2に所属しているユーザがログイン中の仮想マシンは20.1.1.102に対してのみ通信できるようにします。

 

 

ネットワーク機器のCLIの設定


interface GigabitEthernet2
 ip address 20.1.1.101 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 20.1.1.254
            


interface GigabitEthernet2
 ip address 20.1.1.102 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 20.1.1.254
            

 

Active Directorの設定

Active Directoryにユーザaliceとbobを作成します。

 

NSX ManagerとActive Directorの連携

NSX ManagerにActive Directoryのアドレスやクレデンシャルを設定し、NSX managerとActive Directoryを連携させます。

 

Groupの設定

DFWのルールで参照するGroupを作成します。Groupの所属条件にはActive DirectoryのSecurity Groupを使用します。

 

DFWの設定

最初にDFWでIdentity FWを有効化します。

 

次に、先程作成したGroupを使用して、DFWのルールを作成します。

 

DFWの状態確認

DFWのルールのextended srcの後の文字列が、Security GroupのIDを格納した変数になります。

ESXi

[root@esxi1:~] vsipioctl getrules -f nic-10523958-eth0-vmware-sfw.2
ruleset mainrs {
  # generation number: 0
  # realization time : 2020-12-12T05:03:10
  # FILTER (APP Category) rules
  rule 1005 at 1 inout protocol tcp strict from any to any port 389 accept;
  rule 1008 at 2 inout protocol any from any to ip 20.1.1.101 with extended src 8d918738-23b9-471e-86a4-010bce02d98f accept;
  rule 1009 at 3 inout protocol any from any to ip 20.1.1.102 with extended src 0cf066ca-dcd2-4a3e-a651-327f7ede7899 accept;
  rule 1010 at 4 inout protocol any from any to any reject;
  rule 3 at 5 inout inet6 protocol ipv6-icmp icmptype 135 from any to any accept;
  rule 3 at 6 inout inet6 protocol ipv6-icmp icmptype 136 from any to any accept;
  rule 4 at 7 inout protocol udp from any to any port {67, 68} accept;
  rule 2 at 8 inout protocol any from any to any accept;
}

ruleset mainrs_L2 {
  # generation number: 0
  # realization time : 2020-12-12T05:03:10
  # FILTER rules
  rule 1 at 1 inout ethertype any stateless from any to any accept;
}

 

Active DirectoryのSecurity GroupのIDを格納した変数の中身はsipioctl getcontainer -f <名前>コマンドで確認可能です。

ESXi

[root@esxi1:~] vsipioctl getcontainers -f nic-10523958-eth0-vmware-sfw.2
containers are shared for this filter
global containers
container 0cf066ca-dcd2-4a3e-a651-327f7ede7899 {
# generation number: 96
# realization time : 2020-12-12T05:03:10
WIN_SID : S-1-5-21-2062540623-932880078-2124187180-1104,
}

container 8d918738-23b9-471e-86a4-010bce02d98f {
# generation number: 96
# realization time : 2020-12-12T05:03:10
WIN_SID : S-1-5-21-2062540623-932880078-2124187180-1103,
}

 

sipioctl getcontainer -f <名前>コマンドの出力に含まれるWIN_SIDがSecurity GroupのIDになります。

 

疎通確認(ユーザaliceでログイン)

Segment 1の仮想マシンにユーザaliceでログインします。

 

Segment 1の仮想マシンから20.1.1.101にPingを実施します。

 

Segment 1の仮想マシンから20.1.1.101へのPingが成功することが確認できます。

 

Segment 1の仮想マシンから20.1.1.102にPingを実施します。

 

Segment 1の仮想マシンから20.1.1.102へのPingが失敗することが確認できます。

 

疎通確認(ユーザbobでログイン)

Segment 1の仮想マシンにユーザbobでログインします。

 

Segment 1の仮想マシンから20.1.1.101にPingを実施します。

 

Segment 1の仮想マシンから20.1.1.101へのPingが失敗することが確認できます。

 

Segment 1の仮想マシンから20.1.1.102にPingを実施します。

 

Segment 1の仮想マシンから20.1.1.102へのPingが成功することが確認できます。

コメント

タイトルとURLをコピーしました