17737cbf09
Made-with: Cursor
76 lines
2.9 KiB
Plaintext
76 lines
2.9 KiB
Plaintext
TELEGRAM_BOT_TOKEN="replace_with_telegram_bot_token"
|
|
TELEGRAM_CHAT_ID="replace_with_telegram_chat_id"
|
|
|
|
# Резервный webhook, если все каналы из NOTIFY_CHAIN недоступны (JSON {"text":"..."}).
|
|
BACKUP_WEBHOOK_URL=""
|
|
|
|
# Очередь оповещений: CSV из telegram, zabbix, email (или tg, zbx, mail).
|
|
# Пусто = авто: в цепочку попадают только настроенные каналы, порядок telegram → zabbix → email.
|
|
# Пример явной очереди: NOTIFY_ORDER="telegram,zabbix,email"
|
|
# Только Telegram: NOTIFY_ORDER="telegram"
|
|
# Только Zabbix: NOTIFY_ORDER="zabbix"
|
|
# Только почта: NOTIFY_ORDER="email"
|
|
NOTIFY_ORDER=""
|
|
|
|
# Zabbix trapper (zabbix_sender). Нужны ZABBIX_SERVER и ZABBIX_HOST_NAME.
|
|
ZABBIX_SERVER=""
|
|
ZABBIX_HOST_NAME=""
|
|
ZABBIX_ALERT_KEY="ssh.monitor.alert"
|
|
ZABBIX_SEQ_KEY="ssh.monitor.seq"
|
|
|
|
# SMTP (python3). Для авто-режима почты нужны MAIL_SMTP_HOST, MAIL_FROM, MAIL_TO.
|
|
MAIL_SMTP_HOST=""
|
|
MAIL_SMTP_PORT="587"
|
|
MAIL_SMTP_USER=""
|
|
MAIL_SMTP_PASSWORD=""
|
|
MAIL_FROM=""
|
|
MAIL_TO=""
|
|
MAIL_SMTP_STARTTLS="1"
|
|
MAIL_SMTP_SSL="0"
|
|
|
|
LOG_FILE="/var/log/ssh_monitor.log"
|
|
LAST_HEARTBEAT_FILE="/var/log/last_heartbeat.txt"
|
|
LAST_REPORT_FILE="/var/log/last_daily_report.txt"
|
|
LAST_SSH_CHECK_FILE="/var/log/last_ssh_check"
|
|
LAST_SUDO_CHECK_FILE="/var/log/last_sudo_check"
|
|
LAST_SECURITY_EVENTS_FILE="/var/log/last_security_events_check"
|
|
LAST_LOGIND_CHECK_FILE="/var/log/last_logind_check"
|
|
BAN_LIST_FILE="/var/log/ssh_bans.txt"
|
|
|
|
# systemd-logind: 1 = включено, 0 = выключено
|
|
ENABLE_LOGIND_MONITOR="1"
|
|
LOGIND_NOTIFY_NEW="1"
|
|
LOGIND_NOTIFY_REMOVED="0"
|
|
LOGIND_NOTIFY_FAILED="1"
|
|
# 1 = не дублировать Telegram для новых сессий с типом ssh (уведомление уже есть из SSH-монитора)
|
|
LOGIND_SKIP_REMOTE="1"
|
|
|
|
DAILY_REPORT_HOUR="9"
|
|
# IANA-зона для «9:00» и календарной даты отчёта; пусто = как у команды date (обычно локаль сервера, см. timedatectl)
|
|
DAILY_REPORT_TZ=""
|
|
DAILY_REPORT_TOP_IPS="5"
|
|
|
|
BAN_TIME="3600"
|
|
MAX_ATTEMPTS="3"
|
|
BAN_CHECK_INTERVAL="60"
|
|
MONITOR_INTERVAL="10"
|
|
|
|
# Окно и порог для уведомления о возможном массовом брутфорсе (journalctl)
|
|
BRUTE_WINDOW_SEC="900"
|
|
BRUTE_MIN_FAILS="30"
|
|
BRUTE_NOTIFY_COOLDOWN_SEC="3600"
|
|
|
|
# Директория для textfile collector Prometheus (node_exporter). Пусто — отключено.
|
|
PROMETHEUS_TEXTFILE_DIR=""
|
|
|
|
# JSON-снимок состояния на каждой итерации (timestamp, hostname, dry_run). Пусто — отключено.
|
|
HEALTHCHECK_STATUS_FILE=""
|
|
|
|
WATCHDOG_MAX_HEARTBEAT_AGE="5400"
|
|
WATCHDOG_LOG_FILE="/var/log/ssh_monitor_watchdog.log"
|
|
WATCHDOG_SERVICE_NAME="ssh-monitor.service"
|
|
WATCHDOG_NOTIFY_ON_RECOVERY="0"
|
|
|
|
WHITELIST_IPS="127.0.0.1,10.0.0.5"
|
|
WHITELIST_SUBNETS="10.0.0.0/24,192.168.1.0/24"
|