?

Log in

No account? Create an account
entries friends calendar profile Previous Previous Next Next
Аутентификация в домене Windows через Kerberos - Sysadmin's Life
sysadminslife
sysadminslife
Аутентификация в домене Windows через Kerberos

1. Документация для чтения
http://sl.mvps.org/docs/LinuxApacheKerberosAD.htm
http://www.microsoft.com/technet/prodtechnol/windows2000serv/howto/kerbstep.mspx
http://support.microsoft.com/?id=555092
http://www.opennet.ru/base/net/aix_ms_ad.txt.html
http://www-128.ibm.com/developerworks/aix/library/au-secureopenssh/index.html
http://www-03.ibm.com/servers/aix/whitepapers/aix_kerberos2.pdf

2. Предварительные условия
Сервер домена – server.kbrtst.ru
Домен – kbrtst.ru
Linux хост (Red Hat Enterprise Linux 4) – linux.kbrtst.ru
AIX хост (AIX 5.3.0.5) – aix.kbrtst.ru
Имя тестового пользователя в Active Directory – test, пароль – test

3. Настройка Windows

1. Сервер должен получать время с NTP-сервера.
2. Все клиенты для Kerberos должны быть прописаны в DNS
3. Установить Windows 2003 Support Tools
4. Создаем в Active Directory новый Organizational Unit – UNIX Servers
5. В UNIX Servers создаем пользователя для Linux-хоста, который будет авторизоваться, – linux и устанавливаем пароль L1n00ks.
6. Делаем keytab:

C:> cd c:\program files\support tools\
C:> ktpass -princ host/linux.kbrtst.ru@KBRTST.RU -mapuser linux -pass L1n00ks -out c:\linux.keytab

7. В UNIX Servers создаем пользователя для AIX-хоста – aix и устанавливаем пароль password.
8. Делаем keytab:

C:> cd c:\program files\support tools\
C:> ktpass -princ host/aix.kbrtst.ru@KBRTST.RU -mapuser aix -pass password -out c:\aix.keytab

4. Настройка Linux

1. Сервер должен быть прописан в Windows DNS.
2. Устанавливаем krb5-libs, krb5-workstation, pam_krb5
3. Любым способом копируем с Windows-сервера linux.keytab в /etc/krb5.keytab
4. Пишем /etc/krb5.conf:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = KBRTST.RU
dns_lookup_realm = false
dns_lookup_kdc = false
default_tkt_enctypes = des-cbc-crc des-cbc-md5
default_tgs_enctypes = des-cbc-crc des-cbc-md5

[realms]
KBRTST.RU = {
kdc = server.kbrtst.ru:88
default_domain = kbrtst.ru
}

[domain_realm]
kbrtst.ru = KBRTST.RU
.kbrtst.ru = KBRTST.RU
KBRTST.RU = KBRTST.RU
.KBRTST.RU = KBRTST.RU

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = true
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

6. Инициализируем Kerberos:
# kinit host/linux.kbrtst.ru@KBRTST.RU
вводим пароль L1n00ks

7. Проверяем:
# klist
смотрим тикеты.
# kinit <имя-пользователя-в-AD>
вводим пароль и любуемся результатом.

8. Пишем /etc/pam.d/system-auth

#%PAM-1.0
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_krb5.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so

account sufficient /lib/security/$ISA/pam_krb5.so
account required /lib/security/$ISA/pam_unix.so

password required /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5
password sufficient /lib/security/$ISA/pam_krb5.so use_first_pass
password required /lib/security/$ISA/pam_deny.so

session optional /lib/security/$ISA/pam_krb5.so
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so

9. Добавляем пользователя test

# useradd test

10. Теперь в систему можно войти под пользователем test.

5. Настройка Apache

1. Генерируем на Windows-сервере еще один keytab:
C:> ktpass -princ HTTP/linux.kbrtst.ru@KBRTST.RU -mapuser linux -pass L1n00ks -out c:\linuxhttp.keytab

