【図解】SMBとは?Windowsのファイル共有のしくみとバージョンの違いを初心者向けに解説

エクスプローラーで \\fs01\営業資料 のような共有フォルダを開くとき、PCとファイルサーバの間では「SMB」というプロトコルでやり取りしています。ファイル共有のほかにも、グループポリシーの配布やリモート管理など、Windowsのネットワークの多くの場面でSMBが使われています。この記事では、SMBが何をするプロトコルなのか、どのポートを使うのか、バージョンごとに何が違うのかを見ていきます。

この記事でわかること
  1. SMBが何をするプロトコルで、どこで使われているのか
  2. SMBが使うポートと、SMB1・SMB2・SMB3のバージョンの違い
  3. SMB1を使ってはいけない理由と、最近のWindowsで変わったこと

SMBとは:ネットワーク越しにファイルを扱うためのプロトコル

SMB(Server Message Block)は、ネットワークの向こうにあるファイルやプリンターを、手元にあるかのように使うためのプロトコルです。PCは「このファイルを開きたい」「この部分を読みたい」「ここに書き込みたい」といった要求をSMBでサーバに送り、サーバはその結果を返します。

PCSMBクライアント(Workstation サービス)FS01SMBサーバ(Server サービス)要求:開く・読む・書く・一覧を見る応答:ファイルの中身、結果TCP 445\\fs01.corp.example.com\営業資料UNCパス:\\サーバ名\共有名\フォルダ\ファイルファイル共有共有フォルダプリンター共有共有プリンター名前付きパイプリモート管理(RPC)
図1 SMBのしくみ。PCの要求に、ファイルサーバが応える

図書館にたとえると、SMBはカウンターでのやり取りの決まりです。利用者(PC)が「この本のこのページを見せてください」と頼むと、司書(サーバ)が棚から出してくれます。本そのものは図書館にあり、利用者は決まった手順で頼むだけです。

Windowsでは、PC側の処理をWorkstationサービス(LanmanWorkstation)、サーバ側の処理をServerサービス(LanmanServer)が受け持っています。接続先は \\サーバ名\共有名 の形(UNCパス)で指定します。

SMBが使われている場面

SMBは、ふだん「ファイル共有」と意識している場面以外でも使われています。

場面SMBの使われ方
共有フォルダ部署のファイルサーバ、ホームフォルダ、ドライブの割り当て(ネットワークドライブ)
プリンターの共有プリントサーバに置いた共有プリンターへの印刷
グループポリシーとログオンスクリプトPCはDCの SYSVOL と NETLOGON という共有から、グループポリシーやスクリプトを読み込む
管理共有C$ や ADMIN$ など、管理者だけが使える隠し共有。リモートでのファイル配布や管理に使う
リモート管理(名前付きパイプ)IPC$ を通して、リモートのコンピュータの管理機能(RPC)を呼び出す
サーバのデータ置き場Hyper-Vの仮想マシンやSQL Serverのデータベースファイルを、SMBのファイル共有に置く
Windows以外NAS、LinuxのSamba、Azure Filesなども、SMBでファイル共有を提供している

このため、SMBが止まるとファイル共有だけでなく、グループポリシーが適用されない、リモート管理ができないといった影響も出ます。

SMBが使うポート

今のSMBは、ふつうTCPの445番ポートを使います。ほかにも、インターネット越しに使うための通り道や、サーバ同士の高速な通信のための通り道があります。どこで使うものかを、社内とインターネットに分けて見てみます。

