Использование host-config для настройки региона

host-config может использоваться для внесения специфических настроек в конфигурацию ОС узлов. Это можно делать как перед развёртыванием региона, так и после. Если вы выполняете конфигурацию перед развёртыванием региона, вы можете не запускать пайплайн после внесения изменений в host-config.yml, они будут применены при последующем запуске основного пайплайна по развёртыванию региона.

Файл host-config находится в репозитории региона по пути host_config/host-config.yml. Если он отсутствует, вы можете создать его самостоятельно.

Настройка NTP в регионе

Для выполнения настройки протокола синхронизации времени NTP на узлах региона выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки с указанием временной зоны и IP-адреса NTP-сервера:

    ntp_enabled: true
    ntp_timezone: Europe/Moscow
    ntp_servers:
      - 10.224.38.254
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Для проверки настройки NTP:

  1. Зайдите на любой узел региона по протоколу SSH.

  2. Выполните команду timedatectl:

    $ 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 в регионе

Для выполнения настройки DNS на узлах региона выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки конфигурации DNS:

    dns_enabled: true
    dns_servers:
    - 10.220.32.42
    - 10.220.32.43
    dns_dnssec: false
    dns_domains: ["cloud.itkey.com"]
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Для проверки настройки DNS:

  1. Зайдите на любой узел региона по протоколу SSH.

  2. Проверьте конфигурацию DNS на узле, выполнив команду cat /etc/resolv.conf:

    $ cat /etc/resolv.conf
    nameserver 10.220.32.42
    nameserver 10.220.32.43
    search cloud.itkey.com
    

Отключение истории команд

Отключение истории команд позволяет исключить хранение учетных записей и паролей в истории команд пользователей в открытом виде. Для отключения истории команд выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки конфигурации:

    security_hardening: true
    disable_history: true
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Для проверки отключения истории команд:

  1. Зайдите на любой узел региона по протоколу SSH.

  2. Введите команду history и убедитесь, что вывод отсутствует.

Отключение внешних накопителей

Отключение поддержки внешних накопителей позволяет запретить использование внешних USB-накопителей. Для настройки выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки конфигурации:

    security_hardening: true
    disable_usb_storage: true
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Для проверки отключения внешних накопителей:

  1. Зайдите на любой узел региона по протоколу SSH.

  2. Введите команду lsmod | grep usb_storage, чтобы убедиться, что в выводе отсутствует значение usb_storage.

Удаление группы wheel из файла /etc/sudoers

Для удаления группы wheel из списка привилегированных пользователей выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки конфигурации:

    security_hardening: true
    remove_wheel_from_sudoers: true
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Для проверки отключения внешних накопителей:

  1. Зайдите на любой узел региона по протоколу SSH.

  2. Введите команду cat /etc/sudoers и убедитесь, что строка # %wheel ALL=(ALL) ALL закомментирована (начинается с #).

Установка привилегий доступа к файлам

Note

Данная настройка поддерживается только для Sberlinux.

Для установки привилегий доступа к файлам выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки конфигурации:

    security_hardening: true
    setting_file_permissions: true
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Настройка безопасного текстового редактора

Для настройки безопасного текстового редактора выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки конфигурации:

    security_hardening: true
    copy_pam_env: true
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Настройка соответствующих модулей ядра

Для настройки соответствующих модулей ядра выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строку конфигурации:

    sysctl_hardening_enabled: true
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Настройка GRUB

Для настройки GRUB выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строки конфигурации:

    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"
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Настройка аудита на серверах Linux/UNIX-подобных систем

Для настройки аудита выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строку конфигурации:

    auditd_enabled: true
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.

Настройка завершения сеансов подключения к серверам

Для настройки завершения сеансов подключения к серверам выполните следующие действия:

  1. В файл host_config/host-config.yml в репозитории региона добавьте строку конфигурации:

    sshd_enabled: true
    client_alive_interval: 15
    client_alive_count_max: 20 #5 min
    channel_timeout: 60 #1 min
    
  2. Создайте и запустите новый пайплайн: Build > Pipelines > Run Pipeline.

  3. Дождитесь завершения выполнения задач на шаге setup.

  4. Запустите задачу bootstrap-servers. Дождитесь завершения задачи host-config.