Как стать автором
Обновить

Уходим от VPN к SSH-туннелям. RDP через SSH на Mikrotik

Появилась задача сделать удаленный доступ клиентам к их RDP серверу и упростить доступ до одного клика.

Скрипты с VPNами не подошли по причине зоопарка домашних компьютеров клиента от Windows XP до Windows 10.

ОК, делаем на SSH-туннелях и защищаем их RSA-ключом.

Первое, что надо сделать админу, это скачать и установить Putty (если вдруг еще не установлен).

Приступаем к выпуску ключей через PuTTYgen

Запускаем, жмем Generate и двигаем мышкой до создания пары ключей
Запускаем, жмем Generate и двигаем мышкой до создания пары ключей

После чего создаем текстовый файл user1.rsa и копируем туда ключ из поля Public Key, а из PuTTYgen сохраняем себе приватный ключ user1

Теперь идем в Winbox Mikrotik

Включаем ssh

Создаем группу  ssh-rdp в System-Users и пользователя user1 (именуйте по вашему усмотрению)

К сожалению, не нашел как отключить доступ в ssh по паролю, поэтому задаем безумный пароль, например salskd90-0asdjfs09w3021=suUUQWE)90qqds

Теперь копируем в Mikrotik наш публичный ключ user1.rsa и подключаем его пользователю.

В заключение, в терминале пишем пару команд:
/ip ssh set forwarding-enabled=local
/ip ssh set always-allow-password-login=yes

На этом настройка Mikrotik закончена. Я бы рекомендовал еще защитить ssh от подбора пароля, статей в интернете на эту тему полно.

Пишем батник для нашего юзера

Нам понадобится еще файлик plink, можно скачать с сайте Putty или взять в его папке C:\Program Files\PuTTY\ plink.exe

Создаем папку, куда копируем его в plink.exe, созданный нами ранее приватный ключ user1.ppk

Там же создаем cmd файл следующего содержания (предполагается, что RDP-сервер находится в локальной сети по адресу 192.168.0.100 на стандартном порту 3389
plink -ssh -batch -C -L 3390:192.168.0.100:3389 user1@example.com -i "user1.ppk" | mstsc /v:127.0.0.1:3390
exit

Первая команда plink -ssh -batch -C -L 3390:192.168.0.100:3389 user1@example.com -i "user1.ppk"запускает plink, который подключится к микротику, создаст ssh-туннель и пробросит порт 3390 локальной машины на порт 3389 RDP сервера за туннелем, а так же будет ждать завершения второй команды.

Вторая команда mstsc /v:127.0.0.1:3390 собственно, подключается к удаленному рабочему столу, а по завершению передаст управление обратно скрипту
В конце работы скрипта делаем exit

В результате, имеем в папке 3 файлика которые достаточно заархивировать и передать пользователю клиента.

plink.exe - утилита из Putty
user1.ppk - приватный ключ пользователя
User1-RDP.cmd - скрипт(батник) подключения.

По желанию, можно создать ключи для каждого пользователя.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.