0Pricing
Cryptology Academy · Урок

Туннелирование SSH и методы перенаправления портов

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

«Туннелирование SSH и методы перенаправления портов» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Принцип локального перенаправления порта

Локальное перенаправление порта (ssh -L local_port:destination_host:destination_port user@ssh_server) привязывает порт на Вашем локальном компьютере. Трафик, отправленный на этот локальный порт, проходит через зашифрованное соединение SSH к серверу SSH, который затем подключается к месту назначения. Ваше локальное приложение взаимодействует с localhost, а SSH безопасно доставляет трафик удалённому месту назначения.

Применение локального перенаправления: доступ к базе данных

Распространённый вариант использования локального перенаправления порта — доступ к внутренней базе данных за межсетевым экраном. При выполнении ssh -L 5432:db.internal:5432 user@bastion Ваш локальный клиент PostgreSQL подключается к localhost:5432. Бастионный узел перенаправляет этот трафик на внутренний сервер базы данных, который иначе недоступен из Интернета.

Принцип удалённого перенаправления порта

Удалённое перенаправление порта (ssh -R remote_port:local_host:local_port user@ssh_server) привязывает порт на удалённом сервере SSH. Когда внешние клиенты подключаются к этому удалённому порту, трафик возвращается через туннель SSH к Вашему локальному компьютеру. Это позволяет открыть доступ к локально работающей службе всему миру через сервер, подключённый к Интернету.

Применение удалённого перенаправления: за NAT

Удалённое перенаправление особенно полезно, когда Ваш компьютер находится за NAT и не может напрямую принимать входящие соединения. Создав обратный туннель к общедоступному серверу, Вы позволяете внешним клиентам обращаться к локальной службе через этот сервер. Эта технология также используется некоторыми средствами удалённого доступа и системами управления устройствами Интернета вещей.

Динамическое перенаправление портов: прокси SOCKS5

Динамическое перенаправление портов (ssh -D local_port user@ssh_server) создаёт прокси SOCKS5 на Вашем локальном компьютере. Любое приложение с поддержкой SOCKS5 может направлять трафик через этот прокси, и для внешнего наблюдателя он будет исходить с сервера SSH. Таким образом, просмотр веб-страниц проходит через удалённую сеть, что удобно для доступа к ресурсам с региональными ограничениями или обхода фильтров локальной сети.

Обратные туннели и последствия для безопасности

Обратные туннели предоставляют широкие возможности, но создают риски для безопасности. Если сервер разрешает GatewayPorts, порты, перенаправленные удалённо, становятся доступными из общедоступного Интернета, а не только через localhost. Злоумышленник, скомпрометировавший компьютер с обратным туннелем, потенциально может получить доступ к внутренним службам. Организациям следует отслеживать несанкционированные обратные туннели и ограничивать GatewayPorts в конфигурациях SSH.

Управление туннелями на сервере SSH

Конфигурация сервера SSH управляет возможностями туннелирования. AllowTcpForwarding определяет, разрешено ли локальное и удалённое перенаправление портов. AllowStreamLocalForwarding управляет перенаправлением сокетов Unix. Установка для этих параметров значения no отключает туннелирование для всех пользователей; кроме того, их можно ограничить для отдельных пользователей или групп. Отключение ненужного перенаправления уменьшает поверхность атаки.

SSH как VPN с интерфейсами tun

SSH поддерживает создание сетевых интерфейсов tun для полного туннелирования IP (ssh -w). Это превращает SSH в облегчённую VPN, через которую туннелируются целые IP-пакеты, а не только определённые TCP-соединения. PermitTunnel должен быть включён на сервере. Хотя такой подход менее эффективен, чем специализированное ПО VPN, он не требует дополнительного программного обеспечения и использует существующую инфраструктуру SSH.

Мультиплексирование соединений

Мультиплексирование SSH-соединений (настройки ControlMaster и ControlPath) повторно использует существующее SSH-соединение для новых сеансов. Это значительно ускоряет последующие соединения с тем же узлом, что особенно ценно в средах со скриптами. Туннели также можно поддерживать активными в нескольких SSH-сеансах с помощью общего соединения.

Обнаружение туннелей SSH

Сетевые администраторы могут обнаружить туннелирование SSH по необычным характеристикам трафика: длительным TCP-соединениям через порт 22, неожиданно большим объёмам данных для соединений, которые должны передавать только терминальный трафик, или подключениям к заведомо чувствительным узлам после установления соединения. Глубокий анализ пакетов не позволяет увидеть содержимое SSH, но анализ метаданных может выявить подозрительное поведение туннеля.

Рекомендации по настройке туннелей

При авторизованном использовании документируйте все туннели и их назначение. Используйте -N (без команды) с туннелями, чтобы не открывать оболочку без необходимости, и -f (в фоновом режиме), чтобы они не блокировали терминал. Для постоянных туннелей используйте AutoSSH или активацию сокета systemd, которая автоматически перезапускает туннель при разрыве соединения.

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

Вы хотите открыть доступ к локальному серверу разработки (работающему через порт 3000) из интернета через общедоступный SSH-сервер. Какой тип переадресации следует использовать?

Повторение материала о туннелировании SSH

Повторим материал о туннелировании SSH: локальная переадресация (-L) обеспечивает безопасный доступ к внутренним службам с вашего компьютера, удалённая переадресация (-R) открывает доступ к локальным службам через общедоступный сервер, динамическая переадресация (-D) создаёт прокси SOCKS5 для маршрутизации трафика на уровне приложений, переадресация tun обеспечивает полноценный IP VPN, а AllowTcpForwarding на сервере управляет этими возможностями.

Часто задаваемые вопросы

Урок «Туннелирование SSH и методы перенаправления портов» бесплатный?

Да — полный текст урока «Туннелирование SSH и методы перенаправления портов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Туннелирование SSH и методы перенаправления портов»?

Освойте локальное, удаленное и динамическое перенаправление портов и узнайте об их легитимном применении и связанных с безопасностью рисках. Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Туннелирование SSH и методы перенаправления портов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Рукопожатие SSH и аутентификация ключом хоста
  2. Аутентификация открытым ключом и перенаправление агента
  3. Туннелирование SSH и методы перенаправления портов
  4. Усиление защиты SSH и лучшие практики аудита
← Назад к Cryptology Academy