Обеспечение безопасности связи при помощи Kerberos и OpenSSH в AIX 5.3 с использованием службы Windows Kerberos

Как обеспечить безопасность данных при использовании SSH и IBM Network Authentication Services из AIX 5.3

В этой статье объясняется, как правильно настроить Open Secure Shell (OpenSSH) для совместной работы с Kerberos на компьютерах AIX® 5.3, которые используют сервер Microsoft® Active Directory как центр распределения ключей Key Distribution Center (KDC). OpenSSH шифрует весь сетевой трафик, включая пароли, для устранения возможности его прослушивания или кражи данных. Для пользователей, которые работают в гетерогенной среде с решениями от разных производителей на системах с AIX 5.3, эта статья будет исключительно полезна.

Сендип Рамеш Патил, штатный инженер по программному обеспечению, IBM

Сендип Рамеш Патил (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.



Маниш Катьяр, инженер по программному обеспечению, IBM

Маниш Катьяр (Manish Katiyar) работает инженером по программному обеспечению в IBM India Software Labs. Последние два года его работа в IBM в основном касается SARPC. У него есть опыт работы с инструментами хранилищ данных (Ab-Initio). Маниш имеет степень бакалавра в области химии, полученную в Индийском технологическом институте (Kharagpur, India). С ним можно связаться по e-mail manish.katiyar@in.ibm.com.



20.02.2008

Введение

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, необходимо выполнить следующие шаги.

  1. Создать нового пользователя на сервер Windows Active Directory, используя инструмент Active Directory Management, для SSH сервера, запущенного на AIX-компьютере. В нашем примере это aixdce16.in.ibm.com.
    1. Нужно открыть диалоговое окно для создания новых пользователей и заполнить следующие поля:
      • 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
    2. Ввести Password и поставить нужные флажки.
    3. Нажать Finish для завершения создания пользователя.
  2. Используя команду 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
  3. Скопировать созданный на предыдущем шаге файл 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.

  4. Создать нового пользователя на сервере Windows Active Directory, используя инструмент Active Directory Management, с именем, совпадающим с именем пользовательской записи на AIX компьютере. В нашем примере это sandeep - пользователь, имеющийся на обоих AIX-компьютерах. Для информации смотрите первый шаг о создании пользовательской записи на сервере Windows Active Directory.

Тестирование установок

Теперь можно протестировать установленную систему и использовать SSH с Kerberos.

  1. Зайти на aixdce20.in.ibm.com (клиент SSH) как пользователь sandeep.
  2. Инициализировать Kerberos для пользователя sandeep командой kinit.
  3. Подключиться при помощи 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.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=290634
ArticleTitle=Обеспечение безопасности связи при помощи Kerberos и OpenSSH в AIX 5.3 с использованием службы Windows Kerberos
publish-date=02202008