Первоначальная настройка FreeIPA

2023-04-13

1. Настройка LDAP-каталога

1.1. Отключение анонимного доступа к LDAP-каталогу

  1. Процедура выполняется на каждом сервере FreeIPA-реплике, так как изменения производятся в нереплицируемой части LDAP-каталога 'cn=config'.

  2. Выполните из командной строки:

    IPAREPLICA=$(hostname)
    set +o history
    DM_PASSWORD='<Password of Directory Manager is here>'
    set -o history
    
    ldapmodify -x -D "cn=Directory Manager" -w ${DM_PASSWORD} -h ${IPAREPLICA} -Z << EOF
    dn: cn=config
    changetype: modify
    replace: nsslapd-allow-anonymous-access
    nsslapd-allow-anonymous-access: rootdse
    EOF
    
    ipactl restart

2. Настройка DNS

2.1. Включение автодобавления обратных записей

По умолчанию, при введении новой машины в домен, соответствующая PTR-запись в обратной зоне DNS не создаётся. Если я правильно помню, то это делается в целях сохранения производительности FreeIPA. Видимо, при достаточном количестве машин одновременно меняющих ip-адреса…​. бла-бла-бла.

Опция 'Allow PTR sync' доступна для отдельной DNS-зоны и/или глобально для DNS-сервера. В нашем случае включим опцию глобально.

Включите опцию для DNS-сервера одним из двух способов:

  • Из командной строки

  • Через WebUI

  1. Получите Kerberos-билет:

    kinit admin
  2. Включите опцию 'allow-sync-ptr':

    ipa dnsconfig-mod --allow-sync-ptr=1
    Ожидаемый вывод:
      Forward policy: only
      Allow PTR sync: True
      IPA DNS servers: dev-ipa01.example.org
  1. В Web-браузере откройте страницу https://dev-ipa01.example.org/ipa/ui/#/e/dnsconfig/details.

  2. Отметьте опцию 'Allow PTR sync':

    dns enabling allow sync ptr

  3. Сохраните результат нажатием кнопки 'Save'.

2.2. Включение рекурсивных запросов

Как рекурсия настроена по умолчанию?

По умолчанию, локальный BIND9 разрешает рекурсивные запросы, то есть запросы к другим доменам, только от localhost и localnet.

  1. ЧТобы включить рекурсию для запросов от всех сетей, что очень опасно, добавьте следующие опции в файл /etc/named/ipa-options-ext.conf и перезапустите BIND9:

    cat << EOF >> /etc/named/ipa-options-ext.conf
    allow-recursion { any; };
    allow-query-cache { any; };
    EOF
    
    systemctl restart named
  2. Чтобы включить рекурсию для определённых сетей, сначала перечислите их в файле /etc/named/ipa-ext.conf. Например:

    cat << EOF >> /etc/named/ipa-ext.conf
    acl "trusted_network" {
      localnets;
      localhost;
      10.0.0.0/8;
    };
    EOF
  3. После чего включите рекурсию для этих сетей в файле /etc/named/ipa-options-ext.conf:

    cat << EOF >> /etc/named/ipa-options-ext.conf
    allow-recursion { trusted_network; };
    allow-query-cache { trusted_network; };
    EOF
  4. Не забудьте перезапустить BIND9:

    systemctl restart named

2.3. Добавление DNS-форвардеров

Если требуется, чтобы FreeIPA-сервер, установленный в изолированном окружении, мог резольвить доменные имена не только своей авторитативной зоны, но других зон, то необходимо добавить форвард-dns-сервера.

Поддерживается указание форвард-серверов, как для глобальных перенаправлений, так и для отдельных DNS-зон.

Объяснение forward policy

Использование форвардов регламентируется следующими возможными опциями:

  • Forwarding disabled

    • Форвард-серверы не используются.

    • Если рекурсия запрещена, то клиенту возвращается NXDOMAIN и обработка завершается.

    • Если рекурсия разрешена, то BIND9 для разрешения запрошенного незнакомого dns-имени попытается сделать рекурсивный запрос к корневым DNS-серверам, и далее рекурсивно к тому авторитативному серверу, отвечающего за записи в искомом домене.

  • Forward first

    • Для разрешения незнакомого имени, сначала запрос будет переадресован указанным форвардер-серверам.

    • В случае отрицательного ответа от форвардер-серверов, наш DNS-сервер попытается самостоятельно обратиться к корневым DNS-серверам, и далее рекурсивно до авторитативного сервера, отвечающего за записи в искомом домене.

  • Forward only

    • В этом режиме, для разрешения незнакомого имени, наш DNS-сервер обратится только к указанным форвардерам, без дальнейших попыток самостоятельных рекурсивных запросов в случае отрицательного ответа.

  1. Включите опции для DNS-сервера одним из двух способов:

    • Из командной строки

    • Через WebUI

    1. Получите Kerberos-билет:

      kinit admin
    2. Добавьте адреса форвардер-серверов командой:

      ipa dnsconfig-mod \
        --forwarder="10.1.1.1" \
        --forwarder="10.0.0.1" \
        --forward-policy='only'
      Ожидаемый вывод:
      Server will check DNS forwarder(s).
      This may take some time, please wait ...
      ipa: WARNING: DNS server 10.1.1.1 does not support DNSSEC:
      answer to query '. SOA' is missing DNSSEC signatures (no RRSIG data).
      If DNSSEC validation is enabled on IPA server(s), please disable it.
      ipa: WARNING: DNS server 10.0.0.1 does not support DNSSEC:
      answer to query '. SOA' is missing DNSSEC signatures (no RRSIG data).
      If DNSSEC validation is enabled on IPA server(s), please disable it.
        Global forwarders: 10.1.1.1, 10.0.0.1
        Forward policy: only
        Allow PTR sync: True
        IPA DNS servers: dev-ipa01.example.org
    1. В Web-браузере откройте страницу https://dev-ipa01.example.org/ipa/ui/#/e/dnsconfig/details.

    2. Отметьте опцию 'Allow PTR sync':

      dns configuring forwarders

    3. Сохраните результат нажатием кнопки 'Save'.

2.4. Отключение DNSSEC validation

Так как у нас вышестоящие форвард-серверы не поддерживают DNSSEC, необходимо отключить эту опцию и на нашем BIND9, иначе рекурсивные запросы на сторонние DNS будут возвращать ошибку.

  1. Отключите DNSSEC-валидацию в файле /etc/named/ipa-options-ext.conf:

    sed -i 's/dnssec-validation yes/dnssec-validation no/' /etc/named/ipa-options-ext.conf
    
    # Earlier
    systemctl restart named-pkcs11
    # Now
    systemctl restart named