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!