Hướng dẫn tạo Bot cảnh báo đăng nhập SSH qua Telegram

SSH là giao thức truy cập để quản lý server, bài viết này mình sẽ hướng dẫn các bạn tạo Bot Telegram cảnh báo khi có ai đó SSH vào server của bạn.

Bước 1: Tạo Bot Telegram

Đầu tiên các bạn phải tạo Bot Telegram:

Cụ thể sẽ như sau:

 

Bạn đăng nhập vào Telegram và tim BotFather, sau đó gõ /newbot để tạo và đặt tên cho bot như hình dưới. Sau khi xong bạn sẽ nhận được 1 mã token.

Sau khi tạo BOT xong bạn thêm bot vào 1 Group để nhận thông báo từ bot

Tiếp theo bạn cần khởi động bot bằng cách chat với bot trong Group

 /my_id @TenCuaBot

Để gửi thông báo về Group bạn cần phải có thêm Chat ID, để lấy CHAT ID bạn truy cập vào link bên dưới, thay token bạn vào

https://api.telegram.org/bot<token>/getUpdates

Kết quả trả về sẽ có phần chat id như ảnh.

Bước 2: Gửi Thông Báo Tới Telegram

Để gửi thông báo tới Telegram bạn có thể sử dụng method GET

https://api.telegram.org/bot<token>/sendMessage?chat_id=<chat_id>&text=<noi_dung>

Hoặc sử dụng cURL

curl -d chat_id=<chat_id> -d text="noi_dung"  https://api.telegram.org/bot<token>/sendMessage

Trên đây là hướng dẫn cơ bản để các bạn tạo bot và gửi thông báo.

Chúc bạn thành công!

Bước 2: Cài đặt jq

jq là một ứng dụng để đọc thông tin file JSON trên linux. Ở đây cần cài đặt jq để lấy thông tin về IP của người truy cập SSH.

yum install epel-release -y
yum install jq -y

Bước 3: Tạo script cảnh báo

Các bạn tạo file ssh-telegram.sh với nội dung sau vào thư mục /etc/profile.d/

USERID=”<chat_id>”
KEY=”<bot_token>”
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

Các bạn thay Chat ID và Bot Token lúc tạo Bot vào code trên. Cấp quyền thực thi cho script

chmod +x /etc/profile.d/ssh-telegram.sh

Chúc bạn thành công!

>>> Cách repair database bằng command qua ssh

Leave a Reply