Как организовать SSH-туннелирование или переадресацию портов в Linux

ssh Settings

Туннелирование SSH (также называемое перенаправлением портов SSH) - это простая маршрутизация трафика локальной сети через SSH на удаленные узлы. Это подразумевает, что все ваши соединения защищены с помощью шифрования. Это обеспечивает простой способ настройки базовой VPN (виртуальной частной сети), полезной для подключения к частным сетям через небезопасные публичные сети, такие как Интернет.

Также может использоваться для вывода локальных серверов за NAT и брандмауэрами в Интернет через защищенные туннели, как это реализовано в ngrok.

Как создать ssh туннель в Putty и использовать его в качестве socks-прокси

Сессии SSH по умолчанию позволяют туннелировать сетевые соединения, и существует три типа проброса портов SSH: локальный, удаленный и динамический проброс портов.

В этой статье мы покажем, как быстро и легко настроить туннелирование SSH или различные типы проброса портов в Linux.

Локальная переадресация портов SSH

Этот тип перенаправления портов позволяет вам подключаться с локального компьютера к удаленному серверу. Предположим, что вы находитесь за ограничительным брандмауэром или заблокированы исходящим брандмауэром от доступа к приложению, работающему на порту 3000 на удаленном сервере.

Вы можете перенаправить локальный порт (например, 8080), который затем можно использовать для локального доступа к приложению следующим образом. Флаг -L определяет порт, перенаправляемый на удаленный хост и удаленный порт.

Добавление флага -N означает не выполнять удаленную команду, в этом случае вы не получите оболочку.

Переключатель -f указывает ssh работать в фоновом режиме.

Теперь на локальной машине откройте браузер, вместо доступа к удаленному приложению, используя адрес server1.example.com:3000, вы можете просто использовать localhost:8080 или [IP]:8080.

Удаленная переадресация портов SSH

Удаленная переадресация портов позволяет вам подключаться с удаленной машины к локальному компьютеру. По умолчанию SSH не разрешает удаленную переадресацию портов. Вы можете разрешить это с помощью директивы GatewayPorts в главном конфигурационном файле SSHD /etc/ssh/sshd_config на удаленном хосте.

Откройте файл для редактирования с помощью вашего любимого редактора командной строки.

Найдите необходимую директиву, раскомментируйте ее и установите значение yes.

Сохраните изменения и выйдите. Далее необходимо перезапустить sshd, чтобы применить последние изменения, которые вы сделали.

ИЛИ

Далее выполните следующую команду, чтобы перенаправить порт 5000 на удаленной машине на порт 3000 на локальной машине.

Как только вы поймете этот метод туннелирования, вы сможете легко и безопасно открыть локальный сервер разработки, особенно за NAT и брандмауэрами, для выхода в Интернет через безопасные туннели. Такие туннели, как Ngrok, pagekite, localtunnel и многие другие, работают аналогичным образом.

Динамическая переадресация портов SSH

Это третий тип перенаправления портов. В отличие от локальной и удаленной переадресации портов, которая позволяет взаимодействовать с одним портом, она делает возможным полный спектр TCP-коммуникаций через ряд портов. Динамическая проброска портов устанавливает ваш компьютер в качестве прокси-сервера SOCKS, который по умолчанию прослушивает порт 1080.

Для начала, SOCKS - это интернет-протокол, который определяет, как клиент может подключиться к серверу через прокси-сервер (в данном случае SSH). Вы можете включить динамическое перенаправление портов с помощью опции -D.

Следующая команда запустит SOCKS-прокси на порту 1080, что позволит вам подключиться к удаленному хосту.

Теперь вы можете заставить приложения на вашей машине использовать этот SSH прокси-сервер, отредактировав их настройки и настроив их на его использование для подключения к вашему удаленному серверу. Обратите внимание, что SOCKS-прокси-сервер перестанет работать после того, как вы закроете сеанс SSH.

Заключение

В этой статье мы объяснили различные типы проброса портов с одной машины на другую для туннелирования трафика через защищенное SSH-соединение. Это одно из очень многих применений SSH. Вы можете добавить свой голос к этому руководству через форму обратной связи ниже.

Проброс портов SSH имеет ряд существенных недостатков, им можно злоупотреблять: его можно использовать для обхода программ сетевого мониторинга и фильтрации трафика (или брандмауэров). Злоумышленники могут использовать его для вредоносных действий. В нашей следующей статье мы расскажем, как отключить проброс локальных портов SSH. Оставайтесь на связи!

Avatar for Gnostis
Gnostis
Добавить комментарий