SSH (англ. Secure SHell — «безопасная оболочка») — сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.
SSH позволяет безопасно передавать в незащищенной среде практически любой другой сетевой протокол. Таким образом, можно не только удаленно работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удаленного запуска клиентов X Window System.
SSH — это протокол сеансового уровня. SSH-сервер обычно прослушивает соединения на TCP-порту 22. Спецификация протокола SSH-2 содержится в RFC 4251. Для аутентификации сервера в SSH используется протокол аутентификации сторон на основе алгоритмов электронно-цифровой подписи RSA или DSA, но допускается также аутентификация при помощи пароля (режим обратной совместимости с Telnet) и даже ip-адреса хоста (режим обратной совместимости с rlogin). Аутентификация по паролю наиболее распространена; она безопасна, так как пароль передается по зашифрованному виртуальному каналу. Аутентификация по ip-адресу небезопасна, эту возможность чаще всего отключают. Для шифрования передаваемых данных используется симметричное шифрование, алгоритмы AES, Blowfish или 3DES. Целостность переданных данных проверяется с помощью CRC32 в SSH1 или HMAC-SHA1/HMAC-MD5 в SSH2.
Пример использования SSH
Команда подключения к локальному SSH-серверу из командной строки GNU/Linux или FreeBSD для пользователя pacify (сервер прослушивает нестандартный порт 30000):
$ ssh -p 30000 pacify@127.0.0.1
Генерация пары SSH-2 RSA-ключей длиной 4096 бита программой puttygen под UNIX‐подобными ОС:
$ puttygen -t rsa -b 4096 -o sample
Некоторые клиенты, например, PuTTY, имеют и графический интерфейс пользователя , что удобно при доступе к удаленному серверу из под ОС Windows.
Рекомендации по безопасности использования SSH
- Запрещение удаленного root-доступа.
- Запрещение подключения с пустым паролем или отключение входа по паролю.
- Выбор нестандартного порта для SSH-сервера.
- Использование длинных SSH2 RSA-ключей (2048 бит и более). Системы шифрования на основе RSA считаются надёжными, если длина ключа не менее 1024 бит.
- Ограничение списка IP-адресов, с которых разрешен доступ (например, настройкой файервола).
- Запрещение доступа с некоторых потенциально опасных адресов.
- Отказ от использования распространенных или широко известных системных логинов для доступа по SSH.
- Регулярный просмотр сообщений об ошибках аутентификации.
- Установка систем обнаружения вторжений (IDS — Intrusion Detection System).
- Использование ловушек, подделывающих SSH-сервис (honeypots)
Материал взят с wikipedia.org
К разделу Статьи и заметки
|