Files
mailgw-salt/README.md
T

105 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-доступ на узел.
## Быстрый запуск
```bash
make lint
make check
make apply
make verify
make update-check
make update
```
По умолчанию `MINION_ID=p-mailgw-x2-01.lmru.tech`. Можно переопределить:
```bash
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
Перед обновлением:
```bash
make update-check MINION_ID=p-mailgw-x1-01.lmru.tech
```
Применение:
```bash
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"; сервисы включатся вторым прогоном после установки пакетов.