Настя и сборник весёлых историй
Оглавление:
- Переадресация локального порта
- Переадресация удаленных портов
- Динамическая переадресация портов
- Настройка SSH-туннелирования в Windows
- Вывод
Туннелирование SSH или переадресация SSH-порта - это метод создания зашифрованного SSH-соединения между клиентом и серверным компьютером, через который можно ретранслировать сервисные порты.
Пересылка SSH полезна для передачи сетевых данных служб, использующих незашифрованный протокол, таких как VNC или FTP, для доступа к контенту с географическим ограничением или обхода промежуточных межсетевых экранов. По сути, вы можете перенаправить любой порт TCP и туннелировать трафик через безопасное соединение SSH.
Существует три типа переадресации портов SSH:
- Переадресация локальных портов. - Переадресация соединения с клиентского хоста на хост сервера SSH, а затем на порт хоста назначения. Удалите переадресацию портов. - Переадресует порт с хоста сервера на хост клиента, а затем на порт хоста назначения. Динамическая переадресация портов. - Создает прокси-сервер SOCKS, который обеспечивает связь через ряд портов.
, мы поговорим о том, как настроить локальные, удаленные и динамически зашифрованные туннели SSH.
Переадресация локального порта
Переадресация локального порта позволяет переадресовать порт на локальном (ssh-клиент) компьютере на порт на удаленном (ssh-сервер) компьютере, который затем перенаправляется на порт на конечном компьютере.
В этом типе пересылки клиент SSH прослушивает данный порт и туннелирует любое соединение с этим портом к указанному порту на удаленном сервере SSH, который затем подключается к порту на конечном компьютере. Машина назначения может быть удаленным сервером SSH или любой другой машиной.
Переадресация локальных портов в основном используется для подключения к удаленной службе во внутренней сети, такой как база данных или сервер VNC.
В Linux, macOS и других системах Unix для создания переадресации локального порта передайте опцию
-L
клиенту
ssh
:
ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Используются следующие параметры:
-
LOCAL_PORT
- IP-LOCAL_PORT
и номер порта локальной машины. КогдаLOCAL_IP
опущен, ssh-клиент связывается с localhost.DESTINATION:DESTINATION_PORT
- IP-адрес или имя хоста и порт компьютера назначения.SERVER_IP
- удаленный пользователь SSH и IP-адрес сервера.
Вы можете использовать любой номер порта больше
1024
в качестве
LOCAL_PORT
. Номера портов менее
1024
являются привилегированными портами и могут использоваться только пользователем root. Если ваш SSH-сервер прослушивает порт, отличный от 22 (по умолчанию), используйте параметр
-p
.
Имя хоста назначения должно быть разрешено с сервера SSH.
Допустим, у вас есть сервер базы данных MySQL, работающий на компьютере
db001.host
во внутренней (частной) сети, через порт 3306, доступный с компьютера
pub001.host
и вы хотите подключиться с помощью клиента
mysql
на локальном компьютере к серверу базы данных. Для этого вы можете переслать соединение следующим образом:
ssh -L 3336:db001.host:3306 [email protected]
После запуска команды вам будет предложено ввести пароль удаленного пользователя SSH. После входа вы будете авторизованы на удаленном сервере, и SSH-туннель будет установлен. Рекомендуется настроить аутентификацию на основе ключей SSH и подключиться к серверу без ввода пароля.
Теперь, если вы
db001.host:3306
клиенту базы данных вашего локального компьютера
127.0.0.1:3336
, соединение будет перенаправлено на
db001.host:3306
MySQL
db001.host:3306
через компьютер
pub001.host
который будет выполнять роль промежуточного сервера.
Вы можете перенаправить несколько портов нескольким получателям в одной команде ssh. Например, у вас есть другой сервер баз данных MySQL, работающий на компьютере
db002.host
и вы хотите подключиться к обоим серверам с локального клиента, который вы запустите:
ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]
Для подключения ко второму серверу вы должны использовать
127.0.0.1:3337
.
Если хост назначения совпадает с сервером SSH, вместо указания IP-адреса или имени хоста вы можете использовать
localhost
.
Скажем, вам нужно подключиться к удаленному компьютеру через VNC, который работает на том же сервере и недоступен извне. Команда, которую вы бы использовали:
ssh -L 5901:127.0.0.1:5901 -N -f [email protected]
Опция
-f
указывает команде
ssh
запускаться в фоновом режиме, а
-N
не выполнять удаленную команду. Мы используем
localhost
потому что VNC и сервер SSH работают на одном хосте.
Переадресация удаленных портов
Переадресация удаленных портов является противоположностью переадресации локальных портов. Это позволяет перенаправить порт на удаленном (ssh-сервер) компьютере на порт на локальном (ssh-клиент) компьютере, который затем перенаправляется на порт на конечном компьютере.
В этом типе переадресации сервер SSH прослушивает данный порт и туннелирует любое подключение к этому порту к указанному порту на локальном клиенте SSH, который затем подключается к порту на конечном компьютере. Машина назначения может быть локальной или любой другой машиной.
В Linux, macOS и других системах Unix для создания переадресации удаленного порта передайте опцию
-R
клиенту
ssh
:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Используются следующие параметры:
-
REMOTE_PORT
- IP-адрес и номер порта на удаленном сервере SSH. ПустойREMOTE
означает, что удаленный SSH-сервер будет связываться со всеми интерфейсами.DESTINATION:DESTINATION_PORT
- IP-адрес или имя хоста и порт компьютера назначения.SERVER_IP
- удаленный пользователь SSH и IP-адрес сервера.
Локальная переадресация портов в основном используется для предоставления доступа к внутренней службе кому-либо извне.
Допустим, вы разрабатываете веб-приложение на своем локальном компьютере и хотите показать предварительный просмотр вашему коллеге-разработчику. У вас нет общедоступного IP-адреса, поэтому другой разработчик не может получить доступ к приложению через Интернет.
ssh -L 8080:127.0.0.1:3000 -N -f [email protected]
Приведенная выше команда заставит сервер ssh прослушивать порт
8080
и туннелировать весь трафик с этого порта на локальный компьютер через порт
3000
.
Теперь ваш коллега-разработчик может набрать
the_ssh_server_ip:8080
в своем браузере и просмотреть ваше удивительное приложение.
Динамическая переадресация портов
Динамическая переадресация портов позволяет вам создать сокет на локальной машине (клиент ssh), который действует как прокси-сервер SOCKS. Когда клиент подключается к этому порту, соединение перенаправляется на удаленный компьютер (ssh-сервер), который затем перенаправляется на динамический порт на конечном компьютере.
Таким образом, все приложения, использующие прокси-сервер SOCKS, будут подключаться к SSH-серверу, а сервер будет перенаправлять весь трафик к его фактическому месту назначения.
В Linux, macOS и других системах Unix для создания динамической переадресации портов (SOCKS) передайте опцию
-D
клиенту
ssh
:
ssh -D LOCAL_PORT SSH_SERVER
Используются следующие параметры:
-
LOCAL_PORT
- IP-LOCAL_PORT
и номер порта локальной машины. КогдаLOCAL_IP
опущен, ssh-клиент связывается с localhost.SERVER_IP
- удаленный пользователь SSH и IP-адрес сервера.
Типичным примером динамической переадресации портов является туннелирование трафика веб-браузера через сервер SSH.
Следующая команда создаст туннель SOCKS на порту
9090
:
ssh -D 9090 -N -f [email protected]
Как только туннелирование установлено, вы можете настроить свое приложение для его использования. В этой статье объясняется, как настроить браузер Firefox и Google Chrome для использования прокси-сервера SOCKS.
Переадресация портов должна быть настроена отдельно для каждого приложения, для которого вы хотите туннелировать трафик.
Настройка SSH-туннелирования в Windows
Пользователи Windows могут создавать SSH-туннели, используя PuTTY SSH-клиент. Вы можете скачать PuTTY здесь.
-
Запустите Putty и введите IP-адрес сервера SSH в поле
Host name (or IP address)
.Появится новое окно с вашим именем пользователя и паролем. После того, как вы введете свое имя пользователя и пароль, вы войдете в систему на своем сервере, и SSH-туннель будет запущен.
Настройка аутентификации с открытым ключом позволит вам подключиться к вашему серверу без ввода пароля.
Вывод
Мы показали вам, как настроить SSH-туннели и пересылать трафик через безопасное SSH-соединение. Для простоты использования вы можете определить SSH-туннель в вашем конфигурационном файле SSH или создать псевдоним Bash, который настроит SSH-туннель.
SSH безопасностиБесплатный сканер портов для Windows: выполнить проверку портов брандмауэра

Выполнить сканирование портов брандмауэра с помощью бесплатного сканера портов. Эти обнаружения, тестовые инструменты и онлайн-сервис, сканирование определенных портов для данного IP-трафика и выявление уязвимых точек доступа.
Как настроить, настроить и использовать Родительский контроль в Windows 7

Узнайте, как включить, отключить, настроить и использовать функцию Родительский контроль в Windows 7 для мониторинга и управления действиями в Интернете для детей.
Как настроить SSH туннелирование для обхода брандмауэра

Брандмауэр - это хорошая вещь, но если он мешает вам что-то делать, то SSH Tunneling - хороший вариант для изучения.