• Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8).



Если IP-адреса выдаются компьютерам (контроллерам домена или клиентам домена) с помощью службы DHCP (см. статьи isc-dhcp-server и kea), то необходимо обеспечить сохранность настроек DNS, создаваемых при инициализации контроллера домена (вводе клиента в домен). Это можно сделать либо настройками службы DHCP (для клиентов), либо запретом получения параметров DNS от службы DHCP (для серверов).



Контроллер домена FreeIPA

Предполагается, что контроллер домена настроен в соответствии со статьёй "Контроллер ЕПП FreeIPA в Astra Linux".


Перед установкой FreeIPA необходимо обратить внимание на требования

Перед установкой добавить строку в /etc/hosts, содержащее полное доменное и короткое имя узла. При установке FreeIPA внесёт изменения и изменять вручную не надо.

192.168.0.105 dc1.ipa.lc dc1


Задать полное доменное имя узла

sudo hostnamectl hostname dc1.ipa.lc

Установить FreeIPA:

sudo apt install fly-admin-freeipa-server astra-freeipa-server

FreeIPA работает только при выключенном режиме AstraMode в web-сервере Apache2. В /etc/apache2/apache2.conf измените значение параметра AstraMode on на off:

sudo sed -i 's/^.*AstraMode\s*.*/AstraMode off/' /etc/apache2/apache2.conf

Перезапустить Apache2 для применения настроек:

sudo systemctl restart apache2

Проинициализировать настройки FreeIPA с помощью инструмента командной строки:

sudo astra-freeipa-server -o -n <имя_узла> -d <название_домена>

sudo astra-freeipa-server -o -n dc1 -d ipa.lc

Команда отобразит исходные данные и запросит подтвердить начать инициализацию контроллера домена.

compname= dc1
domain= ipa.lc
Сертификаты будут сгенерированы с помощью OpenSSL
 Обнаружен только один сетевой интерфейс.
 Будет использован сетевой интерфейс "enp0s3", имеющий динамический IP-адрес 192.168.0.105.
продолжать ? (y\n)

 Команда запросить задать пароль (не менее 8-символов?) для учётной записи администратора FreeIPA admin, которая будет использоваться для входа в web-интерфейс FreeIPA и при работе с инструментом командной строки.

введите пароль администратора домена (login: admin):

После повторного ввода пароля начнётся процесс первоначальной настройки FreeIPA.

После успешной инициализации отобразится web-ссылка для открытия в web-интерфейса FreeIPA.

...
ipa: INFO: The ipactl command was successful
Завершено.
Для продолжения работы, необходимо перезагрузить компьютер!
Обнаружен настроенный домен ipa.lc
WEB: https://dc1.ipa.lc


Настройка DNS-сервера BIND

DNS-сервер BIND входит в состав контроллера домена и управляется им же.

Необходимо создать TSIG-ключ, который будет использоваться для подписания динамических обновлений записей зон DNS-сервера.


Для безопасности все сообщения между DNS-сервером и DHCP-DDNS-сервером подписываются общим TSIG-ключом. DNS-сервер будет игнорировать запросы на обновления, не подписанные ключом.


Для настройки DNS-сервера на работу с динамическими обновлениями:

  1. В каталоге /etc/bind/ создать файл с TSIG-ключом, ограничить доступ к файлу:

    sudo tsig-keygen <название_ключа> | sudo tee /etc/bind/<название_файла>

    sudo chmod 640 /etc/bind/<название_файла>

    sudo chown bind:bind /etc/bind/<название_файла>

    где
      - <название_ключа> – любая строка, соответствующая требованиям к доменному имени, т.е. состоящая из букв, цифр, дефисов и точек.
                                                     Для наглядности рекомендуется составлять название ключа из имён узлов, на которых работают DNS-сервер и DHCP-DDNS-сервер. Например, "dc1-dhcp1";
      - <название_файла> – произвольное название файла.

    Далее предполагается, что создан ключ с названием "dc1-dhcp1", ключ сохранён в файле /etc/bind/dc1-dhcp1.key:

    sudo tsig-keygen dc1-dhcp1 | sudo tee /etc/bind/dc1-dhcp1.key

    Пример файла /etc/bind/dc1-dhcp1.key:
    key "dc1-dhcp1" {
            algorithm hmac-sha256;
            secret "cuF3/joQN1jNQeHbSJtt1eFpaRfludKEDeD/CaFjpg4=";
    };
  2. Указать в настройках DNS-сервера расположение файла с TSIG-ключом.
    Для этого добавить в файл /etc/bind/ipa-ext.conf строку:
    include "/etc/bind/dc1-dhcp1.key";
    Файл  /etc/bind/ipa-ext.conf не изменяется во время обновления FreeIPA

  3. Проверить отсутствие синтаксических ошибок в конфигурационных файлах DNS-сервера:

    sudo named-checkconf

  4. Перезапустить FreeIPA для применения настроек DNS-сервера:

    sudo ipactl restart



  5. Разрешить динамические обновления требуемых доменных зон для DNS-клиентов, обладающих TSIG-ключом. 
    Для этого в веб-интерфейсе FreeIPA открыть страницу "Сетевые службы → DNS → Зоны DNS".
    Откроется страница со списком доменных зон:

    На странице выбрать зону, для которой необходимо включить динамические обновления. Перейти на вкладку "Параметры".
    Откроется страница:

    Внизу страницы в поле "Политика обновления BIND" добавить правило политики, которое разрешает принимать обновления, подписанные ключом с названием dc1-dhcp1:
    grant dc1-dhcp1 wildcard * ANY;
    FreeIPA не работает с DHCID
    grant dc1-dhcp1 wildcard * DHCID;

    Получится:

    Вверху страницы нажать на кнопку "Сохранить".

    Повторить этот пункт для всех (для обратной) доменных зон, которым требуются включить динамические обновления.