インターネット社内ファイアウォール社外のPCFS02① SMB over QUIC:UDP 443TLS 1.3 で暗号化。サーバ側で有効にしたときだけ外部からの攻撃者など② TCP 445 は外から通さない(インターネットに公開しない)社内のPCFS01③ SMB:TCP 445ふだんのファイル共有サーバ同士(データセンター)④ SMB Direct(RDMA)iWARP:TCP 5445 / RoCE v2:UDP 4791 / InfiniBand⑤ NetBIOS(TCP 139、UDP 137・138):SMB1 の時代の古いしくみ。今は使わない
図2 SMBが使う通り道。TCP 445は社内だけで使い、外からは通さない
通り道使う場面
TCP 445社内のファイル共有など、ほとんどの場面
UDP 443(QUIC)SMB over QUIC。TLS 1.3で暗号化したトンネルの中でSMBを使う。インターネット越しにVPNなしでファイルサーバを使いたいときの方法で、サーバ側はWindows Server 2025(すべてのエディション)とWindows Server 2022 Datacenter: Azure Edition、クライアントはWindows 11で使える
RDMA(SMB Direct)サーバ同士をつなぐ社内(データセンター)の高速なネットワーク向け。Hyper-Vの仮想マシンの置き場や、Storage Spaces Directなどで使う。RDMAに対応したネットワークアダプターが必要で、方式によって通り道が違う(iWARPはTCP 5445、RoCE v2はUDP 4791、InfiniBandはイーサネットとは別の専用ネットワーク)。最初の接続はTCP 445で始まり、SMBマルチチャネルがRDMAに対応していると判断すると、RDMAの経路を追加してそちらに切り替える
TCP 139(NetBIOS)、UDP 137・138昔のSMB1の時代のしくみ。今は不要で、Windows Server 2025では共有を作ったときに自動で開くファイアウォールの規則にも含まれなくなった
TCP 445をインターネットに開けない

SMBは社内ネットワークで使う前提のプロトコルです。TCP 445をインターネットに公開すると、総当たりの攻撃や脆弱性を狙った攻撃の入口になります。インターネット越しにファイルサーバを使いたいときは、VPNを使うか、SMB over QUIC(UDP 443)を使います。SMB over QUICを使う場合も、TCP 445は外から開けないようにします。

SMBのバージョン

SMBには、大きく分けてSMB1と、SMB2の系統(2.x、3.x)があります。SMB2は2007年ごろに登場し、SMB1を置き換えました。3.xはSMB2の延長で、同じしくみに機能を足していったものです。

SMB1CIFS とも呼ばれた非推奨既定で入っていない2.0.2VistaWS2008やり取りの回数を減らした2.1Windows 7WS2008 R2リース、大きなMTU3.0Windows 8WS2012暗号化マルチチャネル3.0.2Windows 8.1WS2012 R2細かな改良3.1.1Windows 10 1607WS2016 以降事前認証の完全性チェックSMB2 の系統(2.x と 3.x は同じしくみの延長。今の Windows はすべて対応)
図3 SMBのバージョン
バージョンWindowsおもに加わったこと
SMB1Windows NT の時代から古い版。CIFSとも呼ばれた。非推奨で、今のWindowsには既定で入っていない
2.0.2Windows Vista、Windows Server 2008SMB1を作り直し、やり取りの回数を減らした
2.1Windows 7、Windows Server 2008 R2キャッシュのしくみ(リース)や、一度に送れるデータの拡大
3.0Windows 8、Windows Server 2012暗号化、複数の経路を同時に使うマルチチャネル、障害時の透過的な切り替え、SMB Direct
3.0.2Windows 8.1、Windows Server 2012 R2性能や可用性の細かな改良
3.1.1Windows 10 バージョン1607、Windows Server 2016 以降接続を始めるときのやり取りの改ざん検知(事前認証の完全性)、暗号化方式の選択。のちのWindowsで圧縮やSMB over QUICなども追加

Windows 10 とWindows 11、Windows Server 2016以降はどれも3.1.1を使います。ただし、同じ3.1.1でも、新しいWindowsほど使える機能が増えています(たとえばAES-256の暗号化はWindows Server 2022とWindows 11から)。

バージョンはどう決まるのか

SMBで使うバージョンは、接続のいちばん最初の「Negotiate」というやり取りで決まります。PCが使えるバージョンの一覧を送り、サーバがその中から、両方が使えるいちばん新しいものを選びます。

PCWindows 11FS01Windows Server 2025使えるバージョン:2.0.2 / 2.1 / 3.0 / 3.0.2 / 3.1.1Negotiate の要求両方が使える中でいちばん新しいものを選ぶでは 3.1.1 でNegotiate の応答このあと認証(Session Setup)、共有への接続(Tree Connect)へ進む
図4 バージョンの決まり方

古いNASのようにSMB2までしか使えない相手とは、自動的にSMB2で話します。そのため、ふだん利用者がバージョンを意識することはありません。Windows 11 バージョン24H2とWindows Server 2025では、使ってよいバージョンの下限と上限を管理者が決めることもできます(たとえば3.1.1だけにする)。

SMB1を使ってはいけない理由

