установка zabbix proxy
установка zabbix proxy
Установка Zabbix Proxy: безопасная настройка для распределённого мониторинга
установка zabbix proxy — задача, с которой сталкиваются администраторы при масштабировании системы наблюдения за инфраструктурой. Этот компонент критически важен для сбора метрик в изолированных сетях, филиалах или зонах с ограниченной связью. Но без грамотной конфигурации он превращается в вектор атаки. В этом руководстве разберём не только шаги развёртывания, но и скрытые риски, которые игнорируют большинство гайдов.
Почему «просто поставить» — плохая идея
Zabbix Proxy работает как буфер между агентами и центральным сервером. Он собирает данные, хранит их локально и передаёт на сервер по расписанию. Казалось бы — что тут может пойти не так? Однако:
- По умолчанию трафик между прокси и сервером не шифруется (если не настроить TLS).
- База данных прокси (чаще всего SQLite или PostgreSQL) может содержать чувствительные метрики: загрузку CPU, объёмы трафика, статусы сервисов.
- Если прокси скомпрометирован, злоумышленник получает карту вашей периферийной инфраструктуры.
- Неправильные права доступа к конфигурационному файлу (
zabbix_proxy.conf) позволяют извлечь пароль от базы или токен аутентификации.
В 2024 году исследователи обнаружили, что более 37% публично доступных Zabbix Proxy имели открытый порт 10051 без аутентификации и шифрования. Это не теория — это реальные уязвимости в продакшене.
Подготовка: что проверить до первой команды
Перед установкой убедитесь, что соблюдены условия безопасности:
- Изолированная сеть. Прокси должен находиться в DMZ или отдельном VLAN, недоступном из внешней сети.
- Минимальные привилегии. Учётная запись ОС для службы
zabbix-proxyдолжна быть без прав sudo и shell-доступа. - Фаервол. Разрешите только:
- Исходящие подключения к Zabbix-серверу на порт 10051 (TCP).
- Входящие подключения от агентов на порт 10051 (если используется активный режим).
- Синхронизация времени. Установите и настройте
chronyилиsystemd-timesyncd. Расхождение во времени больше 60 секунд ломает работу прокси.
Для дистрибутивов на базе RHEL (CentOS, AlmaLinux) выполните:
sudo dnf install -y chrony
sudo systemctl enable --now chronyd
Для Ubuntu/Debian:
sudo apt install -y systemd-timesyncd
sudo systemctl enable --now systemd-timesyncd
Выбор типа прокси: passive vs active — и почему это влияет на безопасность
Zabbix Proxy бывает двух типов:
- Passive — сервер сам опрашивает прокси. Требует открытия порта на прокси для входящих подключений от сервера.
- Active — прокси сам инициирует соединение с сервером. Порт на прокси можно полностью закрыть.
Рекомендация: всегда используйте active-режим, если это возможно. Он снижает поверхность атаки, так как прокси не слушает входящие подключения. Это особенно важно в филиалах с динамическими IP или за NAT.
В конфигурации это выглядит так:
zabbix_proxy.conf
ProxyMode=0 # 0 = active, 1 = passive
Server=your.zabbix.server.ip
ServerPort=10051
Hostname=Branch-Moscow-Proxy
Установка: пошагово с акцентом на защиту
Шаг 1. Добавление официального репозитория
Никогда не используйте пакеты из стандартных репозиториев ОС — они устаревают. Подключите официальный репозиторий Zabbix:
Ubuntu 24.04:
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
sudo apt update
AlmaLinux 9:
sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
sudo dnf clean all
Шаг 2. Установка компонентов
Выберите СУБД. Для небольших развёртываний (до 500 хостов) подойдёт SQLite. Для больших — PostgreSQL.
С SQLite:
sudo apt install -y zabbix-proxy-sqlite3 # Ubuntu
или
sudo dnf install -y zabbix-proxy-sqlite3 # AlmaLinux
С PostgreSQL:
sudo apt install -y zabbix-proxy-pgsql postgresql
Инициализация БД
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix_proxy
Шаг 3. Настройка конфигурации
Отредактируйте /etc/zabbix/zabbix_proxy.conf. Ключевые параметры:
Server=192.168.10.5 # IP вашего Zabbix-сервера
Hostname=Proxy-Moscow-DC # Должен совпадать с именем в веб-интерфейсе!
DBName=zabbix_proxy # Имя БД
DBUser=zabbix # Пользователь БД
DBPassword=Str0ng!P@ss # Сложный пароль, не из примеров!
ProxyMode=0 # Active mode
TLSConnect=cert # Обязательно для шифрования!
TLSCAFile=/etc/ssl/certs/ca.pem
TLSCertFile=/etc/ssl/certs/proxy.crt
TLSKeyFile=/etc/ssl/private/proxy.key
Важно: файл
zabbix_proxy.confдолжен быть доступен только пользователюzabbix:
bash sudo chown zabbix:zabbix /etc/zabbix/zabbix_proxy.conf sudo chmod 600 /etc/zabbix/zabbix_proxy.conf
Шаг 4. Настройка TLS между прокси и сервером
Без этого весь трафик передаётся в открытом виде. Используйте сертификаты, подписанные вашим внутренним CA:
- На сервере создайте CA (если нет).
- Выпустите сертификат для прокси с CN=
Proxy-Moscow-DC. - Скопируйте
ca.pem,proxy.crt,proxy.keyна прокси. - Укажите пути в конфиге (см. выше).
- На сервере в настройках прокси в веб-интерфейсе укажите: Connections to proxy > Certificate.
Проверьте соединение через openssl s_client:
openssl s_client -connect your.zabbix.server:10051 -CAfile /etc/ssl/certs/ca.pem
Если видите Verify return code: 0 (ok), всё в порядке.
Шаг 5. Запуск и проверка
sudo systemctl enable zabbix-proxy --now
sudo systemctl status zabbix-proxy
Проверьте логи на ошибки:
sudo journalctl -u zabbix-proxy -f --since "1 hour ago"
Ожидаемое сообщение: current database version ....
Чего вам НЕ говорят в других гайдах
Большинство инструкций замалчивают критические моменты:
- Логирование по умолчанию отключено. Без
LogType=fileиLogFile=/var/log/zabbix/zabbix_proxy.logвы не увидите атаки или сбои. - SQLite — не для продакшена. При высокой нагрузке возможна блокировка БД, что приведёт к потере данных. В 2025 году Zabbix официально рекомендует PostgreSQL даже для средних развёртываний.
- Обновления безопасности. Пакеты из репозитория Zabbix обновляются быстро, но если вы используете Docker-образы без подписки на security-релизы, вы остаётесь уязвимы. Например, уязвимость CVE-2023-29456 (RCE в компонентах Zabbix) требовала немедленного патча.
- Нет защиты от DoS. Прокси не имеет встроенных механизмов rate-limiting. Злоумышленник может отправить тысячи фальшивых метрик и исчерпать место на диске. Решение — настройка
iptablesилиnftablesс ограничением подключений. - Сертификаты без отзыва. Если ключ прокси скомпрометирован, но у вас нет OCSP или CRL, сервер продолжит принимать трафик. Внедрите систему отзыва сертификатов.
Сравнение вариантов развёртывания: что выбрать в 2026 году
| Критерий | Zabbix Proxy на VM | Zabbix Proxy в Docker | Zabbix Proxy на bare metal |
|---|---|---|---|
| Изоляция | Средняя | Высокая (контейнеры) | Низкая |
| Производительность | Высокая | Средняя (-5–10% overhead) | Максимальная |
| Безопасность | Зависит от настройки ОС | Зависит от образа и runtime | Требует hardening ОС |
| Масштабируемость | Ручное клонирование | Легко через Kubernetes | Сложно |
| Поддержка TLS 1.3 | Да (с OpenSSL 1.1.1+) | Только в свежих образах | Да |
| Рекомендовано для | Филиалов, DC | Облачные среды | Высоконагруженные системы |
Примечание: В России из-за требований ФСТЭК к защите информации часто запрещено использовать публичные облачные образы без сертификации. Поэтому для госсектора предпочтителен вариант на виртуальной машине с ОС из Единого реестра российских программ.
Диагностика после установки: как убедиться, что всё безопасно
-
Проверка открытых портов:
bash ss -tulnp | grep zabbix
Должен быть только127.0.0.1:10051(для локальных агентов) или вообще ничего (в active-режиме). -
Анализ трафика:
bash sudo tcpdump -i any -nn port 10051 -w zabbix.pcap
Откройте файл в Wireshark. Если видите читаемый JSON/XML — TLS не работает. -
Проверка прав доступа:
bash namei -l /etc/zabbix/zabbix_proxy.conf
Владелец —zabbix, права —600. -
Тест отказоустойчивости: остановите сервер Zabbix на 10 минут. Прокси должен продолжать собирать данные и отправить их после восстановления связи.
Распространённые ошибки и как их избежать
-
Ошибка 1: Имя хоста в
zabbix_proxy.confне совпадает с именем в веб-интерфейсе.
Решение: всегда копируйте имя из раздела Administration → Proxies. -
Ошибка 2: Использование одинаковых паролей для всех прокси.
Решение: генерируйте уникальный пароль для каждой БД черезopenssl rand -base64 32. -
Ошибка 3: Отсутствие мониторинга самого прокси.
Решение: добавьте прокси как хост в Zabbix и настройте триггеры на: - Рост размера БД
- Ошибки в логах
-
Отклонение времени больше 30 секунд
-
Ошибка 4: Хранение бэкапов БД в той же сети без шифрования.
Решение: шифруйте дампы черезgpgи храните вне основной инфраструктуры.
FAQ
Нужен ли отдельный сервер для Zabbix Proxy?
Для небольших филиалов (до 100 хостов) можно размещать прокси на том же сервере, что и другие сервисы, но только если:
— Установлен строгий фаервол (разрешены только нужные порты)
— Сервис работает от непривилегированного пользователя
— Диск разделён (например, через LVM), чтобы переполнение БД не упало на корневую ФС.
Для крупных развёртываний — всегда выделяйте отдельную ВМ.
Можно ли использовать Zabbix Proxy без центрального сервера?
Нет. Прокси — это промежуточное звено. Он не имеет веб-интерфейса и не умеет обрабатывать триггеры или отправлять алерты. Его единственная задача — собирать и буферизовать данные для сервера.
Как часто прокси отправляет данные на сервер?
По умолчанию — каждые 1 секунду (параметр ProxyConfigFrequency и ProxyDataFrequency). Но вы можете увеличить интервал до 3600 секунд, если связь нестабильна. Учтите: чем дольше интервал, тем выше риск потери данных при аварии прокси.
Что делать, если прокси не видит агентов?
Проверьте:
1. Совпадает ли Server в конфиге агента с IP прокси?
2. Открыт ли порт 10050 на агентах для прокси?
3. Не блокирует ли SELinux или AppArmor соединение (проверьте ausearch -m avc -ts recent)
4. Совпадает ли версия протокола (агент и прокси должны быть одной мажорной версии Zabbix).
Поддерживает ли Zabbix Proxy шифрование AES-256?
Zabbix использует OpenSSL для TLS. Если ваша система поддерживает AES-256-GCM (а современные ОС — да), то при настройке TLS с сильными шифрами (TLSCipherAll=HIGH:!aNULL:!MD5) будет использоваться именно AES-256. Но сам протокол Zabbix не реализует кастомное шифрование — только через TLS.
Насколько безопасен Zabbix Proxy в облаке (Yandex Cloud, VK Cloud)?
Безопасность зависит от вас:
— Всегда включайте шифрование дисков (KMS)
— Используйте security groups вместо open firewall
— Никогда не назначайте прокси публичный IP
— Регулярно обновляйте ОС и Zabbix
В остальном облачные ВМ ничем не отличаются от локальных с точки зрения безопасности Zabbix.
Вывод
установка zabbix proxy — это не просто копирование конфига и запуск службы. Это создание доверенной точки сбора данных, которая может стать слабым звеном всей системы мониторинга. Ключевые принципы безопасной установки: минимизация привилегий, обязательное шифрование трафика через TLS, изоляция сети и регулярный аудит конфигурации. Не экономьте на настройке сертификатов и мониторинге самого прокси — иначе вы получите не инструмент наблюдения, а «око» для злоумышленника. В условиях российской инфраструктуры особенно актуальны требования к локализации данных и защите от несанкционированного доступа, поэтому всегда сверяйтесь с актуальными рекомендациями ФСТЭК и используйте только сертифицированные решения при работе с критичными системами.
Thanks for sharing this. Maybe add a short glossary for new players. Good info for beginners.