Подробный гайд: удалённая установка агента администрирования Dr.Web на ALT Linux

Пошаговая установка агента Dr.Web на ALT Linux через SSH: настройка, массовое развёртывание, диагностика.

2026.04.22                  


Подробный гайд: удалённая установка агента администрирования Dr.Web на ALT LinuxПодробный гайд: удалённая установка агента администрирования Dr.Web на ALT Linux

Важно:

  • Интерфейсы, пути и имена пакетов могут незначительно отличаться в зависимости от версии Dr.Web Enterprise Security Suite (ESS) и сборки ALT Linux. Данный гайд актуален для Dr.Web ESS 11.x–12.x и ALT Linux 10/11 (p10/p11). Всегда сверяйтесь с официальной документацией Dr.Web для вашей версии.

Оглавление

  1. Требования и подготовка
  2. Получение пакета агента
  3. Настройка бесшумной установки
  4. Удалённая установка через SSH
  5. Массовое развёртывание
  6. Проверка и регистрация
  7. Журналы и диагностика
  8. Сетевые требования и безопасность
  9. Типовые ошибки и решения
  10. Дополнительные рекомендации

1. Требования и подготовка

Компонент Требования
Сервер Dr.Web ESS Развёрнут, доступен по сети, имеет действующую лицензию на управление Linux-агентами
Целевые хосты ALT Linux 10/11 (p10/p11), systemd, открытый SSH (порт 22), права root или sudo
Сеть TCP-порты 2193 (управление), 2194 (обновления) открыты от клиента к серверу ESS
Пакет агента RPM-пакет drweb-ent-agent-<версия>-*.rpm или drweb-agent-<версия>-*.rpm
Доступ Учётная запись с возможностью выполнения команд через SSH и sudo (или прямой root)

2. Получение пакета агента

  1. В консоли Dr.Web ESS перейдите: Администрирование → Загрузка пакетов → Linux.
  2. Скачайте RPM-пакет для архитектуры целевых машин (x86_64 или aarch64).
  3. Сохраните файл в удобной директории на машине, с которой будете разворачивать агента (например, ~/drweb-deploy/).

Имя файла обычно выглядит так: drweb-ent-agent-12.1.0-261231.x86_64.rpm


3. Настройка бесшумной установки

Dr.Web не запрашивает параметры во время установки RPM, если конфигурационный файл уже присутствует.

Создайте шаблон drweb-agent.conf:

mkdir -p ~/drweb-deploy/config
cat > ~/drweb-deploy/config/drweb-agent.conf << 'EOF'
[Server]
Address=192.168.1.10
Port=2193
UseSSL=yes
VerifySSL=no

[Agent]
Secret=YourSecretKeyFromESS
ComputerName=$(hostname)
Group=LinuxWorkstations
EOF

Замените:

  • 192.168.1.10 → IP/DNS вашего сервера Dr.Web ESS
  • YourSecretKeyFromESS → секретный ключ из консоли ESS (Администрирование → Ключи безопасности)
  • Group → логическая группа в ESS (опционально)

Параметр VerifySSL=no допустим только в закрытых сетях. В production используйте yes и разместите сертификат CA в /etc/drweb/ssl/ca.crt.

4. Удалённая установка через SSH

4.1. Установка на один хост

# Переменные
TARGET="192.168.1.100"
USER="admin"
RPM="drweb-ent-agent-12.1.0-261231.x86_64.rpm"
CONF="drweb-agent.conf"

# 1. Копируем конфиг и пакет
scp ~/drweb-deploy/config/$CONF $USER@$TARGET:/tmp/drweb-agent.conf
scp ~/drweb-deploy/$RPM $USER@$TARGET:/tmp/$RPM

