THELOCALHOST.RU
SSH
SSH (от английского Secure SHell, обозначающего «безопасная оболочка») – шифрующий данные сетевой протокол, работающий на сеансовом уровне. Позволяет удаленно управлять операционной системой и туннелировать ТСР-соединения.
Он очень похож на протоколы Telnet и Rlogin, но является более защищенным вследствие использования полного шифрования передаваемых данных. SSH обладает возможностью передачи внутри себя любых других протоколов, к примеру, видео- или звуковой поток, а также любые другие данные. При соответствующей настройке SSH-протокол позволяет осуществлять сжатие данных, что зачастую приводит к существенной экономии трафика.
Первый протокол SSH под названием SSH-1, был создан в 1995 году в Финляндии Тату Улененом из Технологического института Хельсинки. Необходимость его создания обосновывалась тем, что существующие на тот момент протоколы абсолютно не обеспечивали защиту передаваемых данных и при наличии соответствующего программного обеспечения типа сниффера злоумышленник мог очень легко завладеть конфиденциальной информацией пользователей сети.
В 1996 году была создана версия протокола SSH-2, которая не имела совместимости с SSH-1 и имела гораздо лучшие алгоритмы защиты. Протокол SSH-2 используется и в наше время и под названием SSH-протокол обычно подразумевают именно SSH-2, так как первая версия его вследствие обнаруженных недостатков практически не применяется нигде. В качестве стандарта при защищенной передаче данных протокол SSH был утвержден в 2006 году.
Реализаций протокола SSH существует две: коммерческая и свободная. Свободная называется OpenSSH. Около 80% компьютеров в сети используют именно бесплатную реализацию OpenSSH. Платная же версия разрабатывается корпорацией SSH и является в случае ее некоммерческого использования также бесплатной. Различия в реализациях протокола SSH довольно мизерные, набор команд практически идентичен.
Сети SSH чаще всего взламываются путем сканирования сети на наличие открытых SSH-портов, а потом путем брутфорса, социальной инженерии и других методов злоумышленник старается подобрать пароль рута-администратора.
Протокол SSH является устойчивым к атакам по прослушиванию (сниффингу) трафика и к атакам включения в сессию, то есть если сессия установлена, ее перехватить и расшифровать уже невозможно, но атакам man-in-the-middle данный протокол все-таки к сожалению является подверженным. При проведении данного типа атак подбирается слепок ключа сервера и сервер таким образом попадает под полное управление злоумышленника. Для предотвращения данного типа атак используют довольно элементарные меры безопасности: слепки ключа сервера не должны передаваться по открытым каналам доступа и быть незашифрованными.
Во всех UNIX-подобных операционных системах поддержка SSH представлена в виде как серверных, так и клиентских утилит. Для других операционных систем также разработано довольно много утилит-реализаций SSH. Свою популярность протокол SSH обрел после того, как в открытом доступе появились и стали широко используемыми программы-снифферы и вследствие их использования возникшие проблемы безопасности и факты неоднократного взлома тех или иных узлов сети.
Если объяснять по-простому, то для работы по протоколу SSH требуется наличие SSH-сервера и SSH-клиента. SSH-сервер осуществляет прослушивание соединения. SSH-клиент позволяет осуществлять вход на удаленный компьютер и выполнять на нем определенные команды. При установке связи между SSH-сервером и SSH-клиентом происходит аутентификация, и в случае ее успешного завершения начинается обмен командами и данными. Для создания соединения и на сервере, и на клиентской машине создаются две пары ключей – открытых и закрытых, после чего осуществляется обмен открытыми ключами, но не просто так, а по паролю.
Какие же существуют рекомендации по безопасному использованию протокола SSH на сервере? Их несколько:
- Запретите удаленный root-доступ.
- Не отключайте доступ без пароля или с пустым паролем.
- Выберите нестандартный порт SSH.
- Используйте для шифрования длинные RSA-ключи (длиной 2048 бит и более).
- Ограничьте список IP-адресов, с которых будет разрешен доступ. Это осуществляется настройками файервола.
- Не используйте популярные и простые логины и пароли.
- Регулярно просматривайте логии об ошибках аутентификации, в них зачастую присутствует информация о попытках взлома и подбора пароля к Вашей системе.
- Установите интеллектуальную систему обнаружения вторжений.
- Чаще используйте ловушки, которые подделывают SSH-сервисы.
На этом мы заканчивает рассмотрение такой интересной темы, как протокол SSH, серверы и клиенты, работающие на его основе