ASUSルーターのNAS機能はSMB1.0だった

 数年前からASUSルーターRT-AC56Sを使用しています。
 今でも大きな不満は無いですし、国内主要メーカーの多くの製品とは異なりSSHログインが可能だったり比較的自由にいじれるのが大きな魅力です。

 そのRT-AC56Sで標準でサポートされている機能の一つにファイルサーバーがあり、ルーターのUSBポートにストレージデバイスを接続して所謂NASとして利用することも可能です。
 個人的にはRAID1によるミラーリングを必要とするアーカイブデータにはNAS専用機を使い、比較的どうでもいいデータはRT-AC56SにUSB接続したハードディスクに格納するという使い分けをしています。
 が、最近Windows10をクリーンインストールしたPCからRT-AC56SのNASにアクセスできないことに気付きましたので、調べてみたら掲題の通りでした。
 

ルーター内で動いているSambaのバージョン確認

 ルーターのWEB管理ツールからSSHログインを有効にしていれば、普通のLinuxサーバーと同様にSSH接続が可能です。
 なお、RT-AC56Sに限った話では無いと思いますが、ルーター内のLinuxは一般のPC/サーバー向けのLinuxディストリビューションとは違い、組み込みLinuxに近いため、ディレクトリ構成などが若干普通とは異なります。

 というわけで、まずは動いているsambaのプロセスを確認します。

# ps -w | grep smb
10042 nas     1864 S    nmbd -D -s /etc/smb.conf
10044 nas     4064 S    /usr/sbin/smbd -D -s /etc/smb.conf
10045 nas     4064 S    /usr/sbin/smbd -D -s /etc/smb.conf
29868 nas     1528 S    grep smb

 実行体が/usr/sbin/smbdに存在することが判ったので、バージョンを確認します。

# /usr/sbin/smbd --version
Version 3.0.33

 Version 3,0.33ですって…
 SMB2.0が完全にサポートされたのはVersion 3.6からですので、現状ではSMB1.0プロトコルしか使えないことになります。

 それにしても、RT-AC56Sが発売されたのは2014年12月。その時点で最新だったSambaでもSMB2.0どころかSMB3.0もサポートしているのに、随分と古いVersionを組み込んだものだなと。今年春ごろまでは、こまめに脆弱性対応Firmware Updateが提供されていたので、そのうち更新されるのを期待して待っていればいいのでしょうかねぇ*1
 

PC側でSMB1.0を有効にする方法

 サーバー側(RT-AC56S)でSMB2.0以降をサポートしないなら、クライアント側(PC)でSMB1.0を有効化すれば、NASに接続できるようになります。
 Microsoftが公式に以下のサポート情報を出していますので、有効化自体は簡単にできます。
https://support.microsoft.com/ja-jp/help/2696547/how-to-detect-enable-and-disable-smbv1-smbv2-and-smbv3-in-windows-and
 が、LAN内から持ち出さないし、LAN内に攻撃者が存在しないことが担保できるネットワークでなければ、SMB1.0を有効化したPCが脆弱性に曝されることになってしまいますので、推奨できる方法ではありません。

 それでもリスクを受け入れた上で有効化するには、Powershell(管理者)で以下のコマンドを実行します。

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

 なお、上記コマンド実行後には再起動を要求されます。

 SMB1.0有効化後やWindows10以前のSMB1.0が有効なバージョンのWindowsからUpgradeしたWindows10環境では、PowerShell(管理者)でGet-WindowsOptionalFeature -Online -FeatureName SMB1Protocolコマンドを実行することで、以下のようにSMB1.0が有効化されていること(State: Enabled)が確認できます。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol


FeatureName      : SMB1Protocol
DisplayName      : SMB 1.0/CIFS ファイル共有のサポート
Description      : SMB 1.0/CIFS ファイル共有プロトコルと、コンピューター ブラウザー プロトコルのサポート。
RestartRequired  : Possible
State            : Enabled
CustomProperties :
                   ServerComponent\Description : SMB 1.0/CIFS ファイル共有プロトコルと、コンピューター ブラウザー プロ
                   トコルのサポート。
                   ServerComponent\DisplayName : SMB 1.0/CIFS ファイル共有のサポート
                   ServerComponent\Id : 487
                   ServerComponent\Type : Feature
                   ServerComponent\UniqueName : FS-SMB1
                   ServerComponent\Deploys\Update\Name : SMB1Protocol

 
 SMB1.0を有効化したものの、やはりセキュリティ観点から無効化したいという場合には、PowerShell(管理者)で以下のコマンドを実行します(無効化コマンドも再起動が必要です)。

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

 



以上。

*1:ここ数カ月はFirmaware Updateが提供されていないので、もしかしてRT-AC56Sのサポート打ち切られたのかも?