Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Здравствуйте. Поиск ничего не дал, поэтому решил написать.
На Ubuntu 20.04, у меня настроены уведомления, с отправкой сообщения в Телеграм.
Там это реализовано так, создал скрипт, закинул его в директорию /etc/profile.d/ssh-to-telegram-notififations.sh

USERID="мой юзер айди"
KEY="мой апи токен"
TIMEOUT="10"
URL="https://api.telegram.org/bot$KEY/sendMessage"
DATE_EXEC="$(date "+%d %B %Y %H:%M")"
if [ -n "$SSH_CLIENT" ]; then
        IP=$(awk '{print $1}' <<< $SSH_CLIENT)
        PORT=$(awk '{print $3}' <<< $SSH_CLIENT)
        HOSTNAME=$(hostname -f)
        IPADDR=$(hostname -I | awk '{print $1}')
        TEXT="$DATE_EXEC
        Вход пользователя ${USER} по ssh на $HOSTNAME ($IPADDR)
        С $IP через порт $PORT"
        curl -s --max-time $TIMEOUT -d "chat_id=$USERID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null
fi

И все работает.

А как реализовать это в Entware, не пойму. 

2021-03-15_10-11-37.png

  • 4 года спустя...
Опубликовано (изменено)
В 15.03.2021 в 10:14, Muwahhid сказал:

А как реализовать это в Entware, не пойму. 

2021-03-15_10-11-37.png

 

1) Создаем скрипт что под командами жирным выделен:
vi /opt/root/open.ssh.sh

2) вставляем и сохраняем, после сохранения даем права:

chmod +x /opt/root/open.ssh.sh

3) ну и запускаем установочный скрипт для настройки и установки:

/opt/root/open.ssh.sh

️ После запуска спросит id пользователя и token бота телеграм ️ 

этот код что ниже жирным выделен вставить при создании командой vi

#!/bin/sh
# Установочный скрипт для SSH уведомлений в Telegram о входе пользователя в ssh от @pegakmop

SCRIPT_PATH="/opt/bin/open.ssh.sh"
PROFILE_PATH="/opt/root/.profile"
STARTUP_LINE="/opt/bin/open.ssh.sh &"

echo "=========================================="
echo "  Установка SSH уведомлений в Telegram о входе в ssh"
echo
echo "create by @pegakmop"
echo
"=========================================="
echo ""

# Запрашиваем User ID
echo -n "Введите ваш Telegram User ID: "
read USERID

# Проверка на пустое значение
if [ -z "$USERID" ]; then
    echo "Ошибка: User ID не может быть пустым!"
    exit 1
fi

# Запрашиваем токен бота
echo -n "Введите токен Telegram бота: "
read KEY

# Проверка на пустое значение
if [ -z "$KEY" ]; then
    echo "Ошибка: Токен бота не может быть пустым!"
    exit 1
fi

echo ""
echo "Установка с параметрами:"
echo "  User ID: $USERID"
echo "  Bot Token: ${KEY:0:10}...${KEY: -10}"
echo ""

# Создаем скрипт open.ssh.sh
cat > "$SCRIPT_PATH" << EOF
#!/bin/sh
# SSH notifications to Telegram
USERID="$USERID"
KEY="$KEY"
TIMEOUT="10"
URL="https://api.telegram.org/bot\$KEY/sendMessage"
DATE_EXEC="\$(date "+%d %B %Y %H:%M")"

if [ -n "\$SSH_CLIENT" ]; then
    IP=\$(echo \$SSH_CLIENT | awk '{print \$1}')
    PORT=\$(echo \$SSH_CLIENT | awk '{print \$3}')
    HOSTNAME=\$(hostname)
    IPADDR=\$(ip addr show br0 | grep 'inet ' | awk '{print \$2}' | cut -d'/' -f1)
    
    TEXT="\$DATE_EXEC
Вход пользователя \${USER} по ssh на \$HOSTNAME (\$IPADDR)
С \$IP через порт \$PORT"
    
    /opt/bin/curl -s --max-time \$TIMEOUT -d \\
    "chat_id=\$USERID&disable_web_page_preview=1&text=\$TEXT" \\
    \$URL > /dev/null
fi
EOF

# Даем права на выполнение
chmod +x "$SCRIPT_PATH"
echo "✓ Скрипт создан: $SCRIPT_PATH"

# Проверяем, не добавлена ли уже строка в profile
if grep -q "$STARTUP_LINE" "$PROFILE_PATH" 2>/dev/null; then
    echo "⚠ Строка уже присутствует в $PROFILE_PATH"
else
    # Добавляем строку в конец profile
    echo "" >> "$PROFILE_PATH"
    echo "# SSH Telegram notifications" >> "$PROFILE_PATH"
    echo "$STARTUP_LINE" >> "$PROFILE_PATH"
    echo "✓ Добавлено в $PROFILE_PATH"
fi

echo ""
echo "=========================================="
echo "  Установка завершена успешно!"
echo "=========================================="
echo "Переподключитесь по SSH для проверки."
echo ""
echo "Для удаления используйте:"
echo "  sed -i '/\\/opt\\/bin\\/open.ssh.sh/d' $PROFILE_PATH"
echo "  rm $SCRIPT_PATH"

 

Изменено пользователем pegakmop
Пояснения
Опубликовано

Простите за занудство, это не уведомление о входе по SSH. Это уведомление о начале (только) интерактивного сеанса (только) пользователя root. Причём не важно, начат ли сеанс по SSH или нет.

 

Пришедший с правильным паролем по SSH бот при выполнении ssh login@host 'command' следов не оставит. 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.