Tạo Bot cảnh báo đăng nhập SSH qua Telegram

  • Saturday 23/03/2024

Tạo Bot cảnh báo đăng nhập SSH qua Telegram

Ở bài viết này mình sẽ hướng dẫn các bạn cách Tạo Bot cảnh báo đăng nhập SSH qua Telegram vô cùng đơn giản chỉ với 3 bước.

Tạo Bot cảnh báo đăng nhập SSH qua Telegram

Giới thiệu

Dịch vụ SSH còn có tên gọi là OpenSSH trên Linux, là một cách thức giúp bạn đi vào hệ thống Linux Server của mình và thực hiện các thao tác quản lý hệ thống. Chính vì vậy việc bảo mật cho dịch vụ SSH, cũng giống như cách bạn đặt khoá, xây tường rào để ngăn chặn những kẻ xấu tấn công vào ngôi nhà của bạn.

Ở bài viết này, mình sẽ giới thiệu đến các bạn thêm một cách bảo mật SSH khác, đó là tạo Bot cảnh báo SSH trực tiếp qua Telegram. Việc này giúp bạn giám sát và phát hiện kịp thời nếu có kẻ xấu cố tình SSH vào máy chủ.

Hướng dẫn thực hiện

Bước 1: 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.

Cài đặt jq

  • Debian/Ubuntu:
apt-get install jq -y
  • RHEL/CentOS:
yum install epel-release -y
yum install jq -y

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

  • Tạo file chứa script cảnh báo ssh

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

vi /etc/profile.d/ssh-telegram.sh

Và thêm nội dung bên dưới vào file vừa tạo:

USERID="chat_id"    ## Bạn thay Chat ID của mình vào
KEY="bot_token"     ## Bạn thay Bot Token Telegram của mình vào
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 file vừa tạo
chmod +x /etc/profile.d/ssh-telegram.sh

Bước 3: Kiểm tra kết quả

Bây giờ bạn hãy SSH vào máy chủ của mình để kiểm tra kết quả, bên dưới là thông báo mình nhận được từ Bot Telegram khi SSH. Ở log thông báo, các bạn sẽ thấy chi tiết được thời gian và IP đang SSH vào máy chủ như hình dưới.

Kiểm tra kết quả bot thông báo về telegram

Hy vọng bài viết này hữu ích với bạn. Chúc các bạn thực hiện thành công !

Các bạn có thể tham khảo thêm các hướng dẫn sử dụng khác tại link bên dưới

Thông tin kiến thức vps-dedicated-colocation tại: https://kb.pavietnam.vn/category/vps-dedicated-colocation

Tìm hiểu thêm các gói Cloud Server P.A Việt Nam đang cung cấp tại đây

P.A Việt Nam tiên phong trong thị trường Internet & Web.
Là nhà đăng ký tên miền lớn nhất Việt Nam. Chuyên nghiệp trong lĩnh vực Tên miền, Website, Email, Server, Thiết kế Web.

Đăng ký dịch vụ P.A Việt Nam: https://www.pavietnam.vn/
P.A Việt Nam cung cấp đa dạng cấu hình VPS và Dedicated tại: Cloud Server –  Cloud Server Pro  –  Máy Chủ Riêng
Tham khảo các Ưu đãi hiện có tại: https://www.pavietnam.vn/vn/tin-khuyen-mai/
Facebook: https://www.facebook.com/pavietnam.com.vn

Rate this post