SMBプロトコル

この記事では、SMBプロトコルの各バージョンや、セキュリティ、パフォーマンスなどの中核的な機能を掘り下げ、現代のサイバー攻撃から身を守る、SMBの最新実装について探究していきます。

SMBプロトコルとは?

SMB(Server Message Block)は、ネットワーク上で大量のデータを転送する際の基盤となる通信プロトコルの一つです。データセンターや仮想サーバーが主流となった現代において、SMBはテラバイト単位のユーザーデータを移動・コピー・変更するという重責を担いながら、それらのデータをハッカーやランサム攻撃から守るために、安全かつ暗号化された形でやり取りしています。

SMBプロトコル

SMBプロトコルは初期のバージョンと比べて急速に進化を遂げており、Microsoft の最新のSMB 3.1.1は、高速性、柔軟性、そして高度なセキュリティを重視して設計されています。

仮想化されたデータセンターにおいては、SMB3.x系のダイアレクト(バージョン)が事実上の標準となっており、従来は利用できなかった多彩な機能を備えることで、高性能なデータ転送を実現しています。

SMBプロトコルは、どうやってネットワークファイル共有を可能にしているのか?

ネットワークドライブを自分のパソコンに割り当てて、リモートのサーバーにあるファイルやフォルダーに、あたかも自分のパソコン内にあるかのようにアクセスできる、 そんな便利な機能を多くの人が使ったことがあると思います。この仕組みを裏で支えているのが、SMBというプロトコルです。SMBは、Web閲覧で使われるHTTPと同じように、「どうやってデータにアクセスするか」を決めるルールの集まりです。

ネットワーク上で2台の機器がデータをやり取りするときには、「リダイレクタ」と呼ばれる仕組みが活躍します。ファイルのやり取りに関する要求はすべてこのリダイレクタを通じて処理され、小さな「データパケット」として送信されていきます。

SMBネットワークの基本情報:SMBはどのポートを使っている?

SMBのデータパケットには、主に3つの種類があります。セッションを管理するパケット、ファイルにアクセスするためのパケット、そして一般的なメッセージをやり取りするパケットです。SMBはネットワークの「アプリケーション層」(レイヤー7)で動作し、TCP/IPのポート番号445を使っています。(ちなみに、Windows 2000以前はポート番号139が使われていました。)

SMBサーバー、SMBクライアント、そしてSMB共有とは?

SMB通信には、基本的に3つの要素が必要です。

  • SMBサーバー
    SMBサーバーとは、共有フォルダー(SMB共有)を管理・提供するコンピューターのことです。

  • SMBクライアント
    SMBクライアントとは、その共有フォルダーにアクセスするコンピューターのことです。

  • SMB共有(ファイル共有)
    SMB共有とは、SMBサーバー上で複数のユーザーがアクセスできるように設定されたフォルダーやファイルのことです。多くの場合、フォルダー単位で共有されます。

データストレージにおけるSMBの役割とは?

SMBは、アプリケーションとファイルストレージの間をつなぐ「橋渡し役」として、特にネットワーク共有環境で重要な役割を果たしています。クライアント側のシステムは、遠隔地にあるサーバー上のファイルに、まるで自分のパソコン内のファイルのようにアクセスでき、読み書きやファイルのロック、フォルダーの閲覧など、一般的な操作が可能になります。

企業向けのストレージ環境では、SMBはファイル共有の中核を担っており、チームでの共同作業、バックアップ、構造化されたデータアクセスなどを、複数のデバイスやプラットフォーム間で実現しています。

また、以下のような機能によって、ネットワーク障害やフェイルオーバー(障害発生時のシステム自動切り替え)発生時にも、データの一貫性と信頼性を保ちます。

  • オポチュニスティックロック(oplocks):ファイルにアクセスしているユーザーが、他の人に邪魔されずに効率よく作業できるように、一時的にそのファイルを「自分専用」にできる仕組み
  • デュラブルハンドル:ネットワークが一時的に切断されても、ファイルとの接続情報を保ったまま復旧できる仕組み
  • 永続的接続:SMB接続を安定して長時間保つための仕組み

さらに、拡張性や、クラスタ構成のファイルサーバーへの対応、Active Directoryのような企業向け認証システムとの連携にも対応しており、SMBは現代のNAS(ネットワーク接続ストレージ)をはじめとするストレージソリューションに欠かせない存在となっています。

どのSMBバージョンを使うべきか?

適切なSMBバージョンを選ぶことは、互換性・パフォーマンス・セキュリティのバランスをとるうえで非常に重要です。
多くの最新アプリケーションにとって、SMB 3.1.1が最適な選択肢と言えるでしょう。エンドツーエンドの暗号化、強力な認証、QUICトランスポートのサポートなど、先進的な機能を備えています。

一方で、SMB 2.xなどの旧バージョンも、限られた環境ではまだ使われることがありますが、SMB 1.0(CIFS)に関しては、すでに非推奨であり、使用は避けるべきとされています。

自社のインフラ環境に応じて適切な判断ができるよう、以下にバージョンごとのポイントをまとめました。

SMB1

SMB1(またはSMBv1)は、SMBプロトコルの最初のバージョンで、1980年代にIBMによって開発されました。当時は、ネットワークを通じてローカルのDOSファイルシステムにアクセスできるようにするためのものでした。

SMB1は16ビットのパケットを使用し、データバッファも現代の基準から見れば非常に小さく、パフォーマンス面に大きな制限がありました。

SMB1はよくCIFS(Common Internet File System)と関連づけられます。これは、1996年にMicrosoftが導入した有名なSMBの方言(ダイアレクト)で、当時多くのネットワークで使われたためです。

💡プロ向けのアドバイス:
SMBv1には暗号化機能が一切なく、非常にセキュリティが弱いため、現在では使用すべきではありません。このプロトコルは、通信を盗み見られるMITM(中間者攻撃)に非常に脆弱であり、過去にはWannaCryやNotPetyaといったランサムウェアにも悪用されました。

さらに、SMBv1は効率が悪く、ネットワーク上で無駄な通信(“chatter”)を大量に発生させるという問題もあります。これは、最新のSMBバージョンと比べると大きな欠点です。

SMB2

SMB2(SMBv2 または SMB 2.0)は、2006年にWindows VistaとともにMicrosoftからリリースされました。この新しいSMB2プロトコルは、SMB1と比べてパフォーマンスとセキュリティが大きく向上しています。

たとえば、SMB1では16ビットだったパケットサイズが、SMB2では32ビット(ファイルハンドルに至っては128ビット)に拡張され、大幅に効率が良くなりました。また、プロトコルの「サブコマンド」の数も、SMB1では100以上あったのに対し、SMB2では20未満に削減され、ネットワーク上の無駄な通信(chattiness)が減りました。

さらに、キャッシュ機能やデュラブル(耐障害)接続などの機能も追加され、より高速で安定した通信が可能になりました。

その後、Windows Server 2008 R2とWindows 7で、MicrosoftはSMB 2.1を導入しました。
このバージョンでは、オポチュニスティックロック(oplock)の仕組みが改良され、さらにパフォーマンスが向上しています。

SMB3

SMB3(またはSMB v3)の元々の名称は「SMB 2.2」でした。最初のSMB3のリリースは現在「SMB 3.0」と呼ばれています。これを最初にサポートしたMicrosoftのOSは、Windows Server 2012とWindows 8です。SMB v3では、プロトコルのパフォーマンスとセキュリティがさらに強化されました。たとえば、SMBマルチチャネルやエンドツーエンド暗号化がSMB3で導入されています。

最新のSMBバージョンであるSMB 3.1.1は、Windows Server 2016とWindows 10と共にリリースされました。

SMB 3.1.1には、比較的新しいSMBクライアント(SMB2以降)との安全な接続の強制や、より強力な暗号化機能(Windows 11およびWindows Server 2022ではAES-256を採用)が含まれています。

SMBプロトコルのダイアレクトとは何か?

SMBプロトコルの「ダイアレクト」とは、クライアントとサーバーが接続を確立する際に交渉される、バージョンごとのSMBの実装仕様のことです。
各ダイアレクトは、たとえば SMB1、SMB2.0、SMB2.1、SMB3.0、SMB3.1.1 のように、それぞれのSMBバージョンに対応しており、通信時に使用される機能や動作、セキュリティレベルを定義しています。

たとえば、SMB 3.1.1 では「事前認証の完全性チェック」や「より強力な暗号化アルゴリズム」が必須となっていますが、それ以前のダイアレクトではこうしたセキュリティ機能が存在しない場合があります。

接続時のダイアレクト交渉により、クライアントとサーバーの両方がサポートしている最適なバージョンが自動的に選ばれ、互換性と機能性のバランスが保たれます。

Visuality Systems のSMBプロトコルライブラリは、クライアント・サーバーの両方に対応しており、幅広いダイアレクトをサポート。接続先と交渉して、最も安全かつ高機能なSMBバージョンで通信できるよう設計されています。

現代ビジネスにおけるSMBの重要性

今日のビジネスでは、さまざまなデバイスやプラットフォーム間でファイルやリソースをスムーズに共有することが求められます。SMB(Server Message Block)プロトコルは、ネットワークを介したコラボレーションや、ストレージの一元管理、アクセス制御を可能にし、生産性や情報管理の面で重要な役割を果たしています。

ただし、異なるOS間での真の互換性は、SMBという仕組みだけでは実現しません。その実現には、信頼性が高く一貫した実装が必要です。そのため、多くの企業では、WindowsやLinux、組み込み機器など幅広い環境で動作検証されたSMBライブラリ(Visuality Systems製など)を導入し、安定したパフォーマンスを確保しています。

適切に実装されたSMBは、セキュアで効率的なデータ交換を支える信頼性の高い基盤となり、現代企業のITインフラに欠かせない存在となっています。

SMBの主な機能

SMBの基本を押さえたところで、ここからは主要機能について、もう少し技術的に掘り下げていきましょう。

1. 認証

他の多くのプロトコルと同様に、SMBにおいても認証は非常に重要なセキュリティ要素です。SMBの認証には、次の2つの方式があります。

  1. ユーザーレベル認証
    クライアントは、ユーザー名とパスワードを入力する必要があります。たとえば、Windows 10のSMBクライアントが、Windows Server 2019のファイルサーバー上の共有フォルダーにアクセスする場合、認証が成功すれば、そのサーバー上で追加の「共有レベル」の制限がかかっていないすべての共有フォルダーにアクセスできます。

  2. 共有レベル認証
    特定の共有フォルダーごとに設定されたパスワードを入力する方式で、ユーザー名は必要ありません。

どちらの認証方式でも、パスワードは送信前に暗号化されるため、安全性が保たれています。

このセクションでは、SMBのセキュリティに関わる認証機能について、さらに詳しく見ていきます。

NTLM

ファイル共有にアクセスを許可する前に、クライアントやユーザーの本人確認(認証)を行うことは非常に重要です。
NT Lan Manager(NTLM)は、Windowsネットワーク内のホストに対して認証を提供する2つのセキュリティプロトコルのうちの1つです。
たとえば、SMB接続が行われる前に、クライアントは接続先サーバーが属するドメインによって認証されます。

NTLMはチャレンジ/レスポンス方式を用いて、ユーザーやデバイスを認証します。この方式では3ウェイ・ハンドシェイクとパスワードのハッシュ化を使ってユーザーの正当性を確認します。
ただし、この暗号方式は脆弱であり、「パス・ザ・ハッシュ(pass-the-hash)」攻撃に対して無防備です。

NTLMv2

NTLMの2番目のバージョン(NTLMv2)は、より強力な暗号化方式を採用しており、なりすまし(スプーフィング)攻撃を防ぐことができます。このプロトコルは、古いシステムとの互換性があるため、現在でも広く使用されています。

NTLMの両バージョン(NTLMおよびNTLMv2)とNTLMv2セッションプロトコルは、ひとつにまとめられた仕組みとして実装されています。

Kerberos

Kerberos(ケルベロス)は、MIT(マサチューセッツ工科大学)によって開発されたネットワーク認証プロトコルで、WindowsのActive Directoryと連携して動作します。Windows 2000で初めて導入されました。

WindowsのActive Directoryは、ネットワーク内のユーザー、コンピューター、サービスを管理するために使用されます。Active Directoryドメインサービスが稼働するサーバーは「ドメインコントローラー」となり、ネットワークユーザーの認証やアクセス許可の管理、セキュリティポリシーの適用などの役割を担います。

Kerberosは暗号技術を使って、クライアントとサーバーが互いに正しい相手であることを確認できる仕組みです。NTLMよりも安全性が高く、Kerberosの認証はSMBとは別に行われ、Kerberos鍵配布センター(KDC)から発行される「チケット」を使用して認証が行われます。クライアントとサーバーは、このチケットを用いて安全でないネットワーク上でも自身を認証します。

さらにKerberosでは、お互いの正体が確認された後、通信内容を共通鍵暗号方式で暗号化することも可能です。

事前認証整合性

SMB 2.0.2(Windows Vista)以降では、ユーザーやクライアントがサーバーに接続する際に、認証が確実に行われるようになりました。
さらに、SMB 3.0(Windows 8)からは、データパケットに署名を付ける新しいアルゴリズムが導入され、セキュリティが強化されています。

事前認証整合性(Pre-Authentication Integrity)の主な役割は、「中間者攻撃(Man-in-the-Middle)」を防ぐことです。
これは、攻撃者が通信の途中でデータパケットを盗み見たり、接続や認証の情報を改ざんしようとする攻撃です。

この機能では、暗号技術であるSHA-512が使用され、セッションの確立やその後の通信交渉に対するリクエストが正しいかどうかを確認します。

2. 安全なデータ転送

認証に加えて、データの完全性を保ち、通信中の暗号化を行うこともSMBのセキュリティにおいて重要な要素です。このセクションでは、安全なデータ転送を実現するSMBの機能について説明します。

SMB署名

SMBはデータパケットに対するデジタル署名をサポートしています。これにより、データパケットを受信したユーザーは、その送信元と真正性(オリジナルであること)を確認することができます。
デジタル署名は、「中間者攻撃(Man-in-the-Middle Attack)」や通信の改ざんを防ぐために導入されました。

SMB署名(SMB Signing)は、すべての対応するWindowsバージョンで有効にすることが可能で、ドメインコントローラーでは標準で有効になっています。そのため、ドメインコントローラーを通じて、すべてのユーザーが正当なグループポリシーを安全にダウンロードできるようになっています。

SMB 2.0では、新たにHMAC SHA-256というハッシュアルゴリズムが採用され、以前のバージョンと比べてセキュリティが向上しました。
さらにSMB 3.0では、AES-CMACアルゴリズムによってセキュリティが強化され、Windows 11ではAES-256-GCMが導入されています。
これらの新しいアルゴリズムは、セキュリティの向上だけでなく、特にWAN(広域ネットワーク)上でのパフォーマンス向上にも寄与しています。

SMB暗号化

古いSMBバージョンを廃止し、より安全なSMB 3.0を採用することは、ネットワークセキュリティにおける大きな前進です。IPSecのような他のセキュリティ手段もありますが、SMB 3.xプロトコルを実装するだけで、高いセキュリティを実現しつつコストを抑えることが可能です。設定も、チェックボックスをオンにするだけと非常に簡単です。

SMB暗号化は、ランサムウェアやその他のハッキング攻撃から通信中のデータを保護するために導入されました。SMB 3.xプロトコルでは、共有単位またはファイルサーバー単位で暗号化を設定することができます。

またSMB 3以降では、「中間者攻撃(Man-in-the-Middle)」を検出し、ネットワークを自動的に切断することが可能になりました。この機能は、ファイルサーバーマネージャーまたはPowerShellを使用して有効にできます。

このSMB暗号化機能は、安全でないネットワーク環境で作業するモバイルワーカーにとって非常に重要であり、企業の機密データを転送時に保護する上でも価値があります。この機能を利用するには、クライアントとサーバーの両方がSMB 3.xに対応している必要があります。

SMB 3.0では、暗号化にAES-CCMアルゴリズムが使用されており、データの完全性(改ざんがないか)検証にはAES-CMACアルゴリズムが使われています。従来のSMB 2で使用されていたHMAC-SHA256は、もはや使用されていません。これらの新しいアルゴリズムは、AES命令セットを備えた最新のCPU上で高速に動作します。

さらに、SMB 3.1.1では、Windows 11およびWindows Server 2022において、AES-256-GCMの導入により、データパケットの機密性が一層強化されました。これにより、最大2倍のパフォーマンス向上も実現しています。接続確立時に暗号方式のネゴシエーション(交渉)が行われることで、改ざんや盗聴への耐性も高まりました。

3. パフォーマンス

SMBのパフォーマンスは、SMB v1およびCIFSの時代と比べて大幅に向上しています。
SMBv1で見られた「おしゃべり=不要な通信の多さ)」が減少したことに加え、後のバージョンでは、スループット(データ転送速度)を向上させるさまざまな機能が追加されており、最新の高速ネットワーク環境を最大限に活用できるようになっています。
このセクションでは、SMBのパフォーマンスを高めるための機能について解説します。

並行処理

ユーザーが他のユーザーと共同作業をする場合、サーバー上のファイルに同時にアクセスしなければならないケースがありますが、SMBはこのようなケースで、ファイルのロック機能と同時アクセスをサポートしています。

ユーザーが共有可能なファイルにアクセスしようとすると、ロック機能が働きます。ロックを使うことで、ユーザーは共有ファイルに対して一部の操作をサーバーに通知せずにローカルで実行できます。また、クライアントが1つだけの場合や、読み取りだけが行われている場合には、必要に応じてサーバーに通知することもできます。

並行処理では、ユーザーが「読み取り専用」や「書き込み専用」といった特定のアクセス権を要求できます。SMBサーバーは、こうしたアクセス要求をすべて管理しています。

最大転送単位(MTU)

Microsoftは、10ギガビット・イーサネットなどの大規模なネットワーク環境でのパフォーマンス向上を目的に、新機能を導入しました。SMB 2.1では、「マルチクレジット操作」と呼ばれる仕組みにより、大容量データの転送が可能となり、ネットワークの速度が向上します。この技術は「MTU(Maximum Transmission Unit:最大転送単位)」として知られています。

MTUとは、ネットワーク上で一度に送信できるデータの最大サイズを指します。MTUのサイズを拡大することで、最大1MBまでのデータをまとめて送信できるようになり、ファイル転送の速度が向上すると同時に、送信されるパケット数も削減されます。

この機能は、Windows Server 2008 R2およびWindows 7から導入されました。たとえば、SQL Serverのデータベースにアクセスする場合や、Hyper-Vの仮想ハードディスクをコピーする際、さらにはデータのバックアップや復元を行う場面などで、MTUの効果によってデータ処理の効率が大きく向上します。

マルチチャネル技術

SMB 3.xでは、「マルチチャネル機能」によって、従来よりもはるかに高速なファイル転送が可能になりました。複数のNIC(ネットワークインターフェースカード)を組み合わせてネットワークに接続するだけで、この機能が利用できます。

マルチチャネルは、複数のNICの帯域幅をまとめて使用することで、高速なデータ転送を実現します。また、データの送受信を複数のCPUコアに分散させることができ、処理効率も大きく向上します。たとえば、複数の1ギガビットNICを持つクライアントは、10ギガビットNICを備えたサーバーと高速に接続することができます(またはその逆も可能です)。クライアントとサーバーの両方に高性能なNICが搭載されていれば、CPUコアの性能を最大限に活用できます。

SMBマルチチャネルの主な利点
  • Windowsクラスタリングを使用しない環境でもネットワーク性能が向上

  • 複数のデータパスが利用可能

  • 高いスループットとネットワークの障害耐性

  • 自動設定(接続は自動的に検出・追加される)

このマルチチャネル機能はSMB 3.x以降で利用可能で、従来のプロトコル(SMB 1.x や 2.x)では、1つのSMB接続しか使用できません。

