version 3.0

This commit is contained in:
2026-02-22 20:16:52 +03:00
parent dc00c87209
commit 4cd9443468
4 changed files with 796 additions and 41 deletions

View File

@@ -1,33 +1,72 @@
# ssh-login-notification
**Видео инструкция**
[alt text](img/image.png)!
[![Watch the video](https://img.youtube.com/vi/a6gkXZ-2pQI/0.jpg)](https://youtu.be/a6gkXZ-2pQI)
[alt text](img/image.png)
Данный скрипт, при каждом новом входе по SSH, отправляет Вам уведомление в телеграм.
![alt tag](https://github.com/unixhostpro/ssh-login-notification/blob/master/sshlogin.png)
Сохраните скрипт
sudo nano /usr/local/bin/telegram-ssh-notify.sh
Для работы скрипта Вам понадобится jq
Вставьте код и сделайте исполняемым: sudo chmod +x /usr/local/bin/telegram-ssh-notify.sh
Установка jq Ubuntu / Linux Mint / Debian
> sudo apt install jq
Создайте конфигурационный файл
Установка jq CentOS
> sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm<br />
> sudo yum install jq
sudo nano /etc/telegram-ssh-notify.conf
Установка :
Копируем скрипт в /usr/local/bin/
> wget -P /usr/local/bin/ https://raw.githubusercontent.com/unixhostpro/ssh-login-notification/master/ssh_login_info.sh
Устанавливаем права на запуск
> chmod +x /usr/local/bin/ssh_login_info.sh
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"
Ubuntu
В файл /etc/pam.d/common-session добавляем следующую строку
> echo "session optional pam_exec.so type=open_session seteuid /usr/local/bin/ssh_login_info.sh" >> /etc/pam.d/common-session
Откройте файл /etc/pam.d/sshd в редакторе (например, nano или vim):
CentOS
В файл /etc/pam.d/sshd добавляем следующую строку
> echo "session optional pam_exec.so type=open_session seteuid /usr/local/bin/ssh_login_info.sh" >> /etc/pam.d/common-session
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
Теперь ваш монитор будет работать как демон.