あれ?サーバーに接続できない・・・いつからだろう?
どうやら、Windows10にアップグレードしたことで、sambaサーバーにアクセスできなくなってしまったようだ。他のNASを使っていたので気付かなかったが、こんなことになっていたなんて。
Windows10からアクセスできる設定
2019/07/23 修正
結論からすると、以下の設定で回避。
/etc/samba/smb.conf
[global] dos charset = SJIS workgroup = HOGEGROUPE server string = %h server obey pam restrictions = Yessyslog = 0smbd起動時にエラーが出ているので削除 log file = /var/log/samba/log.%m max log size = 1000 log level = 1 local master = Yes os level = 65 preferred master = Yes domain master = Yes wins support = Yes panic action = /usr/share/samba/panic-action %d idmap config * : backend = tdb bind interfaces only = yes interfaces = 172.16.x.xxx/16server max protocol = NT1445を開けていないとNT1しか使えない模様client max protocol = SMB2できるだけ新しいバージョンがいい
min protocol = SMB2 [homes] path = /home/%U/samba read only = No create mask = 0700 directory mask = 0700 browseable = No [share] comment = 共有領域 path = /home/samba read only = No create mask = 0777 directory mask = 04777 force directory mode = 04777 guest ok = Yes
設定後、以下のポートを空けておく。
$ sudo ufw status
状態: アクティブ
To Action From
-- ------ ----
137/udp ALLOW 172.16.0.0/16 # NetBIOS Name Service
139/tcp ALLOW 172.16.0.0/16 # NetBIOS Session Service
445/tcp ALLOW 172.16.0.0/16 # Microsoft-DS Active Directory, Windows shares
原因はプロトコルバージョンで、Windows10が話の仕方を変えたことが理由である模様。脆弱性の対策で CIFS(SMB1とかNT1とか言われるバージョン) を無効化しているのだった。
ログレベルを3にしてみたら、SMB3が選択された後、だんまりに。
SMB2を指定してみたが、これもSMB2_2が選択された後、だんまりに。
なので、仕方なくNT1まで落とす。
これによりパフォーマンスが低下するという記述が見つかったけれども、アクセス出来ないんじゃ意味が無いので諦める。
※ufwで445/TCPを開放したら、SMB2以上でも通信ができるようになった。いわゆる設定ミス。2018/07/22追記
なお、[share]セクションの不思議設定
directory mask = 04777
force directory mode = 04777
は、未だなおこの設定にしておかないと、775なディレクトリができてしまう。他の人は消せないディレクトリ。
共有だからといって、すべてのユーザーをnobodyにする設定なんて嫌だなーと思うので、活かしておかなければ。
本日発生したこと
2019/07/23、娘からサーバーにアクセスできないと言われた…確かにアクセスできないな、いつからだろう?よく分からない…。
ウチの中はもともとはWINS運用だった。このサーバーは 172.16.xxx.nnn の他に 172.16.xxx.nn2 というアドレスを持っているのだが、(よく覚えていないけれども)これが悪さをしていたためにバインドするIPアドレスを指定していた。
その後、v6プラスに関わる変更をしているときに、IPv6でこのサーバーにアクセスすることがあったため、バインドするIPv6のアドレスを追加している。
[global]… bind interfaces only = yes interfaces = 172.16.xxx.nnn/16 interfaces = 24xx:xxxx:xxxx:xxxx::nnn
interfaces = fdxx:xxxx:xxxx:xxxx::nnn
そもそも、サンプルにはこんな書き方がなされているから、書き方が間違っているんだと思う。
interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0
もっと言えば、DNSがこのサーバーについては確実に 172.16.xxx.nnn を返してくれるように設定したから、IPv6の設定は不要。よって、バインドの記述を削除した。
[global]… # bind interfaces only = yes # interfaces = 172.16.xxx.nnn/16 # interfaces = 24xx:xxxx:xxxx:xxxx::nnn
# interfaces = fdxx:xxxx:xxxx:xxxx::nnn
結果として安定して接続できるようになった。
さいごに
CIFSアクセスで回避
2018/02/11 追記
タブレットのWindows10が Fall Creators Update した関係で、ファイルサーバーにアクセスできなくなっていた。Linkstationにもアクセスできない…
コントロールパネル → プログラム → Windows の機能の有効化または無効化
を開き、SMB 1.0/CIFS クライアント にチェックを入れて回避。
セキュリティ上の問題があるようだが、使えないんじゃやっぱしょうがない。
とりあえず急ぎの問題回避にはこれが使えると思う。
セキュリティ的な問題については以下を参照。とっても説明が上手。
「Fall Creators Update」で注目、ネットワーク&セキュリティ機能4選+1
古いLinkstationでSMB2が扱えるようにする
2018/07/22 追記
最近この記事のアクセス数が伸びていて気になっていたので、あるべき姿をちょっと考えてみて、今日、古めのLinkstationにSMB2でアクセスできる設定について記事を公開。
ちょっと大変だけど、やっておく価値はありそう。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他