検索
連載

Windows 10におけるレガシーSMBプロトコルに関する重要な変更とSMB v3新機能まとめ企業ユーザーに贈るWindows 10への乗り換え案内(93)

Windows 10およびWindows Server 2016以降、レガシーなSMB(SMB v1やSMB v2)の扱いについて、既定の動作に幾つか重要な変更が行われています。Windows 10やWindows Server 2016以降への移行時、または機能更新プログラムによる新バージョンへのアップグレードのタイミングで、以前のWindowsネットワークになかった挙動に遭遇した場合は、変更点を確認してみてください。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「企業ユーザーに贈るWindows 10への乗り換え案内」のインデックス

企業ユーザーに贈るWindows 10への乗り換え案内

多くのWindowsネットワークはSMB v3に移行済み(のはず)

 Windowsネットワークにおける標準のファイル共有プロトコルは「Server Message Block(SMB)」です。パフォーマンス改善やセキュリティ強化のために、「Windows Vista」以降「Windows 10」まで、SMBの新しいバージョンが次々に登場しました(表1)。

SMB Windows
SMB 1.0/CIFS Windows XP(EoS)およびWindows Server 2003 R2(EoS)以前
SMB 2.0 Windows Vista(EoS)、Windows Server 2008(EoS)
SMB 2.1 Windows 7(EoS)、Windows Server 2008 R2(EoS)
SMB 3.0 Windows 8(EoS)、Windows Server 2012
SMB 3.0.2 Windows 8.1、Windows Server 2012 R2
SMB 3.1.1 Windows 10、Windows Server 2016以降
表1 SMBのバージョンとWindowsの対応

 Windows 10は最新のSMB 3.1.1をサポートしていますが、以前のSMBも全てサポートしており、SMB共有への接続に対して下位互換性を提供しています。SMBサーバとSMBクライアント間は、SMBバージョンをネゴシエートし、両者がサポートする最も上位のSMBバージョンを選択して通信します。

 Windows 10のSMB 3.1.1、「Windows 8」で登場したSMB 3.0、「Windows 8.1」のSMB 3.02を全て含めて、「SMBバージョン3(SMB v3)」と呼ぶこともあります。表1に示したように、現在サポートされているWindowsは全てSMB v3をサポートしています。プロトコルの仕様的には、SMB 2.0以降、SMB v3までを含めて「SMB2(MS-SMB2)」と呼ぶこともあり、レガシーなSMB 1.0/CIFS(SMB v1)の「SMB(MS-SMB)」と区別されます。

 サポートが終了(End of Support、EoS)したWindowsを継続して利用している(非推奨)、あるいは「拡張セキュリティ更新プログラム(Extended Security Update、ESU)」を利用して「Windows 7」や「Windows Server 2008/2008 R2」を延命している場合でない限り、SMB 2.1以前のバージョンを実行するWindowsデバイスはもう存在しないはずです。SMB v3に対応していないネットワークデバイス(FAXコピー複合機など)や、Mac、Linuxの古いバージョンが存在する場合は、SMB 2.1以前が使用されているかもしれません。

 しかしながら、MicrosoftはSMB 2.1以前のレガシーなSMBについて、Windows 10やWindows Serverの新しいバージョンでは既定の動作に幾つか重要な変更が行われています。それが影響して、Windows 10の機能更新プログラムによるバージョンアップや、クライアントPCやサーバのリプレースを機に、それまで問題のなかったSMBの通信にトラブルが発生する可能性があります。