# 2. Устанавливаем удалённо
ssh $USER@$TARGET << 'REMOTE_SCRIPT'
  sudo cp /tmp/drweb-agent.conf /etc/drweb/drweb-agent.conf
  sudo chown root:root /etc/drweb/drweb-agent.conf
  sudo chmod 600 /etc/drweb/drweb-agent.conf
  sudo rpm -i --replacefiles /tmp/*.rpm
  sudo systemctl enable --now drweb-agent
  sudo rm -f /tmp/drweb-agent.conf /tmp/*.rpm
  echo "Агент установлен и запущен."
REMOTE_SCRIPT

4.2. Проверка статуса

ssh $USER@$TARGET "sudo systemctl status drweb-agent --no-pager"
ssh $USER@$TARGET "sudo journalctl -u drweb-agent -n 20 --no-pager"

5. Массовое развёртывание

Для сети из нескольких десятков/сотен хостов используйте parallel-ssh или Ansible.

Пример с parallel-ssh (pssh):

sudo apt-get install pssh  # или yum/pacman в зависимости от дистрибутива админ-машины

# Список хостов: hosts.txt (по одному IP/hostname на строку)
cat > hosts.txt << EOF
192.168.1.100
192.168.1.101
192.168.1.102
EOF

# Скрипт установки (deploy.sh)
#!/bin/bash
set -e
sudo cp /tmp/drweb-agent.conf /etc/drweb/drweb-agent.conf
sudo chown root:root /etc/drweb/drweb-agent.conf
sudo chmod 600 /etc/drweb/drweb-agent.conf
sudo rpm -i --replacefiles /tmp/*.rpm
sudo systemctl enable --now drweb-agent
sudo rm -f /tmp/drweb-agent.conf /tmp/*.rpm

# Запуск
pssh -h hosts.txt -l admin -i "sudo cp /tmp/drweb-agent.conf /etc/drweb/drweb-agent.conf"
pssh -h hosts.txt -l admin -i "sudo chmod 600 /etc/drweb/drweb-agent.conf"
pscp.pssh -h hosts.txt -l admin ~/drweb-deploy/config/drweb-agent.conf /tmp/
pscp.pssh -h hosts.txt -l admin ~/drweb-deploy/$RPM /tmp/
pssh -h hosts.txt -l admin -i "bash /tmp/deploy.sh"

Для Ansible используйте модуль yum/rpm + template для конфига.


6. Проверка и регистрация

  1. В консоли Dr.Web ESS: Устройства → Все устройства. Новый хост должен появиться в статусе Не провереноПроверкаЗащищён.
2. На хосте проверьте связь с сервером:
   sudo drweb-agent --status
   sudo cat /var/log/drweb/agent.log | grep -i "connected\|registered"
3. Принудительное обновление политик:
   sudo drweb-agent --update-config

7. Журналы и диагностика

Путь Назначение
/var/log/drweb/agent.log Основной лог агента
journalctl -u drweb-agent -f Логи systemd в реальном времени
/etc/drweb/drweb-agent.conf Активная конфигурация
/var/lib/drweb/ БД состояний, кэш, сертификаты

Полезные команды:

# Проверка версии агента
rpm -q drweb-ent-agent

# Перезапуск с отладочным логом
sudo systemctl stop drweb-agent
sudo sed -i 's/LogLevel=.*/LogLevel=debug/' /etc/drweb/drweb-agent.conf
sudo systemctl start drweb-agent

8. Сетевые требования и безопасность

Направление Порт Протокол Назначение
Клиент → Сервер ESS 2193 TCP Управление, отправка событий
Клиент → Сервер ESS 2194 TCP Загрузка обновлений/баз
Клиент → Интернет (опц.) 80/443 TCP Загрузка внешних сигнатур (если разрешено политикой)

Рекомендации:

  • Ограничьте доступ к портам 2193/2194 только для подсетей с агентами.
  • Используйте UseSSL=yes + VerifySSL=yes в продакшене.
  • Регулярно ротируйте Secret через консоль ESS.
  • Не храните конфиги с Secret в открытых репозиториях.

9. Типовые ошибки и решения

Ошибка Причина Решение
Failed to connect to server Закрыт порт, неверный IP/DNS, брандмауэр Проверьте telnet <server> 2193, правила firewalld/iptables
Invalid secret Неверный ключ или рассинхронизация времени Проверьте ключ в ESS, синхронизируйте время (chronyc makestep)
RPM dependency failed Отсутствует glibc, openssl, systemd Установите зависимости: sudo apt-get install glibc openssl systemd
Агент появляется, но Не защищён Политика не применена, нет лицензии В ESS: Политики → Применить к группе, проверьте лицензию
Permission denied при чтении конфига Неверные права/владелец sudo chown root:root /etc/drweb/drweb-agent.conf && sudo chmod 600

10. Дополнительные рекомендации

Автоматизация обновлений агента:
Добавьте в cron или systemd-timer проверку новых RPM в локальном репозитории и автоматическое обновление через rpm -Uvh.

Интеграция с ALT Linux:

  • Если в сети используется apt-rpm, можно создать локальный репозиторий:
  sudo apt-repo add local /path/to/rpm/dir
  sudo apt-get install drweb-ent-agent
  • Для ALT Server Edition убедитесь, что службы systemd-journald и rsyslog не конфликтуют с ротацией логов Dr.Web.

Резервное копирование политик:

Экспортируйте конфигурацию ESS перед массовым развёртыванием:
Администрирование → Резервные копии → Создать.