数年前から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のサポート打ち切られたのかも?