Server Message Block の略。IBM が原型を作り、Microsoft が中心に発展させたネットワークファイル共有プロトコル。Windows のファイル共有・ネットワークドライブ・プリンタ共有の標準であり、QNAP / Synology などの NAS が Windows と共有するときの第一選択。
CIFS(Common Internet File System)は SMB v1 時代の別名で、現在は SMB v2 / v3 が主流。
バージョンと特徴
| バージョン | リリース | 特徴 | 推奨度 |
|---|---|---|---|
| SMB v1(CIFS) | 1980 年代 | WannaCry 等で悪用された | ❌ 無効化必須 |
| SMB v2 | 2006(Vista) | パフォーマンス改善 | ○ |
| SMB v3 | 2012(Windows 8) | 暗号化・マルチチャネル・RDMA | ◎ 業務利用 |
| SMB v3.1.1 | 2015(Windows 10) | 整合性チェック強化 | ◎ |
⚠️ SMB v1 は無効化が必須。WannaCry / NotPetya などのランサムウェアが SMB v1 経由で拡散した経緯から、現代の NAS / Windows はデフォルトで無効化している。
SMB1 disabledの表示は警告ではなく正しい状態。
NFS との比較
| 項目 | SMB(CIFS) | NFS |
|---|---|---|
| Windows との共有 | ◎ ネイティブ | × (要 NFS クライアント有効化) |
| Linux との共有 | △(Samba 経由) | ◎ |
| 認証 | ユーザー / パスワード | UID/GID(v3)、Kerberos(v4) |
| 速度(GbE) | 100〜200 MB/s | 200〜300 MB/s |
Linux からのマウント例
/etc/fstab:
//192.168.1.10/Projects /home/<user>/NAS/Projects cifs credentials=/root/.smbcredentials,uid=1000,gid=1000,iocharset=utf8,nofail,x-systemd.automount,_netdev,vers=3.0 0 0
| オプション | 意味 |
|---|---|
cifs | ファイルシステムタイプ |
credentials=... | 認証情報ファイル(username= password= を root 600 で保存) |
uid=1000 / gid=1000 | クライアント側のユーザー所有として見せる |
iocharset=utf8 | 日本語ファイル名対応 |
vers=3.0 | SMB v3.0 を明示(重要) |
nofail | NAS 不在でもブートを止めない |
よくあるハマり
NT_STATUS_ACCESS_DENIED(QNAP 等で)
QNAP の 「匿名ユーザーを SMB 共有フォルダーにアクセスすることを制限する → 厳格」 が原因のことが多い。Linux Samba クライアントが内部で試みる匿名アクセスフェーズで弾かれる現象。Windows クライアントは別経路で認証情報を渡すため通ってしまい、「Windows では繋がるのに Linux だと繋がらない」という切り分けにくい症状になる。QNAP 側で「無効」に変更で解決。
バージョン未指定でのプロトコル衝突
vers= を指定しないと、クライアント / サーバー間でネゴシエーションが走り、SMB v1 にフォールバックして失敗するケースがある。vers=3.0 を明示するのが安全。