Задать вопрос
@Serbli

Как настроить ssh туннель для smb?

Добрый день!
Имеется:
1) арендованный сервер на windows core (без графического интерфейса)
2) провайдер с блокировкой портов 135-139, 445 (сменить нельзя)
3) smb шара на данном сервере (работает по сети У ДРУГИХ ПРОВАЙДЕРОВ. Нужен именно этот протокол)
4) ssh доступ на сервер
5) RDP доступ на сервер
6) клиенты на windows

Необходимо:
Организовать доступ на smb шару через провайдера с блокировкой портов без сторонних ресурсов.
На сколько я понимаю: необходимо сделать туннель для подключения, в принципе для работы должно быть достаточно 445 порта.
Что было испробовано: https://habr.com/ru/post/528414/ и т.п. инструкции (в принципе все они копипаст с одной и той же англоязычной)
На данный момент подключится не удается.
VPN работает, но в данной ситуации как решение не рассматривается и ресурсов на сервере для него нет.
Побочная проблема: абсолютно не понимаю работу ssh. Примеры по подробнее, пожалуйста!
На сколько понимаю нужно что-то типа: ssh -L 445:127.0.0.1:445 user@remoteserver но к сожалению мне это не помогает. Или есть варианты проще?
  • Вопрос задан
  • 677 просмотров
Подписаться 1 Средний 3 комментария
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
В ssh есть три варианта проброски портов.
-L lport:remote.host:rport задаёт проброску клиентского порта, т.е.
1. клиент SSH слушает порт lport на своей машине. По умолчанию на всех сетевых интерфейсах, но можно указать желаемый адрес, который будет слушаться, так: bind.address:lport:remote.host:rport
2. когда к этому порту кто-то коннектится, клиент сообщает серверу
3. сервер коннектится на remote.host:rport
4. В дальнейшем данные пробрасываются через этот туннель.

-R rport:local.host:lport работает наоборот
1. сервер SSH слушает порт rport на своей стороне. По умолчанию на всех сетевых интерфейсах, но можно указать желаемый адрес, который будет слушаться, так: bind.address:rport:local.host:lport
2. когда к этому порту кто-то коннектится, сервер уведомляет клиента
3. клиент коннектится на local.host:lport
4. В дальнейшем данные пробрасываются через этот туннель

И последний, самый практичный, но самый трудно контролируемый.
-D lport или -D bind.address:lport
1. клиент слушает порт lport на своей стороне
2. когда к этому порту кто-то коннектится, клиент пробрасывает соединение на ssh сервер
3. ssh сервер отвечает по протоколу прокси SOCKS4/SOCKS5, и выполняет дальнейшие соединения в зависимости от желаний подключившегося приложения.
Т.е. чтобы это работало, нужно чтобы приложение умело работать с SOCKS-прокси.

Не помогает - значит нужно отлаживать. Я не вполне понял, где расположена smb-шара - на том же хосте, что и ssh сервер? Или на другом? Также стоит убедиться, что соединение с ssh сервером устанавливается нормально.
Наконец, стоит выделить под такие туннели отдельного пользователя на сервере, и ограничить его в правах на всё, кроме использования туннеля.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Drno
Samba ненадо открывать в интернет... это плохо. Как и винду в целом...
SSH обычно для линукс используется...
Воспользуйтесь VPN, там что нет ресурсов для клиента openVPN например?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы