Script #3 : Giám sát truy cập ssh vào hệ thống

30/12/2020

Để quản lý việc đăng nhập vào hệ thống, ta cần có những cảnh báo khi có người đăng nhập thành công vào hệ thống.

Giải pháp đơn giản là ta sẽ sử dụng bot của Telegram để gửi cảnh báo qua một kênh Telegram.

Chuẩn bị

  • Máy chủ với IP public (hoặc IP private có thể ra ngoài internet)
  • Có kết nối internet
  • Đã có tài khoản Telegram
  • Thao tác với user root

Thực hiện

1. Tạo bot telegram

Nếu bạn đã có bot Telegram thì có thể sử dụng luôn.

Tham khảo cách tạo bot telegram tại đây.

Sau khi tạo bot xong, ta sẽ lưu lại 2 thông số sau để sử dụng trong script:

  • Bot API token.
  • ID chat mà bạn muốn bot gửi cảnh báo.

2. Cài đặt jq

jq là ứng dụng để đọc thông tin file JSON trên Linux.

Xem thêm thông tin và cách sử dụng jq tại : https://stedolan.github.io/jq/

Trên Ubuntu

apt-get -y install jq

Trên CentOS 7

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

3. Tạo file script

Ta sẽ tạo file script tại thư mục /etc/profile.d/. Để khi đăng nhập vào hệ thống thì script sẽ thực hiện ngay lập tức.

Tạo file script ssh-telegram.sh:

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

Nội dung script:

# ID chat Telegram USERID="<target_user_id>"  # API Token bot TOKEN="<bot_private_TOKEN>"  TIMEOUT="10"  # URL gửi tin nhắn của bot URL="https://api.telegram.org/bot$TOKEN/sendMessage"  # Thời gian hệ thống DATE_EXEC="$(date "+%d %b %Y %H:%M")"  # File temp TMPFILE='/tmp/ipinfo.txt'  if [ -n "$SSH_CLIENT" ]; then     IP=$(echo $SSH_CLIENT | awk '{print $1}')     PORT=$(echo $SSH_CLIENT | awk '{print $3}')     HOSTNAME=$(hostname -f)     IPADDR=$(echo $SSH_CONNECTION | awk '{print $3}')      # Lấy các thông tin từ IP người truy cập theo trang ipinfo.io     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')      # Nội dung cảnh báo     TEXT=$(echo -e "Thời gian: $DATE_EXECnUser: ${USER} logged in to $HOSTNAME($IPADDR) nFrom $IP - $ORG - $CITY, $REGION, $COUNTRY on port $PORT")      # Gửi cảnh báo     curl -s -X POST --max-time $TIMEOUT $URL -d "chat_id=$USERID" -d text="$TEXT" > /dev/null      # Xóa file temp khi script thực hiện xong     rm $TMPFILE fi 

Cấp quyền thực thi:

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

Lưu ý: USERID và TOKEN sẽ là ID chat và API token của bot Telegram của bạn.

Kiểm tra

Tiến hành ssh vào server. Ta sẽ thấy cảnh báo từ Telegram tương tự như sau:

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

Chuỗi bài viết về script.

Tham khảo: https://gist.github.com/matriphe/9a51169508f266d97313

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

How to Add a User to a Group on CentOS 7

Linux is a multi-user operating system. It is designed from the start to work with many users simultaneously. Which user...
29/12/2020

Script #4: Script cảnh báo file lạ trên server Linux (Detect Strange Files Script)

Việc các máy chủ bị hacker tấn công là việc thường xuyên xảy ra. Trong đó, có một lỗ hổng...
30/12/2020

How To Open Port 80 on CentOS7

If you’re planning to host websites on CentOS 7, then you might install a web server software such as Apache or Nginx....
28/12/2020
Bài Viết

Bài Viết Mới Cập Nhật

SỰ KHÁC BIỆT GIỮA RESIDENTIAL PROXY VÀ PROXY DATACENTER
17/02/2024

Mua Proxy v6 US Private chạy PRE, Face, Insta, Gmail
07/01/2024

Mua shadowsocks và hướng dẫn sữ dụng trên window
05/01/2024

Tại sao Proxy Socks lại được ưa chuộng hơn Proxy HTTP?
04/01/2024

Mua thuê proxy v4 nuôi zalo chất lượng cao, kinh nghiệm tránh quét tài khoản zalo
02/01/2024