Протокол SSH
Для обеспечения безопасности передачи данных между компьютерами сети, удаленной работы и администрирования операционной системы был разработан сетевой протокол семейства TCP/IP — SSH (Secure Shell — «безопасная оболочка»).
По своим функциям SSH схож с подобными протоколами Telnet и rlogin, но его отличает повышенный уровень шифрования трафика и возможность безопасно использовать любой другой протокол. Модификации SSH (сервер, клиент) доступны для многих операционных систем.
Существует два вида протоколов SSH-1 и SSH-2. Основное их отличие в использовании трех внутренних протоколов — транспортного уровня, соединения и аутентификации. В SSH-1 они объединены в один неделимый протокол, а в SSH-2 они разделены на отдельные модули, что делает последний более гибким и надежным сервисом создания безопасных связей.
Механизм обеспечения безопасности данных протоколом SSH
Приложения клиента посылают запросы на открытие сессии определенному порту сервера. Сервисы прослушивают специфические запросы, отправленные, как правило, прямым текстом, и реагируют нужным образом.
Наиболее часто используемые порты – это FTP (21), SMTP (25), HTTP (80), TELNET (23). Протокол SSH создает «безопасную оболочку» таким подключениям, перенаправляя пакеты на 22 порт (обслуживаемый SSH), где преобразовывает, шифрует и инкапсулирует данные.
Сам протокол является достаточно гибким, и предоставляет пользователю множество механизмов защиты данных.
Применение протокола SSH
Область применения протокола SSH практически неограничена. Исходя из его основной функции — удаленного входа в операционную систему, протокол используют:
- системные администраторы для удаленной настройки компьютеров локальной сети;
- для настройки почтовых служб (повышает безопасность данных);
- для скрытого обмена внутри сети массивными файлами;
- для интернет-игр.
Функции надежного шифрования, сжатия, аутентификации и системы контроля данных, реализуемые протоколом SSH-2, позволяют использовать его для сокрытия и защиты от внешних атак передаваемой информации, сократить количество используемого трафика, снизить нагрузку на центральный процессор за счет создания многопоточного соединения через порт SSH.
На сегодняшний день протокол SSH-2 является наиболее надежным соединением для удаленного доступа. Однако развитие технологий дает возможность хакерам находить уязвимые места в любом протоколе и наносить ощутимый вред атакуемым объектам.
Безопасный сетевой протокол SSH, основное
SSH ( Secure Shell — Защищенная оболочка ) — это сетевой протокол, обеспечивающий защищенную аутентификацию, соединение и безопасную передачу данных между хостами сети, путем шифрования, проходящего через него трафика, с возможной компрессией данных. Еще одной важной функциональной особенностью, является возможность создания защищенных, шифрованных туннелей, для безопасной передачи через небезопасную среду ( например интернет ), других сетевых протоколов, так-же с возможность сжатия трафика. Кроме того протокол SSH отлично работает с форвардингом ( переадресация, перенаправление ) портов одной машины на порты другой в том числе и форвардинг удаленных клиентов XWindow. Сейчас протокол SSH, является стандартом, и широко используется, например, для удаленного администрирования серверных систем, то есть выполнения различных команд и манипуляций в оболочке сервера через безопасное соединение, копирования файлов через сеть, вроде резервных копий данных.
- Протокол SSH, версии 1 DES, 3DES, blowfish
- Протокол SSH, версии 2 AES-128, AES-192, AES-256, blowfish, CAST-128, ArcFour
- Протокол SSH, версии 1 нет
- Протокол SSH, версии 2 HMAC-MD5, HMAC-SHA-1, HMAC-RIPEMD
Способы аутентификации по протоколу SSH, состав программного пакета OpenSSH
- Шифрование всего трафика, проходящего через SSH соединение, выполняемое по одному из возможных алгоритмов, выбираемых в процессе переговоров сторон сеанса связи. Шифрование трафика соединения, препятствует его перехвату и использованию в злонамеренных целях. За счет выбора различных алгоритмов шифрования, систему становится очень гибкой, позволяя, например, не использовать алгоритмы, в которых были обнаружены уязвимости или потенциальные угрозы безопасности, или использовать только те алгоритмы, которые поддерживаются каждой из сторон;
- Аутентификация SSH сервера производится всегда, при любом соединении, что не позволяет подменить трафик или сам сервер;
- Аутентификация SSH клиента может происходить различными способами, что, с одной стороны, делает сам процесс аутентификации более безопасным, с другой, делает систему еще более гибкой, упрощая работу с ней;
- Контроль целостности сетевых пакетов, дает возможность отследить незаконные изменения трафике соединения, в случае обнаружения данного факта, соединение обрывается незамедлительно;
- ВременнЫе параметры аутентификации, предотвращают возможность использования перехваченных и через некоторое время, расшифрованных данных соединения.
- GSSAPI-based аутентификация
- Host-based аутентификация;
- Аутентификация пользователя с помощью публичного ключа;
- Аутентификация «вызов-ответ» ( challenge-response );
- Ну и наконец обычная аутентификация пользователя, по паролю;
- sshd — это собственно SSH сервер, программа-демон;
- ssh — программа-клиент, ставшая заменой для rlogin и telnet;
- scp — программа для удаленного копирования через протокол SSH, замена для rcp;
- sftp — безопасный ftp-клиент;
- sftp-server — подсистема обеспечивающая передачу файлов через протоколу SSH;
- ssh-keygen — генератор ключей
- ssh-keyscan — «сборщик» публичных ключей хостов;
- ssh-agent — агент аутентификации, для удержания приватных ключей;
- ssh-add — небольшая программа для добавления ключей в ssh-agent;
Естественно этого можно и не делать, а просто запустить демон с консоли /usr/sbin/sshd, но при следующей перезагрузке, он сам по себе не запустится, соответственно доступа к серверу по протоколу SSH у вас не будет, ну а если сервер стоит в дата-центре хостинг провайдера, то и удаленно администрировать его, вы не сможете. По этой причине, если предполагается удаленное администрирование сервера, sshd включается на этапе установки.