Я тестирую общий ресурс samba, настроенный между двумя Linux-машинами, и мне нужно отключить подписку для целей тестирования. На моем сервере есть следующий /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)
Однако при трассировке (через wirehark) для этой операции я вижу, что подпись не отключена, как я хотел. В запросах от моего клиента указано «Подписание включено: Истина» и «Требуется подписание: Ложь», и сервер в конечном итоге отвечает флагом «Подписано: Истина». Трассировки длинны, но могут публиковать фрагменты, если это будет полезно.
Могу ли я принудительно не подписывать, как я хочу?
SMB2 не позволяет отключать подпись. Это возможно только быть обязательным или необязательным.
Видеть эта статья Technet для получения дополнительной информации о подписи SMB. Вы также можете посмотреть самбу страница руководства smb.conf для получения дополнительной информации, в частности:
Для протокола SMB2 подпись не может быть отключена по умолчанию. В случае согласования SMB2, если этот параметр отключен, он будет рассматриваться как автоматический. Если задать для него значение обязательного, клиенты SMB2 по-прежнему будут использовать подписывание.