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

72 lines
2.4 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.
[alt text](img/image.png)!
[alt text](img/image.png)
Сохраните скрипт
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
Теперь ваш монитор будет работать как демон.