.. _host-config: =============================================== Использование host-config для настройки региона =============================================== ``host-config`` может использоваться для внесения специфических настроек в конфигурацию ОС узлов. Это можно делать как перед развёртыванием региона, так и после. Если вы выполняете конфигурацию перед развёртыванием региона, вы можете не запускать пайплайн после внесения изменений в ``host-config.yml``, они будут применены при последующем запуске основного пайплайна по развёртыванию региона. Файл ``host-config`` находится в репозитории региона по пути ``host_config/host-config.yml``. Если он отсутствует, вы можете создать его самостоятельно. Настройка NTP в регионе ======================= Для выполнения настройки протокола синхронизации времени :term:`NTP` на узлах региона выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки с указанием временной зоны и IP-адреса NTP-сервера: .. code-block:: yaml ntp_enabled: true ntp_timezone: Europe/Moscow ntp_servers: - 10.224.38.254 #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Для проверки настройки NTP: #. Зайдите на любой узел региона по протоколу SSH. #. Выполните команду ``timedatectl``: .. code-block:: $ timedatectl Local time: Tue 2024-09-17 10:36:10 MSK Universal time: Tue 2024-09-17 07:36:10 UTC RTC time: Tue 2024-09-17 07:36:10 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no Убедитесь, что включен параметр ``System clock synchronized``, отображаются правильные время и зона. Настройка DNS в регионе ======================= Для выполнения настройки :term:`DNS` на узлах региона выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки конфигурации DNS: .. code-block:: yaml dns_enabled: true dns_servers: - 10.220.32.42 - 10.220.32.43 dns_dnssec: false dns_domains: ["cloud.itkey.com"] #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Для проверки настройки DNS: #. Зайдите на любой узел региона по протоколу SSH. #. Проверьте конфигурацию DNS на узле, выполнив команду ``cat /etc/resolv.conf``: .. code-block:: $ cat /etc/resolv.conf nameserver 10.220.32.42 nameserver 10.220.32.43 search cloud.itkey.com Отключение истории команд ========================= Отключение истории команд позволяет исключить хранение учетных записей и паролей в истории команд пользователей в открытом виде. Для отключения истории команд выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки конфигурации: .. code-block:: yaml security_hardening: true disable_history: true #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Для проверки отключения истории команд: #. Зайдите на любой узел региона по протоколу SSH. #. Введите команду ``history`` и убедитесь, что вывод отсутствует. Отключение внешних накопителей ============================== Отключение поддержки внешних накопителей позволяет запретить использование внешних USB-накопителей. Для настройки выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки конфигурации: .. code-block:: yaml security_hardening: true disable_usb_storage: true #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Для проверки отключения внешних накопителей: #. Зайдите на любой узел региона по протоколу SSH. #. Введите команду ``lsmod | grep usb_storage``, чтобы убедиться, что в выводе отсутствует значение ``usb_storage``. Удаление группы wheel из файла /etc/sudoers =========================================== Для удаления группы ``wheel`` из списка привилегированных пользователей выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки конфигурации: .. code-block:: yaml security_hardening: true remove_wheel_from_sudoers: true #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Для проверки отключения внешних накопителей: #. Зайдите на любой узел региона по протоколу SSH. #. Введите команду ``cat /etc/sudoers`` и убедитесь, что строка ``# %wheel ALL=(ALL) ALL`` закомментирована (начинается с ``#``). Установка привилегий доступа к файлам ===================================== .. note:: Данная настройка поддерживается только для Sberlinux. Для установки привилегий доступа к файлам выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки конфигурации: .. code-block:: yaml security_hardening: true setting_file_permissions: true #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Настройка безопасного текстового редактора ========================================== Для настройки безопасного текстового редактора выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки конфигурации: .. code-block:: yaml security_hardening: true copy_pam_env: true #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Настройка соответствующих модулей ядра ====================================== Для настройки соответствующих модулей ядра выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строку конфигурации: .. code-block:: yaml sysctl_hardening_enabled: true #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Настройка GRUB ============== Для настройки GRUB выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строки конфигурации: .. code-block:: yaml grub_config_enabled: true grub_cmdline_options: - "processor.max_cstate=1" # cpu performance option - "intel_idle.max_cstate=1" # cpu performance option - "idle=poll" # cpu performance option - "hugepagesz=1G" # hugepages option - "audit=1" # paranoic security option - "ipv6.disable=1" # paranoic security option - "tsx=auto" # paranoic security option - "slab_nomerge" # paranoic security option - "randomize_kstack_offset=1" # paranoic security option # - "custom_option" #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Настройка аудита на серверах Linux/UNIX-подобных систем ======================================================= Для настройки аудита выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строку конфигурации: .. code-block:: yaml auditd_enabled: true #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**. Настройка завершения сеансов подключения к серверам =================================================== Для настройки завершения сеансов подключения к серверам выполните следующие действия: #. В файл ``host_config/host-config.yml`` в репозитории региона добавьте строку конфигурации: .. code-block:: yaml sshd_enabled: true client_alive_interval: 15 client_alive_count_max: 20 #5 min channel_timeout: 60 #1 min #. Создайте и запустите новый пайплайн: :menuselection:`Build > Pipelines > Run Pipeline`. #. Дождитесь завершения выполнения задач на шаге **setup**. #. Запустите задачу **bootstrap-servers**. Дождитесь завершения задачи **host-config**.