さらに、2016年のWindows 10のアップデートにより、SMBマルチチャネルの利用がより簡単になりました。マシン名やIPアドレスを個別に設定する必要がなくなり、より手軽に高速な通信環境を構築できます。

SMBダイレクト(RDMA)とは?

SMB ダイレクト(RDMA:Remote Direct Memory Access)は、高速かつ効率的なクラスターストレージ環境を実現する技術です。なぜなら、RDMAを利用することでメモリからメモリへ直接データを転送できるため、通常よりも高速な通信が可能になるからです。しかも、この機能を利用するには、サーバー同士をInfiniBand、iWARP、RoCEといった専用のネットワークハードウェアで接続するだけで済みます。

たとえば、後述するSOFS(Scale-Out File Server)構成では、複数のWindowsファイルサーバーが連携し、ワークロードサーバー(特定の業務処理用のサーバー)とファイル共有を行います。このとき、仮に1台のファイルサーバーが故障しても、「透過的フェイルオーバー」によって接続が即座に復旧されるため、業務への影響を最小限に抑えることができます。ただし、このシステム全体のパフォーマンスを左右する大きな要因は、ストレージデバイスとファイルサーバー間の接続方式にあります。

実際には、たとえ10Gbpsのイーサネットネットワークを使っていても、エンタープライズレベルのデータ処理には十分ではないことがあります。そのため、一般的にはSAN、Fibre Channel(FC)、iSCSIなどのストレージデバイスをプールとしてまとめ、その中に仮想ディスクを作成して使用します。そして、これらの仮想ディスクは、Hyper-V クラスターや、SQLサーバーによるデータベースアクセス用のファイル共有として利用されます。このようにして、各ワークロードサーバーは、SMB 3.xプロトコルを通じてSOFSサーバーに接続されます。

このとき、SMB 3.xが持つRDMA機能を活用することで、高速なデータネットワーク環境を構築することが可能です。これは「高性能コンピューティング(HPC)」と呼ばれ、金融や科学技術分野など、大量のデータを高速に処理する必要のあるシステムで特によく使われています。また、RDMAを使うことで、CPUへの負荷やネットワークの遅延(レイテンシ)を大幅に軽減できるのも大きな利点です。

その結果、Microsoft Hyper-V や SQL Server 2012 のような環境においても、ネットワーク経由のファイルサーバーが、まるでローカルストレージのように高速で利用できるようになります。なお、この機能はSMB 3.0以降でのみ利用可能です。

SMBはどのように高速なデータ転送を実現しているのか?

SMBのパフォーマンス最適化は、単なる理論上のものではありません。というのも、それは現代のファイルシステムが直面する現実的なニーズに応えるために、プロトコル自体に組み込まれているからです。たとえば、ファイルの並行処理や、より大きなMTUサイズへの対応、さらにSMBマルチチャネルやSMBダイレクト(RDMA)といった革新的な技術によって、スループットを最大化しつつ、レイテンシやCPU負荷を最小限に抑えることができます。そのため、SMBはエンタープライズ向けのストレージはもちろん、クラウド上で動作するアプリやサービスのデータ処理といった用途でも、高性能なソリューションとして活躍しています。

4. 耐久性と信頼性

可用性、拡張性、そしてフォールトトレランス(障害耐性)は、現代のネットワークにおけるファイルやリソース共有において非常に重要な要素です。このセクションでは、SMBを堅牢で信頼性の高いプロトコルにしている主要な機能について紹介します。

SMBのLease(リース)とOplock(オプロック)機能

リース(Lease)は、Windows 7で導入された新しいキャッシュ機能で、SMBクライアントがネットワークの利用効率を高め、バッファリングの方針を柔軟に調整できるようにするものです。Oplock(オポチュニスティックロック)と同様の役割を果たしますが、リースでは「読み取りキャッシュ」「書き込みキャッシュ」「ハンドルキャッシュ」など、より細かい制御が可能なタイプが用意されています。

オプロック(Oplock)はSMBの機能で、ファイルキャッシュや同時アクセス、キャッシュの同期によって通信回数を減らすなど、多くの利点があります。その結果、ファイル共有のパフォーマンスが向上します。オプロックはファイルロックの一種ですが、命令ではなくユーザーからサーバーへ送られる「要求」です。

この要求は、許可された条件のもとでサーバーに受け入れられます。もしロックが無効になった場合、サーバーはユーザーに「解除通知(ブレイク)」を送ります。オプロックには、一括ロック(batch)、排他ロック(exclusive)、レベル2ロック(level 2)があります。

Durable Handles(デュラブルハンドル)と Persistent Handles(パーシステントハンドル)

ファイルを開いたまま一時的に接続が切れてしまった場合、SMBはどのように対応するのでしょうか?SMB 2.0以降では、デュラブルハンドルという仕組みがあり、これは短時間の接続切断でもファイルを開いている状態で維持します。ネットワークが復旧すると、クライアントはファイルへの接続を再確立できます。この持続性は、Oplock(オプロック)やLease(リース)の機能を使って実現されています。

