RDP через SSH туннель
Введение
Цель – безопасно подключиться к серверу за роутером из внешней сети.
Убедитесь, что вы понимаете как создать простейший SSH туннель, например, такой как здесь
Создание туннеля это довольно трудоёмкая задача, состоящая условно из шести частей.
- Настройка SSH сервера
- Настройка SSH клиента
- Проброс портов на роутере
- Открытие сессии клиентом
- Настройка RDP на сервере
- Подключение по RDP с клиента
Вам понадобятся роутер, putty и freesshd.
Роутер должен поддерживать Port Forwarding приобрести онлайн можно в магазинах:
1. Настройка SSH сервера
1.01 Установить и запустить freeSSHd. Создайте ключ, чтобы сервер не ругался, потом поменяем его на новый ключ.
1.02) Здесь есть нюансы, в данный момент я предпочитаю выбирать "Нет"
1.03) Значок freeSSHd появляется в трее, выберите Settings
1.04) Само собой, нужно выдать разрешение бранмауэру.
1.05) В разделе Authentication, разрешить только доступ по ключам
1.06) Зайти в меню Users
1.07) Добавить нового пользователя
1.08) Вид после добавления
1.09) Запустить на сервере PuTTYgen
1.10) Сгенерировать пару ключей
1.11) Публичный ключ, который останется лежать на сервере, нужно скопировать из верхнего окна
1.12) Вставить публичный ключ в текстовый редактор, проверить чтобы он был в одну строку и начинался со слова ssh-rsa
1.13) Сохранить ключ как текстовый файл, имя должно быть такое же как и пользователя, который был ранее создан (в нашем случае – sini)
1.14) Удалить расширение
1.15) Согласиться
1.16) Показать freeSSHd путь до ключа
1.17) Сохранить приватный ключ, который затем нужно будет перенести на клиентский компьютер В результате предыдущих манипуляций мы имеем запущенный SSH сервер и пару ключей.
2. Настройка SSH на компьютере клиенте
2.18) На клиентском компьютере нужно положить приватный ключ в заранее созданную для него папку
2.19) На клиенте запускаем PuTTY и создаем подключение с именем sini. В поле Host Name (or IP address) указываем нужный внешний ip сервера, т.к. он за роутером, это будет ip роутера. Меняем порт на 443 или какой-нибудь другой, только осмысленно.
2.20) В поле Auth указываем путь до приватного ключа
2.21) Выбираем ключ
2.22) Создаём туннель
Порт
3389 это стандартный порт для RDP. Порт 3391 мы будем использовать на клиенте как
«вход» в туннель.
Изображение ниже показывает, что мы поставили в соответствие
локальному порту 3391 порт 3389 на IP 192.168.0.101
2.23) Сохраняем сессию. В поле Нost Name пишем IP сервера.
На этом этапе у нас подготовлено SSH соединение, которое сервер слушает на 443 порту.
На всякий случай уточняю, что в этом примере IP сервера в локальной сети 192.168.0.101
Внешний IP сервера это IP роутера. На картинке он замазан, в Вашем случае это будет Ваш
внешний
IP, т.е. что-то похожее на 78.47.141.187
Проброс портов на роутере
3.20) Задаём на роутере привязку MAC адреса сервера к какому-нибудь ip адресу
3.21) Объясняем роутеру, что когда идёт запрос по 443 порту нужно передать его именно серверу (делаем Port Forwarding – Проброс портов)
Putty на клиенте
4.22) Открываем сессию
Настройка RDP - На сервере
5.23) Создаем пользователя sini
5.24) Обязательно создаем пароль
5.25) Разрешаем доступ по RDP
5.27) Добавляем Синего в список пользователей, которым разрешён доступ по RDP
Настройка RDP - На клиенте
6.28) Запускаем на клиенте mstsc (сперва нужно открыть SSH туннель,
если он был открыт нужно проверить не закончилась ли сессия.
Чтобы не помешать никому работать - можно проверить подключён ли кто-то
к компьютеру или нет. Сделать это можно с помощью
PSTools
инструкция находится
здесь
6.29) Подключаемся к localhost:3391
Вводим пароль
6.30) Соглашаемся
Заметка для OpenBSD
Имеем компьютер в СПб (ПК_СПб), сервер на OpenBSD в МСК (СРВ_МСК) и локальный компьютер,
подключенный к серверу в МСК (ПК_МСК). Цель - подлючиться с ПК_СПб к ПК_МСК
через ssh туннель по rdp с помощью putty из-под Windows. |
Делать нужно так же как описано по ссылке, но на первой картинке отметить
Local ports accept connections from other hosts
Source port можно выбрать любым из свободных, напрмер 6789. В поле Destination указать
Локальный_ip_ПК_МСК:3389
При подключении по RDP (последняя картинка) можно указать
127.0.0.2:6789
RDP: Удалённый рабочий стол | |
SSH туннель для RDP | |
Сеть |