Подготовка сервера Astra Linux Special Edition 1.8

Процесс подготовки серверов для установки компонентов системы 5А происходит в несколько этапов:

  1. Настройка SSH-ключей.
  2. Настройка сетевого экрана (Firewall).
  3. Установка и настройка Docker.
  4. Проверка работы systemd.
  5. Проверка наличия crontab.
  6. Установка и настройка FRR.
  7. Установка keepalived для VRRP.
  8. Типичные проблемы и их решение.
  9. Финальная проверка перед развёртыванием приложения.

Для каких задач используются компоненты

  • SSH-ключи — обеспечивают безопасное беспарольное соединение между серверами, необходимое для автоматизации развертывания и управления компонентами балансировщика.
  • Docker — используется для контейнеризации компонентов системы 5А. Это обеспечивает изоляцию, простоту обновления и единообразие окружения на всех поддерживаемых ОС.
  • systemd — служит init-системой для управления сервисами (Docker, FRR), их автозапуском и контролем состояния.
  • crontab — планировщик задач, используемый для выполнения регулярных операций (ротация логов, проверки состояния, обновления маршрутов).
  • FRR (Free Range Routing) — обеспечивает динамическую маршрутизацию по протоколам BGP, OSPF, VRRP, BFD. Эти протоколы необходимы для отказоустойчивой связности сетевых агентов балансировщика.

1. Настройка SSH-ключей

Для обеспечения безопасного и беспарольного доступа между серверами необходимо настроить SSH-ключи.

ℹ️

Рекомендация по безопасности: для развёртывания системы используйте выделенный jump-хост (промежуточный сервер). Это повышает безопасность (снижает риск компрометации учётных данных) и упрощает управление ключами доступа. Подробнее о настройке jump-хоста см. в разделе Типичные проблемы.

Astra Linux Special Edition 1.8

Настройка SSH-ключей выполняется аналогично Debian, но утилита ssh-copy-id может отсутствовать. В этом случае используйте альтернативный способ.

  1. Установите пакет openssh-client:
    sudo apt update && sudo apt install openssh-client -y
  2. Создайте SSH-ключ на сервере развёртывания, если он ещё не создан:
    ssh-keygen -t rsa -b 4096
  3. Установите корректные права на публичный ключ:
    chmod 644 ~/.ssh/id_rsa.pub
  4. Скопируйте публичный ключ на целевой сервер с помощью команды:
    cat ~/.ssh/id_rsa.pub | ssh user@server_ip 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
  5. Убедитесь, что вход выполняется без пароля:
    ssh user@server_ip

2. Настройка сетевого экрана (Firewall)

Перед установкой компонентов системы 5А необходимо открыть порты на всех серверах в соответствии с требованиями, описанными в документе «Требования к серверам» (раздел «Настройка сетевого экрана», Таблицы 1 и 2). Убедитесь, что разрешены как входящие, так и исходящие соединения согласно матрице взаимодействий.

Для Astra Linux Special Edition настройка выполняется стандартными средствами (iptables, nftables).

3. Установка и настройка Docker

Astra Linux Special Edition 1.8

Важно: Установка из официального репозитория Docker может быть запрещена политиками безопасности. В этом случае используйте Docker из штатных репозиториев Astra Linux.

  1. Обновите список пакетов:
    sudo apt update
  2. Установите Docker из репозитория Astra:
    sudo apt install docker.io docker-compose -y
  3. Запустите Docker и добавьте в автозагрузку:
    sudo systemctl enable --now docker
  4. Добавьте текущего пользователя в группу docker:
    sudo usermod -aG docker $USER

    Важно: После выполнения usermod выйдите из системы и зайдите снова, или выполните newgrp docker для текущей сессии.

  5. Проверьте версию Docker:
    docker --version

4. Проверка работы systemd

На всех целевых ОС в качестве init-системы используется systemd. Для проверки его работоспособности выполните следующие команды на каждом сервере:

  1. Убедитесь, что systemd является init-системой. Выполните команду:

    ps -p 1 -o comm=

    Ожидаемый вывод: systemd. Если вывод init или sysvinit, значит, systemd не используется.

  2. Убедитесь, что система загружена не в аварийном режиме. Выполните команду:

    systemctl get-default

    Ожидаемый вывод: multi-user.target или graphical.target. Если вывод rescue.target или emergency.target, верните систему в обычный режим:

    sudo systemctl set-default multi-user.target
    sudo reboot

5. Проверка наличия crontab

Для планирования регулярных задач система 5А использует cron. Убедитесь, что утилита crontab установлена и доступна.

Astra Linux Special Edition 1.8

  1. Проверьте доступность crontab:
    sudo crontab -l
  2. Если команда не найдена, установите пакет cron:
    sudo apt update
    sudo apt install cron -y
  3. Запустите службу cron:
    sudo systemctl enable --now cron

6. Установка и настройка FRR

Astra Linux Special Edition 1.8 (сборка из исходников)

Важно: В Astra Linux SE подключение сторонних репозиториев часто запрещено. Поэтому FRR устанавливается сборкой из исходников.

  1. Подготовьте пакеты libyang2. Скачайте их из официального репозитория FRR: https://deb.frrouting.org/frr/pool/frr-10.3/liby/libyang2/ (opens in a new tab). Для архитектуры amd64 необходимы:
    • libyang2_2.1.128-2~deb10u2_amd64.deb
    • libyang2-dev_2.1.128-2~deb10u2_amd64.deb
    • libyang2-tools_2.1.128-2~deb10u2_amd64.deb
  2. Установите зависимости для сборки:
    sudo apt update
    sudo apt install git gcc make autoconf automake libtool libjson-c-dev libelf-dev python3-dev libreadline-dev libcap-dev bison flex libprotobuf-c-dev protobuf-c-compiler -y
  3. Установите пакеты libyang2:
    cd ~/libyang2_packages
    sudo dpkg -i libyang2_*.deb libyang2-dev_*.deb libyang2-tools_*.deb
  4. Клонируйте репозиторий FRR:
    git clone https://github.com/FRRouting/frr.git
    cd frr
  5. Запустите скрипт начальной настройки:
    ./bootstrap.sh
  6. Настройте конфигурацию сборки:
    ./configure LIBYANG_CFLAGS="-I/usr/include/libyang" LIBYANG_LIBS="-L/usr/lib/x86_64-linux-gnu -lyang"
  7. Скомпилируйте и установите:
    make && sudo make install
  8. Создайте системную группу и пользователя:
    sudo groupadd frr
    sudo useradd -r -s /sbin/nologin -g frr frr
  9. Создайте директорию для конфигурационных файлов:
    sudo mkdir -p /usr/local/etc/frr
    sudo touch /usr/local/etc/frr/frr.conf
    sudo touch /usr/local/etc/frr/vtysh.conf
  10. Создайте файл /usr/local/etc/frr/daemons:
    sudo tee /usr/local/etc/frr/daemons <<EOF
    zebra=yes
    bgpd=yes
    ospfd=yes
    vrrpd=yes
    bfdd=yes
    EOF
  11. Настройте права:
    sudo chown -R frr:frr /usr/local/etc/frr
    sudo chmod 640 /usr/local/etc/frr/*.conf
    sudo chmod 755 /usr/local/etc/frr
  12. Скопируйте systemd unit-файл:
    sudo cp tools/frr.service /etc/systemd/system/
    sudo ldconfig
    sudo systemctl daemon-reload
  13. Запустите FRR:
    sudo systemctl enable --now frr

    Примечание: Эта команда одновременно включает автозагрузку службы и запускает её. После выполнения убедитесь, что служба активна (см. шаг 6).

  14. Проверьте корректность конфигурации и статус службы:
sudo systemctl status frr

Убедитесь, что в выводе присутствует active (running). Затем проверьте конфигурацию через vtysh:

sudo /usr/local/bin/vtysh

Выполните проверочные команды:

show running-config
show ip route
show ip bgp summary
show ip ospf neighbor
show vrrp
exit

7. Установка keepalived для VRRP

Для обеспечения отказоустойчивости VIP-адресов по протоколу VRRP необходимо установить keepalived на каждый агент балансировки.

Минимальная версия: keepalived ≥ 2.2 (требуется для поддержки VRRPv3 с дробным интервалом анонсов, unicast-режима и корректной работы nopreempt).

Проверка версии после установки:

keepalived --version
# Ожидается: 2.2.x или новее

Установка (Astra Linux Special Edition):

sudo apt update
sudo apt install -y keepalived
ℹ️

Сервис keepalived не нужно запускать или включать в автозагрузку вручную. Его конфигурацией и жизненным циклом управляет агент системы «Балансировщик 5А».

8. Типичные проблемы и их решение

ПроблемаРешение
vtysh: Can't open configuration fileНе создан vtysh.conf или неправильные права. Выполните шаг 6 (создание файлов и настройка прав: sudo touch /usr/local/etc/frr/frr.conf /usr/local/etc/frr/vtysh.conf && sudo chown -R frr:frr /usr/local/etc/frr && sudo chmod 640 /usr/local/etc/frr/*.conf).
FRR не стартует (systemctl status frr показывает ошибку)Проверьте, что в /usr/local/etc/frr/daemons включены только нужные демоны: zebra=yes, bgpd=yes, ospfd=yes, vrrpd=yes, bfdd=yes. Остальные оставьте no. Также проверьте синтаксис frr.conf.
Ошибка прав на /usr/local/etc/frr/*.confВыполните sudo chown -R frr:frr /usr/local/etc/frr && sudo chmod 640 /usr/local/etc/frr/*.conf (шаг 6).
SSH-подключение отклоняется (Permission denied) при развертывании с самого сервераРекомендация: выполняйте развертывание с выделенного jump-хоста (промежуточного сервера). Это повышает безопасность и упрощает управление ключами. Если jump-хост не используется, убедитесь, что ваш публичный ключ скопирован на целевой сервер (ssh-copy-id), проверьте права на каталог ~/.ssh (должен быть 700) и файл ~/.ssh/authorized_keys (600). Временно можно включить аутентификацию по паролю в /etc/ssh/sshd_config (параметр PasswordAuthentication yes) и перезапустить sshd, но после завершения настройки рекомендуется отключить.

9. Финальная проверка перед развёртыванием приложения

Убедитесь, что на каждом сервере выполнены следующие условия:

  • Docker работает: docker info (без ошибок, пользователь в группе docker, раздел 3).
  • FRR запущен: systemctl status frr (активен, нет ошибок - раздел 6).
  • SSH-ключи созданы и настроены (раздел 1).
  • systemd используется как init (раздел 4).
  • crontab доступен (раздел 5).
  • Порты открыты в соответствии с требованиями: проверьте, что на всех серверах разрешены входящие соединения на порты из Таблицы 1 документа «Требования к серверам». Для быстрой проверки можно использовать команду:
    sudo ss -tulpn | grep -E ':(8443|9000|5432|50051|9090)'
    (список портов замените на актуальный для вашей конфигурации).

Только после успешной проверки всех пунктов приступайте к установке компонентов Балансировщика 5А.