Linux и Windows: помощь админам и пользователям
Администрируем и настраиваем Windows, Linux.
RDP через SSH порт 443
Недавно я организовал у себя на домашнем компьютере тестовый стенд под управлением Hyper-V. Я хотел управлять данным стендом когда я нахожусь на клиентский плошадках, в случае если мне потребуется что-либо протестировать. Используемый по умолчанию RDP порт 3389 часто сканируется хакерами и даже несмотря на то что в Server 2008 RDP стал намного более защищенным, существует вероятность того что данный порт заблокирован на корпоративных файерволах. Поэтому я внедрил схему с использованием SSH на 443-ом порту для доступа к RDP. Как я это сделал? Об этом и пойдет речь в данной статье.
После установки сервера, Hyper-V, обновлений и прочего я установил FreeSSHD, который можно скачать тут — www.freesshd.com.
Первым что я сделал было изменение порта SSH с 22-ого на 443-ий.
Для авторизации можно использовать либо пароли, либо публичный ключ. Для моих нужд вполне достаточно парольной защиты, поэтому я установил её значение в «требуется», однако дополнительно можно оставить возможность авторизоваться с помощью ключа.
Далее разрешим форвардинг портов. Для чего это нужно вы узнаете далее в статье, когда мы будем настраивать Putty.
Далее добавляем аккаунт, которому разрешено подключаться к SSH.
На следующем этапе мне потребовалось настроить форвардинг портов на моем домашнем роутере, для проброса 443-го порта с роутера на компьютер. Это означает что когда вам нужно подключиться к домашнему компьютеру, вы подключаетесь к нужному порту вашего внешнего IP адреса.
Схема совсем немного усложняется в случае если у вас динамический внешний IP адрес. В таком случае вам придется использовать сервисы, подобные DynDNS.org.
Я использую в качестве домашнего роутреа Linksys с прошивкой DD-WRT. После регистрации аккаунта на DynDNS.org, вы настраиваете ваш роутер на испльзование данного аккаунта и можете уже не заботиться о том, что нужно всегда знать динамический IP, а просто подключаться по выделенному вам адресу.
Теперь нам необходимо скачать и настроить PuTTY.
Укажим имя нашего хоста и порт 443, так как наш SSH сервер слушает именно на этом порту.
Завершающей стадией конфигурации Putty будет настройка туннеля.
Данный туннель позволяет нам связать порт 3391 с портом 3389.
После этого установим наше SSH соединение. Для авторизации используем логин, которому дан доступ на подключение к SSH.
После установления соединения мы можем запустить RDP клиент. Так как мы создали форвардинг с порта 3391 на порт 3389, мы будем подключаться по адресу localhost:3391 и в результате получим подключение на нужный нам адрес ServerIP:3389. ServerIP в данном случае IP адрес определенный в настройках туннелирования Putty.
Как вы видите на следующих скриншотах мы успешно подключились к домашнему компьютеру с использованием порта 443.
Полезные ссылки:
В типографит «Формула цвета» выполнит срочное изготовление брошюр и прочие полиграфические услуги.
ИТ База знаний
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
Разбиение сети на подсети: VLSM
Прокси сервер – что это, виды и зачем нужен?
Маршрутизатор. Коммутатор. Хаб. Что это и в чем разница?
Ошибки в компьютерных сетях
7 частых проблем с сетью и как их быстро решить
Базовая настройка коммутатора Juniper
Как пользоваться Cisco AnyConnect
Escene ES205-N
Еженедельный дайджест
Простой SSH туннель с помощью Putty
Безопасность на «минималках» 🙂
Многие из вас наверняка используют в повседневной работе SSH подключение к удаленным серверам. Но не многие знают, что с помощью SSH мы можем создавать защищенные соединения (туннели), через которые трафик будет передаваться в зашифрованном виде.
В статье мы расскажем о простом способе создания SSH – туннеля и использования его для HTTP/RDP доступа.
Шаг №1: Создание SSH — шлюза
Первое, что необходимо сделать, это создать SSH – шлюз. Для этого, откроем Putty и создадим подключение к шлюзу:
Сохраните сессию, чтобы потом оперативно загрузить ее с помощью кнопки Load.
Шаг №2: Делаем туннель
В левом меню навигации, переходим в раздел Connection → SSH → Tunnels. В данном меню настройки укажите параметр Source Port — это порт, к которому вы будете подключаться локально, чтобы отправить трафик через SSH – туннель. В поле Destination укажите адрес назначения, к которому вы будете подключаться:
Данная запись означает то, что при подключении к локальному порту 37662 (127.0.0.1:37662), вы будете перенаправлены через SSH туннель до SSH – шлюза, а затем уйдете на адрес назначения 11.12.13.14:3389 – то есть RDP.
Помимо этого, мы добавим подключение к WEB по 80 порту. Нажимаем Add:
Отлично. Теперь в Putty нажимаем Open — туннель готов к использованию.
Шаг №3: Проверяем
Вызываем утилиту подключения к удаленному рабочему столу командой mstsc и указываем требуемые для нас реквизиты подключения – локалхост и созданный ранее RDP порт:
В примере, для того, чтобы «гнать» web – трафик через SSH – туннель настройте прокси сервер.
Важно: подключение через SSH – туннель будет активно до тех пор, пока открыта утилита Putty и существует коннекция с SSH – шлюзом.
Было полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Tunnel RDP through SSH & PuTTY
How to tunnel Remote Desktop (RDP) over SSH with PuTTY.
Proxy connections with SSH
SSH can proxy connections both forward and backwards. It creates a secure connection between a local computer and a remote machine through which services can be relayed. Because the connection is encrypted, SSH tunneling is useful for transmitting information that uses an unencrypted protocol, such as IMAP, VNC, or IRC. And RDP 🙂
SSH can proxy connections both forward and backwards, by opening a port on either the local machine running the SSH client, or the remote SSH server. If you have privileges to do so of course.
For example, if you want to connect to a remote host on RDP port 3389, but you don’t have direct access to reach that machine because of firewall or network restrictions, the SSH client can listen on a local port and pretend that it is the remote machine. All connections to that port will be sent through the SSH server to the remote host.
Reconfigure PuTTY for Remote Desktop Protocol (RDP) tunneling through ssh
To tunnel Remote Desktop Protocol over ssh using PuTTY, all you need is an account on the premises. For example a firewall or Linux server with ssh access, and PuTTY on your Windows desktop. PuTTY is a nifty ssh client for Windows that you can download here.
Once you are connected to your remote network with ssh/PuTTY, you need to reconfigure the connection to support SSH-tunneling. In the PuTTY Reconfiguration screen, go to Connection → SSH → Tunnels. This is where we can set up an SSH tunnel for Remote Desktop.
Under Source port, add your local IP address and port. Because the RDP 6+ client in Windows has issues with the loopback to TCP Port 3390, you need to use a different port. I use TCP port 3388 on IP address 127.0.0.2, and my remote internal IP address and RDP port 3389 as Destination (192.168.48.211:3389). See the image:
After clicking Apply, the SSH-tunnel for remote desktop is active, and you can connect the Remote Desktop Connection to 127.0.0.2:3388:
For Windows, PuTTY is the de-facto standard SSH client.
How to tunnel Windows Remote Desktop through ssh on Linux
On a side note, when you are in a situation where you are on a Linux work station and need to tunnel RDP through ssh in Linux, you can use the following ssh port forwarding, or tunnel (assuming you have an on-premise Linux server to SSH into to set up the port forward):
ssh port forwarding / tunnel set-up for RDP
Now you can connect your RDP client to 127.0.0.1:13389 as if it were the remote server.
Some Remote Desktop clients for Linux are:
- KRDC – KRDC is a client application that allows you to view or even control the desktop session on another machine that is running a compatible server. VNC and RDP is supported
- Remmina – A feature rich Remote Desktop Application for Linux and other Unixes
- rdesktop – rdesktop is an open source UNIX client for connecting to Windows Remote Desktop Services, capably of natively speaking Remote Desktop Protocol (RDP) in order to present the user’s Windows desktop
- xfreerdp – FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license
Or do you need to change port forwarding options in an existing ssh connection?
Tunnel RDP using OpenSSH and PowerShell in Windows 10
If you have the OpenSSH client installed in Windows 10, then you can use a command similar to Linux’ ssh tunnel:
To ease the usage, I wrapped in a PowerShell script, that connects to my on-premise stepping-stone host with ssh:
Protip: use this PowerShell one-liner to verify whether OpenSSH client is installed on your Windows 10 system. It should print Installed.
Tunnel ssh using sshuttle
Another great option is to tunnel ssh using sshuttle, on GNU/Linux. From its manpage:
sshuttle allows you to create a VPN connection from your machine to any remote server that you can connect to via ssh, as long as that server has python 2.3 or higher.
To work, you must have root access on the local machine, but you can have a normal account on the server.
It’s valid to run sshuttle more than once simultaneously on a single client machine, connecting to a different server every time, so you can be on more than one VPN at once.
If run on a router, sshuttle can forward traffic for your entire subnet to the VPN.
If you have an on-premise host / hop / stepping stone, you can use the following sshuttle example:
This’ll easily create a VPN (Virtual Private Network) connection from your machine to any remote server that you can connect to via ssh.
Unfortunately you cannot use sshuttle from Windows Subsystem for Linux (WSL) in Windows 10, yet: Command: ” iptable -L ” is not working.