Home Tin tức Script cảnh báo SSH qua Telegram

Script cảnh báo SSH qua Telegram

by QuantriVPS.com
41 views
Script cảnh báo SSH qua Telegram

Khi quản lý một máy chủ hoặc hệ thống, việc theo dõi các hoạt động SSH là một phần quan trọng để bảo đảm an ninh và kiểm soát truy cập. Để giúp bạn tự động hóa quá trình này, chúng tôi đã phát triển một script đơn giản để cảnh báo qua Telegram khi có người truy cập vào máy chủ thông qua SSH. Bằng cách kết hợp với việc truy vấn thông tin về địa chỉ IP của người truy cập, script này cung cấp cho bạn cái nhìn tổng quan về thiết bị máy tính và địa điểm từng người truy cập.

Trong bài viết này, chúng tôi sẽ giới thiệu script được viết bằng bash shell để thực hiện cảnh báo qua Telegram khi có người SSH vào máy chủ.

Hãy tiếp tục đọc để tìm hiểu cách triển khai và cấu hình các script này, đồng thời tận dụng khả năng cung cấp thông tin chi tiết về người truy cập SSH và máy tính từ địa chỉ IP.

Yêu cầu:

  • ID bot Telegram hoặc ID Group Telegram
  • Token Telegram

Đối với các điều kiện trên bạn có thể search các tài liệu ở Google để tạo nhanh chóng.

Bước 1: Cài đặt ứng dụng bổ sung

Trước khi sử dụng script này, bạn cần cài đặt một số công cụ như, curljq.

  • Đối với Rhel/CentOS
yum install epel-release -y
yum install jq -y
  • Đối với Ubuntu/Debian
apt-get -y install jq

Bước 2: Tạo script cảnh báo SSH về Telegram

Bạn SSH vào máy chủ và tạo một file sau

vi /etc/profile.d/alert_ssh_telegram.sh

Sau đó copy đoạn script sau dán vào file alert_ssh_telegram.sh. Và trong script này bạn cần sửa lại 2 dòng sau

  • USERID=””: Nhập vào ID bot hoặc ID Group Telegram
  • KEY=””: Nhập vào mã Token của Telegram
#!/bin/bash
# Author: QuantriVPS.com

USERID="XXXXX"
KEY="YYYYY"
TIMEOUT="10"
URL="https://api.telegram.org/bot$KEY/sendMessage"
DATE_EXEC="$(date "+%d %b %Y %H:%M")"
TMPFILE='/tmp/ipinfo-$DATE_EXEC.txt'
if [ -n "$SSH_CLIENT" ]; then
        IP=$(echo $SSH_CLIENT | awk '{print $1}')
        PORT=$(echo $SSH_CLIENT | awk '{print $3}')
        HOSTNAME=$(hostname -f)
        IPADDR=$(hostname -I | awk '{print $1}')
        curl http://ipinfo.io/$IP -s -o $TMPFILE
        CITY=$(cat $TMPFILE | jq '.city' | sed 's/"//g')
        REGION=$(cat $TMPFILE | jq '.region' | sed 's/"//g')
        COUNTRY=$(cat $TMPFILE | jq '.country' | sed 's/"//g')
        ORG=$(cat $TMPFILE | jq '.org' | sed 's/"//g')
        TEXT="🆘🆘🆘🆘 $DATE_EXEC: ${USER} logged in to $HOSTNAME ($IPADDR) from $IP - $ORG - $CITY, $REGION, $COUNTRY on port $PORT"
        curl -s --max-time $TIMEOUT -d "chat_id=$USERID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null
        rm $TMPFILE
fi

Bây giờ phân quyền thực thi cho file

chmod +x /etc/profile.d/alert_ssh_telegram.sh

Bây giờ mọi phiên SSH vào Server đều được cảnh báo về Telegram. Điều này giúp bạn giám sát máy chủ được chặt chẽ hơn. Và bên dưới là kết quả sau khi tôi thực hiện.

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

QUẢN TRỊ VPS

Một sản phẩm của Đỗ Trung Quân

QuantriVPS.com – Thay bạn quản trị máy chủ cho bạn