WindowsのSMB v3はSMB v2より新しいが、SMB v3はSMB2であるその知識、ホントに正しい? Windowsにまつわる都市伝説(180)

Windowsネットワークにおけるファイルおよびプリンタ共有プロトコルの標準といえば、「Server Message Block(SMB)」です。DOS/Windows向けの初期の「LAN Manager」から続く歴史の長いこのプロトコルは、下位互換性を提供しながらバージョンアップしてきました。現在、下位互換性を維持するためには、追加の手順が必要な場合があることをご存じでしょうか。

» 2021年03月03日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

SMBの最新バージョンはSMB 3.1.1だが、同じSMB 3.1.1でも機能差あり

 Windowsの登場以前から存在する「Server Message Block(SMB)」は、「Windows XP」および「Windows Server 2003 R2」以前の「SMBバージョン1(SMB 1.0/CIFS)」、「Windows Vista」および「Windows Server 2008」で登場した初めての新しいメジャーバージョン「SMBバージョン2(SMB v2、SMB 2.0)」、「Windows 7」および「Windows Server 2008 R2」の「SMB 2.1」、「Windows 8」および「Windows Server 2012」の「SMBバージョン3(SMB v3、SMB 3.0)」、「Windows 8.1」および「Windows Server 2012 R2」の「SMB 3.0.2」、そして「Windows 10」および「Windows Server 2016」以降の「SMB 3.1.1」とバージョンアップを繰り返してきました(表1)。

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

 バージョンアップといっても、新機能を含む新しい「ダイアレクト(Dialect、方言)」の追加であり、新しいバージョンのWindowsは、以前の全てのSMBバージョンをサポートしています。SMBのクライアント(LanManワークステーション)とサーバ(LanManサーバ)では、通信を開始する際にダイアレクトをネゴシエートして、両者がサポートする最上位のダイアレクトを選択します。例えば、Windows Server 2019のSMBサーバは、Windows 10のSMBクライアントとの通信にはSMB 3.1.1を選択し、Windows 8.1のSMBクライアントとの通信にはSMB 3.0.2を選択します。

 SMB v3では、セキュリティと可用性、パフォーマンスに関するさまざまな新機能が利用可能です。例えば、サーバレスでインターネット経由でのSMBファイル共有を提供する「Azureファイル共有(Azure Files)」サービスは、SMB v3に組み込まれた「SMB暗号化」機能によって、パブリックなネットワーク上でプライベートなデータ送信を可能にするセキュリティを保証しています。

 また、Windows 10とWindows Server 2016以降はSMB 3.1.1で変わりませんが、Windowsの新しいバージョンで新機能の追加や変更が行われています。以下の公式ドキュメントでは、Windows 10 バージョン1809およびWindows Server 2019までの新機能や変更点を確認することができます。

 その後もSMBへの新機能の追加は続いています。例えば、Windows 10 バージョン1903では「SMB圧縮(SMB Compression)」という機能が追加されました、ただし、この機能が実際に利用可能になるのは、Windows 10 バージョン2004以降の「XCOPY」コマンドおよび「ROBOCOPY」コマンドからで、これらのコマンドにはSMB圧縮に対応した「/COMPRESSION」オプションが追加されています。

Windows 10 バージョン1709における重要な既定の変更

 Windowsの新しいバージョンは下位互換性維持のために、以前の全てのSMBバージョンに対応していると書きましたが、現在、下位互換性が既定では提供されないものもあります。そのため、WindowsやWindows Serverをバージョンアップしたら、以前は問題なかったのに突然、共有リソースに接続できなくなったといったトラブルに遭遇することになります。

 下位互換性に影響する大きな変更は、Windows 10 バージョン1709で実施された、2つの既定の挙動変更です。

 1つ目のドキュメントでは、Windows 10 バージョン1709以降、新規インストールではSMB 1.0/CIFSが既定でインストールされなくなったことと、インプレースアップグレードではSMB 1.0/CIFSは引き継がれますが、15日間このプロトコルが使用されないと自動削除されることが説明されています(画面1)。エディションがHomeやProであるか否か、Windows 10 バージョン1809以降であるか否かによっても挙動は異なります。例えば、Enterprise、Education、Pro for Workstationsでは、SMB 1.0/CIFSプロトコルの未使用による15日後の自動削除は行われません。

画面1 画面1 Windows 10 バージョン1709以降、新規インストールではSMB 1.0/CIFSは無効。インプレースアップグレードの場合でも15日間プロトコルが使用されないと自動削除される(ProおよびHomeエディションのみ)

 2つ目のドキュメントでは、Windows 10 バージョン1709以降のEnterprise/Educationエディションと、Windows Server, version 1709以降では、SMBクライアントにおいて「安全でないゲストアクセス(Insecure Guest Access)」と呼ばれる認証なしの匿名アクセスが既定では無効化されたこことが説明されています(画面2画面3)。

画面2 画面2 バージョン1709以降のWindows 10 Enterprise/EducationとWindows Serverでは、SMBクライアントの安全でないゲストアクセスが既定で無効化された
画面3 画面3 Windows 10のHomeやProエディションの場合、バージョン1709以降も安全でないゲストアクセス(存在しない資格情報でも接続可能な匿名アクセス)は引き続き既定で利用可能

正しく読み解くのが難しい公式ドキュメント

 前出の2つの公式ドキュメントは、新しいバージョンやエディションで新たな変更が加わったことなどで、非常に分かりにくいものになっています。

 例えば、Windows Server 2016に関する以下の記述は、2つの変更がWindows Server 2016でも行われたように読み取れますが、実際には以前の動作のままで変更されていません。2つの変更は、Windows Server, version 1709で行われたものであり、Windows Server 2016(バージョン1607)はそれより前のバージョンだからです(画面4)。

Windows Server 2016には、クリーンインストール後に既定でSMB v1クライアントまたはサーバーが含まれなくなりました。

Windows Server 2016 Datacenter EditionおよびStandard Editionでは、リモートサーバーがゲスト資格情報を要求した場合でも、既定でゲスト資格情報を使用してリモート共有に接続できなくなりました。”

画面4 画面4 Windows Server, version 1709より前のバージョンであるWindows Server 2016(画面上)はSMB 1.0/CIFSとLanManワークステーションの既定は従来通り。より新しいバージョンのWindows Server 2019(画面下)は既定が変更されている

 また2つ目のドキュメントのタイトルに含まれる「SMB2のゲストアクセス」についても説明不足です。SMBのプロトコル仕様は、大きくSMB 1.0/CIFS(MS-SMB)とSMB2(MS-SMB2)の2つに分類されます。後者のSMB2(MS-SMB2)は、最新のSMB 3.1.1を含むSMB 2.0以降の全てを包含します。つまり、SMB 3.1.1でも安全でないゲストアクセスは既定で無効です。一方、SMB1.0/CIFSにおける安全でないゲストアクセスには変更はありません。

サポートライフサイクル的にはSMB v3化は完了済

 現在、サポート期間中のWindowsは、全てSMB 3.0.2以降を実行しています。それ以前のバージョンのWindowsは、「Windows Embedded POSReady 7」など一部の例外と「拡張セキュリティ更新プログラム(ESU)」で延命しているデバイスやサーバを除いて、サポートライフサイクルは終了しました。

 そのため、サポート期間中のWindowsを使用している限り、SMB 1.0/CIFSの削除や、安全でないゲストアクセス無効化の影響はないはずです。

 しかしながら、現実にはレガシーなバージョンのWindowsがまだ動いているところもあるでしょうし、LinuxやMac、その他のネットワークデバイスが混在する環境では影響が出ることがあるかもしれません。例えば、匿名アクセスが可能なNAS(ネットワーク接続型ストレージ)を利用している場合は、現在サポートされているWindows 10 EnterpriseやWindows Server 2019からは既定のままでは接続できません。

 どちらの変更も、元の挙動に戻す方法について、ドキュメントで説明されているので、影響の疑いがある場合は関係するかどうかドキュメントを当たってみてください。ただし、Windows Server 2016に関する説明や、SMB2という表現には惑わされないように注意しましょう。

筆者紹介

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

岩手県花巻市在住。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.

スポンサーからのお知らせPR

Server & Storage 髫ェ蛟�スコ荵斟帷ケ晢スウ郢ァ�ュ郢晢スウ郢ァ�ー

隴幢スャ隴鯉ス・隴帷」ッ菫」

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。