SMB1は、30年以上前に作られたプロトコルです。暗号化がなく、接続を始めるときのやり取りを改ざんから守るしくみもありません。Microsoftは2014年にSMB1を非推奨にしました。

2017年には、SMB1の脆弱性(MS17-010)を悪用したランサムウェア「WannaCry」が世界中で被害を出しました。こうした経緯もあり、Windows 10 バージョン1709とWindows Server バージョン1709以降、SMB1は既定でインストールされなくなっています。Windows 11とWindows Server 2019以降は、新規インストールではSMB1のクライアントもサーバも入っていません。

起きること理由と対処
古いNASや複合機につながらないSMB1にしか対応していない機器で、「SMB1 プロトコルが必要」といった内容のエラーになる。機器のファームウェアを更新してSMB2以降を使えるようにするか、機器を入れ替える
「ネットワーク」に一覧が出ないエクスプローラーの「ネットワーク」にコンピュータの一覧を出す昔のしくみ(Computer Browserサービス)がSMB1に依存しているため。サーバ名を直接指定して接続する

SMB1を入れ直せば古い機器とつながりますが、そのPCが攻撃を受けやすくなります。入れ直すのは、どうしても機器を替えられない場合の一時的な手段に限るべきです。

最近のWindowsで変わったこと

SMBは、Windowsのバージョンが上がるたびに守りが強化されています。古いNASなどとつながらなくなる原因になりやすいので、変化を知っておくと切り分けに役立ちます。

変更対象内容
SMB1を既定でインストールしないWindows 10 バージョン1709、Windows Server 2019 以降前の節のとおり
ゲストアクセスの無効化Windows 10 Enterprise・Education(1709以降)、Windows Server 2019 以降、Windows 11 Pro(24H2)パスワードなしで入れる「ゲスト」での接続を、SMB2・SMB3のクライアントが既定で拒否する
SMB署名を既定で必須にWindows 11 バージョン24H2、Windows Server 2025以前はDCの SYSVOL・NETLOGON だけだった署名の必須を、すべての接続に広げた
NTLMの遮断(設定で有効化)Windows 11 バージョン24H2、Windows Server 2025SMBのクライアントが、外へのNTLM認証を使わないように設定できる
認証の失敗回数の制限Windows 11 バージョン24H2、Windows Server 2025NTLMなどの認証に失敗するたびに待ち時間を入れ、総当たりの攻撃を遅らせる

確認に使うコマンド

PC(PowerShell):今つながっているSMBの接続と、使っているバージョン(Dialect)を表示する

Get-SmbConnection

PC(PowerShell):ファイルサーバのTCP 445に届くかを確かめる

Test-NetConnection -ComputerName fs01.corp.example.com -Port 445

PC(コマンドプロンプト):共有フォルダをドライブに割り当てる

net use Z: \\fs01.corp.example.com\営業資料

ファイルサーバ(PowerShell・管理者):このサーバの共有の一覧を表示する

Get-SmbShare

ファイルサーバ(PowerShell・管理者):このサーバにつながっている利用者の一覧を表示する

Get-SmbSession

ファイルサーバ(PowerShell・管理者):SMB1とSMB2のサーバ機能が有効かを表示する

Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMB2Protocol

PC(PowerShell・管理者):SMB1の機能がインストールされているかを確かめる

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

EnableSMB2Protocol はSMB2とSMB3の両方を表します。2.xと3.xは同じしくみなので、SMB2を無効にするとSMB3も使えなくなります。

まとめ

項目ポイント
SMBとはネットワーク越しにファイルやプリンターを使うためのプロトコル
使われる場面共有フォルダのほか、グループポリシー(SYSVOL)、管理共有、リモート管理など
ポートふつうはTCP 445。インターネットに開けない。インターネット越しにはSMB over QUIC(UDP 443)
バージョンSMB1と、SMB2の系統(2.0.2〜3.1.1)。今のWindowsは3.1.1
バージョンの決まり方最初のNegotiateで、両方が使えるいちばん新しいものを選ぶ
SMB1非推奨で、既定では入っていない。古い機器は更新や入れ替えで対応する

共有フォルダにつながらないときは、「445番に届くか」「どのバージョンで話そうとしているか」「ゲストや署名など、最近の守りに引っかかっていないか」を順に確かめると、原因を絞り込みやすくなります。

コメント