Что такое протокол Secure Shell (SSH)?
- Глоссарий IAM
- Что такое протокол Secure Shell (SSH)?
Протокол Secure Shell (SSH) — это криптографический сетевой протокол, который используется для безопасного подключения к устройствам и их удаленного управления по сети. Он позволяет пользователям получать доступ к удаленной машине и управлять ею так, как если бы они физически присутствовали, при этом обеспечивая высокий уровень безопасности. SSH шифрует данные, передаваемые между двумя машинами, обеспечивая защиту учетных данных и другой конфиденциальной информации от несанкционированного доступа.
SSH и SSL: в чем разница?
Хотя и SSH, и Secure Sockets Layer (SSL) являются протоколами, предназначенными для защиты данных во время передачи, они используются в различных контекстах.
SSH в первую очередь используется для безопасного доступа и управления удаленными системами через сеть. Он шифрует связь между клиентом (обычно компьютером пользователя) и удаленным сервером, обеспечивая безопасный доступ к командной строке, передачу файлов и выполнение других административных задач.
SSL, который теперь более точно называется Transport Layer Security (TLS), предназначен для обеспечения безопасности связи между веб-сервером и веб-браузером, обычно через протокол HTTPS. SSL/TLS обеспечивает целостность и конфиденциальность данных, шифруя такие данные, как учетные данные для входа, реквизиты кредитных карт и другие конфиденциальные данные, передаваемые во время онлайн-активностей.
Как работает протокол SSH
Протокол SSH основан на модели клиент-сервер, при которой устройство пользователя (клиент) безопасно подключается к удалённой машине (серверу). Это позволяет пользователям получать доступ к удалённым системам и управлять ими через сеть, даже если это ненадежная сеть, например, общественный WiFi.
Вот подробное описание процесса подключения по SSH:
- Запрос на соединение: Клиент SSH инициирует запрос на подключение к серверу SSH.
- Обмен ключами: Чтобы установить защищенный канал связи, клиент и сервер выполняют алгоритм обмена ключами. Этот процесс безопасно обменивается криптографическими ключами, позволяя обеим сторонам согласовать общий секрет, используемый для шифрования сеанса. Даже если кто-то перехватит данные, они не смогут прочитать их без правильных ключей.
- Аутентификация сервера Клиент проверяет подлинность сервера, сверяя его открытый ключ с известными ключами. Этот шаг предотвращает атаки «злоумышленник посередине» (MITM), гарантируя, что клиент не подключается к вредоносному или поддельному серверу.
- Аутентификация клиента: После того как сервер будет аутентифицирован, клиент должен аутентифицироваться, используя либо пароль, либо пару ключей SSH.
- Установлен зашифрованный сеанс: После успешной аутентификации устанавливается защищенный сеанс. Вся связь во время этого сеанса зашифрована, что гарантирует конфиденциальность, целостность данных и безопасную аутентификацию.
Что такое SSH-туннелирование?
Туннелирование SSH, также известное как проброс портов SSH, — это метод безопасной пересылки сетевого трафика между локальной машиной и удаленной машиной через зашифрованное соединение. Это создает безопасный «туннель», который защищает данные от перехвата или изменения во время передачи. Туннелирование SSH часто используется для безопасного доступа к внутренним или иным недоступным сервисам, обхода межсетевых экранов или добавления шифрования к небезопасным протоколам.
Существует три основных типа переадресации портов SSH:
- Локальная переадресация портов: Перенаправляет порт на локальной машине на порт на удалённой машине через SSH. Это позволяет пользователю получить доступ к удаленному сервису, как если бы он работал локально.
- Удаленная переадресация портов: Перенаправляет порт на удалённой машине на порт на локальной машине. Это позволяет удаленному пользователю получить доступ к сервису, работающему на локальной машине.
- Динамическая переадресация портов: Создаёт локальный прокси-сервер Socket Secure (SOCKS), который может динамически перенаправлять трафик в разные пункты назначения в зависимости от запросов клиента. Он обеспечивает гибкую маршрутизацию сетевого трафика через туннель SSH на уровне приложений.
Распространенные случаи использования протокола SSH
Протокол SSH имеет широкий спектр применения в обеспечении безопасности удаленной связи, передачи файлов и управления доступом. Ниже приведены некоторые из наиболее распространенных и важных случаев использования.
Безопасная передача файлов
Одним из наиболее распространенных случаев использования SSH является безопасная передача файлов между локальной и удалённой системами. SSH обеспечивает зашифрованный канал, который защищает данные при передаче, что делает его идеальным для управления серверами, резервного копирования конфиденциальных данных и обмена документами.
SSH помогает обеспечить безопасную передачу файлов с помощью протоколов Secure File Transfer Protocol (SFTP) и Secure Copy Protocol (SCP). SFTP работает через SSH-соединение и обеспечивает шифрование всех данных в процессе передачи, а не отправляет их в виде открытого текста, как это происходит с протоколом передачи файлов (FTP). SCP — это более простой протокол, чем SFTP, и он ориентирован на копирование файлов из одной системы в другую как более эффективный способ безопасной и быстрой передачи файлов. SSH играет важную роль в безопасной передаче файлов, обеспечивая шифрование и целостность данных через SFTP и SCP.
Управление удаленным доступом
SSH обеспечивает безопасный и зашифрованный удаленный доступ. Это полезно для системных администраторов и ИТ-специалистов, которым необходимо управлять удалёнными системами, не находясь физически на месте расположения сервера. SSH позволяет пользователям удалённо подключаться к машине и проходить аутентификацию для выполнения административных задач без риска несанкционированного доступа. С помощью SSH пользователи могут безопасно управлять серверами и системами из любого места, безопасно передавать файлы и даже получать доступ к внутренним службам через туннелирование.
Обход брандмауэра
SSH-туннелирование — это эффективный способ обойти ограничения брандмауэра и безопасно направлять сетевой трафик через удаленный сервер. Туннелирование SSH может обойти определенный входящий и исходящий трафик, который брандмауэры обычно ограничивают по соображениям безопасности. Это полезно, когда пользователю необходимо получить доступ к службам, которые могут быть заблокированы брандмауэром, например, к внутренним базам данных или веб-приложениям.
Доступ к частной сети
SSH-туннелирование позволяет безопасно получать доступ к внутренним службам и частным сетям, особенно когда эти сети находятся за брандмауэрами или виртуальными частными сетями (VPN), которые блокируют прямой доступ. В отличие от VPN, SSH-туннелирование позволяет пользователям направлять определенные типы трафика через туннель для удалённого доступа к ресурсам частной сети, которые в противном случае были бы недоступны. Предположим, пользователь работает удаленно и ему требуется доступ к базе данных на частном сервере в сети компании. В этом случае они не могут подключиться напрямую из-за межсетевых экранов, блокирующих доступ извне. Для безопасного доступа к базе данных пользователь может настроить SSH-туннель с локальной переадресацией портов, что позволит направлять трафик через доверенный сервер и получать доступ к частной базе данных без ущерба для безопасности.
Доступ к облачным сервисам
Облачные платформы часто размещают приложения и инфраструктуру на удалённых виртуальных машинах. SSH — это стандартный протокол для безопасного взаимодействия с этими средами. SSH позволяет пользователям взаимодействовать с облачными серверами, устанавливать программное обеспечение и устранять неполадки удалённо.
Риски безопасности SSH
Хотя SSH обеспечивает надежную защиту для удаленного доступа и передачи данных, он не лишен потенциальных рисков. К распространенным проблемам безопасности относятся неправильно настроенные элементы управления доступом, не обновлённое программное обеспечение и небезопасное управление ключами.
Неправильно настроенные контроли доступа
Безопасность SSH в значительной степени зависит от корректной настройки. Если механизмы контроля доступа настроены неправильно, это может привести к нарушениям безопасности или атакам методом подбора. Чтобы обеспечить безопасность доступа по SSH, пользователи могут отключить аутентификацию по паролю и вместо этого использовать пары ключей SSH, чтобы снизить риск несанкционированного доступа и потенциальных кибератак.
Необновленное ПО SSH
Одним из наиболее важных аспектов поддержания безопасности SSH является обеспечение частого обновления как серверного, так и клиентского программного обеспечения SSH. Если программное обеспечение SSH не обновляется регулярно, системы могут стать уязвимыми для угроз безопасности, которые киберпреступники могут использовать для получения несанкционированного доступа и компрометации данных. Действуя на опережение и обновляя программное обеспечение SSH, пользователи могут снизить вероятность успешной кибератаки, которая может повредить инфраструктуру SSH.
Небезопасное управление ключами
Аутентификация на основе ключей SSH является значительным преимуществом в области безопасности, но при неправильном управлении ключами она сопряжена с определенными рисками. Скомпрометированные личные ключи могут привести к несанкционированному доступу или эскалации привилегий. Чтобы снизить эти риски, личные ключи следует надежно хранить, защищать сильными парольными фразами и периодически менять. Пользователям также следует избегать передачи личных ключей и тщательно контролировать их распространение.