SSH расшифровывается как "Secure Shell" (безопасная оболочка). Это криптографический протокол, который обеспечивает защищенную передачу данных между клиентом и сервером через небезопасную сеть, такую как интернет. SSH широко используется для удаленного управления компьютерами и передачи файлов в сети.
Не каждый разбирается в том, как настроить доступ по SSH, его применение и связанные с этим риски. Поэтому важно изучить все эти аспекты, чтобы научиться правильно создавать SSH туннели и уменьшить возможные угрозы для безопасности сервера.
- Переадресация портов SSH или 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 отличается простотой в использовании и считается надежным инструментом.
Хотите узнавать больше о технологиях и наших облачных продуктах? Подписывайтесь на нашу рассылку и следите за новостями: Телеграм и Вконтакте.