Сохраните скрипт sudo nano /usr/local/bin/telegram-ssh-notify.sh
Вставьте код и сделайте исполняемым: sudo chmod +x /usr/local/bin/telegram-ssh-notify.sh
Создайте конфигурационный файл
sudo nano /etc/telegram-ssh-notify.conf
TELEGRAM_TOKEN= TELEGRAM_CHAT_ID= TELEGRAM_TOPIC_ID= MAX_ATTEMPTS_BEFORE_CRITICAL=20 CRITICAL_TIME_WINDOW=300 AUTO_BLOCK_CRITICAL=false WHITELIST_IPS="127.0.0.1 10.0.0.0/8" BLACKLIST_IPS="1.2.3.4"
Откройте файл /etc/pam.d/sshd в редакторе (например, nano или vim):
sudo nano /etc/pam.d/sshd
Добавьте в конец файла строку:
session optional pam_exec.so /usr/local/bin/telegram-ssh-notify.sh #(обратите внимание: если вы переименовали скрипт, укажите правильное имя)
Сохраните файл и закройте редактор.
Перезапускать SSH не обязательно — PAM читает конфигурацию при каждой новой сессии.
Создайте файл юнита (например, /etc/systemd/system/ssh-check.service):
sudo nano /etc/systemd/system/ssh-check.service
Вставьте следующее содержимое (подставьте правильный путь к вашему скрипту, если он называется иначе, например, telegram-ssh-notify.sh):
[Unit] Description=SSH Login Monitor for Telegram Notifications After=network.target
[Service] ExecStart=/usr/local/bin/ваш_скрипт.sh monitor Restart=always User=root
[Install] WantedBy=multi-user.target
Обратите внимание: в ExecStart нужно указать команду с аргументом monitor (как в вашем скрипте). Если ваш скрипт называется telegram-ssh-notify.sh, то строка будет:
ExecStart=/usr/local/bin/telegram-ssh-notify.sh monitor
Перечитайте конфигурацию systemd и запустите сервис:
bash sudo systemctl daemon-reload sudo systemctl enable ssh-check.service # автозапуск при загрузке sudo systemctl start ssh-check.service
Проверьте статус:
bash sudo systemctl status ssh-check.service
Теперь ваш монитор будет работать как демон.