72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown

|
||
|
||

|
||
|
||
|
||
Сохраните скрипт
|
||
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
|
||
|
||
Теперь ваш монитор будет работать как демон. |