VMmanager

Подготовка сервера с ОС Astra Linux

 

Статья содержит порядок подготовки сервера с ОС Astra Linux Special Edition для установки платформы и настройки узлов кластера.

Если на сервере уже установлена ОС Astra Linux, переустановите ОС и выполните её настройку по инструкциям из этой статьи.

Для корректной работы платформы выполняйте только те настройки, которые указаны в этой статье. Корректная работа платформы с другими настройками ОС не гарантируется.

Установка ОС

Вы можете использовать один диск для ОС и платформы либо установить ОС на отдельный диск.

При установке операционной системы:

  1. На шаге Установка базовой системы выберите Ядро для установки — linux-5.15-generic или linux-6.1-generic.
  2. На шаге Выбор программного обеспечения:
    1. Выберите следующие компоненты:
      1. Средства Виртуализации.
      2. Консольные утилиты.
      3. Средства удаленного подключения SSH.
    2. Убедитесь, что остальные компоненты отключены.
  3. На шаге  Дополнительные настройки ОС:
    1. Выберите уровень защищенности "Орел" или "Воронеж".
    2. Убедитесь, что отключены опции:
      1. Замкнутая программная среда.
      2. Запрет установки бита исполнения.
      3. Запрет исполнения скриптов пользователя

        Если вы выбрали уровень защищённости "Воронеж", рекомендуем отключить опцию "Очистка освобождаемой внешней памяти". Эта опция значительно увеличивает нагрузку на CPU и время выполнения некоторых операций. 

Настройка ОС на сервере с платформой

  1. Перейдите в режим суперпользователя: 

    sudo su -
  2. Настройте список источников в файле /etc/apt/sources.list:

    • для установки в закрытом контуре укажите только источник cdrom. Остальные источники должны быть удалены или закомментированы:

      Пример файла для Astra Linux Special Edition 1.7.5
      deb cdrom:[OS Astra Linux 1.7.5 1.7_x86-64 DVD]/ 1.7_x86-64 contrib main non-free
    • для установки в открытом контуре у кажите только источники из поддерева Frozen для нужной версии ОС. Остальные источники должны быть удалены или закомментированы: 

      Пример файла для Astra Linux Special Edition 1.7.4 base (1.7.4-24.04.2023_14.23.iso)
      deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/repository-main/ 1.7_x86-64 main contrib non-free
      deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/repository-update/ 1.7_x86-64 main contrib non-free
      deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/repository-base/ 1.7_x86-64 main contrib non-free
      deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/repository-extended/ 1.7_x86-64 main contrib non-free
      Пример файла для Astra Linux Special Edition 1.7.4 uu1 (installation-1.7.4.11-23.06.23_17.13.iso)
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/last/repository-base/ 1.7_x86-64 main contrib non-free
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/last/repository-extended/ 1.7_x86-64 main contrib non-free
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/last/repository-main/ 1.7_x86-64 main contrib non-free
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.4/uu/last/repository-update/ 1.7_x86-64 main contrib non-free
      Пример файла для Astra Linux Special Edition 1.7.5
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository-base/ 1.7_x86-64 main contrib non-free
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository-extended/ 1.7_x86-64 main contrib non-free
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository-main/ 1.7_x86-64 main contrib non-free
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/repository-update/ 1.7_x86-64 main contrib non-free
      deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.5/uu/last/repository-update/ 1.7_x86-64 main contrib non-free
  3. В файле /etc/network/interfaces настройте сетевую конфигурацию со статическим IP-адресом: 

    Пример конфигурации
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
        address   192.168.1.10
        netmask   255.255.255.0
        gateway   192.168.1.254
    
  4. Если платформа будет использоваться в открытом информационном контуре (с доступом к Интернет), создайте файл /etc/resolv.conf и укажите в нём настройки DNS-серверов:

    Пример настройки
    nameserver 77.88.8.8
    nameserver 1.1.1.1
    options timeout:1
    options attempts:2
  5. Перезапустите службу networking

    sudo systemctl restart networking
  6. Проверьте доступность сети.

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

