Open Secure Shell (OpenSSH) - свободно распространяемая реализация протокола SSH с открытым кодом. SSH широко используется по всему миру для обеспечения сетевой безопасности. Он устраняет возможность прослушивания или перехвата данных путем шифрования сетевого трафика между двумя машинами. OpenSSH также предоставляет множество механизмов аутентификации для дополнительной безопасности.
Kerberos - это популярный механизм аутентификации, предоставляющий безопасные средства для аутентификации сетевых пользователей. Он поддерживается OpenSSH. Kerberos предотвращает передачу паролей открытым текстом через сеть при помощи шифрования идентификационных пакетов между клиентом и сервером. Kerberos также предоставляет систему аутентификации в форме административных меток administering token или мандатов credentials. Пакет программ OpenSSH (openssh-3.8.p1) для IBM AIX® версии 5.3 поставляется вместе на компат-дисках AIX версии 5.3 Expansion Pack CD. OpenSSH версии 3.8 и более поздние версии поддерживают аутентификацию и авторизацию Kerberos 5 с помощью версии IBM Kerberos, известной также как IBM Network Authentication Service (IBM NAS) версии 1.4. IBM NAS Version 1.4 для AIX записан на тех же компакт-дисках из набора AIX версии 5.3 Expansion Pack CD.
Служба Microsoft® Active Directory является ключевым компонентом платформы Windows® и предоставляет множество средств для управления сетью и аутентификацией. Kerberos - это неотделимая часть реализации Windows Active Directory, кроме того он широко используется на предприятиях как центр распределения ключей Key Distribution Center (KDC) для Kerberos. Служба Microsoft Active Directory может быть сконфигурирована и установлена на Windows Server 2003 или Windows Server 2000.
Данная статья рассмотрит все процедуры, необходимые для настройки OpenSSH для работы с Kerberos на компьютерах с AIX версии 5.3 для использования ими сервера Microsoft Active Directory как центра KDC. Эта статья предназначена для облегчения жизни администраторов, работающих в гетерогенной среде с решениями от разных производителей, в том числе системах с AIX 5.3 и серверами Microsoft Active Directory.
Для успешного выполнения сценария, изложенного в этой статье, необходимо иметь установленный и запущенный Microsoft Active Directory Domain с поддержкой Kerberos. Также нужно настроить клиент AIX IBM NAS версии 1.4 для связи с ним.
OpenSSH и Kerberos (IBM NAS) на AIX версии 5.3
В этом разделе описываются требования для установки и настройки Kerberos и OpenSSH на сервере AIX и клиентских машинах. Оба продукта - OpenSSH и Kerberos - поставляются в составе AIX версии 5.3 Expansion Pack Cds. Перед установкой OpenSSH необходимо установить пакет Open Secure Sockets Layer (OpenSSL), который содержит необходимые для шифрования библиотеки. OpenSSL входит в состав RPM-пакетов, поставляемых на AIX Toolbox for Linux® Applications CD. Также можно скачать эти пакеты со страницы AIX Toolbox for Linux Applications (см. раздел Ресурсы).
После того как OpenSSL записан в локальный каталог на компьютер с AIX версии 5.3 (/tmp в данном случае), для его инсталляции нужно ввести следующую команду:
# geninstall -d/tmp R:openssl-0.9.6m
|
Установить OpenSSH можно одним из следующих методов:
smitty->Software Installation and Maintenance->Install and
Update Software->Install Software
|
или
# geninstall -I"Y" -d/dev/cd0 I:openssh.base
|
Теперь надо установить клиент IBM NAS версии 1.4 и настроить его на Kerberos realm (Active Directory domain), управляемый сервером Microsoft Active Directory и работающий как KDC. Детали установки и настройки клиента IBM NAS, а также его настройки для работы с сервером Microsoft Active Directory можно найти в статье AIX "Configuring AIX 5L for Kerberos Based Authentication Using Windows Kerberos Service" (см. раздел Ресурсы).
После успешной установки и настройки клиента IBM NAS нужно настроить OpenSSH для работы с Kerberos аутентификацией.
Отредактированный файл /etc/services должен содержать следующие строки:
kerberos 88/udp kdc # Kerberos V5 KDC
kerberos 88/tcp kdc # Kerberos V5 KDC
kerberos-adm 749/tcp # Kerberos 5 admin/changepw
kerberos-adm 749/udp # Kerberos 5 admin/changepw
|
Нужно снять комментарии со следующих строк в /etc/ssh/sshd_config для аутентификации в SSH через Kerberos:
KerberosAuthentication yes
KerberosTicketCleanup yes
# GSSAPI options
GSSAPIAuthentication yes
|
Запустим сервер SSH следующей командой:
#startsrc -g ssh
|
Проверим, что SSH сервер запустился, используя команду:
#ps -ef|grep ssh
|
"Керберизация" OpenSSH на AIX версии 5.3 с использованием службы Windows Kerberos
Данный раздел описывает настройку SSH, который поддерживает Kerberos, сконфигурирован для компьютеров AIX версии 5.3, использующих сервер Microsoft Active Directory, и функционирует как KDC.
Подразумевается, что Microsoft Active Directory Domain с поддержкой Kerberos и клиент AIX IBM NAS версии 1.4 для него уже установлены и настроены. Детали установки и настройки клиента IBM NAS а также его настройки для работы с сервером Microsoft Active Directory можно найти в руководстве IBM NAS версии 1.4 Administration Guide (поставляется на AIX версии 5.3 Expansion Pack CD) и в статьях IBM в разделе Ресурсы.
Информацию по установке и настройке сервера Microsoft Active Directory можно найти в соответствующей документации Microsoft по Microsoft Active Directory Server.
В примере мы будем использовать следующие определения:
Kerberos Realm Name / Domain Name
MSKERBEROS.IN.IBM.COM
KDC (Windows Active Directory Server)
hostname: windce20.in.ibm.com, OS: Windows 2003 Server
SSH Server (sshd)
hostname: aixdce16.in.ibm.com, OS: AIX Version 5.3
SSH Client
hostname: aixdce20.in.ibm.com, OS: AIX Version 5.3
IBM NAS 1.4 Client
hostname: aixdce16.in.ibm.com, OS: AIX Version 5.3 &
hostname: aixdce20.in.ibm.com, OS: AIX Version 5.3
|
На рисунке 1 показана конфигурация из примера.
Рисунок 1. Конфигурация из примера
Для настройки Kerberos в SSH на AIX-компьютерах с клиентами IBM NAS, работающими с сервером Microsoft Active Directory, необходимо выполнить следующие шаги.
- Создать нового пользователя на сервер Windows Active Directory, используя инструмент Active Directory Management, для SSH сервера, запущенного на AIX-компьютере. В нашем примере это aixdce16.in.ibm.com.
- Нужно открыть диалоговое окно для создания новых пользователей и заполнить следующие поля:
- First Name = aixdce16.in.ibm.com
- Full Name = aixdce16.in.ibm.com
- User logon Name = aixdce16.in.ibm.com
- User logon Name (pre-Windows 2000) = aixdce16.in.ibm.com
- Ввести Password и поставить нужные флажки.
- Нажать Finish для завершения создания пользователя.
- Используя команду
Ktpassна Windows Server 2003 (windce20.in.ibm.com) создать файл krb5.keytab и настроить учетную запись пользователя для AIX компьютера (aixdce16.in.ibm.com):Ktpass -princ host/aixdce16.in.ibm.com@MSKERBEROS.IN.IBM.COM -mapuser aixdce16.in.ibm.com -pass !sandeep17! -out c:\krb5.keytab
- Скопировать созданный на предыдущем шаге файл krb5.keytab на AIX-компьютер (в нашем примере - copy/ftp на aixdce16.in.ibm.com) в каталог /tmp, объединить скопированный файл (/tmp/krb5.keytab) с файлом /etc/krb5/krb5.keytab. Нужно проверить, содержит ли полученный файл (/etc/krb5/krb5.keytab) необходимую запись для сервера Kerberos с правильной версией, и затем запустить SSH-сервер на AIX-компьютере (aixdce16.in.ibm.com), как показано ниже.
Листинг 1. Настройка файла keytab на AIX
# hostname aixdce16 # ktutil ktutil: rkt /tmp/krb5.keytab ktutil: wkt /etc/krb5/krb5.keytab ktutil: q # kvno host/aixdce16.in.ibm.com kvno = 1 # klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- --------- 1 host/aixdce16.in.ibm.com@MSKERBEROS.IN.IBM.COM # startsrc -g ssh 0513-059 The sshd Subsystem has been started. Subsystem PID is 22698.
Нужно проверить, что версия ключа, полученная командой
kvno, совпадает с версией, показываемой при вызове командыklist -kдля записи host/<hostname>. Если они не совпадают - необходимо добавить новую запись для host/<hostname> с нужной версией в файл keytab. - Создать нового пользователя на сервере Windows Active Directory, используя инструмент Active Directory Management, с именем, совпадающим с именем пользовательской записи на AIX компьютере. В нашем примере это
sandeep- пользователь, имеющийся на обоих AIX-компьютерах. Для информации смотрите первый шаг о создании пользовательской записи на сервере Windows Active Directory.
Теперь можно протестировать установленную систему и использовать SSH с Kerberos.
- Зайти на aixdce20.in.ibm.com (клиент SSH) как пользователь sandeep.
- Инициализировать Kerberos для пользователя sandeep командой
kinit. - Подключиться при помощи SSH на
sshна aixdce16.in.ibm.com запущенный SSH-сервер.
В листинге 2 приведен сеанс работы на aixdce20.in.ibm.com, в результате которого устанавливается безопасное SSH-соединение с aixdce16.in.ibm.com с использованием Kerberos как аутентификационного механизма и сервера Microsoft Active Directory как KDC.
Листинг 2. Пример сеанса работы с SSH и Kerberos
# hostname
aixdce20
# whoami
sandeep
# kinit sandeep
Password for sandeep@MSKERBEROS.IN.IBM.COM:
# klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: sandeep@MSKERBEROS.IN.IBM.COM
Valid starting Expires Service principal
03/27/06 17:40:28 03/28/06 03:40:34 krbtgt/MSKERBEROS.IN.IBM.COM@MSKERBEROS.IN.IBM.COM
Renew until 03/28/06 17:40:28
# ssh aixdce16.in.ibm.com
*******************************************************************************
* *
* *
* Welcome to AIX Version 5.3! *
* *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
* *
* *
*******************************************************************************
$ hostname
aixdce16
$ whoami
sandeep
$ pwd
/home/sandeep
$ exit
Connection to aixdce16.in.ibm.com closed.
# hostname
aixdce20
# klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: sandeep@MSKERBEROS.IN.IBM.COM
|
Мы благополучно получили билет Kerberos ticket от KDC для пользователя sandeep. Теперь попробуем зайти как пользователь root, как это показано в листинге 3.
Листинг 3. Пример неудачного сеанса работы с SSH и Kerberos для пользователя root
#ssh -v root@aixdce16.in.ibm.com
OpenSSH_3.8.1p1, OpenSSL 0.9.6m 17 Mar 2004
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to aixdce16.in.ibm.com [9.182.192.116] port 22.
debug1: Connection established.
..
..
..
debug1: Next authentication method: password
root@aixdce16.in.ibm.com's password:
Connection closed by 9.182.192.116
|
Отладочное сообщение Connection established означает, что даже если аутентификация прошла успешно, в итоге было отказано в авторизации несмотря на правильный пароль. Это происходит потому, что sandeep@MSKERBEROS.IN.IBM.COM не имеет прав для доступа как root. Пользователь root может дать соответствующие права пользователю sandeep, создав файл aixdce16.in.ibm.com:~root/.k5login и добавив запись для sandeep.
Так как содержимое файла .k5login перекрывает правила по умолчанию, пользователь root также должен создать запись и для себя, иначе он не сможет зайти на сервер (через SSH и Kerberos). В листинге 4 показано содержимое файла .k5login в aixdce16.in.ibm.com:~root/.
Листинг 4. Содержание файла .k5login в домашнем каталоге пользователя root
# hostname aixdce16 # cat .k5login sandeep@MSKERBEROS.IN.IBM.COM root@MSKERBEROS.IN.IBM.COM |
После создания этого файла пользователь root сможет заходить в систему используя логин и пароль (credentials) пользователя sandeep.
Листинг 5. Пример успешного сеанса работы с SSH и Kerberos для пользователя root
$klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_204
Default principal: sandeep@MSKERBEROS.IN.IBM.COM
Valid starting Expires Service principal
04/13/06 19:41:56 04/14/06 05:37:50 krbtgt/MSKERBEROS.IN.IBM.COM@MSKERBEROS.IN.IBM.COM
Renew until 04/14/06 19:41:56
$ssh root@aixdce16.in.ibm.com
*******************************************************************************
* *
* *
* Welcome to AIX Version 5.3! *
* *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
* *
* *
*******************************************************************************
#
|
Данная статья показывает, как администратор может использовать совместно Kerberos и OpenSSH на системах с AIX версии 5.3 и сервером Microsoft Active Directory, работающем как KDC. Если администратор не использует сервер Microsoft Active Directory, но хочет использовать Kerberos совместно с SSH, мы рекомендуем установить и настроить в качестве KDC сервер IBM NAS версии 1.4 на одной из его систем под управлением AIX.
Научиться
-
Оригинал статьи (EN).
-
OpenSSH: все об OpenSSH.
-
Kerberos для начинающих (EN) (developerWorks, ноябрь 2001): введение в Kerberos и его возможности.
-
OpenSSH is now bundled with AIX (EN) (developerWorks, февраль 2006): прочитайте эту статью, чтобы узнать, как правильно устанавливать и настраивать OpenSSH на AIX.
-
Управление фермами AIX-серверов: раздел 4 этого руководства содержит информацию об использовании OpenSSH на платформе AIX.(EN)
-
Configuring AIX 5L for Kerberos Based Authentication Using Windows Kerberos Service (EN): в статье объясняется, как использовать Kerberos в качестве альтернативного аутентификационного механизма на AIX, используя службу Kerberos на серверах Windows 2000/2003.
-
Поддержка OpenSSH и Kerberos версии 5: в этой документации по AIX описаны возможности OpenSSH и Kerberos на AIX.(EN)
-
AIX и UNIX: хотите узнать больше? Раздел AIX и UNIX на developerWorks содержит сотни статей, информационных и учебных материалов разной степени сложности.
-
developerWorks technical events and webcasts: новости о последних событиях и Web-конференциях сообщества developerWorks.(EN)
Получить продукты и технологии
- Загрузка OpenSSH для AIX.(EN)
-
AIX 5L Expansion Pack and Web Download Pack: программные пакеты для AIX.(EN)
-
IBM trial software: ознакомительные версии программного обеспечения для разработчика, которые можно загрузить со страницы developerWorks.(EN)
-
AIX Toolbox for Linux Applications: программные пакеты с открытым исходным кодом, доступные для установки на AIX 5L.(EN)
Обсудить
Сендип Рамеш Патил (Sandeep Ramesh Patil) работает штатным инженером по программному обеспечению в IBM India Software Labs. Последние пять лет его работа в IBM в основном связана с распределенными технологиями, включая DCE, SARPC, и продуктами по обеспечению безопасности, такими как IBM Network Authentication Services (IBM Kerberos). В данный момент он работает над новым RFC по безопасности для IBM Network Authentication Service параллельно с поддержкой этих продуктов. Сендип имеет степень бакалавра в области информационных технологий и технологий, полученную в университете Пуны, Индия. С ним можно связаться по e-mail rsandeep@in.ibm.com.
Маниш Катьяр (Manish Katiyar) работает инженером по программному обеспечению в IBM India Software Labs. Последние два года его работа в IBM в основном касается SARPC. У него есть опыт работы с инструментами хранилищ данных (Ab-Initio). Маниш имеет степень бакалавра в области химии, полученную в Индийском технологическом институте (Kharagpur, India). С ним можно связаться по e-mail manish.katiyar@in.ibm.com.