さらに、接続をより強固で長持ちさせるために、パーシステントハンドルが使われます。これにより、60秒以内であればクライアントは簡単に接続を復旧でき、同時に第三者がファイルに接続するのを防ぐことができます。

パーシステントハンドルは、別のストレージ(SFOパートナー)に情報がミラーリング(複製)されているため、そこから復旧が可能です。これにより、SMB接続は常に利用可能な状態が保たれ、スムーズで途切れない操作を実現するための透過的な再接続が可能になります。

拡張性

SMBは、多くのユーザーを同時に扱い、それぞれにファイルアクセスや操作の管理を提供できるようになっています。新しいSMBのバージョンは、規模を拡大することを前提に設計されており、各サーバーがより多くのファイルハンドルやファイル共有、並列処理をできるようになっています。

また、Scale-Out File Services(スケールアウトファイルサービス)という新機能により、データセンターで新しいサーバーを追加することで、ファイルストレージを常に利用可能な状態に保つことが可能です。

Continuous Availability Service(継続的な可用性)

データセンターや大規模サービスにとって重要な機能である「コンティニュアス アベイラビリティ(継続的な可用性)」は、SMB3.0で実現された企業向けの機能です。新しいSMBサーバーは、クラスタ化されたサーバーやスケールアウトサーバーに対応しており、これらのネットワーク上のファイル共有は「継続的に利用可能」に設定できます。そして、SMB3.0をサポートするクライアントからアクセスが可能です。

この機能は、ファイルへのアクセス期間を長く保つことができるパーシステントハンドル(persistent handles)を利用しています。パーシステントハンドルは、持続フラグ(persistent flag)を付けて要求され、指定されたタイムアウト時間が経過するまでアクセスが維持されます。これは、デュラブルハンドル(durable handles)とは異なる特徴です。

SMB Witness(SWN)

Witnessサービスは、ネットワーク上のクライアントに対して、接続しているサーバーに障害や遅延が発生したことを通知する仕組みです。

SMB1.0や一部のSMB2.xでは、こうした通知はタイムアウト処理(リモートプロシージャコールに基づく)によって行われていましたが、通知までに最大45秒ほどかかることもありました。エンタープライズ環境では、より迅速なフェイルオーバー(別サーバーへの切り替え)が求められたため、Service Witness Protocol(SWN)が新しいSMBバージョンで導入されました。

SWNはSMB3.xと連携して、サーバー側の遅延や障害を即座にクライアントへ通知します。これはSMBとは別の独立したプロトコルであり、「継続的可用性(Continuously Available)」の仕組みの一部として動作します。

Transparent Failover (透過的フェイルオーバー)

透過的フェイルオーバーとは、複数のサーバー構成において、1台のサーバーがダウンしても、別のサーバーが自動的に処理を引き継ぐことで、ユーザーからは切断が起きたように見えず、アプリケーションも通常通り動作し続ける仕組みです。その名の通り、“透過的(=気づかせない)なフェイルオーバー”を実現します。

この機能はMicrosoftが提供するSMB 3.x系の中核的な機能であり、高速なネットワーク通信を前提とするSMBにとって、非常に重要な役割を果たします。

SMB 3.0以降のバージョンでは、Hyper-V仮想マシンやSQL Serverにおいても、クラスタ環境内での接続を自動的に管理することが可能です。従来は、サーバーの障害によって仮想マシンがストレージにアクセスできなくなったり、データベースがオフラインになるリスクがありましたが、透過的フェイルオーバーにより、これらの問題が大幅に軽減されます。

SMB透過的フェイルオーバーの要件:
  • Windows Server 2012以降で、2つ以上のノードからなるフェイルオーバークラスタが構成されていること

  • サーバー、ストレージ、ネットワークが「構成の検証ウィザード(Validate Configuration)」をクリアしていること

  • すべてのノードにファイルサーバーの役割が設定されていること

  • ファイル共有が「継続的可用性(continuously available)」として設定されたクラスタファイルサーバーであること

クラスタ構成のファイルサーバーやノードを管理するシステム管理者にとって、この機能は大きな助けになります。なぜなら、ネットワーク接続を切らすことなくメンテナンス作業が行えるからです。

Scale-Out File Server(SOFS)

SOFS(スケールアウトファイルサーバー)は、1台のサーバーに依存せず、複数のサーバーで構成された環境により、クライアントアプリケーションが安定してデータベースストレージへアクセスできるようにする仕組みです。仮に1台のサーバーが停止しても、他のサーバーが処理を引き継ぐことで、ユーザーは中断なくファイルにアクセスできます。この機能はサーバーとクライアントの両方がSMB 3.x以降を使用している場合のみ利用可能です。

SOFSは、Windows Server 2012以降で利用可能になりました。高性能かつ常時利用可能なファイルサーバーの構築が可能になり、ユーザーごとのアクセス権管理も柔軟に行えます。また、企業のデータや業務をファイルベースのシステム上で処理することができ、またSMB 3.xは、Hyper-VやSQL Serverとの連携にも対応しています。SOFSは、こうした最新プロトコルによる進化の成果であり、「フェイルオーバー(障害時の自動切替)」と「スケーラビリティ(拡張性)」という大きな利点を兼ね備えています。

