Files
mailgw-salt/README.md
T

4.0 KiB
Raw Blame History

Salt baseline для PMG

Репозиторий содержит автономный набор Salt states для базовой эксплуатации и hardening Proxmox Mail Gateway.

Что внутри

  • top.sls — привязка состояний к minion ID.
  • pillar/pmg.sls — переменные и параметры PMG.
  • pmg/*.sls — состояния:
    • common (базовые пакеты),
    • node_exporter (установка и включение Prometheus node exporter),
    • smtp_monitoring (SMTP-метрики: blackbox probe для 25/26 и postfix queue/connection gauges),
    • ssh_hardening,
    • custom_check (кастомная AV-проверка PMG через KESL),
    • security_agents (Wazuh/Qualys),
    • update (пакетные обновления + pre/post проверки PMG),
    • auto_updates (security-only, без auto reboot),
    • audit_logging,
    • pmg_baseline (проверка/поддержание сервисов PMG),
    • verify (проверки состояния).
  • pmg/files/* — шаблоны конфигов.

Требования

  • Salt (рекомендуется актуальная LTS-ветка).
  • Debian/PMG узлы с systemd.
  • root-доступ на узел.

Быстрый запуск

make lint
make check
make apply
make verify
make update-check
make update

По умолчанию MINION_ID=p-mailgw-x2-01.lmru.tech. Можно переопределить:

make check MINION_ID=p-mailgw-x1-01.lmru.tech

Основные переменные

Все параметры задаются в pillar/pmg.sls:

  • pmg.base_packages
  • pmg.ssh_allow_users
  • pmg.ssh_password_authentication
  • pmg.journald_system_max_use
  • pmg.journald_max_file_sec
  • pmg.node_exporter.*
  • pmg.smtp_monitoring.*
  • pmg.pmg_services
  • pmg.update_dist_upgrade
  • pmg.update_auto_reboot
  • pmg.update_reboot_delay_minutes
  • pmg.custom_check.*
  • pmg.manage_hosts_file
  • pmg.hosts_file_entries
  • pmg.wazuh.*
  • pmg.qualys.*

pmg.node_exporter.args по умолчанию включает textfile collector: --collector.textfile.directory=/var/lib/prometheus/node-exporter.

pmg.smtp_monitoring публикует расширенные SMTP метрики в node_exporter:

  • queue total/deferred + age oldest message;
  • SMTP listen/established для портов 25/26;
  • recent window counters (pmg.smtp_monitoring.log_window_seconds) по логам postfix: sent, received, deferred, bounced, rejected, tls failures, smtp connections.

Отдельное обновление PMG

Перед обновлением:

make update-check MINION_ID=p-mailgw-x1-01.lmru.tech

Применение:

make update MINION_ID=p-mailgw-x1-01.lmru.tech
make verify MINION_ID=p-mailgw-x1-01.lmru.tech

State pmg.update выполняет:

  • precheck кластера (pmgcm status);
  • precheck критичных PMG сервисов;
  • пакетное обновление (pkg.uptodate, с dist_upgrade по pmg.update_dist_upgrade=true);
  • postcheck кластера и сервисов;
  • уведомление, если требуется reboot (/var/run/reboot-required).
  • опциональный автоперезапуск по pmg.update_auto_reboot=true (через shutdown -r +N).

PMG custom check (Kaspersky)

Коротко про pmg.custom_check:

  • готовит окружение (pwgen, /var/log/mail_av, /usr/local/bin/pmg-custom-check);
  • готовит Kaspersky-учетку (pmg.custom_check.ksc_superuser.*; сейчас superuser + NOPASSWD);
  • если kesl/klnagent64 установлены — включает сервисы и custom_check в PMG, если нет — выводит уведомление "ставится через Kaspersky Administration Center"; сервисы включатся вторым прогоном после установки пакетов.