Open Secure Shell (OpenSSH) является бесплатной (с открытым исходным кодом) реализацией инструментальных средств на базе семейства протоколов SSH, предназначенных для обеспечения сетевых соединений. Эти инструментальные средства предоставляют функции оболочки с возможностью аутентификации и шифрования. Оболочка (shell) – это интерпретатор команд, который читает данные из командной строки, stdin или файла. Зачем надо использовать OpenSSH? При работе в небезопасных публичных сетях – например, Интернете – вместо небезопасных команд telnet, ftp и r-команд можно использовать инструментарий SSH.
Используя OpenSSH можно создавать код, который общается с другими программными компонентами при помощи протоколов SSH1 и SSH2. В чем различие? Протокол SSH2 является улучшенной версией протокола SSH1. SSH2 содержит отдельные многоуровневые протоколы, а SSH1 является монолитом – одним большим фрагментом кода. SSH2 поддерживает RSA- и DSA-шифрование, а SSH1 поддерживает только RSA; SSH2 использует сильную криптографическую проверку целостности, тогда как SSH1 использует только проверку CRC-32. Группа Internet Engineering Task Force (IETF) поддерживает стандарты secure shell.
Что нового в последней версии?
На сайте openssh.org был выложен исходный код обновленной версии OpenSSH. Также эту версию в виде исполняемых файлов можно найти в пакете расширений AIX 5L Expansion Pack and Web Download Pack или загрузить с Web-сайта OpenSSH on AIX. Если необходимо получить больше информации о предыдущей версии OpenSSH (версии 2.9.9), ознакомьтесь со статьей OpenSSH is now bundled with AIX.
Основной новой возможностью является разделение привилегий пользователя: улучшение в безопасности, которое предотвращает рост рисков, связанных с суперпользователем, за счет уменьшения количества кода, который выполняется со специальными привилегиями. Разделение привилегий пользователей по умолчанию активировано в конфигурационном файле сервера OpenSSH /etc/ssh/sshd_config:
#UsePrivilegeSeparation yes |
Разделение привилегий пользователей работает следующим образом: для каждого соединения создается отдельный серверный процесс, и когда приходит запрос от клиента, отслеживающий ssh-монитор процесс запускает непривилегированный дочерний процесс, который и будет обрабатывать все запросы от клиента. Если для обработки запроса клиента требуются привилегии суперпользователя, то этот запрос посылается привилегированному процессу ssh-монитор. При просмотре запущенных процессов SSH можно также увидеть демона sshd процесса, предназначенного для наблюдения, и непривилегированный процесс, принадлежащий клиенту. Более подробная информация по разделению привилегий приведена в статье Нилса Провоса (Niels Provos) за август 2002 г. Preventing Privilege Escalation ("Предотвращение распространения привилегий").
Так как AIX 5.2 является новым релизом операционной системы AIX, специально для нее были скомпилированы исходные коды OpenSSH. Для различия установочных образов AIX 5.2 от AIX 5.1 версия VRMF (Версия. Релиз. Изменение. Исправление – version.release.modification.fix) для версии ОС 5.2 имеет значение 3.4.0.5200. Новое значение VRMF также может быть полезным при переходе с AIX 5.1 на AIX 5.2. OpenSSH компилируется с использованием компилятора C for AIX (cc) версии 5.0. Значение VRMF установочных образов будет близко к версии исходного кода, исключая F (версия исправлений). Версия исправлений будет увеличиваться каждый раз при выпуске версии, содержащей исправления ошибок предыдущей версии. Например, если добавить к программному коду версии 3.4p1 патч от версии открытого программного кода 3.5, F увеличится (например, 3.4.0.5201).
Начиная с первой версии 2.9.9 в апреле 2002 г., в исходный код OpenSSH была добавлена возможность локализации (National Language Support (NLS). В версии от октября 2002 г. файлы каталога сообщений openssh.cat были переведены на 35 языков. Файлы каталога сообщений упакованы в формате installp с именем openssh.msg.<LANGUAGE_ABBREVIATION>, где LANGUAGE_ABBREVIATION является кодом страны, состоящим из четырех символов (например, DE_DE это UTF German). Комплект файлов каталогов, запакованный в файл .tar.Z, находится в AIX 5L Expansion Pack and Web Download Pack. При установке различных локализаций наборов файлов OpenSSH установочная программа installp определит корректную версию набора файлов каталогов сообщений, которую нужно установить, и скопирует переведенный файл каталога сообщений в /usr/lib/nls/msg/<LANGUAGE_ABBREVIATION>.
Дополнительные исправления в этой версии
В исполняемые файлы последней версии OpenSSH 3.4p1 были включены несколько пакетов исправлений, специально для AIX взятых с Web-сайта openssh.org. Эти пакеты исправлений нужны для следующих задач:
- принудительная смена пароля,
- обновление файлов
/etc/security/loginиfailedlogin, - обновление счетчика неудачных входов в систему,
- установка переменной окружения LOGIN,
- потоковая передача большого количества данных теперь не приводит к зависанию сеанса работы (пользователя с системой).
Так как AIX 5.2 полностью поддерживает подключаемые модули аутентификации (Pluggable Authentication Modules, PAM), OpenSSH 3.4.0.5200 был скомпилирован с поддержкой PAM. PAM является платформой, в которой системный администратор, изготавливая свои собственные модули и настраивая систему для их использования, может добавлять или располагать в стеке несколько различных модулей аутентификации. В AIX 5.2 платформа PAM состоит из библиотеки, подключаемых модулей и конфигурационного файла. Поскольку OpenSSH компилируется с PAM, конфигурационный файл /etc/pam.conf будет создан на сервере при установке пакета openssh.base.server.
Стандартным PAM-модулем является pam_aix, предоставляемый операционной системой AIX (на AIX 5.2 этот модуль автоматически устанавливается в /usr/lib/security). Модуль pam_aix, предоставляя доступ к встроенным функциям AIX – например, pam_aix authentication(), – позволяет обращаться к службам безопасности AIX. Файл /etc/pam.conf для OpenSSH будет выглядеть подобным образом:
sshd auth required /usr/lib/security/pam_aix OTHER auth required /usr/lib/security/pam_aix sshd account required /usr/lib/security/pam_aix OTHER account required /usr/lib/security/pam_aix sshd password required /usr/lib/security/pam_aix OTHER password required /usr/lib/security/pam_aix sshd session required /usr/lib/security/pam_aix OTHER session required /usr/lib/security/pam_aix |
Для файла /etc/pam.conf должны быть установлены полномочия 644.
Работа криптографических приложений основана на случайных числах. Если случайные числа не являются истинно случайными и не защищены при генерации, безопасность шифрования может быть слабой.
OpenSSH на AIX 5.1 скомпилирован при помощи механизма накопления энтропии (случайные числа), доступного в исходном коде OpenSSH (ssh-rand-helper), в противоположность AIX 4.3.3 (AIX Linux Toolbox), в которой использовался демон с открытым исходным кодом PRNGD (prngd-0.9.23-3.aix4.3.ppc.rpm package).
Основные средства безопасности AIX 5.2 предоставляют новые генераторы псевдослучайных чисел – /dev/random и /dev/urandom, драйвер псевдоустройства и конфигурационные подпрограммы, которые используют различные аппаратные прерывания для создания энтропии. OpenSSH в AIX 5.2 скомпилирован для наилучшего использования нового компонента – /dev/urandom. Также для OpenSSH, чтобы использовать /dev/urandom, понадобится последняя версия OpenSSL openssl-0.9.6e-2.aix4.3.ppc.rpm (AIX Linux Toolbox).
- В наборе файлов OpenSSH содержатся страницы руководства man
openssh.man.en_US. - Хорошо написанные страницы руководства man доступны в Интернете, на сайте проекта openBSD.
- Инструкции по установке различных версий AIX (AIX 4.3.3, AIX 5.1 и AIX 5.2) приведены в книге Managing AIX Server Farms ("Управление фермой серверов AIX"). Глава 4.2 содержит информацию о необходимом ПО и о том, как управлять OpenSSH-сервером и использовать команды клиентов.
- Информация по AIX и PAM содержится в AIX 5.2 Security Guide ("Руководство по безопасности AIX 5.2").
Пакеты программ для компоновки
Следующие четыре инсталляционных пакета содержат файлы формата installp:
openssh.base
| Содержит исполняемые файлы для клиентской и серверной части secure shell. В данном файле содержатся два различных набора файлов, openssh.base.client и openssh.base.server. По одиночке можно установить только клиентскую часть; при установке серверной части будет автоматически установлена и клиентская часть. |
openssh.license
| Текст лицензии Limited Program Services. Этот набор файлов гарантирует, что перед установкой ПО будет прочтена и принята лицензия. |
openssh.man.en_US
| С исходным кодом от openssh.org поставляются страницы руководства man. Эти страницы руководства установлены в каталог /usr/share/man и могут быть просмотрены при помощи команды man. В данном пакете находятся man-страницы для каждой команды OpenSSH и конфигурационные файлы ssh_config и sshd_config. |
openssh.msg.<LANGUAGE_ABBREVIATION>
| Переведенный файл каталога сообщений. К локализации операционной системы имеет отношение только набор файлов .msg. |
Инсталляционные пакеты содержат сценарии, необходимые для установки исполняемых файлов в нужные каталоги.
Следующие файлы из набора файлов openssh.base.client устанавливаются в /usr/bin:
ssh scp sftp ssh-add ssh-keygen ssh-keyscan ssh-agent ssh-keysign ssh-rand-helper |
Следующие файлы из набора файлов openssh.base.server устанавливаются в /usr/sbin:
sshd sftp-server |
Следующие конфигурационные файлы устанавливаются в /etc/ssh:
ssh_config sshd_config |
Для работы сервера в версии программного кода 3.4p1 по ходу процесса компоновки создаются sshd-пользователь, группа и каталог /var/empty. При компоновке также активируется возможность SRC-управления демоном, создаются ключи хоста и проверяются необходимые для OpenSSL предварительные требования перед установкой.
- Примите участие в обсуждении материала на форуме.
-
Get the latest version of OpenSSH for AIX (EN): оригинал статьи.
-
Preventing Privilege Escalation (EN) (Niels Provos, август 2002 г.) статья о предотвращении распространения привилегий.(EN)
- Загрузите пакет opensshi-aix с Web-сайта OpenSSH on AIX(EN).
-
AIX 5L Expansion Pack and Web Download Pack: дополнительная информация об этом пакете.(EN)
-
Страницы руководства man для openBSD.(EN)
-
AIX and UNIX: на странице developerWorks можно найти разнообразную информацию, относящуюся ко всем аспектам системного администрирования AIX и помогающую усовершенствовать квалификацию работы с UNIX.(EN)
-
developerWorks
technical events and webcasts: последние новости о событиях и Web-трансляциях сообщества developerWorks.(EN)
-
Podcasts: аудиозаписи презентаций экспертов IBM.(EN)
-
Новичок в AIX и UNIX?: страница AIX и UNIX для новичков.
-
AIX 5L Wiki: совместная разработка документации AIX.(EN)
-
Safari bookstore: сайт магазина книг по ИТ.(EN)
-
IBM trial software: ознакомительные версии программного обеспечения для разработчиков, которые можно загрузить прямо со страницы сообщества developerWorks.(EN)
-
Примите участие в форумах AIX и UNIX:(EN)
- Управление кластерными системами
- Поддержка IBM
- Производительность — технический форум
- Виртуализация — технический форум
- Участие в блогах developerWorks - прекрасная возможность для участия в деятельности developerWorks.(EN)
Дениз Дженти является разработчиком и начальником группы разработки сетевой безопасности AIX. Кроме того, она участвует в разработке AIX вот уже 12 лет. Сейчас она работает над проектами RADIUS, IP Security и Open Secure Shell. Дениз обладает степенью бакалавра в области компьютерных наук, полученной в Университете Техаса (Texas A&M University). Связаться с ней можно по электронной почте genty@us.ibm.com.