Безопасный сетевой протокол SSH, основное
SSH ( Secure Shell - Защищенная оболочка ) -- это сетевой протокол, обеспечивающий защищенную аутентификацию, соединение и безопасную передачу данных между хостами сети, путем шифрования, проходящего через него трафика, с возможной компрессией данных. Еще одной важной функциональной особенностью, является возможность создания защищенных, шифрованных туннелей, для безопасной передачи через небезопасную среду ( например интернет ), других сетевых протоколов, так-же с возможность сжатия трафика. Кроме того протокол SSH отлично работает с форвардингом ( переадресация, перенаправление ) портов одной машины на порты другой в том числе и форвардинг удаленных клиентов XWindow.
Сейчас протокол SSH, является стандартом, и широко используется, например, для удаленного администрирования серверных систем, то есть выполнения различных команд и манипуляций в оболочке сервера через безопасное соединение, копирования файлов через сеть, вроде резервных копий данных.
Протокол SSH, существует в двух вариантах, коммерческая версия, разрабатываемая SSH inc, и бесплатная, с открытым исходным кодом, OpenSSH, которая в основном и используется на большинстве серверных платформ. Реализация OpenSSH, есть в любой операционной системе семейства Unix, и в большинстве из них, SSH сервер и SSH клиент, являются стандартными утилитами. Все ниже написанное будет касаться OpenSSH и операционной системы FreeBSD.
Существуют две версии протокола SSH, не совместимые между собой. Первая реализация протокола SSH, SSH - 1, была разработана в 1995 году. Вторая версия, SSH - 2, выпущена в 1996 году. В 2006 году, протокол SSH был принят ассоциацией IETF в качестве интернет стандарта.
Сейчас повсеместно используется именно вторая версия протокола SSH, поскольку во-первых, протокол SSH версии 1, страдал серьезными уязвимостями, во вторых в версия 2 использует более мощные алгоритмы шифрования, кроме того поддерживает возможность обнаружения умышленного искажения данных.
Алгоритмы шифрования:
- Протокол 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 сервера производится всегда, при любом соединении, что не позволяет подменить трафик или сам сервер;
- Аутентификация 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;
sshd_enable="YES"Естественно этого можно и не делать, а просто запустить демон с консоли /usr/sbin/sshd, но при следующей перезагрузке, он сам по себе не запустится, соответственно доступа к серверу по протоколу SSH у вас не будет, ну а если сервер стоит в дата-центре хостинг провайдера, то и удаленно администрировать его, вы не сможете. По этой причине, если предполагается удаленное администрирование сервера, sshd включается на этапе установки.
Комментарии
Отправить комментарий