Что такое SSH-туннелирование и каковы его основные типы

Ответ

SSH-туннелирование (SSH port forwarding) — это метод создания зашифрованного канала между локальным и удаленным компьютером, через который можно безопасно передавать трафик других протоколов.

Это позволяет защитить незашифрованные протоколы или получить доступ к сервисам во внутренней сети.

Основные типы туннелей:

  1. Локальный туннель (-L): Пробрасывает порт с локальной машины на удаленный сервер. Используется для доступа к удаленному сервису (например, базе данных) так, как будто он запущен локально.

    # Локальный порт 8080 будет перенаправлен на порт 80 удаленного сервера
    ssh -L 8080:localhost:80 user@remote-server
  2. Удалённый туннель (-R): Пробрасывает порт с удаленного сервера на локальную машину. Полезно, когда нужно предоставить доступ к локальному веб-серверу из внешней сети.

    # Удаленный сервер будет слушать порт 9000 и перенаправлять трафик на порт 3000 локальной машины
    ssh -R 9000:localhost:3000 user@remote-server
  3. Динамический туннель (-D): Создает SOCKS-прокси на локальной машине. Весь трафик, направленный через этот прокси, будет выходить в сеть с IP-адреса удаленного сервера.

    # Создать SOCKS-прокси на локальном порту 1080
    ssh -D 1080 user@remote-server

Сферы применения: безопасный доступ к базам данных, обход сетевых ограничений, доступ к внутренним ресурсам компании.