【DIY】ファイルサーバのSMB2.0化に向けて
普段自分が使用しているWindowsPCの画面が小さい(10インチ)なので
子供のChromebookを貸してもらいWEB閲覧していました。
ふと自宅のファイルサーバ内(NAS)に保存しているファイルを確認しようとした時にchromebookからってどうすればよいの?となったので書き留めておきます。
■chromebookでのファイルサーバアクセス方法
1.chromebookでファイルサーバにアクセスする為に接続設定をする。
2.ファイルサーバにアクセスする
https://www.iodata.jp/product/nas/file/chromebook-manual.pdf
やること自体は簡単なんですが、1のアクセス設定でてこずりました・・・。
というか1を実現できませんでした。。。
まずファイル共有を追加で必要情報を入力
・ファイルサーバのアドレス
・接続ユーザ名
・接続パスワード
そのまま追加できると思いきやエラー表示・・・。
「共有フォルダのマウントエラー。接続先のファイルサーバがSMBv2以降に対応しているか確認してください」
使用しているNASはバッファローのLS-CHL-V2というだいぶ古いものなので、
ダメかもしれません。
WindowsPCから接続時に使用しているSMBバージョンを確認してみると
Dialectの部分が1.5となっており、残念ながらSMB1での接続のようです・・・。
PS C:\Windows\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.1.3 share DESKTOP-1BMHO70\xxx MicrosoftAccount\xxx 1.5 2PS C:\Windows\system32>
これはSMB2に対応しないとchromebookでは接続できなさそうです。
LS-CHL-V2はLinuxベースでsambaが動いているので設定で何とかできると思ったんですが
管理画面にアクセスしてみてもSMBバージョンに関する記載はありません。
なので直接設定ファイルをいじるしかなさそうです。
こちらを頼りに確認
Sambaの設定ファイルは/etc/samba/smb.confの様ですので、
この設定ファイルで利用するSMBバージョンを2以上にしてあげれば大丈夫なはずです。
■設定ファイル(/etc/samba/smb.conf)
min protocol = SMB2 ←追加
max protocol = SMB2 ←追加
viで編集した後、設定ファイルを読み込ませるためプロセス再起動。
/etc/init.d/smb.sh stop
/etc/init.d/smb.sh start
エラーもなく立ち上がり、WindowsPCからのファイルアクセスも問題なし。
chromebookから再度、ファイル共有追加作業をしましたが、
同じエラーメッセージが出てしまい登録できませんでした。なぜだ!
WindowsPCでSMBバージョンを確認してみると1.5のままです・・。
PS C:\Windows\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.1.3 share DESKTOP-1BMHO70\xxx MicrosoftAccount\xxx 1.5 2PS C:\Windows\system32>
おかしいなと思い再度NAS側の設定ファイルを確認してみると
編集した内容が消えてる!
その後何度か編集→保存→SMBプロセス再起動を実施しましたが、
やっぱりプロセス再起動で読み込み直すと編集内容が反映されてない・・・。
プロセス再起動処理の中で何か別ファイルで上書きされているのかもしれないです。
起動スクリプト(/etc/init.d/smb.sh)を確認してみると、以下の部分が非常に怪しい。
/usr/local/sbin/nas_configgen -c samba
/usr/local/sbin/nas_configgenのファイルをviで見てみようとしましたがこのファイルは
バイナリファイルのようで中を編集するのは無理そう・・。
このファイルと戦うことはあきらめて、/usr/local/sbin/nas_configgenが
設定復元処理を行った後に、その設定ファイルに手動追加する作戦にしようと思います。
■実装方針
1.プロセス起動時のメーカ推奨設定への復元処理
2.復元処理後、SMBバージョンを固定する設定を追加
3.プロセス起動
こちらの処理となるように起動スクリプト(/etc/init.d/smb.sh)を修正したところ
無事想定通り/etc/samba/smb.confに設定を追加することができました!
起動後のエラーログもなしなので問題はなさそうです。
↓追加後の設定(末尾2行の/bin/sed~が追加した2の処理の部分)
/usr/local/sbin/nas_configgen -c samba
if [ $? -ne 0 ]; then
echo "$0 configure fail"
exit 1
fi
/bin/sed -i '3i max protocol = SMB2' /etc/samba/smb.conf
/bin/sed -i '3i min protocol = SMB2' /etc/samba/smb.conf
↓プロセス再起動後の/etc/samba/smb.conf
改めてWindowsPCで接続チェック!
PS C:\Windows\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.1.3 share DESKTOP-1BMHO70\xxx MicrosoftAccount\xxx 1.5 2PS C:\Windows\system32>
ダメだ・・・。
ひょっとして稼働しているsmbdのバージョンがSMB2に対応してないのか?
と考え確認してみると・・・。
root@LS-CHL-V2224:/var/log# smbd -V
Version 3.0.30-1.4.osstech
root@LS-CHL-V2224:/var/log#
なんと・・・。smb2.0に対応しているのはバージョン3.6からなので全然対応できてない。。
これはあきらめるしかなさそうですね。
残念ですが、今度はNASのリプレースを検討しようと思います。