接続クライアントまたは共有に基づいて機会主義的なCIFSプロトコルバージョン(最小バージョン)を選択できますか?

接続クライアントまたは共有に基づいて機会主義的なCIFSプロトコルバージョン(最小バージョン)を選択できますか?

質問)

  • SMB1を許可するようにクライアント固有または共有別の例外をどのように構成しますか?
  • SMB1の活性化によるセキュリティリスクを理解しており、攻撃面を最小限にしたいと思います。もしあればただこれらのゲストアクセスを許可するように構成された共有でSMB1が有効になっているかどうかは重要ですか?

現状

2:4.11.6+dfsg-0ubuntu1.3匿名接続ユーザーから特定の共有(共有レベルsecurity = userと)への接続を許可するように構成されたSamba 4.11.6-Ubuntu()がインストールされているUbuntu 20.04システムがあります。map to guest = bad passwordguest only = yesguest ok = yes

これは他のUbuntuシステムでうまく機能します。もちろんいいえで働くX-ploreというAndroidアプリ。次のエラーメッセージでアプリケーションが失敗します。

java.io.IOException: このクライアントはネゴシエートされた方言をサポートしません。

2:4.7.6+dfsg~ubuntu-0ubuntu2.17上記のサーバーと同様に構成されたSamba 4.7.6-Ubuntu()を持つネットワークにも同様に構成されたUbuntu 18.04があります。

これは他のUbuntuシステムでもうまく機能します(最新のSambaを使用するか古いSambaを使用するかは関係ありません)。そしてAndroidアプリX-ploreで動作します。

わかりました。これは、4.7.6と4.11.6のバージョンの違いによって問題が発生していることを示しています。違いは、smb.confパスの違いと拡張変数(サーバー名など)による違いに起因するため、%hこれをより確実に排除できます。

SMB1Samba 4.7.6サーバーに正常に接続した後、Androidアプリケーションが報告されます。だからこれ問題の考えられる原因のようです。バージョン 4.11.6:

SMB1はデフォルトで無効になっています。

「クライアント最小プロトコル」および「サーバー最小プロトコル」のデフォルト値がSMB2_02に変更されました。

つまり、SMB2 または SMB3 をサポートしていないクライアントは、デフォルトで smbd に接続できなくなります。

/etc/fstab(1. 18.04 2. 20.04) には、リモート Samba サーバーに次の 2 つのオプションがあります。

$ awk '$3 ~ /cifs/ {print $4}' /etc/fstab|sed 's|'$(whoami)'|username|g'
nofail,user,guest,rw,uid=username,gid=username,forceuid,forcegid,file_mode=0664,dir_mode=0775,_netdev,x-gvfs-hide,noauto,x-systemd.automount
nofail,user,guest,rw,uid=username,gid=username,forceuid,forcegid,file_mode=0664,dir_mode=0775,_netdev,x-gvfs-hide,noauto,x-systemd.automount

...結果的にインストールされた項目は次のとおりです(前と同じ手順)。

$ awk '$3 ~ /cifs/ {print $4}' /proc/mounts 
rw,nosuid,nodev,noexec,relatime,vers=3.1.1,sec=none,cache=strict,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.188.120,file_mode=0664,dir_mode=0775,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=60,actimeo=1
rw,nosuid,nodev,noexec,relatime,vers=3.1.1,sec=none,cache=strict,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.188.130,file_mode=0664,dir_mode=0775,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=60,actimeo=1

明らかに、プロトコルバージョン3.1.1が選択されている。どちらの場合もmount.cifs最近のUbuntuプロトコルのバージョンを交渉中。

X-ploreをサポートするにはSMB1を有効にする必要があるようです。これはsmb.conf次の方法で行うことができます。

[global]
min protocol = SMB2

答え1

私が見つけた答えはAskUbuntuにあります

主なポイントは、サーバー側に次の行を追加することです/etc/samba/smb.conf

server min protocol = NT1

...smbd次のいずれかのコマンドを使用して再起動します(スーパーユーザーとして)。

  • service smbd restart
  • systemctl restart smbd.service

これにより、Android側でこれを受け入れることができます。明らかな違いは、18.04と20.04の2つのSambaバージョン間のデフォルトの最小プロトコルバージョンです。

関連情報