2. Копируем с Windows-сервера на Linux keytab в /etc/httpd/conf/mod_auth_kerb.keytab

3. Устанавливаем mod_auth_kerb

4. Устанавливаем авторизацию на необходимые урлы:


AuthType Kerberos
AuthName "Kerberos Auth"
KrbMethodNegotiate Off
KrbSaveCredentials Off
KrbVerifyKDC Off
KrbMethodK5Passwd On
KrbAuthRealms KBRTST.RU
Krb5KeyTab /etc/httpd/conf/mod_auth_kerb.keytab
require valid-user


5. service httpd restart

6. Настройка AIX

1. Устанавливаем пакет krb5.client.rte с Expansion CD-ROM
2. Делаем клиента Kerberos:

# config.krb5 -C -r KBRTST.RU -d kbrtst.ru -c server.kbrtst.ru -s server.kbrtst.ru

3. Правим в /etc/krb5.conf следующие параметры:

[libdefaults]
default_tkt_enctypes = des-cbc-cbr des-cbc-md5
default_tgs_enctypes = des-cbc-cbr des-cbc-md5

4. Добавляем в /usr/lib/security/methods.cfg:

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

KRB5Afiles:
options = db=BUILTIN,auth=KRB5A

5. Пишем keytab, скопированный с Windows:

# /usr/krb5/bin/ktutil
ktutil: rkt /tmp/aix.keytab
ktutil: wrt /etc/krb5/krb5.keytab
ktutil: q

6. Добавляем пользователя в систему

# mkuser registry=KRB5Afiles SYSTEM=KRB5Afiles test

7. Меняем тип авторизации пользователей

# chauthent -k5 -std

8. Проверяем в другой сессии:

# login test
Password: test
$ echo $AUTHSTATE
KRB5Afiles

9. Правим в /etc/ssh/sshd_config следующие параметры:
KerberosAuthentication yes
KerberosTicketCleanup yes
GSSAPIAuthentication yes

10. Дергаем sshd:
# stopsrc -s sshd
# startsrc -s sshd

11. Можно заходить в систему под пользователем test
7 comments or Leave a comment
Comments
From: (Anonymous) Date: May 8th, 2007 09:47 am (UTC) (Link)
Почему-то опустили ключики +rndPass +desOnly у утилиты ktpass - кстати, libkrb5 уже поддерживает RC4-HMAC - может уже его пробовать, а не des-cbc-md5?

И почему так странно настроен Апач? Krb5MethodNegotiate поинтереснее будет так-то...

P.S. И вообще, здесь описана не авторизация, а лишь аутентифкация. Для авторизации еще и nss_ldap надо настроить... А то получается, что база пользователей дублируется - надо и AD заводить и на соответствующем сервере.
sysadminslife From: sysadminslife Date: May 8th, 2007 10:01 am (UTC) (Link)
про аутентификация полностью согласен - поменял заголовок. выбор des-cbc-crc и des-cbc-md5 обусловлен лишь тем, что их поддерживает Windows. С остальным у Microsoft судя по всему проблема.
sysadminslife From: sysadminslife Date: May 8th, 2007 10:03 am (UTC) (Link)
"Krb5MethodNegotiate Off" btw тоже из рекомендации Microsoft.
From: (Anonymous) Date: September 28th, 2008 12:05 am (UTC) (Link)

Комментарии

аффтар, аффтар, ты могуч, ты гоняешь стаи туч :arrow:
From: (Anonymous) Date: November 21st, 2008 10:43 am (UTC) (Link)

:)

спасибо!
Гадарь Д.
kinzabb From: kinzabb Date: October 12th, 2010 03:21 pm (UTC) (Link)
Спасибо за инфу, было полезно посмотреть. Начал этим интересоваться после прочтения похожей инфы на сайте Настройка Linux.
Советую почитать, скорей всего пригодится тебе.
From: (Anonymous) Date: February 17th, 2011 10:00 am (UTC) (Link)

generic cialis

What phrase... super
7 comments or Leave a comment