macOS で SMB 1 や NetBIOS を無効にする方法

SMB 1 や NetBIOS を無効にして、フェイルオーバーを阻止する方法をご案内します。

この記事は、企業や教育機関のシステム管理者を読者として想定しています。

macOS では、他社製品との互換性向上のため、サーバへのアウトバウンド接続の確立時に SMB 1 と NetBIOS がデフォルトで有効になります。macOS は、それより新しいバージョンの SMB を、DNS およびポート 445 と併せて使おうと試み、必要に応じてポート 139 と SMB 1 にフェイルオーバーします。SMB 1 または NetBIOS を無効にして、このフェイルオーバーを回避できます。

SMB 1 を無効にするには、以下の行を「/etc/nsmb.conf」ファイルに追加します。

protocol_vers_map=6

NetBIOS を無効にするには、以下の行を「/etc/nsmb.conf」ファイルに追加します。

port445=no_netbios

「/etc/nsmb.conf」ファイルはデフォルトでは存在しません。作成し、上記の変更を両方とも適用するには、以下のターミナルコマンドを使います。

echo "[default]" | sudo tee -a /etc/nsmb.conf
echo "protocol_vers_map=6" | sudo tee -a /etc/nsmb.conf
echo "port445=no_netbios" | sudo tee -a /etc/nsmb.conf

上記の変更を元に戻すには、「/etc/nsmb.conf」ファイルを削除します。削除しても問題はありません。

デフォルトでは、macOS は SMB 接続を受け入れません。ファイル共有の環境設定で Mac をファイルサーバにするように設定している場合は、SMB 1 を無効にする一方で、SMB 2 接続と SMB 3 接続は引き続き許可することができます。以下のコマンドを使ってください。

sudo scutil --prefs com.apple.smb.server.plist
get /
d.add ProtocolVersionMap # 6
set /
commit
apply
quit

上記の変更を元に戻すには、以下のコマンドを実行します。

sudo scutil --prefs com.apple.smb.server.plist
get /
d.add ProtocolVersionMap # 7
set /
commit
apply
quit

netbiosd 名前解決を無効にするには、以下のコマンドを実行します。

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist

netbiosd が実行中ではないことを確認するには、以下のコマンドを実行します。結果が何も返ってこなければ、netbiosd は実行されていません。

sudo ps aux | grep -i netbiosd | grep -v grep

この変更を戻すには、以下のコマンドを実行します。

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist
公開日: