Настройка Kerberos авторизации в Apache2
В данной статье мы рассмотрим настройку автоматической Kerberos авторизации в Apache2.
Устанавливаем Kerberos
1 |
apt-get install krb5-user |
Приводим файл /etc/krb5.conf к виду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = DOMAIN.LOCAL dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h forwardable = yes [realms] DOMAIN.LOCAL = { kdc = pdc.domain.local kdc = dc.domain.local admin_server = pdc.domain.local } [domain_realm] .domain.local = DOMAIN.LOCAL domain.local = DOMAIN.LOCAL [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } |
Проверяем что права доступа на файл /etc/krb5.conf — 644 (чтение всем пользователям)
Проверяем можем ли мы авторизоваться в домене
1 |
kinit Administrator |
где Administrator учетная запись в AD
Смотрим вывод командой
1 |
klist |
Если вывод такой :
1 2 3 4 5 6 |
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: Administrator@DOMAIN.LOCAL Valid starting Expires Service principal 09/23/11 14:50:50 09/24/11 00:50:51 krbtgt/DOMAIN@DOMAIN.LOCAL renew until 09/24/11 14:50:50 |
То все хорошо.
Создаем в AD учетную запись компьютер с именем домена нашего сайта.
Далее заходим на контроллер домена 2008R2 и создаем Kerberos ключ командой:
1 |
ktpass -princ HTTP/apachesite01.domain.local@DOMAIN.LOCAL -mapuser apachesite01$@DOMAIN.LOCAL -crypto ALL -ptype KRB5_NT_SRV_HST +rndpass -out c:\apachesite01.keytab |
где apachesite01 имя нашей учетной записи компьютера в AD.
На вопрос «Reset apachesite01’s password [y/n]?» нужно ответить y.
Копируем полученный файл в каталог с apache 2 и назначаем владельцем пользователя и группу www-data (пользователь Apache2) и даем права на чтение всем пользователям.
Устанавливаем модуль Kerberos для Apache 2.
1 |
apt-get install libapache2-mod-auth-kerb |
Далее открываем .htaccess файл в корне каталога сайта.
и добавляем в него строки :
1 2 3 4 |
AuthType Kerberos Krb5KeyTab /etc/apache2/apachesite01.keytab KrbServiceName HTTP/apachesite01.domain.local@DOMAIN.LOCAL Require valid-user |
В данном примере строка Krb5KeyTab содержит путь к файлу keytab, созданному на контроллере домена.
В данном примере строка KrbServiceName содержит название домена ПК созданного в Active Directory, без этого работать не будет.
Обязательно должно быть создано DNS имя типа A в AD.
Добавить комментарий