クラスター構成のネットワークでは、SMB 3.0が「クラスタード・シェアード・ボリューム v2(CSVv2)」を使ってファイル共有を公開することで、すべてのノードからの並列データアクセスが可能になります。クライアントは、複数のファイルサーバーノードにまたがってリソースを最大限に活用でき、単一ノードに起因する帯域幅の制限も回避されます。

なお、SMB 1.0を使用しているクライアントはSOFSに接続できません。SMB 2.0を使用している場合は接続可能ですが、透過的フェイルオーバー機能は利用できません。

Volume Shadow Copy Service(VSS)

VSS(ボリュームシャドウコピーサービス)は、Windows Server 2003で導入された、バックアップと復元の信頼性を向上させるための機能です。VSSを利用すると、アプリケーションがデータを書き込み続けている状態でも、安定したバックアップを実行できます。

SMB3では、MicrosoftがこのVSSの機能をSMBファイル共有にも拡張しました。これにより、以下のような新しい仕組みが追加されています:

  • 新しいVSSプロバイダー(File Share Shadow Copy Provider)

  • 新しいVSSリクエスター(File Share Shadow Copy Agent)

  • 新しいRPC(リモートプロシージャコール)プロトコル(File Server Remote VSS Protocol)

これ以前は、シャドウコピー機能はローカルボリュームのみで利用可能だったため、Hyper-Vホストや仮想マシンとの連携が制限されていました。
SMB3およびVSSの拡張により、Hyper-V環境でもゲスト仮想マシンの安定したバックアップが可能になりました。

SMBプロトコルは安全か?

SMBプロトコルは安全な技術ですが、それは「適切なバージョンと設定」で使用されている場合に限ります。
初期のSMBから現在に至るまで、SMBは大きな進化を遂げてきました。なかでもSMB1は、EternalBlueなどの深刻な脆弱性で知られており、すべての環境で無効化すべきと広く認識されています。

一方、最新のSMB 3.1.1では、事前認証の整合性確認、強力な暗号化、メッセージ署名、Kerberos認証のサポートなど、現代のセキュリティ要件に対応した強固な保護機能が備わっています。

ただし、安全性を確保するには、これらの機能を正しく運用することも重要です。
サポートされていないバージョンの無効化、認証ポリシーの適用、そして定期的なパッチ適用といった「運用上の衛生管理」が求められます。

適切に導入すれば、SMBは企業向けのファイル共有において非常に安全なプロトコルです。信頼されていないネットワーク上でも、SMB over QUICを組み合わせることで安全に利用することが可能です。

最終的に、セキュリティはプロトコルそのものだけでなく、「どう使うか」によって決まります。

SMBプロトコルでよく発生するエラーとその解決方法

SMBは成熟した安全なプロトコルへと進化を遂げましたが、実際の運用環境では、設定ミスや相互接続の問題に直面することがあります。
よくあるエラーのひとつが「アクセス拒否」で、これは権限設定の誤り、有効期限切れの認証情報、またはKerberosが求められているにもかかわらずNTLMを使用しているなど、認証設定の不一致が原因で発生します。

また、「ネットワークパスが見つかりません」というエラーも頻出で、これはDNSの名前解決の失敗、SMBサービスの無効化、あるいはポート445をブロックするファイアウォール設定などが原因です。

さらに、SMBバージョンの不一致 ― たとえば、クライアントが非推奨のSMB1で接続しようとして、SMB2やSMB3を必須としているサーバーとハンドシェイクに失敗するケース ― もトラブルの原因となります。

こうした問題を防ぐには、バージョンの整合性を確保すること、すべての端末を最新の状態に保つこと、SMB通信を許可するファイアウォールやセキュリティグループの設定を行うこと、そして詳細なログによる迅速なトラブルシューティングが重要です。

定期的なメンテナンスと明確なバージョン運用ポリシーにより、ダウンタイムを防ぎ、スムーズなファイル共有を実現できます。

サイバー脅威との戦い:SMBはどのように攻撃を防ぐのか?

サイバー攻撃がますます巧妙化する中、最新のSMBプロトコル、特にSMB 3.0以降のバージョンは、その対策において重要な役割を果たしています。Kerberosによる強力な認証に加え、メッセージ署名や暗号化といったセキュリティ機能を組み込むことで、通信中のデータを保護し、改ざんを防ぎます。

以下の動画では、通信中のデータ保護、信頼性の検証、不正アクセスの防止を実現する9つの重要な改善点をご紹介します。

これらの機能は、中間者攻撃、リプレイ攻撃、ダウングレード攻撃といった、ネットワークを介した一般的な攻撃を防ぐのに役立ちます。これらの攻撃は、古いバージョンや設定ミスのあるSMB実装を狙うことが多くあります。

SMB 3.1.1ではさらにセキュリティが強化されており、事前認証の完全性チェックや、QUICなどの安全な最新トランスポートプロトコルのサポートが追加されています。

安全なファイル共有やリモートアクセスを重視する組織にとって、これらの高度なSMB機能を活用することは、進化し続ける脅威に対する最前線の防御策となります。

