Pull to refresh

Уходим от 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 - скрипт(батник) подключения.

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

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.