The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интеграция серверов AIX в MS Active Directory (aix domain windows kerberos samba)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: aix, domain, windows, kerberos, samba,  (найти похожие документы)
From: uxTuaHgp <alex_dubrovsky@mail.ru.> Newsgroups: email Date: Mon, 24 Apr 2007 14:31:37 +0000 (UTC) Subject: Интеграция серверов AIX в MS Active Directory 1. Пререквизиты 1) MS Active Directory и Kerberos на MS Windows 2003 Server. 2) AIX 5.3 ML03 и выше. Во избежание проблем биндинга к AD через керберос необходимо установить APAR IY79120. У меня на 5300-04 и на 5300-05 проблем с биндингом без этого APAR не возникало. 3) MS Services for Unix для поддержки расширений AD для UNIX и синхронизации паролей. Сейчас есть версия MSSFU 3.5, с ней вроде как проблем быть не должно вообще, я ставил и на 3.5 и на 2.0 - тонкости опишу. 4) На сервере KDC должны быть установлены Windows Support Tools. 5) Резолв через DNS на AIX должен быть настроен. 6) Допускаем имя нашего домена - example.com kerberos realm - EXAMPLE.COM контроллеры домена - dc01, dc02 имя нашего хоста - aixhost 2. Инсталяция пакетов: 1) Рекомендую сначала найти и скопировать в одно место все необходимые пакеты. В моем дистрибутиве они разложились так: krb5.lic - AIX 5L Expansion Pack Volume #1 krb5.client - AIX 5L Expansion Pack Volume #1 krb5.toolkit - AIX 5L Expansion Pack Volume #1 krb5.msg.en_US - AIX 5L Expansion Pack Volume #1 krb5.doc.en_US - AIX 5L Expansion Pack Volume #1 ldap.client - AIX 5L Volume #4 gskta.rte - AIX 5L Expansion Pack Volume #2 ldap.max_crypto_client - AIX 5L Expansion Pack Volume #1 2) Инсталим сначала krb5.lic, с одобрением лицензионного соглашения. Лично я пользовался smit install, но можно и строчкой :) # installp -acgXYpd <SOURCEDIR> krb5.lic <SOURCEDIR> - место, куда Вы свалили все пакеты 3) Инсталируем все остальные пакеты # installp -acgXYpd <SOURCEDIR> krb5.client krb5.toolkit \ krb5.msg.en_US krb5.doc.en_US ldap.client gskta.rte ldap.max_crypto_client 3. Настройка Kerberos 1) Поправим системные пути, чтобы находились бинарники кербероса. Добавим /usr/krb5/bin:/usr/krb5/sbin: в переменную PATH в файле /etc/environment перед путями к java. У меня путь получился такой: PATH=/usr/local/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/krb5/bin:/usr/krb5/sbin:/usr/java/jre/bin:/usr/java/bin 2) Настроим синхронизацию времени с KDC # ntpdate dc01.example.com Добавим строчки в /etc/ntp.conf server dc01.example.com server dc02.example.com заускаем демона ntp startsrc -s xntpd проверяем синхронизацию # ntpq ntpq> peers remote refid st t when poll reach delay offset disp +dc01.example.com dc01.example.com 6 u 454 512 377 0.61 -15.332 29.01 *dc02.example.com dc02.example.com 5 u 121 512 377 2.64 0.334 5.86 ntpq> q # Сделаем так, чтобы xntpd запускался автоматически при загрузке системы, для этого раскомментируем строку запуска xntpd в файле /etc/rc.tcp 3) Собственно генерируем конфиги кербероса # config.krb5 -C -r EXAMPLE.COM -d example.com -c dc01.example.com -s dc01.example.com realm (-r) обязательно в верхнем регистре!!! Поправим секцию [libdefaults] в файле /etc/krb5/krb5.conf - уберем не поддерживаемые Windows 2000 и 2003 типы шифрования. После исправления она должна выглядеть примерно так: [libdefaults] default_realm = EXAMPLE.COM default_keytab_name = FILE:/etc/krb5/krb5.keytab default_tkt_enctypes = des-cbc-md5 des-cbc-crc default_tgs_enctypes = des-cbc-md5 des-cbc-crc 4) Добавим методы аутентикации сразу и для kerberos и для LDAP в /usr/lib/security/methods.cfg KRB5A: program = /usr/lib/security/KRB5A options = authonly LDAP: program = /usr/lib/security/LDAP program_64 = /usr/lib/security/LDAP64 KRB5ALDAP: options = db=LDAP,auth=KRB5A KRB5Afiles: options = db=BUILTIN,auth=KRB5A 5) Создаем принципала для нашего хоста: В AD создаем пользователя вида host_имяхоста, то есть в нашем случае host_aixhost, устанавливаем ему пароль. 6) С помощью утилиты ktpass из MS Windows Support Tools создаем файл с ключом и переносим его на AIX C:\>ktpass -princ host/[email protected] -mapuser host_aixhost \ -pass superPassw0rd -out host_aixhost.keytab С помощью утилиты setspn можем посмотреть мапинг логина на принципала C:\>stspn -L host_aixhost Копируем ключ на AIX pscp host_aixhost.keytab root@aixhost:/etc/krb5/ Тут я воспользовался pscp из пакета PuTTy 7) Импортируем полученный ключ в таблицу ключей на aixhost # ktutil rkt /etc/krb5/host_aixhost.keytab wkt /etc/krb5/krb5.keytab q # Проверим ключ # kinit host/[email protected] Password for host/[email protected]: ************ # # klist Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0 Default principal: host/[email protected] Valid starting Expires Service principal 04/19/07 10:57:13 04/19/07 20:57:19 krbtgt/[email protected] Renew until 04/20/07 10:57:13 # 8) Удалим импорт-ключ принципала # rm /etc/krb5/host_aixhost.keytab 4. Проверка утентикации kerberos 1) Заведем в AD пользователя, например test01 и зададим для него пароль. 2) В AIX создадим пользователя с методом аутентикации через KRB5Afiles # mkuser registry=KRB5Afiles SYSTEM=KRB5Afiles test01 3) Попробуем логиниться пользователем test01 login as: test01 test01@aixhost's password: ******************************************************************************* * * * * * 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. * * * * * ******************************************************************************* $ echo $AUTHSTATE KRB5Afiles $ Видим что атентикация прошла через KRB5Afiles. Все аттрибуты пользователя и членство в группах в данном случае хранятся локально в /etc/passwd и /etc/group 5. Настройка LDAP 1) Документы, которыми я пользовался, рекомендуют не используя mksecldap, а просто руками прописать конфигурационные файлы, однако mksecldap дает один плюс - он прописывает в конфиг пароль нашего принципала в зашифрованом DES виде. Итак, запускаем конфигуратор ldap клиента # mksecldap -c -h dc01 -a 'CN=host_aixhost,OU=Host \ Accounts,OU=Users,OU=New Vasjuki,DC=example,DC=com' -p superPassw0rd где у вас будет расположен аккаунт принципала, я не знаю :) 2) Правим /etc/security/ldap/ldap.cfg searchmode:OS # OS необходимо, как оказалось, для MSSFU 2.0 по умолчанию стоит ALL ldapservers:dc01.example.com,dc02.examle.com binddn:cn=CN=host_aixhost,OU=Host Accounts,OU=Users,OU=New Vasjuki,DC=example,DC=com bindpwd:{DES}63FABC6A5AB7B4 29ECDEDA02F DB0D38DDD37E25AF46255 # в принципе тут можно вписать пароль и в открытом виде userattrmappath:/etc/security/ldap/sfu20user.map # опять же для MSSFU 2.0 groupattrmappath:/etc/security/ldap/sfu20group.map userbasedn:OU=Users,OU=New Vasjuki,DC=example,DC=com # тут должно быть ясно - юнит под которым искать groupbasedn:OU=Groups,OU=New Vasjuki,DC=example,DC=com userclasses:user groupclasses:group Пояснения: searchmode: по умолчанию ALL и по умолчанию работает отлично с MSSFU 3.*, однако с 2.0 демон LDAP клиента падал в кору при попытках сделать id на некоторых пользователей AD. По сути дела, методом тыка было выведено, что нужно в этом случае прописывать OS. userattrmappath и groupattrmappath мапфайлы, где стыкуются юникс атрибуты с AD атрибутами. Для MSSFU 3.0 и 3.5 есть шаблоны /etc/security/ldap/sfu30user.map /etc/security/ldap/sfu30group.map В AIX 5L TL05 стало возможно прописывать до 10-ти строк userbasedn и groupbasedn, в результате LDAP клиент по порядку опрашивает все эти DN. Кроме того появилась возможность вписывать в эти записи фильтры [2]. 3) Запускаем демон LDAP клиента # start-secldapclntd Starting the secldapclntd daemon. The secldapclntd daemon started successfully. # 4) Делаем так, чтобы LDAP клиент запускался при старте системы # mkitab "ldapclntd:2:once:/usr/sbin/secldapclntd > /dev/console 2>&1" 6. Проверка работы LDAP+Kerberos 1) Заводим в AD группу и пользователя, например tstgrp02 и test02, проставляем пароль и заполняем поля в закладке Unix Attributes. 2) Проверяем запросом к LDAP с AIX # lsldap -a group tst* # lsldap -a passwd test* 3) Смотрим видит-ли AIX базу пользователй LDAP # id test02 uid=2365(test02) gid=1001(Domain Users) # lsuser test02 test02 id=22365 pgrp=Domain Users groups=Domain Users home=/home/test02 \ shell=/usr/bin/sh gecos=test02 login=true su=true rlogin=true \ daemon=true admin=false sugroups=ALL admgroups= tpath=nosak ttys=ALL \ expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=KRB5ALDAP SYSTEM=compat \ logintimes= loginretries=0 pwdwarntime=0 account_locked=false minage=0 \ maxage=0 maxexpired=-1 minalpha=0 minother=0 mindiff=0 maxrepeats=8 minlen=0 \ histexpire=0 histsize=0 pwdchecks= dictionlist= fsize=-1 cpu=-1 data=-1 \ stack=65536 core=2097151 rss=-1 nofiles=2000 fsize_hard=-1 data_hard=-1 \ rss_hard=-1 roles= # 4) Чтобы пользователь успешно аутентифицировался, нужно поменять атрибут SYSTEM на KRB5ALDAP # chuser SYSTEM=KRB5ALDAP test02 Если пользователей AD будет гораздо больше, чем локальных, а локальные будут заводиться редко, можно сделать и иначе: В файле /etc/security/user для default прописать SYSTEM=KRB5ALDAP всем локальным пользователям прописать SYSTEM=compat Если существующим не проставить compat - у них будут проблемы при попытке войти :) 5) Пытаемся логиниться login as: test02 test02@aixhost's password: ******************************************************************************* * * * * * 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. * * * * * ******************************************************************************* $ echo $AUTHSTATE KRB5ALDAP $ Вот собственно и все! Ссылки на использованную литературу: 1. IBM RedBook Integrating AIX into Heterogeneous LDAP Environments 2. AIX5 LDAP user management

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, sqdd (?), 13:57, 27/04/2007 [ответить]  
  • +/
    VAS - решение
     
  • 2, aixuser (?), 08:32, 28/05/2008 [ответить]  
  • +/
    Проверил - всё работает! Спасибо. Кстати, по ОС AIX есть рускоязычный форум (портал) http://www.aixportal.ru
    Там много полезного по IBM AIX и System P
     
  • 3, admin1 (??), 15:37, 07/10/2009 [ответить]  
  • +/
    хотелось бы добавить что, если делать только первую половину (тоесть непосредственно саму авторизацию, без подключения LDAP) то вместо

    KRB5A:
                    program = /usr/lib/security/KRB5A
                    options = authonly

    правильнее написать вот так
    KRB5A:
                program = /usr/lib/security/KRB5A
                options = authonly,is_kadmind_compat=no,tgt_verify=no

    тогда с входом пользователей по telnet и ftp с доменными аккаунтами не будет возникать проблем (сам буквально недавно всю голову себе с этим чуть не сломал)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру