Вопрос или проблема
Я использую систему Linux с Ubuntu 18.04.5.
Файл /etc/samba/smb.conf
содержит следующие правила:
client min protocol = SMB3
и
smb encrypt = required
Команда nmap -p445 -Pn -vvv --script smb-protocols
на этой системе выдает (среди прочего) следующий вывод:
Результаты скрипта host:
| smb-protocols:
| диалекты:
| NT LM 0.12 (SMBv1) [опасно, но по умолчанию]
| 2.02
| 2.10
| 3.00
| 3.02
|_ 3.11
Противоречат ли они друг другу?
В Samba установлено, что минимальный протокол SMB – 3. nmap
все равно сообщает об опасном протоколе SMBv1.
Можно ли получить доступ к системе Ubuntu с помощью SMBv1?
Скрипт nmap smb-protocols проверяет, какие диалекты smb присутствуют на сервере Samba сервере.
client min protocol устанавливает минимальный диалект smb, который сервер может использовать для подключения к другому серверу, а не минимальный диалект, который клиент может использовать для подключения к этому серверу.
По умолчанию версия samba, используемая в Ubuntu 18.04, устанавливает минимальное значение сервера на NT1 (smbv1) и максимальное значение на SMBv3.
Если вы хотите ограничить доступ к этому серверу только для SMB3, вам нужно установить минимальный протокол сервера:
server min protocol = SMB3
*Примечание: есть подварианты этого диалекта:
SMB3_00: Windows 8
SMB3_02: Windows 8.1
SMB3_10: ранние версии Windows 10
SMB3_11: Windows 10
По умолчанию SMB3 в smb.conf выбирает вариант SMB3_11.*
Ответ или решение
Вопрос: Samba min protocol SMB3 и результаты nmap по SMBv1
На системе Linux с установленным Ubuntu 18.04.5 у вас настроен Samba с указанием минимального протокола клиента SMB3
в файле /etc/samba/smb.conf
:
client min protocol = SMB3
smb encrypt = required
Тем не менее, вывод команды nmap -p445 -Pn -vvv --script smb-protocols
показывает, что на вашем сервере все еще доступен протокол SMBv1:
| smb-protocols:
| dialects:
| NT LM 0.12 (SMBv1) [dangerous, but default]
| 2.02
| 2.10
| 3.00
| 3.02
|_ 3.11
Анализ ситуации
Понимание настроек клиента и сервера
Важно понимать, что директива client min protocol
определяет минимальный протокол, который клиент может использовать для подключения к другим серверам Samba. Это не влияет на минимальный протокол, который сервер использует для взаимодействия с клиентами. На сервере, работающем под контролем Samba, по умолчанию минимальный уровень протокола установлен на NT1
(SMBv1) и максимальный — SMBv3
. Это объясняет, почему nmap
возвращает информацию о наличии SMBv1.
Чтобы полностью отключить поддержку SMBv1 на вашем сервере Samba, вам необходимо изменить настройку для сервера. Для этого добавьте или измените следующую строку в вашем конфигурационном файле smb.conf
:
server min protocol = SMB3
После внесения изменений обязательно перезапустите службу Samba для применения новых настроек:
sudo systemctl restart smbd
Разновидности SMB3
Когда вы устанавливаете минимальный протокол на SMB3
, это означает, что сервер будет принимать соединения только с клиентами, поддерживающими версии SMB3 и выше. SMB3 имеет несколько подкатегорий, начиная от SMB3_00
(Windows 8) до SMB3_11
(Windows 10):
- SMB3_00: Windows 8
- SMB3_02: Windows 8.1
- SMB3_10: ранние версии Windows 10
- SMB3_11: более новые версии Windows 10
По умолчанию при настройке server min protocol = SMB3
будет выбрана самая последняя версия SMB3_11
.
Заключение
Чтобы ответить на ваш вопрос, да, действительно, между вашим файлом конфигурации Samba и отчетом nmap
существует противоречие. Установка client min protocol = SMB3
сама по себе не защищает ваш сервер от использования менее безопасных протоколов, таких как SMBv1. Необходимо явно указать server min protocol = SMB3
, чтобы запретить доступ к серверу с использованием устаревших и небезопасных версий протокола.
Принятие этих мер значительно улучшит безопасность вашей системы, предотвращая использование уязвимых протоколов при взаимодействии с клиентами.