Files
notification_ssh/README.md
2026-02-22 20:20:04 +03:00

2.4 KiB
Raw Blame History

alt text

alt text

Сохраните скрипт 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

Теперь ваш монитор будет работать как демон.