- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Курс по сетям
- Прокси сервер – что это, виды и зачем нужен?
- Разбиение сети на подсети: VLSM
- 7 частых проблем с сетью и как их быстро решить
- Передача данных в сетях на верхних уровнях
- NetFlow анализатор – телеметрия вашей сети
- Как пользоваться Cisco AnyConnect
- IT — не только разработка. Без кого сетевое приложение не взлетит?
- Простой SSH туннель с помощью Putty
- Шаг №1: Создание SSH — шлюза
- Шаг №2: Делаем туннель
- Полезно?
- Почему?
- Создание SSH-туннелей с помощью PuTTY
- 1. Локальный проброс порта
- 2. Удалённый проброс порта
- 3. Socks–proxy
- Простой SSH туннель с помощью Putty
- ШАГ №1: СОЗДАНИЕ SSH — ШЛЮЗА
- ШАГ №2: ДЕЛАЕМ ТУННЕЛЬ
- ШАГ №3: ПРОВЕРЯЕМ
- Проброс портов через SSH-туннель в Windows
- RDP доступ через SSH туннель (local TCP forwarding)
- Переброс удаленного порта на локальную машину (Remote TCP forwarding)
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
Курс по сетям
Прокси сервер – что это, виды и зачем нужен?
Разбиение сети на подсети: VLSM
7 частых проблем с сетью и как их быстро решить
Передача данных в сетях на верхних уровнях
NetFlow анализатор – телеметрия вашей сети
Как пользоваться Cisco AnyConnect
IT — не только разработка. Без кого сетевое приложение не взлетит?
Еженедельный дайджест
Простой SSH туннель с помощью Putty
Безопасность на «минималках» 🙂
2 минуты чтения
Многие из вас наверняка используют в повседневной работе SSH подключение к удаленным серверам. Но не многие знают, что с помощью SSH мы можем создавать защищенные соединения (туннели), через которые трафик будет передаваться в зашифрованном виде.
Обучайся в Merion Academy
Пройди курс по сетевым технологиям
Начать
В статье мы расскажем о простом способе создания 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 – шлюзом.
Обучайся в Merion Academy
Пройди курс по сетевым технологиям
Начать
Полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Создание SSH-туннелей с помощью PuTTY
В данной статье будет описано как строить SSH–туннели с помощью PuTTY.
1. Локальный проброс порта
Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT–а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH–доступ на один из серверов с маршрутизируемым IP–адресом, который доступен из Интернета. Внутренний адрес этого сервера, пусть будет для примера 192.168.0.3. Структура сети изображена на рисунке:
Предположим, что нам очень нужно подключиться, к примеру, по SSH на некоторый удалённый сервер с IP–адресом 212.212.212.212 где–то далеко в Интернет. Для этого запускаем PuTTY, создаём SSH–подключение к серверу 192.168.0.3 (далее по тексту SSH–сессия 1), идём в пункт Tunnels:
и указываем, что локальный порт 2222 нашего компьютера должен быть поставлен в соответствие порту 22 на сервере с IP–адресом 212.212.212.212. Далее жмём кнопку «Open», авторизуемся на сервере 192.168.0.3. Затем создаём ещё одно подключение (далее по тексту SSH–сессия 2), но уже на localhost, порт 2222 и жмём кнопку «Open»:
В результате SSH–сессия 2 будет туннелироваться (т.е. будет установлена внутри ранее установленной SSH–сессии 1). Для удалённого сервера 212.212.212.212 всё будет выглядеть так, как будто к нему подключается 111.111.111.111:
2. Удалённый проброс порта
В этом случае подключение внутри SSH–туннеля устанавливается в другую сторону — от удалённого сервера на наш локальный компьютер. Может быть полезно, если требуется открыть доступ к локальным сервисам нашего компьютера. Рассмотрим ту же сеть, что и в пункте 1, но для простоты предположим, что теперь у нас есть NAT:
Здесь уже у нас есть возможность подключаться через SSH напрямую к 212.212.212.212 благодаря наличию NAT–а. А вот 212.212.212.212 подключиться на 192.168.0.2 без специальных ухищрений, понятное дело, не сможет, т.к. 192.168.0.2 не подключён к Интернет непосредственно. Предположим, что пользователю, сидящему под X–ами на 212.212.212.212 нужно через remote desktop попасть на наш компьютер 192.168.0.2. Для этого в SSH–сеансе подключения с 192.168.0.2 на 212.212.212.212 нужно изменить настройки в разделе Tunnels следующим образом:
В результате после успешной авторизации на 212.212.212.212 можно увидеть следующее:
То есть sshd ожидает подключений на TCP–порт 3333, которые затем по SSH–туннелю будут перенаправлены на 192.168.0.2 порт 3389. И юзер сидящий за 212.212.212.212 сможет с помощью rdesktop увидеть наш рабочий стол:
3. Socks–proxy
В этом случае мы можем использовать сервер с SSH–демоном как промежуточный (proxy). Схема сети как в случае #1 (без NAT и штатных прокси):
Чтобы заставить PuTTY исполнять роль socks–прокси, нужно параметры SSH–сессии с 192.168.0.2 на 192.168.0.3 изменить следующим образом:
В результате после успешной авторизации со стороны клиента можно будет наблюдать следующее:
То есть putty, выполняющийся с PID–ом 2392, начинает слушать порт 1080, ожидая подключений. Далее бёрем любое приложение, умеющее работать с SOCKS–прокси, например Firefox, и указываем ему использовать наш прокси:
Теперь все запросы от браузера будут проходить через сервер 192.168.0.3. В логах веб–сайтов, по которым мы таким образом будем ходить, будет отображаться внешний IP–адрес нашего сервера — 111.111.111.111.
P.S. Из help–файла Putty 0.58:
Question A.10.3: What does «PuTTY» mean?
It’s the name of a popular SSH and Telnet client. Any other meaning is in the eye of the beholder. It’s been rumoured that «PuTTY» is the antonym of «getty», or that it’s the stuff that makes your Windows useful… 🙂
Простой 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 – шлюзом.
Проброс портов через SSH-туннель в Windows
В этой статье мы покажем, как использовать встроенный в Windows OpenSSH сервер для проброса портов через SSH туннель (SSH туннелированние). Перенаправление портов в SSH позволяет туннелировать (пробрасывать) порты приложений с локального компьютера на удаленный сервер и наоборот. Ранее проброс портов через SSH туннель использовался только в среде Linux/Unix , но теперь вы можете воспользоваться этим возможностями и в Windows. Рассмотрим на практическом примере, как на Windows Server через SSH сервер с открытым портом TCP 22 пробросить RDP подключение.
Чаще всего проброс портов через SSH применяется в сценариях, когда нужно подключиться к удаленному компьютеру, который защищен межсетевым экраном. Например, у вас имеется сервер c Windows, на котором открыт только SSH порт (TCP 22). Все остальные порты блокируются аппаратным межсетевым экраном или брандмауэром Windows. Ваша задача подключиться к рабочему столу этого Windows сервера с помощью клиента RDP. Казалось бы, невозможная задача, т.к. порт RDP 3389 блокируется брандмауэром. Однако вы можете воспользоваться технологией проброса портов через ssh-тунель.
Чаще всего используются следующие сценарии проброса SSH:
- Local TCP forwarding — проброс локального порта на удаленный сервер;
- Remote TCP forwarding — проброс удаленного порта на локальный компьютер;
- Двойной SSH туннель – позволяет соединить между собой через SSH сервер компьютеры без выделенных белых IP адресов или находящиеся за NAT (если не подходит решение с OpenVPN)
RDP доступ через SSH туннель (local TCP forwarding)
В этом режиме вы создаете на своем компьютере локальный TCP порт, подключения к которому перенаправляются через SSH туннель на указанный порт удаленного сервера. В этом примере мы создадим локальный порт 8888, при подключении к которому выполняется перенаправление с этого порта на RDP порт 3389 удаленного компьютера. Общая схема подключения выглядит так:
Для создания SSH туннеля с помощью встроенного SSH клиента (встроен в Windows 10 1809 и Windows Server 2019), выполните команду:
ssh -L 8888:192.168.1.90:3389 root@192.168.1.90
Теперь, чтобы подключится к удаленному компьютеру через SSH туннель, вам нужно подключится RDP-клиентом mstsc.exe на локальный порт 8888 своего компьютера:
Авторизуйтесь на удаленном компьютере и можете спокойно работать в RDP-сессии, при этом вы помните, что порт 3389 все еще закрыт в файерволе. С помощью TCPView вы можете убедиться, что RDP подключение установлено локально (RDP подключение инициировано запущенным локально SSH сервером).
Обратите внимание, что если вы перенаправляете таким образом незашифрованный трафик приложения, то по сети он передается в зашифрованном виде. Трафик в лбом случае шифруется на одном конце SSH соединения и расшифровывается на другом.
В таком режиме другие компьютеры в вашей локальной сети тоже смогут подключиться к удаленному RDP серверу, даже если у них полностью заблокирован прямой доступ к удаленному серверу (как по SSH, так и по RDP). Для этого, они должны подключиться RDP клиентом к порту 8888 на вашем компьютере, на котором создан SSH туннель:
mstsc.exe /v 10.10.1.220:8888
Переброс удаленного порта на локальную машину (Remote TCP forwarding)
Есть еще один вариант применения SSH туннеля – remote TCP forwarding. Через SSH туннель вы можете открыть доступ удаленному серверу к локальному порту на вашем компьютере или порту на другом компьютере в вашей локальной сети. Например, вы хотите, чтобы внешний сервер (192.168.1.90) получил доступ к вашему Интранет сайту (не опубликованному в Интернете). Для создания обратного туннеля, используйте такую команду:
ssh -R 8080:internalwebsever:80 user@192.168.1.90
Теперь, чтобы на удаленном SSH сервер получить доступ к веб серверу internalwebsever достаточно в браузере набрать адрес http://localhost:8080 .
С помощью SSH туннелей вы можете строить целые цепочки для форвардинга портов. Включить или отключить SSH туннелирование можно в конфигурационном файле sshd_config директивами: