пятница, 14 октября 2022 г.

Kerberos аутентификация Apache CentOS 9

Исходно есть CentOS 9 (прошло 8 лет с произведенных настроек CentOS 6, пришло время обновиться)
Active Directory построены на Microsoft Server 2012

DNS

Создаем запись в DNS

web-server01.domain.com   A   10.0.0.251
alias.domain.com          CN  web-server01

Генерируем keytab на сервере AD

Здесь для примера генерируем keytab в котором содержится 2 SPN. Это необходимо для того чтобы работала сквозная аутентификация и по своему основному имени и по алиасу. Без FQDN Kerberos работать не будет.

>ktpass -princ HTTP/web-server01.domain.com@DOMAIN.COM -mapuser DOMAIN\web-server01 -crypto All -ptype KRB5_NT_PRINCIPAL -mapop set -pass Pa$$W0rdd -out c:\temp\krb5_one.keytab

>ktpass -princ HTTP/alias.domain.com@DOMAIN.COM -mapuser DOMAIN\web-server01 -pass "Pa$$W0rdd" -crypto All -ptype KRB5_NT_PRINCIPAL -in c:\temp\krb5_one.keytab -out c:\temp\krb5.keytab -setupn -setpass


Проверяем SPN

>setspn -L domain\web-server01
Registered ServicePrincipalNames for CN=web-server01,OU=SERVERS,DC=domain,DC=com:
        HTTP/web-server01.domain.ru
        HTTP/alias.domain.ru

Настройка CentOS

Установка пакетов. В отличии от предущего сервера CentOS 6, здесь используется новый пакет mod_auth_gssapi вместо mod_auth_kerb

#dnf install httpd mod_ssl mod_auth_gssapi mod_session php
systemctl enable httpd

Настройка 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 = DOMAIN.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 DOMAIN.COM = {
  kdc = domain-controller.DOMAIN.COM
  admin_server = domain-controller.DOMAIN.COM
 }

[domain_realm]
 web-server01.domain.com = DOMAIN.COM

Поместить keytab в место его хранения

cd /tmp/krb5.keytab /etc/httpd/conf/krb5.keytab

Настроить соответствующий раздел в конфигурации Apache(httpd.conf) или в файле .htaccess

    AuthType GSSAPI
    AuthName "GSSAPI Single Sign On Login"
    GssapiCredStore keytab:/etc/httpd/conf/krb5.keytab
    GssapiBasicAuthMech krb5
    GssapiBasicAuth On
    GssapiUseSessions       On
    Session on
    SessionCookieName gssapi_session path=/;httponly;secure;
    Require valid-user

Появлении ошибки 400 в браузере и на сервере:
[debug] (28)No space left on device: Failed to read request header line Authorization: Negotiate
связано с большим количеством атрибутов безопасности переданном в заголовке (например пользователь входит в большое количество групп). В файле httpd.conf увеличить
LimitRequestFieldSize 32768

Запустить httpd

systemctl start httpd

Проверочный скрипт PHP index.php в разделе где проводится аутентификация

 <?php
    echo "<pre>";
    var_dump($_SERVER["GSS_NAME"]);
    echo "</pre>";
?>

Настройка браузеров

Internet Explorer


Firefox

Результат

2 комментария:

  1. Продукция сменные картриджи gillette купить оптом, это отличный способ открыть свой бизнес. Постоянные скидки на сменные картриджи gillette fusion. Средства для бритья триммер-лезвие fusion стильные наборы gillette купить оптом по оптимальной цене производителя. Хорошая возможность приобрести лезвия gillette mach3, станки для бритья джилет мак 3, а также любой другой продукт линейки gillette mach3 по оптимальной цене!. Всегда в наличии популярные одноразовые бритвенные станки gillette blue 2.

    ОтветитьУдалить
  2. Продукция одноразовые бритвы gillette купить оптом, это отличный способ начать свое дело. Постоянные распродажи на сменные картриджи gillette fusion. Средства для бритья триммер-лезвие fusion функциональные наборы gillette купить оптом по оптимальной цене производителя. Отличная возможность приобрести лезвия gillette mach3, станки для бритья джилет мак 3 турбо, а также любой другой продукт серии жилет мак 3 по оптимальной цене!. Хит продаж одноразовые станки для бритья gillette venus.

    ОтветитьУдалить