SMB 1.0/CIFSは既定でインストールされなくなった

 以下のMicrosoftの公式ドキュメントで説明されているように、現在サポートされているWindows 10のバージョン、「半期チャネル(SAC)」のWindows Server、「Windows Server 2019」は、新規インストールではSMB 1.0/CIFSのサーバおよびクライアント機能は既定でインストールされなくなりました。

 SMB 1.0/CIFSのサーバ/クライアント機能が有効になっているWindows 10を、機能更新プログラムなどでインプレースアップグレードした場合、HomeおよびProエディションはSMB 1.0/CIFSのサーバ/クライアント機能は残りますが、このプロトコルが15日間使用されなかった場合には自動で削除されます。それ以外のエディション(Enterpriseなど)は、自動で削除されることはありません。

 SMB 1.0/CIFSのサーバ/クライアント機能が削除された場合は、SMB 1.0/CIFSに依存する「Computer Browser」サービスはアンインストールされます。そのため、レガシーなNBT(NetBIOS over TCP/IP)によるWindowsネットワークのブラウジングは機能しなくなります。

 この仕様はWindows 10 バージョン1709から始まっており、Windows 10のバージョンやエディションによって挙動が異なります。詳しくは、Microsoftの公式ドキュメントで説明されています。機械翻訳の日本語が分かりにくい場合は、オリジナルの英語ドキュメントを参照することをお勧めします。

 SMB 1.0/CIFSのサーバ/クライアント機能の15日後の自動削除は、1回のみです。Windows 10の場合、コントロールパネルの「Windowsの機能の有効化または無効化」でSMB 1.0/CIFSのサーバ/クライアント機能を個別に有効化でき、その後は削除されません(次の機能更新プログラムで再び自動削除される可能性はあります)。

 「SMB 1.0/CIFS自動削除」機能はWindows 10 バージョン1809から追加され、Enterpriseなど自動削除が行われないエディションに対して、管理者が自動削除機能を有効化するために利用できます(画面1)。

画面1
画面1 Windows 10の場合はSMB 1.0/CIFSの機能が既定でインストールされず、インプレースアップグレードの場合でも自動削除されることがある。SMB 1.0/CIFSに対応する必要がある場合は、「Windowsの機能の有効化または無効化」を使用して有効化する(非推奨)

 Windows Serverは自動削除の対象外ですが、Windows Server 2019(デスクトップエクスペリエンス)は「サーバーマネージャー」の「役割と機能の追加(または削除)ウィザード」やPowerShellコマンドレット(Enable/Disable-WindowsOptionalFeature)を使用して、SMB 1.0/CIFSのサーバ/クライアント機能を個別に有効化/無効化できます(画面2)。

画面2
画面2 Windows Server 2019(デスクトップエクスペリエンス)でSMB 1.0/CIFSをサポート(非推奨)するには、「役割と機能の追加ウィザード」などで機能を有効化する必要がある

 いずれの場合も、SMB 1.0/CIFSはセキュリティ上の問題があるため、可能な限り“有効化しない”ことを推奨します。

安全でないゲストアクセス(匿名アクセス)の無効化について

 Windows 10 Enterprise/Educationエディションのバージョン1709以降と、「Windows Server, version 1709(SAC)」以降、Windows Server 2019は、SMB2(MS-SMB2のこと、SMB v2とSMB v3の両方を含む)による共有リソースへの匿名(非認証)アクセスが既定で無効化されました。これらのOSには、以下のレジストリ値が既定で構成されており、「安全でないゲストログオン(Insecure Guest Logon)」が無効化されています。

  • キー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  • 値:AllowInsecureGuestAuth(REG_DWORD)
  • 値のデータ:0

 「安全でないゲストログオン」の無効化により、パスワードなしのゲスト(Guest)アカウントによる共有リソースへのアクセスと、無効な資格情報が提供された際のゲストアカウントへの自動フォールバックが許可されなくなります。この既定の挙動の変更は、SMB2(SMB v2およびSMBv3)を使用した接続に適用されます。SMB 1.0/CIFSを使用した場合の挙動に変更はありません(引き続きゲストアクセスとゲストフォールバックを使用します)。

 Windows 10 Home/Proエディションには、バージョン1709以降であっても、このレジストリ値は存在せず、従来と同じ挙動、つまりゲストアクセスとゲストフォールバックが使用されます(画面3)。

画面3
画面3 バージョン1709以降のWindows 10 Enterprise/EducationおよびWindows Server, version 1709以降では、「安全でないゲストアクセス」が既定で無効化されている。Windows 10 Home/Proエディションには影響なし

 この仕様変更は、以下のMicrosoftの公式ドキュメントで説明されています。SMB 2.0やSMB 2.1に適用されるように読めるかもしれませんが、プロトコル仕様としてのSMB2(MS-SMB2)を対象としたものであり、SMB v3を含むことに留意してください。

 また、Windows Server 2016にも適用されるように読めますが、正しくは「Windows Server, version 1709」以降です。Windows Server 2016にはレジストリ値「AllowInsecureGuestAuth」は既定で構成されていないため、従来の挙動のままです。

 なお、この仕様変更によってアクセスが拒否された場合は、SMBクライアント側のイベントログ「Microsoft-Windows-SmbClient/Security」に「安全でないゲストログオンを拒否しました」のエラーが記録されます(画面4)。

画面4
画面4 「安全でないゲストアクセス」がSMBクライアント側で拒否されたことを示すイベントログ

 SMB共有へのゲストアクセスは、企業環境では一般的ではありません。最近のバージョンのWindows Serverでは、匿名アクセスが可能な共有を作成することは簡単ではありません。ゲストアカウントの有効化(既定は無効)やセキュリティポリシーの調整など、追加の手順が必要です。影響があるとすれば、NAS(ネットワーク接続型ストレージ)、特に古いNASでは匿名アクセスが使用される場合があります。

 この仕様変更の影響を受けて接続不能になるような場合は、「ローカルグループポリシーエディター」(Gpedit.msc)または「グループポリシー」で、「コンピューターの構成\管理用テンプレート\ネットワーク\Lanman ワークステーション」にある「安全でないゲストログオンを有効にする」を「有効」に設定することで、以前の動作(HomeやProエディションと同じ動作)に戻すことができます。あるいは、上記レジストリ値を削除するか、値のデータを「1」に設定することで、従来の挙動に戻すこともできます。

 セキュリティ強化のためには、バージョンやエディション、既定の設定に関係なく、Windows 10およびWindows Server 2016以降では「安全でないゲストアクセス」を無効化することが推奨されます。

SMB v3にはSMB 3.1.1になってからも新機能の追加あり

 SMB v3は「SMB暗号化」「SMBマルチチャンネル」「SMBスケールアウト」「SMBダイレクト」、SMBのためのPowerShellコマンドレットなど、セキュリティやパフォーマンス、可用性、管理性に関して、SMB 2.1以前よりも大幅に強化されています。一口にSMB v3といっても、より新しいバージョンでは機能強化や改善が行われています。

 特に、Windows 10以降のSMB 3.1.1では、Windows 10のバージョンアップの際、SMBのバージョンはそのままで新機能が追加されることもあります。Windows 10 バージョン1809およびWindows Server 2019までにSMB v3に行われた新機能の追加や更新については、Microsoftの公式ドキュメントで説明されています。

 上記の公式ドキュメントにはまだ反映されていませんが、2020年3月に「SMB圧縮(SMB Compression)」と呼ばれる機能がSMB 3.1.1に追加されることがアナウンスされています。

 SMB圧縮は、ファイル転送時にデータを圧縮することで、大きなサイズのファイルの転送を高速化するものです。これまでは使用する方法が提供されていませんでした。

 SMB圧縮はWindows 10 バージョン1903でSMB 3.1.1に追加されたようです(2020年3月、SMB圧縮機能に「ADV200005」の脆弱《ぜいじゃく》性があることが公表されましたが、その後修正されました)。

 しかし、Windows 10 バージョン1909までは使用する方法が提供されていませんでした。Windows 10 バージョン2004およびWindows Server, version 2004からは、「XCOPY」と「ROBOCOPY」コマンドにSMB圧縮のための「/COMPRESS」オプションが追加され、利用可能になっています(画面5)。

画面5
画面5 XCOPYおよびROBOCOPYコマンドに追加されたSMB圧縮のための「/COMPRESS」オプション

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2020-2021)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る