vmware環境におけるTLS無効化について(vCenter for Windows版手順)

 

本記事ではインターネットの暗号化プロトコルであるTLSの無効化についてまとめます。

これから無効化を検討されている方の助けとなれば幸いです。

TLS無効化にあたる考慮事項について

TLS無効化にあたる考慮のKBは以下となります。
実際の手順についても記載はありますが、全て目を通しておくといいかなと思います。
https://kb.vmware.com/articleview?docid=2147469

 

ESXi各バージョンごとの対応

・ESXi 6.5 または 6.0U3以前のバージョン:明確な無効化はサポートされない
※ ただし出来るだけ新しいバージョンでの接続を自動で試みる

・ESXi 6.5 U1 - U3:明確な無効化が可能である。デフォルトでは全て(1.0-1.2)有効の状態

・ESXi 6.7以降:TLS1.2のみデフォルトで有効化されており、TLSv1.0/1.1はデフォルトで無効化されている

 

各バージョンごとにTLS有効化の仕様も異なるため、まずは自身の環境がどれに合致し、
どのような作業が必要になるか...を確認する事が大切です。

今回は実際作業を検討されるであろうパターンのうち、一番多いと思われる
"vSphere6.5 U1-U3の間でvCenterとESXiクラスタ双方のTLSv1.0無効化"をやっていきます。 

実際の手順について(vCenter for Windowsの場合)

 1. vCenterで再構成ユーティリティを導入する
(My vmware上でvCenterのダウンロードページにあります。
vCSAの場合はrpm拡張子 / vCenter for Windowsの場合はmsi拡張子)

2. vCenter上で古いTLSの無効化を実行する

3. ESXi上で古いTLSの無効化を実行する

なお今回の検証ではTLS1.0のみを無効化していく手順として実行していますが
TLS1.0 / 1.1双方無効にする場合でもコマンドのオプションでバージョン指定をする事が可能なので
後述するコマンドのサブオプションを適宜変更いただければOKです。

 

 

 

f:id:pocmemo:20200217220949p:plain

 

 再構成ユーティリティ導入前のフォルダ状態:

f:id:pocmemo:20200217221121p:plain

 

msiファイルを実行後のフォルダ状態:

 "VMware"配下に"CIS"フォルダができている事が確認できます。

f:id:pocmemo:20200217221213p:plain

f:id:pocmemo:20200217221228p:plain

 

 msiファイルを実行し、上記のフォルダが出来たことを確認したら、
コマンドプロンプトで作業を実行していきます。

なお、最短であればvCenterのTLS無効化はコマンド一行で完了しますが
念のため事前にバックアップが取得できるかどうか確認しておきましょう。

 

> reconfigureVc backup

実行時の出力:
f:id:pocmemo:20200217221539p:plain

 

実際の設定更新コマンド:

> reconfigureVc update -p TLSv1.1 TLSv1.2

f:id:pocmemo:20200217221633p:plain

vCenterを再起動するけど続けるか?という質問が間に入ります。
問題ないのでこのまま"Y"を押下して進めていきます。 

このコマンドを実行後、先ほど取得したバックアップの処理が改めて最初に走ります。

その後、以下のようなテーブルが表示されます。
この時点ではTLSv1.0がまだ表示されていますが、とりあえず問題ありません。

f:id:pocmemo:20200217223347p:plain

 この表示が出力された後、各vCenterサービスの再起動が開始されます。
ESXi 6.5 U1の検証環境で再起動されたサービス一覧(停止順、変動の可能性有):

・perfcharts
vmware-psc-client
・vmonapi
・vmsyslogcollector
・vsan-health
・eam
・content-library
・sps
・vapi-endpoint
・VMwareDNSService
・vsm
・vpxd
・cis-license
・vsphere-client 
・vsphere-ui
・vpxd-svcs
vmware-vpostgres
・sca
・cm
・rhttproxy
・vmon
・VMwareSTS
・VMWareIdentityMgmtService
・VMWareCertificateService
・VMWareDirectoryService
・VMWareAfdService
vmware-cis-config

 上記のサービスが一度全て停止され、その後順に立ち上がってきます。

 

再起動後、vCenterでのTLS状況を確認してみます。

> reconfigureVc scan

f:id:pocmemo:20200217225533p:plain

 

無事TLSv1.0が表示されていない状況を確認したら、vCenter側は終了です。

  

ESXiでのTLS無効化について

vCenterの作業が終了したらESXi側に移ります。

 

コマンド入力に当たる今回の環境は以下です。

・vCenter管理ユーザ:administrator@vsphere.local
・対象Cluster名:Test-CLST

f:id:pocmemo:20200221201955p:plain

 

実際の作業は

コマンド例:reconfigureESX vCenterCluster -c <クラスタ名> -u <管理者ユーザ名> -p <有効化させておくバージョン>

今回の環境の場合、以下になります。

・-c:Test-CLST
・-u:administrator@vsphere.local
・-p:TLSv1.1, TLSv1.2 (今回はTLSv1.0のみを無効化させるため)

> reconfigureESX vCenterCluster -c Test-CLST -u administrator@vsphere.local -p TLSv1.1 TLSv1.2

 

f:id:pocmemo:20200221233926p:plain

 

管理者ユーザのパスワードを入力すると後は自動で進んでいきます。

※ 今回Clusterに属しているHostが2台(.141 / .142)です。

f:id:pocmemo:20200221234313p:plain


 事前に確認していたように、ESXは自動再起動されませんが、設定反映の為には
再起動が必要となります。

以下、上記コマンド入力直後のWeb Client表記です。

f:id:pocmemo:20200221234509p:plain

 

その後は通常のHost再起動同様にメンテナンスモード > 再起動でOKです。

 再起動後、ESXiでもきちんと無効化されているかどうか"openssl"コマンドで確認する事が可能です。

 

TLSv1.0(今回無効化したバージョン)の場合:

> openssl s_client -connect <hostIP>:443 -tls1

f:id:pocmemo:20200226180021p:plain

 

TLSv1.0(今回有効化したままバージョン)の場合:

> openssl s_client -connect <hostIP>:443 -tls1_2

 有効化されているままのバージョンではServer Cerificate等が表示されているのがわかります。

f:id:pocmemo:20200226180133p:plain

 

 

 以上で作業は終了となります。

TLS Reconfiguratorを使う為、環境の特殊なメンテナンスが必要かどうかなど
結構不安に思う方もいるかもしれませんが、作業自体はシンプルに完了できますね。