我正在测试两台 Linux 机器之间设置的 Samba 共享,为了进行测试,我需要关闭签名。我的服务器有以下 /etc/samba/smb.conf:
[global]
protocol = smb2
client signing = disabled
server signing = disabled
...
[share_dir]
path = /work/share_dir
valid users = root
read only = no
我能够从客户端远程连接并运行命令:
root@client-1:~# smbclient //client-2/share_dir <password> -U root -m smb2 --signing=off -c 'rm 1MB.dat.upload.0; put 1MB.dat 1MB.dat.upload.0;'
WARNING: The "syslog" option is deprecated
Domain=[CLIENT-3] OS=[] Server=[]
putting file 1MB.dat as \1MB.dat.upload.0 (5333.3 kb/s) (average 5333.3 kb/s)
但是,当跟踪此操作(通过 wireshark)时,我发现签名并未像我希望的那样关闭。来自我的客户端的请求有“签名已启用:True”和“签名需要:False”,服务器最终以“签名:True”标志响应。跟踪很长,但如果有帮助的话,可以发布片段。
我可以按我想要的方式强制不签名吗?
答案1
SMB2 不允许禁用签名。只能选择需要签名或不需要签名。
看这篇 Technet 文章有关 SMB 签名的更多信息。您还可以查看 Sambasmb.conf 手册页了解更多信息,具体如下:
对于 SMB2 协议,根据设计,签名无法禁用。在协商 SMB2 的情况下,如果将此参数设置为禁用,则将被视为自动。将其设置为强制仍将要求 SMB2 客户端使用签名。