ProCloud Yandex
08.02.2024
читать 5 минут

SSH-туннелирование: примеры, команды, конфигурация сервера

/upload/iblock/2b6/zk1o7cf3kd05499t1661tfzuyq1jd09n/Sover_1_opt.jpeg

SSH расшифровывается как "Secure Shell" (безопасная оболочка). Это криптографический протокол, который обеспечивает защищенную передачу данных между клиентом и сервером через небезопасную сеть, такую как интернет. SSH широко используется для удаленного управления компьютерами и передачи файлов в сети.

Не каждый разбирается в том, как настроить доступ по SSH, его применение и связанные с этим риски. Поэтому важно изучить все эти аспекты, чтобы научиться правильно создавать SSH туннели и уменьшить возможные угрозы для безопасности сервера.

Переадресация портов SSH или SSH туннелирование?

Переадресация портов SSH – это метод туннелирования приложений между клиентским компьютером и сервером через SSH. Его главная цель – обеспечить шифрование данных и обойти брандмауэры. Тем не менее, некоторые злоумышленники могут злоупотреблять этим методом, создавая бэкдоры в корпоративной сети извне. Это повышает риск для безопасности сетевой инфраструктуры и доступа к конфиденциальным данным или заражения их вредоносными программами.

Локальное перенаправление портов

Для перенаправления соединений с устройства клиента на сервер используется функция локального перенаправления портов. Настроенный порт позволяет прослушивать соединения и перенаправлять их на сервер после проброса порта. Это позволяет установить подключения к данному порту с других устройств.

Вот некоторые примеры использования локального перенаправления портов:

  • Установка туннельной связи и передача пакетов через серверы прокси.
  • Доступ к сервису внутри сети извне.
  • Подключение к удаленному файловому ресурсу через интернет.

Этот подход основан на стандартной системе Linux/Unix с использованием средств безопасности, предотвращения вторжений и ведения журналов. Перенаправление портов SSH обеспечивает доступ технически подготовленных пользователей к внутренним ресурсам после подтверждения подлинности соединения через туннели. Часто создается туннель к порту SSH на внутреннем сервере, что позволяет пробросить порты SSH с вашего устройства на веб-сервер компании или на сервер IMAP.

В OpenSSH настройка локального перенаправления портов осуществляется с использованием опции –L:

ssh -L 80:intra.example.com:80 gw.example.com

Ограничение доступа к указанному порту возможно путем программной привязки адреса на одном хосте. По умолчанию используется gw.example.com, где происходит перенаправление любого соединения с портом 80 с локального устройства на порт 80 компьютера intra.example.com.

ssh -L 127.0.0.1:80:intra.example.com:80 gw.example.com

В конфигурационном файле OpenSSH есть опция LocalForward, которую можно использовать вместо того, чтобы указывать перенаправление в командной строке.

Удаленное перенаправление портов

В OpenSSH удаленный редирект портов SSH настраивается с помощью опции -R. Например:

ssh -R 8080:localhost:80 public.example.com

На удаленном сервере пользователь может подключиться к TCP-порту 8080, что позволяет установить соединение через SSH туннель обратно на клиентский хост. Затем можно установить TCP-соединение с портом 80 на localhost, при этом возможно использование другого имени хоста или IP-адреса для подключения. Это обеспечивает доступ к внутреннему или общедоступному серверу с использованием интернета. Такую возможность может использовать сотрудник, работающий из дома, но также это может быть использовано и злоумышленником.

Путем правильной настройки конфигурации сервера sshd_config можно управлять удаленным подключением при помощи OpenSSH по умолчанию. Варианты, представленные ниже, также являются возможными альтернативами:

  • Возможность использования опции GatewayPorts, чтобы подключаться через хост сервера.
  • Дополнительная функциональность, предоставляемая OpenSSH для управления подключениями.
  • Альтернативные способы настройки конфигурации sshd_config, чтобы управлять удаленными подключениями.

Примеры использования опции GatewayPorts:

GatewayPorts no

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

GatewayPorts yes

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

GatewayPorts clientspecified

Для разрешения подключений к порту клиенту предоставляется возможность указать IP-адрес. Синтаксис данной опции следующий:

ssh -R 52.194.1.73:8080:localhost:80 host147.aws.example.com

При использовании опции -O forward, OpenSSH также может указать значение 0 для пересылаемого удаленного порта. Когда это происходит, клиент получает информацию о динамически выделенном сервером порте и выводит его в стандартный вывод.

Бэкдоры

Часто сотрудники используют удаленное перенаправление портов SSH для создания бэкдоров. Например, они могут настроить бесплатный сервер для доступа из офиса и перенаправить порт на сервер или приложение внутри предприятия. Также возможно указать несколько портов SSH для доступа к различным приложениям.

Для этого сотруднику необходимо установить на сервере опцию GatewayPorts в значение yes.

Конфигурация сервера

Для корректной работы SSH туннеля на Linux необходимо активировать опцию AllowTcpForwarding в конфигурационном файле сервера OpenSSH. По умолчанию перенаправление разрешено. Эта опция может иметь значения: yes или all (разрешить), no (запретить), local (разрешить локальное) и remote (разрешить удаленное).

Также существует опция под названием AllowStreamLocalForwarding, которая позволяет перенаправлять сокеты Unix-домена. Эта опция по умолчанию установлена в значение yes.

AllowTcpForwarding remote
AllowStreamLocalForwarding no

Чтобы предотвратить несанкционированный доступ к серверу, необходимо правильно настроить SSH туннель. Опция GatewayPorts может принимать значения: no, yes и clientspecified, определяющие доступ к удаленным портам. Если значение установлено в no, то разрешено только локальное подключение. Если установлено значение yes, то подключение доступно из интернета. Если значение установлено в clientspecified, то клиент может указать IP-адрес, с которого возможно подключение.

Предотвращение перенаправления портов SSH для обхода брандмауэров

Для обеспечения безопасности и устранения потенциальных рисков связанных с бэкдорами, рекомендуется отключать перенаправление портов SSH, когда оно не требуется. Разрешение серверу передачи файлов по SFTP на перенаправление портов может представлять угрозу для внутренней сети и создать возможность несанкционированного доступа изнутри интрасети.

Управление перенаправлением портов является проблематичной задачей на практике. Единственным способом предотвратить его является использование сервера или брандмауэра. Однако, контроль над всеми серверами в интернете представляет сложность для компании. К тому же, управление через брандмауэр может быть затруднительным. Это особенно актуально при использовании облачной инфраструктуры, поскольку доступ к ней осуществляется через SSH.

Решение с использованием SSH

SSH предоставляет доступ к клиенту/серверу Tectia. Это надежное программное обеспечение, которое обеспечивает безопасное туннелирование в соответствии с принятыми в компании стандартами. Tectia отличается простотой в использовании и считается надежным инструментом.



Хотите узнавать больше о технологиях и наших облачных продуктах? Подписывайтесь на нашу рассылку и следите за новостями: Телеграм и Вконтакте.

Новости
27 декабря 202327.12.2023
Продуктовый дайджест 2023
20 декабря 202320.12.2023
читать 2 минутычитать 2 мин
Новые тарифы и возможности