Открытый контур

На сервере платформы и узлах кластера настройте синхронизацию системного времени с NTP-сервером. Подробнее см. в документации Astra Linux

Закрытый контур

Настройте NTP-сервер на сервере с платформой и NTP-клиенты на узлах кластера. 

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

  1. Установите пакеты ПО NTP: 
    sudo apt-get update 
    sudo apt-get install ntp
  2. В конфигурационном файле /etc/ntp.conf:
    1. Отключите синхронизацию с внешними NTP-серверами. Для этого закомментируйте все строки, начинающиеся с pool или server.
    2. Подключите локальный NTP-сервер. Для этого добавьте строку: 
      server 127.127.1.0 fudge 127.127.1.0 stratum 8
    3. Разрешите сетевые подключения к локальному NTP-серверу. Для этого добавьте строки вида: 
      restrict <адрес_подсети> mask <маска_подсети> nomodify notrap
  3. Перезапустите службу ntp
    sudo /etc/init.d/ntp restart
  4. Проверьте работу NTP-сервера: 
    ntpq -p
    Пример вывода
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *LOCAL(0)        .LOCL.           5 l   38   64  177    0.000   +0.000   0.000

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

  1. Установите пакеты ПО NTP: 
    sudo apt-get update 
    sudo apt-get install ntp
  2. В конфигурационном файле /etc/ntp.conf:
    1. Отключите синхронизацию с внешними NTP-серверами. Для этого закомментируйте все строки, начинающиеся с pool или server.
    2. Включите синхнронизацию с локальным NTP-сервером. Для этого добавьте строку вида: 
      server <IP-адрес_или_hostname_NTP-сервера> iburst
  3. Перезапустите службу ntp
    sudo /etc/init.d/ntp restart
  4. Проверьте работу NTP-сервера: 
    ntpq -p
    Пример вывода
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     172.31.52.41    .INIT.          16 u   29   64    0    0.000   +0.000   0.000
  5. Подождите несколько минут и проверьте, совпадает ли время на серверах: 
    date

Настройка сети на узлах кластера

  1. В файле /etc/network/interfaces настройте сетевую конфигурацию. Примеры конфигураций: 

    Минимальная конфигурация без бриджей и бондов
    Конфигурация с бриджем и интерфейсом во VLAN
    Конфигурация с бондом во VLAN в режиме active-backup
    Конфигурация в режиме balance-alb с VLAN
    Конфигурация с бондом и бриджем в режиме LACP (802.3ad)
    Конфигурация с бондом и бриджем в режиме LACP (802.3ad) c интерфейсом во VLAN

    Подробнее о сетевых настройках см. в статьях Настройки сети на узле кластера, Режимы работы бондов.

  2. Перезапустите службу networking

    sudo systemctl restart networking
  3. Проверьте настройки сети: 

    ip -c a
  4. Проверьте доступность узла со стороны сервера с платформой.

При добавлении узла платформа:

  1. Импортирует настройки сетевых интерфейсов из файла /etc/network/interfaces в сервис NetworkManager.
  2. Отправляет ICMP-запросы на проверочный IP-адрес, заданный в настройках кластера:
    • если IP-адрес недоступен, возвращает исходные сетевые настройки;
    • если проверка прошла успешно, выполняет настройку сети.
Импорт настроек не будет выполняться, если при добавлении узла включить опцию Не настраивать сеть автоматически.

После настройки сети в файле /etc/network/interfaces остаётся только конфигурация loopback-интерфейса (lo). Дальнейшую настройку сети на узле кластера рекомендуется выполнять через интерфейс платформы или утилиту nmcli. При добавлении записей в файл /etc/network/interfaces возможен конфликт сетевых настроек.

Если на добавляемом узле кластера был вручную создан бридж или бонд, этот интерфейс будет отображаться в платформе как неуправляемый. Его нельзя отредактировать и удалить через интерфейс платформы.

Если узел был добавлен в платформе с версией ниже 2023.07.1, то его конфигурация будет перенесена в NetworkManager только после изменения настроек сети (например, добавления интерфейса) через интерфейс платформы.

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

Корректное подключение узла гарантируется только при использовании учётной записи, отличной от root.

Раздел содержит инструкции, которые необходимо выполнить, чтобы платформа могла корректно подключаться к узлам кластера. Авторизация платформы на узлах кластера осуществляется по SSH-ключу.

Уровень защищённости "Орёл"

  1. Добавьте публичный SSH-ключ сервера с платформой в файл /home/<username>/.ssh/authorized_keys, где <username> — имя пользователя, под которым платформа будет подключаться к серверу. Содержимое публичного ключа можно посмотреть в интерфейсе платформы на форме добавления узла кластера: раздел Узлы → кнопка Подключить узел → кнопка Хочу использовать публичный ssh-ключ.   
  2. Установите права для файла /home /<username>/.ssh/authorized_keys:

    sudo chmod 600 /home/<username>/.ssh/authorized_keys
    sudo chown <username> /home/<username>/.ssh/authorized_keys
    Пояснения к команде
  3. Проверьте права доступа на файл /home/<username>/.ssh/authorized_keys. Файл должен быть доступен на чтение и запись для пользователя, под которым платформа будет подключаться к серверу.
  4. В файле /etc/sudoers разрешите выполнение команд от имени суперпользователя: 

    %astra-admin ALL=(ALL:ALL) NOPASSWD: ALL
    %sudo ALL=(ALL:ALL) NOPASSWD: ALL
  5. Подключите узел кластера по инструкции из статьи Управление серверами кластера.
  6. Настройте права пользователя для подключения: 

    sudo usermod -a -G astra-admin,kvm,libvirt,libvirt-qemu,libvirt-admin <username>
    Пояснения к командам

Уровень защищённости "Воронеж"

Для создания ВМ с ОС Windows платформа использует директорию /opt/ispsystem/vm/tmp. В этой директории создаётся временный конфигурационный файл для установки ОС. После установки ОС файл удаляется.

Платформа автоматически создаст эту директорию и установит необходимые мандатные атрибуты при подключении узла.

  1. Убедитесь, что службы astra-sudo-control, astra-nochmodx-lock, astra-interpreters-lock отключены: 

    sudo astra-sudo-control disable
    
    sudo astra-nochmodx-lock disable
    
    sudo astra-interpreters-lock disable
  2. Создайте директорию для хранения ВМ (например, /vm) и установите для неё мандатные атрибуты

    sudo mkdir /vm && sudo pdpl-file 0:63:0:ccnr /vm
    Пояснения к команде
  3. Добавьте в файл /home/<username>/.ssh/authorized_keys публичный SSH-ключ сервера с платформой. Содержимое публичного ключа можно посмотреть в интерфейсе платформы на форме добавления узла кластера: УзлыПодключить узел → кнопка Хочу использовать публичный ssh-ключ
  4. Установите права для файла /home /<username>/.ssh/authorized_keys:

    sudo chmod 600 /home/<username>/.ssh/authorized_keys
    sudo chown <username> /home/<username>/.ssh/authorized_keys
    Пояснения к командам
  5. Проверьте права доступа на файл /home/<username>/.ssh/authorized_keys. Файл должен быть доступен на чтение и запись для пользователя, под которым платформа будет подключаться к серверу.
  6. В файле /etc/sudoers разрешите выполнение команд от имени суперпользователя: 

    %astra-admin ALL=(ALL:ALL) NOPASSWD: ALL
    %sudo ALL=(ALL:ALL) NOPASSWD: ALL
  7. Подключите узел кластера по инструкции из статьи Управление серверами кластера.
  8. Настройте права пользователя для подключения: 

    sudo usermod -a -G astra-admin,kvm,libvirt,libvirt-qemu,libvirt-admin <username>
    sudo pdpl-user -i 63 <username>
    Пояснения к команде