Софт - Скрипт для уведомления о подключении и вводе команд на VDS сервере | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Софт Скрипт для уведомления о подключении и вводе команд на VDS сервере

hyper_iks

Джун
Автор темы
29 Ноя 2023
37
4
0
Всем привет. Это будет мой первый топик на этом форуме, надеюсь кому-то полезным.

Хочу поделиться своим опытом создания и настройки скрипта для отправки в Telegram уведомлений о подключении к VDS серверу по SSH (или любых других видов входа в систему), а так же всех введенных пользователем команд.

Недавно я хотел купить исходники скам-бота у разработчика, который был редким хуесосом (ставил бота под аренду, а затем включал "радио" , которое перенаправляло все логи ему). При сделке через гаранта он дал левые исходники, которые естественно не работали,после чего попросил доступ к дедику чтобы самому запустить бота, мол все рабочее. Фокус был в том, что он запускал скрипт со своего удаленного сервера.

Сейчас уже поставлена цель принципиально добыть эти исходники и как вариант я решил сделать скрипт для логгирования действий на дедике.

Так как знания Linux систем и программирования в целом у меня не много, я обратился к ChatGPT за помощью и вот что получилось:

Инструкция для VDS на Ubuntu 22.04

Шаг 1:
Создание Telegram бота и чата для получения логов

Если у вас еще нет бота, создайте его через botfather в Telegram и получите токен для вашего бота. Запишите токен, он понадобится для настройки скрипта отправки сообщений.
Если у вас еще нет чата, создайте его, и добавьте в него вашего бота. Так же заранее сохраните ID вашего чата.




Шаг 2: Подключитесь к серверу по SSH и выполните установку необходимых компонентов:

Установка компонентов:
sudo apt-get install -y auditd && sudo apt install -y rsyslog && sudo apt install -y nano && sudo systemctl enable rsyslog && sudo systemctl enable auditd && sudo reboot


Шаг 3: Создайте скрипты для отправки данных в телеграм. В нашем случае nf1.sh для отправки данных о подключении к серверу, и nf2.sh для отправки вводимых команд:

Скрипт nf1.sh:
#!/bin/bash
TOKEN="ВАШ_ТОКЕН"
CHAT_ID="АЙДИ_ЧАТА"

IP=$(echo $SSH_CLIENT | awk '{ print $1 }')
MESSAGE="🌍New SSH connection:%0A<tg-spoiler>${IP}</tg-spoiler>"

# Отправка сообщения
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
     -d "chat_id=$CHAT_ID" \
     -d "text=$MESSAGE" \
     -d "parse_mode=HTML"

Скрипт nf2.sh:
#!/bin/bash
TOKEN="ВАШ_ТОКЕН"
CHAT_ID="АЙДИ_ЧАТА"

USER_NAME=$(whoami)  # Получаем имя текущего пользователя
COMMAND="$1"         # Команда, которую нужно отправить

# Формируем сообщение, используя \n для переноса строки непосредственно в тексте
MESSAGE="⚠️ User <b>${USER_NAME}</b> entered command:%0A<code>${COMMAND}</code>"

# Отправка сообщения
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
     -d "chat_id=$CHAT_ID" \
     -d "text=$MESSAGE" \
     -d "parse_mode=HTML"

НЕ ЗАБУДЬТЕ ЗАМЕНИТЬ ТОКЕН И АЙДИ ЧАТА НА ВАШИ ДАННЫЕ!



Шаг 4:
Поместите ваши скрипты на сервер:
Bash:
nano /etc/nf1.sh
и вставьте текст первого скрипта в консоль
Bash:
nano /etc/nf2.sh
и вставьте текст второго скрипта в консоль

Сделайте файлы исполняемыми:

Bash:
chmod +x /etc/nf1.sh
chmod +x /etc/nf2.sh



Шаг 5: Настройка rsyslog для перенаправления сообщений

Создайте конфигурационный файл для rsyslog, например /etc/rsyslog.d/telegram.conf, и добавьте в него строку для фильтрации сообщений, которые вы хотите отправлять в Telegram. Вы можете фильтровать сообщения по программе, приоритету и т.д. В примере ниже мы настраиваем перенаправление всех сообщений:


Bash:
nano /etc/rsyslog.d/telegram.conf

Вставьте в конец файла следующие строки:

Bash:
*.*    action(type="omprog" binary="/etc/nf2.sh")

Здесь *.* означает, что все сообщения будут обрабатываться. Вы можете изменить это условие, чтобы отфильтровать определенные сообщения.



Шаг 6: Настройка правил аудита:

Для отслеживания выполнения команд, вы должны добавить правила аудита. Создайте файл с правилами, например;


Bash:
nano /etc/audit/rules.d/audit.rules

Добавьте в файл следующие строки:
Bash:
-a always,exit -F arch=b64 -S execve -k exec_logging
-a always,exit -F arch=b32 -S execve -k exec_logging

Эти правила отслеживают все выполнения команд (через системный вызов execve) для 64-битной и 32-битной архитектуры соответственно. Флаг -k задает ключ, по которому можно будет фильтровать логи.



Шаг 7: Настройка Bash для отправки уведомлений, а так-же перехвата и отправки команд:
Bash:
nano /etc/bash.bashrc

Добавить в конце файла следующие строки:

Bash:
/etc/nf1.sh > /dev/null 2>&1

export PROMPT_COMMAND='history -a >(tee -a ~/.bash_history | while read line; do /etc/nf2.sh > /dev/null 2>&1 "$line"; done)'

Выполните перезагрузку и проверьте работоспособность
Bash:
sudo reboot
Screenshot 2024 04 03 00 18 50 515 orgtelegrammessenger
 
Like
  • 3
Реакции: 2 users
Активность:
Пока что здесь никого нет