SSH

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

По своим функциональным особенностям и конфигурации SSH имеет отдаленное сходство с такими протоколами, как telnet и rlogin. Его основным отличием от аналогов является шифрование всего передаваемого трафика, а не отдельных его фрагментов.

Важной особенностью SSH специалисты считают расширенные возможности данного протокола, в частности, его способность передачи любого сетевого протокола через специализированный шифрованный канал связи. Благодаря этому у пользователя появляется не просто возможность удаленно работать на личном ПК, но и передавать текстовые, графические, аудио- и видеопотоки по защищенному шифрованному каналу.

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

Версии SSH-протокола

В настоящий момент известны две рабочие версии протокола SSH:

  1. SSHv1. Версия 1995 года, сейчас фактически не используется из-за наличия серьезных недостатков в реализации, наиболее подвержена взлому виртуальными злоумышленниками.

    Так, например, в культовом фильме «Матрица: Перезагрузка» показана вполне достоверная с технической точки зрения сцена, в которой Тринити взламывает электростанцию. С помощью программы Nmap она находит открытый порт SSH (22 — порт, на котором по умолчанию работает серверная часть SSH), затем запускает эксплойт SSHNuke. Через уязвимость первой версии протокола SSHv1 CRC32 она получает права суперпользователя (root), меняет пароль на свой и отключает электростанцию.

  2. SSHv2. Запущена спустя год после первой версии и является современной модификацией сетевого протокола, устойчивой к агрессивным атакам "man-in-the-middle", благодаря которой злоумышленники не смогут «прослушивать» трафик пользователя.

    Еще один уровень защиты второй версии — максимальная степень устойчивости к несанкционированному доступу путем «серединного» подсоединения (например, session hijacking), а также к приему подмены серверных имен (DNS spoofing).

Из вышеизложенного можно сделать вывод, что использование сетевого протокола SSH-2 является единственно приемлемым с точки зрения безопасности и сохранности конфиденциальной информации.

Архитектура протокола SSH

Протокол SSH включает в себя 3 уровня:

  • протокол транспортного уровня — используется для аутентификации сервера при запуске системы и для обеспечения конфиденциальности и целостности данных. Реализация технологии происходит поверх соединения TCP/IP;
  • протокол аутентификации — предназначен для обеспечения аутентификации пользователя для сервера при его первичном запросе;
  • протокол соединения — используется для обеспечения работы отдельных логических каналов поверх единого SSH-соединения.

Как работает протокол SSH

Подключение к удаленному компьютеру по SSH происходит с помощью командного интерпретатора (shell). Во время SSH-сессии все команды, введенные на вашем локальном устройстве (SSH-клиент), будут отправляться через зашифрованный туннель и выполняться на удаленной машине (SSH-сервере). Для этого на ней должно быть запущено специальное ПО — SSH daemon, прослушивающее конкретный сетевой порт, производящее аутентификацию пользователя и предоставляющее ему доступ при удачной авторизации.

Для работы SSH-протокола на локальном компьютере должен быть установлен SSH-клиент, имеющий информацию для успешной аутентификации и авторизации. По умолчанию клиент SSH (обычно это OpenSSH) установлен в большинстве дистрибутивов Linux и других UNIX-подобных систем, но для Windows требуется установить отдельное приложение. Наиболее популярное — Putty, имеющее интерфейс командной оболочки Linux.

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

Пара из открытого и закрытого ключа создается с помощью утилит puttygen (если используется Putty) или ssh-keygen (если используется OpenSSH). Открытый ключ хранится на сервере, а закрытый — на устройстве пользователя.

Параметры безопасности

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

Во-первых, подключение с правами суперпользователя (root) и подключение с пустым паролем должны быть запрещены.

Во-вторых, настоятельно рекомендуется изменить стандартный 22 порт SSH-сервера на любой нестандартный. Также хорошей защитой от злоумышленников является закрытие порта (port knocking) — технология, при которой все порты сервера закрыты для подключения, а доступ осуществляется путем установленной последовательности пересылки IP-пакетов.

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

Этими параметрами настройка безопасного SSH-подключения не ограничивается, здесь приведены лишь базовые сведения. Существует еще множество настроек, предназначенных для того чтобы сделать протокол SSH по-настоящему безопасным методом подключения к удаленному серверу (например, арендованному или размещенному в дата-центре, VPS/VDS, виртуальной машине в облаке и т.п.) через небезопасную среду (Интернет).

Для реализации основных услуг и функций нашего сайта, а также для сбора данных о том, как посетители взаимодействуют с нашими сайтом, продуктами и услугами, мы применяем различные инструменты, включая файлы cookie. Нажимая «Принимаю», вы соглашаетесь с текущими правилами и условиями использования сайта и даете разрешение на использование этих данных. В противном случае, пожалуйста, покиньте сайт.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: