1ヶ月前の情報となりますが、2020 年 8 月に Azure File Sync の TLS 1.0/1.1 のサポート終了のアナウンスがありました。
オンプレミス側の Azure File Sync エージェントにインストールできる Windows Server OS (2012 R2/2016/2019) は TLS 1.2 は TLS 1.2 に対応しているため、発生する通信は既定で TLS 1.2 を使用するため、基本的には問題ありません。
TLS 1.2 が使用されていない (TLS 1.0/1.1 を使用している) ケースとしては、以下であることが記載されています。気になる人は、確認してみてね !
- プロキシを利用しており、プロキシ サーバー側で TLS 1.2 に対応していない
- Azure File Sync エージェントがインストールされている OS 上のレジストリ設定で無効化している
プロキシ有効/無効の設定状況や、レジストリってどこを見ればいいんですかねぇ (ニヤニヤ
ネット上で検索すれば色々と情報は出てくると思いますが、アナウンスの内容がかなりおざなりなので、確認方法についてまとめてみました。
確認方法について
プロキシ設定の確認
OS レベル
以下公開ドキュメント、[プロキシ] セクション内「マシン全体のプロキシ設定」に記載されている以下のファイルの内容を確認します。
※プロキシ設定は、<system.net> セクション内に記載されています。
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
また管理者権限で起動されたコマンド プロンプト、もしくは Windows PowerShell 上で以下のコマンドを実行することで確認することが可能です。
netsh winhttp show proxy
Azure File Sync エージェント レベル
エージェントのバージョン v4.0.1.0 以降では、エージェント レベルでプロキシ設定を行うことができますが、管理者権限で起動された Windows PowerShell 上で以下のコマンドを実行することが可能です。
Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll" Set-StorageSyncProxyConfiguration -Address <url> -Port <port number> -ProxyCredential <credentials>
レジストリ設定の確認
OS レベル
以下公開ドキュメント、[TLS 1.2] セクションに記載されているレジストリ キー内の値が無効に設定されていないかどうかを確認します。
※キーが存在しない場合は、既定で有効になっています。
- レジストリ パス
- HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Client
- サブ キー :
- Client
- Server
- サブキー内の値 :
- DisabledByDefault
- 0 : 既定で TLS 1.2 が有効
- 1 : 既定で TLS 1.2 が無効
- Enabled
- 0 : TLS 1.2 が無効
- 1 : TLS 1.2 が有効
- DisabledByDefault
.NET Framework レベル
以下公開ドキュメント、[SchUseStrongCrypto] セクションおよび [SystemDefaultTlsVersions] セクションに記載されているレジストリ キー内の値を確認する必要があります。
なお、インストールされている .NET Framework のバージョンによっては既定で設定されている値が異なるため、注意が必要となります。
- SchUseStrongCrypto
- レジストリ キー :
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
- キー内の値
- SchUseStrongCrypto
- 1 : 強力な暗号化の利用を有効化 (v4.6 以降の既定値)
- 0 : 強力な暗号化の利用を無効化 (v4.5.2 以前の既定値)
- SchUseStrongCrypto
- レジストリ キー :
- SystemDefaultTlsVersions
- レジストリ キー :
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
- キー内の値 :
- SystemDefaultTlsVersions
- 1 : OS によるプロトコルの選択を許可 (v4.7 以降の既定値)
- 0 : .NET Framework によるプロトコルの選択を許可 (v4.6.1 以前の既定値)
- SystemDefaultTlsVersions
- レジストリ キー :
パケット キャプチャ ソフトウェアを用いた確認
上記の設定を見て問題がなさそう、だけど不安な方はいるかと思います。その場合は、パケット解析の知識は必要となりますが、wireshark などパケット キャプチャ ソフトウェアを用いて採取したパケットをAzure File Sync の通信内容を見ることで、TLS 1.2 が使用されているかどうかを確認することができます。
その際、やみくもに採取したパケットの内容すべてから確認するのは酷なので、以下に確認手順をまとめています。
※wireshark を用いた確認手順となります (インストール手順やパケット採取開始/停止の具体的な手順は割愛)。
- 管理者権限で Windows PowerShell を起動します。
- wireshark を起動、パケット採取を開始します。
- Windows PowerShell 上で以下のコマンドを実行します。
Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll" Test-StorageSyncNetworkConnectivity
※このコマンドは、Azure 側のサービス エンドポイントと Azure File Sync エージェント間通信をテストするものとなります。
- パケット採取を停止します。
- 手順 3. 実行時に表示された URL を nslook を使って名前解決、IP アドレスを確認します。
- wireshark の表示フィルタに手順 5. で確認した IP アドレスとともに以下の内容を入力、フィルタします。
ip.addr == <手順 5. で確認した IP アドレス>
フィルタした結果、[Protocol] 列の TLS のバージョンを確認します。
参考 URL
- Azure の更新情報 | Microsoft Azure
https://azure.microsoft.com/ja-jp/updates/ - Azure File Sync のデプロイの計画 | Microsoft Docs
https://docs.microsoft.com/ja-jp/azure/storage/files/storage-sync-files-planning - Release notes for the Azure File Sync agent | Microsoft Docs
https://docs.microsoft.com/en-us/azure/storage/files/storage-files-release-notes - Wireshark · Go Deep.
https://www.wireshark.org/