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.
Đầ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
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
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!