質問)
- SMB1を許可するようにクライアント固有または共有別の例外をどのように構成しますか?
- SMB1の活性化によるセキュリティリスクを理解しており、攻撃面を最小限にしたいと思います。もしあればただこれらのゲストアクセスを許可するように構成された共有でSMB1が有効になっているかどうかは重要ですか?
現状
2:4.11.6+dfsg-0ubuntu1.3
匿名接続ユーザーから特定の共有(共有レベルsecurity = user
と)への接続を許可するように構成されたSamba 4.11.6-Ubuntu()がインストールされているUbuntu 20.04システムがあります。map to guest = bad password
guest only = yes
guest 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
これをより確実に排除できます。
SMB1
Samba 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バージョン間のデフォルトの最小プロトコルバージョンです。