Настройка DHCP-сервера



Настройка DHCP-сервера:

Предполагается, что DHCP-сервер и DHCP-DDNS-сервер уже настроены в соответствии со статьёй "DHCP: служба kea".

  1. В файле /etc/kea/kea-dhcp4.conf в глобальном параметре ddns-qualifying-suffix указать название домена:
    {
    "Dhcp4": {
    
        ...
        "ddns-qualifying-suffix": "ipa.lc",                 // Название домена 
        ...
    
    }
    }
  2. Проверить отсутствие синтаксических ошибок в конфигурационном файле DHCP-сервера:

    sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf

  3. Перезапустить DHCP-сервер для применения настроек:

    sudo systemctl restart kea-dhcp4-server

Настройка DHCP-DDNS-сервера

Предполагается, что DHCP-сервер и DHCP-DDNS-сервер уже настроены в соответствии со статьёй "DHCP: служба kea".

  1. В каталоге /etc/kea/ создать файл с произвольным названием <название_файла>. В файле сохранить описание TSIG-ключа:
                "name": "<название_ключа>",
                "algorithm": "hmac-sha256",
                "secret": "<секрет_ключа>"
    где
      - <название_ключа> – должно в точности совпадать с названием ключа, используемого DNS-сервером;
      - <секрет_ключа> – должен в точности с совпадать со значением параметра secret в файле с ключом, используемого DNS-сервером.

    Ограничить доступ к файлу с ключом:

    sudo chmod 640 /etc/kea/<название_файла>
    sudo chown _kea:_kea /etc/kea/<название_файла>


    Пример файла /etc/kea/dc1-dhcp1.key с ключом, который соответствует вышесозданному ключу DNS-сервера:
                "name": "dc1-dhcp1",
                "algorithm": "hmac-sha256",
                "secret": "cuF3/joQN1jNQeHbSJtt1eFpaRfludKEDeD/CaFjpg4="
  2. В файле /etc/kea/kea-dhcp-ddns.conf с настройками DHCP-DDNS-сервера указать соответствующие значения:
      - в блоке tsig-keys – название файла с ключом;
      - в блоке forward-ddns –название прямой доменной зоны, название ключа, IP-адрес FreeIPA-сервера;
      - в блоке forward-ddns –название обратной доменной зоны, название ключа, IP-адрес FreeIPA-сервера:
    {
    "DhcpDdns": {
    
        ...
        "tsig-keys": [
        {
            <?include "/etc/kea/<название_файла_с_ключом>"?>     // Название файла, содержащего TSIG-ключ.
        }
        ],
    
        "forward-ddns" : {                                       // Блок с настройками для обновления ПРЯМЫХ зон DNS-серверов.
            "ddns-domains": [
            {
                "name": "ipa.lc.",                               // Название прямой доменной зоны                  
                "key-name": "<название_ключа>",                  // Название TSIG-ключа.
                "dns-servers": [                                 
                {                                                
                    "ip-address": "<IP-адрес_FreeIPA-сервера>",  // IP-адрес FreeIPA-сервера, вместе с которым работает и DNS-сервер,
                    "port": 53                                   //     обслуживающий зону "ipa.lc.".
                }                                                
                ]                                                
            }
            ]
        },
    
        "reverse-ddns" : {                                       // Блок с настройками для обновления ОБРАТНЫХ зон DNS-серверов. 
            "ddns-domains": [
            {
                "name": "6.192.10.in-addr.arpa.",                // Название обратной доменной зоны   
                "key-name": "<название_ключа>",                  // Название TSIG-ключа. 
                "dns-servers": [                                 
                {                                                
                    "ip-address": "<IP-адрес_FreeIPA-сервера>",  // IP-адрес FreeIPA-сервера, вместе с которым работает и DNS-сервер,
                    "port": 53                                   //     обслуживающий зону "6.192.10.in-addr.arpa.".
                }                                                
                ]                                                
            }
            ]
        },
        ...
    }
    }
  3. Проверить отсутствие синтаксических ошибок в конфигурационном файле DHCP-DDNS-сервера:

    sudo kea-dhcp-ddns -t /etc/kea/kea-dhcp-ddns.conf

  4. Перезапустить DHCP-DDNS-сервер для применения настроек:

    sudo systemctl restart kea-dhcp-ddns-server