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

Article ID: 671
Cập nhật gần nhất: 28 Th09, 2020

SSH là giao thức truy cập để quản lý server, bài viết này HOSTVN 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 theo hướng dẫn sau https://kb.hostvn.net/huong-dan-tao-bot-va-gui-thong-bao-telegram_633.html

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!

Article ID: 671
Cập nhật gần nhất: 28 Th09, 2020
Lần sửa đổi: 1
Lượt xem: 0