1

Цель: получить доступ к общим файловым ресурсам Windows 10 из Linux через VPN.

В этом контексте: "сервер" - это простой компьютер с Windows 10, а "клиент" - это Ubuntu 18.

У меня есть настройка туннеля OpenVPN, соединение кажется хорошим, могу подключиться, проверить связь с сервером, portscan предоставляет правильные результаты, и я могу вручную установить соединение telnet с портом 135.

Я пытаюсь смонтировать папку в linux, в общую папку Windows, используя CIFS, то, что я делал много раз раньше, но, правда, не для этой конкретной машины Windows.

Я эффективно использую: mount -t cifs //server/share /mnt/share но результат всегда:

mount: /mnt /share: mount(2) системный вызов не выполнен: соединение отклонено.

dmesg/syslog show:

CIFS VFS: Ошибка подключения к сокету. Отмена операции.
CIFS VFS: сбой cifs_mount с кодом возврата = -111

Я перепробовал почти все флаги CIFS, которые я могу придумать, включая все параметры безопасности. Фактическая текущая команда, которую я использую:
sudo mount -v -t cifs -o vers=3.1.1,username=myuser,pass=mypass,servern=WINDESKTOP,sec=ntlmssp //10.8.0.1/share /mnt/share

Брандмауэр Windows отключен, общий ресурс и папка имеют полные разрешения для учетной записи пользователя, которую я пытаюсь использовать, а также для guest anonymous login .

Я установил FTP-сервер на сервер только для тройной проверки подключения, работает найти.

Почему не подключается CIFS? Есть ли способ на сервере Windows, чтобы увидеть, что именно он делает с подключением? И / или есть ли в любом случае получить больший отладочный вывод из CIFS в Ubuntu?

Редактировать:
nmap -Pn <host> показывает следующие открытые порты:

ПОРТ ГОСУДАРСТВЕННАЯ СЛУЖБА
135/ TCP открыть MSRPC
554/ TCP открыть RTSP
2869/ tcp с открытым icslap
10243/ tcp открыть неизвестно

Обновление / Решение:

Проблема и обходной путь были найдены. Ответ ниже от @grawity предупреждает о том, что сервер не прослушивает порт 445. Проблема не имеет ничего общего с OpenVPN или Linux /CIFS

  1. Отмечено, что служба сервера smb не прослушивает порт 445, это означает, что компонент ms_server не работает.
  2. ms_server - это служба сервера SMB, она включается / отключается путем установки следующего флажка в сетевых настройках устройства: File and Printer Sharing for Microsoft Networks.
  3. В этом случае флажок уже был установлен. Снятие и повторная проверка устраняет проблему, сервер прослушивает порт 445, и общий доступ к файлам работает. Но только временно, до следующей перезагрузки.
  4. Эта проблема, как представляется, известная проблема с Windows 10, вызванная относительно недавним обновлением Windows
  5. Я не смог найти чистое решение или реальный патч к актуальной проблеме.
  6. Одним из краткосрочных обходных путей является создание небольшого сценария, который эффективно "снимает флажки и ставит флажки" и запускается при входе пользователя в систему.

Команды powershell для решения этой проблемы:
Disable-NetAdapterBinding -Name "MyVPN" -ComponentID ms_server
Enable-NetAdapterBinding -Name "MyVPN" -ComponentID ms_server

1 ответ1

1

Я могу вручную установить соединение telnet с портом 135.

Это не правильный порт (это порт RPC-EPMAP). SMB работает на TCP-порту 445.

(Вы также можете увидеть порт 139 для совместимости со старыми клиентами до Win2000, которые поддерживают только SMB-over-NetBIOS. Этим клиентам также потребуются службы дейтаграмм NetBIOS по UDP 137–138.)

mount: /mnt /share: mount(2) системный вызов не выполнен: соединение отклонено
CIFS VFS: Ошибка подключения к сокету. Отмена операции.
CIFS VFS: сбой cifs_mount с кодом возврата = -111

"Отказ в соединении" означает, что клиент получил TCP RST в ответ на попытку установления связи, что обычно означает, что сервер не прослушивает этот порт TCP или что брандмауэр подделывает RST, чтобы заблокировать соединение.

Обычно это не касается версий протокола или параметров безопасности, которые обсуждаются только после установления TCP-соединения.

Брандмауэр Windows отключен

Зачем?

Брандмауэр Windows настраивается: если вы хотите разрешить протокол через него, вы можете создать правило, разрешающее этот протокол. (Или просто включите предопределенное правило, когда речь идет о разрешении SMB или ICMP.)

Есть ли способ на сервере Windows, чтобы увидеть, что именно он делает с подключением? И / или есть ли в любом случае получить больший отладочный вывод из CIFS в Ubuntu?

Установите инструмент для захвата пакетов, такой как Wireshark; начать захват на tun0 или адаптере OpenVPN TAP; Посмотрим, что происходит непосредственно перед созданием TCP RST.

Обратите внимание на то, видят ли обе стороны одни и те же пакеты, например, если клиент действительно получает TCP RST, сервер показывает, что он отправил один?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .