NAS製品であるHPE StoreEasyでWindowsファイルサーバーを構築して、SMBv1を有効にしたところ、
SMBv1が何故か有効にならない事象が起きました。
具体的には、SMBv1を有効にしても、数時間で無効化されてしまうんです。一体なぜ!?
レジュメ
環境・前提条件
- HPE StoreEasy機器
- Windows Server IoT 2019 for Storage Standard Edition プリインストール
で、Windowsファイルサーバーを構築したんですが、
クライアント端末に未だにWindows XPがあるということで、仕方なくSMBv1を有効にしたんですけど、Windows XPからWindowsファイルサーバーにファイル共有接続できなかったんです。
SMBv1使用状況の監査を設定してみえたエラーメッセージ
Powershellで以下のコマンドを実施すると、SMBv1監査が有効になり、イベントログにSMBv1で接続を試みるクライアントの情報が表示されます。
Set-SmbServerConfiguration -AuditSmb1Access $true
ソース:SMBServer、イベントID:3000
SMB1アクセス
ガイダンス
このイベントは、クライアントがSMB1を使用してサーバーにアクセスしようとしたことを示します。SMB1アクセスの監査を停止するには、Windows PowerShellのSet-SmbServerConfigurationコマンドレットを使用してください。
ソース:SMBServer、イベントID:1001
クライアントがSMB1を使用してサーバーにアクセスしようとしましたが、SMB1ファイル共有のサポートが無効になっているかアンインストールされているため、拒否されました。
結論、ローカルポリシーでSMBv1が無効にされていた
通常のWindows Server 2019では存在しないローカルポリシー(MS Security Guide)なのですが、HPE社のStoreEasyにはこのローカルポリシーがプリインストールされている状態でした。
そのローカルポリシーのSMBv1の設定を有効にしてあげることによってSMBv1は有効化でき問題は解決しました。
「Computer Configuration(コンピューターの構成)」
→「 Policies(ポリシー)」
→「Administrative Templates(管理用テンプレート)」
→「MS Security Guide(MSセキュリティ ガイド)」
→「Configure SMB v1 Server(SMB v1サーバーを構成する)」
上記を有効にすることにより、SMBv1が自動的に無効化されることはなくなりました。
Microsoft Security Compliance Toolkit 1.0(MS Security Guide ポリシー)とは
今回、HPE StoreEasyにプリインストールとして導入されていたローカルポリシーは、
ランサムウェア対策として、(まだ日本語化とかはされていないようですが)マイクロソフト社が提供しているMicrosoft Security Compliance Toolkit 1.0の中に含まれているポリシー機能です。
※ HPE StoreEasyにプリインストールされているのか、Windows Server IoT 2019 for Storage Standard Editionにプリインストールされているのかは、まだわかっていません。
Security Compliance Toolkit (SCT) は、企業のセキュリティ管理者が Windows および他の Microsoft 製品用に Microsoft 推奨のセキュリティ構成ベースラインをダウンロード、分析、テスト、編集、および格納するための一連のツールです。
SCT を使用すると、グループ ポリシー オブジェクト (GPO) を効率的に管理できます。 このツールキットの使用により、現在の GPO を Microsoft 推奨の GPO ベースラインまたは他のベースラインと比較し、編集して、GPO バックアップ ファイル形式で保存できます。保存した GPO は、Active Directory を通じて広範に適用することも、ローカル ポリシーで個別に適用することもできます。
https://learn.microsoft.com/ja-jp/windows/security/threat-protection/windows-security-configuration-framework/security-compliance-toolkit-10
今回は、セキュリティを緩めましたが、逆に、SMBv1を無効化させるランサムウェア対策として、ADのグループポリシーに導入するのも良いかと思いました。
Windows ServerでSMBv1を有効にする方法(サーバー側)
今回は、こちらのSMBv1を有効にする方法を実施の上でも、SMBv1が有効にならなかったのですが、
通常は(HPE StoreEasy以外)、こちらのSMBv1を有効にする方法を実施すれば、SMBv1サーバー側機能を有効にすることができます。
方法1か方法2のどちらかを実施してください。
方法1:サーバーマネージャーを使用した方法(GUI)
以下の機能の削除方法の逆を行い、追加・有効化させてください。
https://learn.microsoft.com/ja-jp/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3
- SMBv1 を削除するサーバーのサーバー マネージャー ダッシュボードの [このローカルサーバーを構成する] で、[ロールと機能の追加] を選択します。
- [始める前に] ページで、[役割および機能の削除ウィザード] を選択し、次のページで [次へ] を選択します。
- [サーバー プール] の下の[宛先サーバーの選択] ページで、機能を削除するサーバーが選択されていることを確認してから、[次へ] を選択します。
- [サーバー ロールの選択] ページで、[次へ] を選択します。
- [機能の削除] ページ で、 [SMB 1.0/CIFS ファイル共有サポート] のチェック ボックスをオフにし、[次へ] を選択します。
- [削除の選択を確認する] ページで、機能が一覧表示されていることを確認してから、[削除] を選択 します。
方法2:PowerShellを使用した方法(CUI)
Powershellで以下のコマンドを実施し、SMBv1機能を有効にします。
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
状況の確認をするには、
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
通常は、上記機能を有効にするとSMBv1も自動で有効になるのですが、
機能を有効にしても、状態が有効ではない場合は以下のコマンドを実施します。
Set-SmbServerConfiguration -EnableSMB1Protocol $true
状況の確認をするには、
Get-SmbServerConfiguration