以下をやりましたので記事とします。
- CentOS 6系で
- samba 3.6を使って
- SMB2も有効にした(元々はSMB1だった)
最近は古いサーバの延命的なSomethingもやっていて、この記事もその一環のネタです。
CentOS6はWikiによると 2020-11-30 にEOLとなりますが、古い社内共有サーバの1台がCentOS6で稼働していまして、それでも クライアント側はセキュリティ面などからSMB1は利用不可としたい
という要望がありました。
設定値
/etc/samba/smb.confを以下の様に変更しました。
[global]
max protocol = SMB2
security = user
map to guest = Bad User
設定のポイント
-
max protocol = SMB2
- これに関してはすぐに記事が見つかり、設定を入れたのですがクライアントはSMB1で接続してしまい、一向に効果がありませんでした
-
security = user
- デフォルトの値ですが重要です。弊社の既存環境では
security = share
が設定されており、これはdeplicatedなパラメータです。security = share
の目的はパスワードなしで共有フォルダを参照させるためでしたが、これを行うとSMB1しか動作しない様で大ハマりしました
- デフォルトの値ですが重要です。弊社の既存環境では
-
map to guest = Bad User
-
security = user
をしつつ、フォルダをパスワードなしで誰でも参照させたい場合に必要です。後述する記事に当たるまで全く対応方法がわからず困りました
-
その他
環境
具体的には以下の環境です。
- CentOS release 6.10 (Final)
- samba-common-3.6.23-53.el6_10.x86_64
参考記事
以下の記事で map to guest = Bad User
を知り大変助かりました。
SMBのバージョンを調べる方法
クライアント側にWiresharkを入れて、 smb or smb2
のフィルタで見れば一発です。
もう少し具体的にいうと
- クライアントから
Negotiate Protocol Request
のRequested Dialects
で話せるSMB一覧を送る - サーバ側から
Negotiate Protocol Response
が来て
* SMB1の場合Selected Index
フィールドがNT LM 0.12
の様になりました
* SMB2の場合Dialect: SMB 2.0.2
の様になりました
SMB1しかできないパケキャプ結果
SMB2に成功したパケキャプ結果
以上、もうすぐ役目を終えるCentOS6のSambaの設定でした。個人としても大変お世話になったCentOS6の長きにわたる活躍に敬意を表します。