Проблема
Одноранговая сеть управляется Windows Server 2008. АРМ под управлением Astra Linux Special Edition получают настройки сети по DHCP. Интернет работает, но:
- не проходят запросы команды
ping
от АРМ под управлением Astra Linux к АРМ под управлением Microsoft Windows; - большая часть АРМ под управлением Astra Linux не обнаруживает общие сетевые ресурсы Samba.
Диагностика
-
Проверить содержимое файла
/var/log/ufw.log
на наличие строк, содержащих подстроку[UFW BLOCK]
, например:grep "UFW BLOCK" /var/log/ufw.log
Возможная причина: Заблокировано прохождение трафика к ресурсам Samba. Перейти к решению.
Возможные причины
Должен стоять SAMBA клиент. Смотря какой Windows (точнее версия SMB)
Можно узнать версию SMB в windows, если подключиться к шаре, запустить powershell от администратора, get-smbconnection покажет версию в колонке Dialect.
В linux подключить win шару:
1) не win 10 sudo mount.cifs ///<расшареннаяпапка> -o user=username /media
2) win 10 sudo mount.cifs /// -o user=username,vers=3.0 /media
(win 10 имею ввиду SMB=3, в других win тоже может быть отключен SMB 1)
А если вбить адрес вручную в программе обзора папокsmb://192.168.0.140/share/
Автоматический поиск компьютеров и их ресурсов не всегда хорошо работает.
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности — ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика — тотальный контроль над каждым совершённым тактом, а значит — безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Ошибки сетевого доступа в Windows — вещь довольно неприятная, тем более что не все умеют их правильно диагностировать и исправлять. При том, что интернет кишит различными способами самой разной степени сомнительности. Поэтому мы решили подробно разобрать одну из типовых ситуаций, показав как процесс диагностики, так и различные способы решения проблемы, каждое из которых имеет свои особенности, в частности влияние на безопасность. Такой подход позволит не только выяснить причины ошибки и устранить ее, но и поможет подойти к этому вопросу осознанно, полностью представляя последствия своих действий.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
С ситуацией, когда компьютер под ОС Windows не хочет подключаться или перестает подключаться к общим ресурсам на сервере Samba под управлением Linux встретиться можно довольно часто и тому есть объективные причины, которые мы рассмотрим ниже, ну а пока посмотрим на ее внешние симптомы. Система неожиданно сообщает, что она не может получить доступ к указанному ресурсу и выдает абсолютно неинформативную ошибку:
Код ошибки: 0x80004005
Неопознанная ошибка
Если попробовать подключиться в консоли, например, командой:
net view \\192.168.233.182
Где 192.168.233.182 — адрес искомого сервера, то получим немного другую ошибку:
Системная ошибка 53.
Не найден сетевой путь.
При этом указанный узел нормально пингуется, а проверка доступности 445 порта говорит, что все нормально:
После этого обычно начинается сетование на кривизну какого-либо из решений (в зависимости от личных предпочтений) и поиск решения в интернете, где можно найти как условно рабочие, так и полную дичь, вроде включения SMB1 и бездумного изменения различных политик и ключей реестра.
Но не будем спешить, вы же не глотаете все подряд из домашней аптечки только почувствовав недомогание? Так и здесь, поэтому будем разбираться.
Но сперва поясним ситуацию по протоколу SMB1:
Протокол SMB1 устарел и небезопасен, в настоящее время отключен на всех современных системах.
Кроме того, даже если вы включите его поддержку, то начиная с Windows 1709 она автоматически отключится после 15 дней неиспользования. В общем: включать SMB1 не нужно, разве что только вам действительно нужна поддержка устаревших клиентов.
В современных версиях Samba протокол SMB1 также отключен и минимальной поддерживаемой версией является SMB2_02, а максимальной SMB3. Это параметры по умолчанию и проверить их можно командами:
testparm --parameter-name="min protocol"
testparm --parameter-name="max protocol"
Настройки по умолчанию достаточно актуальны, и мы не советуем отдельно задавать версии протоколов без особой на то нужды. SMB2_02 — обозначает младшую версию протокола SMB2, а SMB3 указывает на старшую доступную версию, таким образом поддерживаются все системы начиная с Windows Vista и Server 2008. Причиной ошибки SMB1 быть не может.
Поэтому не занимаемся ерундой, а ищем истинную причину, в этом нам поможет Журнал событий. Раскрываем последовательно Журналы приложений и служб — Microsoft — Windows — SMBClient и в журнале Security находим ошибку 31017:
Небезопасный гостевой вход отклонен.
Рекомендации.
Это событие указывает на попытку сервера разрешить вход пользователя как непроверенного гостя, которая была отклонена клиентом.
Для гостевого входа не поддерживаются стандартные функции обеспечения безопасности, например подписывание и шифрование.
Вследствие этого гостевой вход уязвим для атак "злоумышленник в середине", которые могут привести к попаданию конфиденциальных данных в сеть.
По умолчанию небезопасный гостевой вход отключен в Windows. Корпорация Майкрософт не рекомендует включать его.
После чего все становится на свои места. Нет никаких чудес, просто политики безопасности Windwos не позволяют подключаться к серверу с анонимным гостевым доступом. Кстати, это относится не только к Samba.
Теперь, когда есть понимание происходящего мы можем выбрать одно из двух решений указанной проблемы.
Решение №1. Отключаем гостевой доступ на сервере Samba
С точки зрения безопасности это наиболее правильное решение, которое позволит получать доступ к общим ресурсам не снижая уровень безопасности сети. Для этого внесем некоторые изменения в конфигурационный файл Samba, обычно он располагается в /etc/samba/smb.conf. Прежде всего найдем и приведем к следующему виду директиву:
map to guest = never
А в настройках каждого общего ресурса укажем:
guest ok = no
Возможно, вам еще придется выполнить некоторые настройки, скажем, завести пользователей и назначить им права, для всего этого рекомендуем воспользоваться нашей статьей:
Настройка файлового сервера Samba на платформе Debian / Ubuntu
Сохраняем все изменения и проверяем конфигурацию на ошибки:
testparm
Затем перезапускаем службу:
systemctl restart smbd
После чего повторно пробуем подключиться и сразу видим окно для ввода учетных данных:
Проблема решена, ресурсы файлового сервера Samba снова доступны.
Решение №2. Разрешаем небезопасный гостевой вход в Windows
Если Решение №1 вас по каким-либо причинам не устраивает, и вы осознанно хотите понизить уровень безопасности вашей сети, то можно пойти другим путем и разрешить небезопасный гостевой вход.
Запустим редактор групповой политики (gpedit.msc) и перейдем в Конфигурация компьютера — Административные шаблоны — Сеть — Рабочая станция Lanman и переводим политику Включить небезопасные гостевые входы в положение Включено.
После чего вам потребуется перезапустить службу Рабочая станция или перезагрузить компьютер.
Альтернативой этому способу будет внесение изменений через реестр:
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v AllowInsecureGuestAuth /t REG_DWORD /d 1
Затем перезапустим службу:
net stop LanmanWorkstation && net start LanmanWorkstation
После чего можем продолжать привычно использовать общие сетевые ресурсы с гостевой моделью доступа.
Какой вывод можно сделать после прочтения данного материала? Прежде всего понять, что любые сетевые ошибки имеют под собой вполне определенную причину, а не являются воздействием некой неведомой силы. И эти причины имеют свойство отображаться в журналах и логах.
Решений таких проблем также может быть несколько, каждое из которых может иметь свои достоинства и недостатки. Поэтому не нужно хватать первый попавшийся рецепт из интернета, а следует разобраться в причинах и выбрать из доступных вариантов тот, который будет вас наиболее устраивать.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
У вас, возможно, возникала проблема, когда Ubuntu не может найти компьютеры под управлением Windows или не может обратиться к сетевым ресурсам через Samba. Такая ситуация обычна для многих дистрибутивов с GUI Gnome. Раньше причина этого была связана с багом в GVFS, однако с тех пор возникло несколько других причин. В этой статье мы расскажем, как можно решить проблему, настроить Ubuntu на работу с шарами Windows или Samba и переобучить Nautilus и Dolphin, чтобы они смогли видеть все сетевые ресурсы.
Ubuntu может не видеть сеть Windows из-за отказа компании Microsoft от протокола SMB1 и перехода на протоколы SMB2 и SMB3, которые не имеют возможности сетевого обнаружения. Для отображения сетевых ресурсов на Ubuntu используется либо avahi либо протокол SMB1, поэтому увидеть шару Windows не получится, не включив обратно устаревший протокол в реестре.
Также, Windows не будет видеть шары Samba из-за отсутствия поддержки новым сервисом WS-Discovery. Для решения этой проблемы нужно отдельно установить сервис WSDD. Но ещё большей проблемой стало отключение поддержки протокола SMB1 на сервере Samba 4.11, из-за чего Nautils и Dolphin перестали видеть не только Windows шары, но и Linux тоже. Решение проблемы может быть либо установка на Samba сервер Avahi, либо включение поддержки старого протокола SMB1 на сервере Samba.
Для того, чтобы сервер Samba был доступен в сети Windows, необходимо включить поддержку протокола SMB1.
Для этого отредактируйте файл /etc/samba/smb.conf
следующим образом:
sudo vi /etc/samba/smb.conf
[global]
server min protocol = NT1
client min protocol = NT1
min protocol = NT1
Убедитесь, что имя хоста вашего сервера совпадает со значением параметра netbios name в файле /etc/samba/smb.conf
. Вы можете проверить имя хоста командой hostname
и добавить его в файл /etc/hosts
:
hostname
sudo vi /etc/hosts
127.0.0.1 localhost
192.168.1.2 my_server
[...]
[global]
netbios name = my_server
Если проблема не решена, попробуйте установить и настроить сервис Avahi. Он позволит вашему серверу Samba отображаться в сетевом окружении в Nautilus.
Для установки Avahi выполните:
sudo apt install avahi-daemon avahi-utils
Далее запустите сервис и добавьте его в автозагрузку:
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
Проверьте доступные сервисы командой:
avahi-browse --all
Чтобы ваш сервер Samba был доступен в сети Windows, установите и настройте сервис WSDD. Этот сервис позволяет Windows видеть ваш сервер в сети.
Для установки WSDD выполните следующие команды:
git clone https://github.com/Andy2244/wsdd2.git
cd wsdd2
make
sudo make install
sudo systemctl daemon-reload
sudo systemctl enable --now wsdd2
Теперь ваш сервер Samba должен быть доступен в сети Windows. Проверьте его доступность, открыв сетевое окружение в Nautilus или проводнике Windows. Если все настроено правильно, вы должны увидеть ваш сервер Samba и его шары.