0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第13回:Windowsネットワーク「SMB要塞化」完全ガイド:SMBv1排除からSMBv3暗号化強制まで

0
Last updated at Posted at 2026-05-08

はじめに

Windowsネットワークのセキュリティにおいて、SMB(Server Message Block)の構成見直しは最優先事項の一つです。2017年のWannaCryやNotPetyaによる大規模なランサムウェア攻撃は、古いSMBv1の脆弱性(MS17-010, EternalBlue)を悪用したものでした。その被害総額は数千億円規模に達しています。

「うちは大丈夫」と思っていませんか? 未パッチのレガシー端末が1台でもネットワークに存在すれば、侵入口になり得ます。

この記事では、レガシーなSMBv1の無効化から、SMBv3による通信暗号化の強制まで、システムを段階的に「要塞化」するステップを解説します。

対象環境

  • Windows 10 / 11
  • Windows Server 2016 / 2019 / 2022
  • 各コマンドは管理者権限のPowerShellで実行してください。

SMBバージョンの整理

まず全体像を把握しましょう。

バージョン 対応OS 主な特徴 推奨
SMBv1 Windows XP〜 認証の脆弱性・平文通信 ❌ 即時無効化
SMBv2 Vista / Server 2008〜 性能向上・署名対応 ⚠ 許容(v3移行を推奨)
SMBv3.0 Windows 8 / Server 2012〜 AES暗号化対応
SMBv3.1.1 Windows 10 / Server 2016〜 事前認証整合性・強化暗号化 ✅ 最優先

v1からv3への要塞化は、この順序で進めます。

  1. SMBv1の完全排除
  2. SMBv3による暗号化の強制
  3. 互換性の確認と対処

Step 1:SMBv1の無効化

現状確認(まずここから)

いきなり無効化する前に、現在の状態を確認しましょう。

# SMBv1の有効・無効を確認
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

# サーバー設定の確認(State: Disabled なら安全)
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMB2Protocol

SMBv1の無効化実行

# Windowsの機能としてのSMBv1を無効化(再起動が必要)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Restart

# サーバーサービス経由でも念のため無効化
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Confirm:$false

実行後はOSの再起動が必要です。業務時間外に計画的に実施してください。

なぜSMBv1は危険なのか?

  • 脆弱な認証設計: バッファオーバーフローを含む多数の既知脆弱性があり、EternalBlueのような強力なエクスプロイトが公開されています。
  • 暗号化の欠如: 通信が事実上平文で流れるため、中間者攻撃(MITM)に対して無力です。
  • 過剰なブロードキャスト: ネットワークの冗長なトラフィックを生み出し、現代の帯域環境に適していません(正確には「冗長性が高い」設計)。

Microsoftも公式にSMBv1を非推奨とし、Windows 11およびWindows Server 2019以降では既定で無効・未インストールになっています。

ドメイン環境:GPOによる一括無効化

スタンドアロンではなくドメイン環境の場合、グループポリシー(GPO)でまとめて配布するのが効率的です。

グループポリシー管理エディター(GPME)の設定手順:

  1. gpmc.msc を起動し、対象のGPOを編集
  2. コンピューターの構成基本設定Windowsの設定レジストリ へ移動
  3. 新しいレジストリアイテムを作成し、以下を設定:
項目
パス HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
名前 SMB1
REG_DWORD
0
  1. GPOをリンクしてクライアントに適用(gpupdate /force で即時反映)

Step 2:SMBv3暗号化の強制(要塞化の核心)

SMBv1を排除しただけでは不十分です。SMBv2のみで通信している場合、暗号化されていないパケットがネットワーク上を流れているため、パケットキャプチャによる情報漏洩リスクが残ります。

SMBv3では以下のセキュリティ機能が利用できます。

機能 概要
AES-128-GCM / AES-256-GCM暗号化 通信全体を暗号化し、盗聴を防ぐ。
SMB署名の強化 パケット改ざんを防止。v3ではパフォーマンスへの影響が極めて少ない。
事前認証整合性(v3.1.1) 接続確立前のネゴシエーション改ざんを防ぐ。ダウングレード攻撃対策。

⚠ 暗号化強制前に必ず互換性を確認する

暗号化を強制する前に、接続クライアントのSMBバージョンを確認してください。後述の古い環境が残っていると、接続が一切できなくなります。

# 現在のSMB接続状況とDialectを確認
Get-SmbConnection

# Dialectが "3.1.1" や "3.0" でなく "2.x" や "1.0" のものに注意

サーバー全体で暗号化を強制する

# サーバー上のすべての共有に対して暗号化を必須に
Set-SmbServerConfiguration -EncryptData $true -Confirm:$false

# 設定確認
Get-SmbServerConfiguration | Select-Object EncryptData

特定の共有フォルダのみ暗号化する

まずは重要な共有だけに絞って適用するのが、段階的移行として安全です。

# 特定の共有に暗号化を設定
Set-SmbShare -Name "機密情報" -EncryptData $true

# 設定確認
Get-SmbShare -Name "機密情報" | Select-Object Name, EncryptData

クライアント側:非暗号化サーバーへの接続を拒否

クライアントが暗号化に対応していない古いサーバーへ誤接続しないよう設定します。これにより、組織内の全通信が強制的に暗号化されます。

# 暗号化非対応サーバーへの接続を拒否
Set-SmbClientConfiguration -RejectUnencryptedAccess $true -Confirm:$false

# 設定確認
Get-SmbClientConfiguration | Select-Object RejectUnencryptedAccess

Step 3:互換性の確認と対処

SMBv3暗号化を強制した場合、以下の環境では接続エラーが発生します。事前の棚卸しが必須です。

接続できなくなる可能性がある環境

環境 理由 対処
Windows 7 / Server 2008 R2 SMBv2.1までしか対応しない OS更新(EOL済み)、または例外共有を設定
古いNAS・複合機 Samba 3.x系など古い実装 ファームウェア更新、または専用VLAN分離
古いLinuxサーバー smb.conf のmin/max protocolの設定次第 Samba 4.x以降に更新し min protocol = SMB3 を設定

トラブルシューティング

接続エラーが発生した場合、以下のコマンドで原因を特定できます。

# 現在の全SMB接続とDialectを確認
Get-SmbConnection | Select-Object ServerName, Dialect, Encrypted

# SMBサーバーの統計・エラーを確認
Get-SmbServerNetworkInterface

# イベントログでSMBの接続拒否を確認
Get-WinEvent -LogName "Microsoft-Windows-SMBServer/Security" -MaxEvents 50

まとめ:今日から実施するアクションリスト

SMBの要塞化は、以下の3ステップです。

[ ] 1. Get-SmbServerConfiguration で現状把握
[ ] 2. Disable-WindowsOptionalFeature で SMBv1 を無効化(要再起動)
[ ] 3. Get-SmbConnection で接続クライアントのDialectを棚卸し
[ ] 4. 互換性問題のある端末・機器をリストアップして対処
[ ] 5. Set-SmbServerConfiguration -EncryptData $true で暗号化強制
[ ] 6. Set-SmbClientConfiguration -RejectUnencryptedAccess $true でクライアントも強化
[ ] 7. 再度 Get-SmbConnection ですべてのDialectが3.x, Encrypted=True であることを確認

「繋がれば良い」設定から「安全に繋ぐ」設定へ。インフラ・セキュリティエンジニアとして、この要塞化は現代ネットワーク管理の基礎です。レガシー環境との互換性という現実的な障壁はありますが、段階的に進めることで必ず達成できます。


参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?