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

[Command] [df][du]Kiểm tra dung lượng đĩa trong Linux

Là một admin hệ thống, bạn luôn muốn chắc chắn rằng bạn có đủ không gian đĩa để cho máy...
30/12/2020

[Cobbler] Cài đặt Ubuntu18 bằng Cobbler

Hệ điều hành Ubuntu 18.04 (Bionic Beaver) được release vào tháng 8 năm 2019 với khá nhiều thay đổi...
30/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
Bài Viết

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

Mua proxy v4 chạy socks5 để chơi game an toàn, tốc độ cao ở đâu?
18/05/2024

Thuê mua proxy Telegram trọn gói, tốc độ cao, giá siêu hời
18/05/2024

Thuê mua proxy Viettel ở đâu uy tín, chất lượng và giá tốt? 
14/05/2024

Dịch vụ thuê mua proxy US UK uy tín, chất lượng số #1
13/05/2024

Thuê mua proxy Việt Nam: Báo giá & các thông tin MỚI NHẤT
13/05/2024