SMBプロトコルのソリューション

Visuality Systems Ltd は、SMBクライアントおよびサーバープロトコルスタックの世界有数の開発・提供企業です。Visuality SystemsのすべてのソリューションはMicrosoftのSMB仕様に完全準拠しており、NTLM 0.12から最新の3.1.1までのすべてのSMBダイアレクトに対応しています。

Visuality Systemsのソリューションを導入するメリットについては、YNQjNQNQ Storage の各製品ページをご覧ください。

また、製品を試してみたい方には評価用パッケージをご提供しています。ご希望の方はこちらのフォームよりお申し込みください。

SMBソフトウェア ユースケース さらに詳しく
YNQ
組み込みシステム向け、省リソース設計かつ非GPLのSMBソフトウェア

YNQ

jNQ
SMB2およびSMB3に完全対応したJavaベースのSMBソリューション(JCIFSの代替品)

jNQ

NQ Storage
あらゆるストレージソリューションと統合可能な、堅牢なマルチプラットフォーム対応SMBサーバー

最近の発表で、MicrosoftはSMB(Server Message Block)プロトコルに関する重要なアップデートを公開しました。SMBは、Windows環境におけるファイルやプリンターの共有を支える基本技術であり、Visuality SystemsはこのSMB機能を、あたかもネイティブであるかのようにあらゆるオペレーティングシステムに統合しています。

このアップデートは、Windows 11 Insider Preview Build 25992(Canaryチャネル)にて導入されたもので、注目すべき新機能として、
代替ポートのサポートファイアウォールルールの変更の2点が挙げられます。

SMBプロトコルの代替ポート対応

従来、SMBサーバーはIANAに登録されたTCPポート445に依存しており、柔軟性に乏しい構成となっていました。しかし、今回のアップデートにより、Windows 11 Insider版では、TCP、QUIC、RDMAを利用した代替ネットワークポートでのSMB接続がサポートされるようになりました。
これは、長年固定されて変更不可能だったポート構成からの大きな進化を意味します。

SMBプロトコルの代替ポート対応

ユーザーは、SMBサーバー側で対応ポートが設定されていれば、代替のTCP、QUIC、RDMAポートを使って接続できるようになりました。接続は、NET USENew-SmbMapping といったドライブ割り当てコマンドを使って実行できます。
今後のリリースでは、グループポリシーやPowerShell、DNS SRVレコードといったさらなる接続方法の追加も予定されています。

また、管理者はグループポリシーを通じて、SMBクライアント側の代替ポート使用を制御またはブロックすることも可能です。

SMBプロトコルに関するファイアウォールルールの変更

2つ目の大きなアップデートは、SMBプロトコルに関連するファイアウォールルールの変更です。これまで、SMB共有を作成すると自動的に「ファイルとプリンターの共有」グループのファイアウォールルールが有効化されていました。この挙動は、Windows XP SP2以降から続くレガシーな仕様でした。

""

現在、Windowsでは新たに「ファイルとプリンターの共有(制限付き)」グループが導入され、NetBIOSの受信ポート137~139が排除されました。

この変更により、デフォルトのネットワークセキュリティが強化され、SMBプロトコルにおけるファイアウォールルールがWindows Serverの「ファイルサーバー」ロールの動作により近づき、共有に必要な最小限のポートのみが開放されるようになります。

Visuality Systemsの実装

Visuality Systemsは、Microsoftとの長年にわたるパートナーシップを活かし、すべてのSMBプロトコルソリューション( YNQjNQNQ StorageQUIC Add-on)において代替ポート機能を完全サポートしています。マルチプラットフォーム対応により、特に代替TCPポートやSMB over QUICの利用が求められる場面において、ユーザーはより高い柔軟性と設定の自由度を得ることができます。

今後の展望

今回のアップデートは、WindowsおよびWindows Serverのセキュリティ向上に向けた大きな一歩ですが、Microsoftは今後もファイアウォールルールの強化を継続する方針です。今後のリリースでは、ICMP、LLMNR、Spooler Serviceといった受信ポートの削除が予定されており、SMB共有に必要な最小限のポートのみにアクセスを制限する動きが進められています。こうした取り組みは、現代のサイバーセキュリティ課題に対応するため、自社OSのセキュリティ体制を強化していくというMicrosoftの姿勢を明確に示すものです。

今後の展望

まとめ

Microsoftによる最近のSMBプロトコルのアップデートは、Windows環境における接続性とセキュリティを強化する重要なステップです。信頼できるパートナーであるVisuality Systemsとの連携により、Windows以外の環境でも代替ポートのサポートをスムーズに統合できるようになり、柔軟かつ安全なファイル共有・プリンタ共有ソリューションの提供を実現しています。

Tal Widerman, CEO, Visuality Systems

Tal Widerman, CEO, Visuality Systems

Share Via
関連記事
Share Via

Visuality systems uses technical, analytical, marketing, and other cookies. These files are necessary to ensure smooth operation of Voltabelting.com site and services and help us remember you and your settings. For details, please read our Privacy policy

Skip to content