この投稿は、下記のつづきです。
NSX API での 分散 FW 設定を体験してみる。Part 3 (HOL-SDC-1603 Module 3 より)
NSX の分散ファイアウォール(DFW)を、API で設定してみます。
手順では、ラボ(HOL-SDC-1603)の vCenter Server Appliance「vcsa-01a」の curl コマンドで、
NSX Manager 「192.168.110.15」 に API を実行しています。
手順の流れ。
- Security Group の作成。
- Service の作成。
- オブジェクト ID の確認。
- デフォルトの FW ルールを Allow → Block に変更。★ここ
- FW ルール セクションの作成。
- セクションに FW ルールを作成。
ここから、FW ルールの設定を変更します。
FW ルールで設定した通信のみ許可するため、まず FW のデフォルトルールを
すべて許可(Allow)される状態から、すべてブロックされる状態に変更します。
デフォルトの FW ルールを Allow → Block に変更。
「Default Section Layer3」セクションの「Default Rule」を、Allow から Block(deny)に変更します。
NSX API での FW ルールの設定変更では、まず XML ファイルを作成しておきます。
既存の FW ルールの情報は下記のようなコマンドラインで確認できるので、用意する XML の参考にします。
URL に含まれる ID は、前回の投稿で確認したものを指定しています。
- 「Default Section Layer3」 の Section ID = 1003
- 「Default Rule」 の Rule ID = 1001
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/firewall/globalroot-0/config/layer3sections/1003/rules/1001 | xmllint --format -
今回は「Default Rule」ルールを設定変更するための XML を、「dfw-rule-default.txt」として用意します。
- ルールの ID は、1001。※前回の投稿で確認した ID。
- action で、Block に対応する「deny」を指定。
cat <<EOF > dfw-rule-default.txt
<rule id="1001" disabled="false" logged="false">
<name>Default Rule</name>
<action>deny</action>
<appliedToList>
<appliedTo>
<name>DISTRIBUTED_FIREWALL</name>
<value>DISTRIBUTED_FIREWALL</value>
<type>DISTRIBUTED_FIREWALL</type>
</appliedTo>
</appliedToList>
</rule>
EOF
FW ルールの設定を変更する NSX API では、ETag ヘッダの指定が必要なため、設定変更の対象となるリソースの ETag を確認しておきます。
ヘッダ情報を確認するため、下記の curl コマンドラインでは「-I」 オプションを付けています。
curl -k -I -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/firewall/globalroot-0/config/layer3sections/1003/rules/1001
今回は、ETag の値を「ETAG」 という変数に代入して、コマンドラインで指定しています。
Etag の値を取得します。
ETAG=`curl -k -I -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/firewall/globalroot-0/config/layer3sections/1003/rules/1001 | grep ETag | awk '{print $2}'`
さきほど作成した XML ファイル(dfw-rule-default.txt) の内容で、FW ルールを設定変更します。
cat dfw-rule-default.txt | curl -k -s -u admin:VMware1! -X PUT -H "Content-type: text/xml" -H "If-Match: $ETAG" -d @- https://192.168.110.15/api/4.0/firewall/globalroot-0/config/layer3sections/1003/rules/1001
コマンドラインの実行結果から、action が deny になったことが確認できます。
Web Client の情報を更新すると、ルールの Action が Allow から Block に変更されたことがわかります。
「3-Tier Web App」のテストページが表示できなくなります。
NSX 管理外の環境(ラボのコンソール)から、Web 層の VM 「web-01a」 への SSH アクセスができなくなります。
つづく。
NSX API での 分散 FW 設定を体験してみる。Part 5 (HOL-SDC-1603 Module 3 より)