Phân tích access log để phát hiện hành vi bất thường

Trong vai trò quản trị hệ thống hoặc người vận hành website, việc theo dõi hoạt động truy cập là một phần không thể thiếu để đảm bảo an ninh và hiệu suất. Một trong những công cụ quan trọng nhưng thường bị bỏ qua chính là access log – nơi ghi lại toàn bộ yêu cầu gửi đến máy chủ web của bạn.

Phân tích access log để phát hiện hành vi bất thường

Thông qua việc phân tích access log, bạn có thể phát hiện ra nhiều hành vi bất thường như bot quét, tấn công brute-force, truy cập các URL lạ hoặc truy vấn bất hợp pháp vào API. Bài viết này sẽ hướng dẫn bạn cách kiểm tra access log trên các hệ thống phổ biến như Apache hoặc Nginx, sử dụng các lệnh dòng lệnh đơn giản để phát hiện kịp thời những dấu hiệu đáng ngờ mà không cần đến bất kỳ plugin hay phần mềm giám sát nào.

1. Log truy cập nằm ở đâu?

Vị trí log phụ thuộc vào webserver bạn dùng:

  • Apache: /var/log/apache2/access.log
  • Nginx: /var/log/nginx/access.log
  • Có thể thay đổi tùy theo cấu hình access_log hoặc nếu dùng hosting control panel.

2. Đọc nhanh access log

# Xem 100 dòng mới nhất
tail -n 100 /var/log/nginx/access.log

# Xem realtime
tail -f /var/log/nginx/access.log

3. Phân tích hành vi bất thường bằng command line

3.1. Kiểm tra IP truy cập nhiều nhất

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20

Nếu có IP xuất hiện quá nhiều lần trong thời gian ngắn, đó có thể là bot hoặc hacker.

3.2. Xem các URL bị truy cập nhiều

awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20

Phát hiện các URL đang bị dò quét (ví dụ: wp-login.php, xmlrpc.php, file admin ẩn, API riêng…)

3.3. Lọc theo user-agent

awk -F\" '{print $6}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head

Giúp phát hiện bot spam giả dạng Chrome, Firefox hoặc bot không khai báo rõ ràng.

4. Một số dấu hiệu cảnh báo

  • IP lặp lại với tần suất quá cao (vài trăm truy cập/phút)
  • Truy cập liên tục vào wp-login.php, xmlrpc.php
  • Truy cập theo pattern kỳ lạ như ?author=1, /wp-content/themes/.../ajax.php
  • Truy cập từ các user-agent lạ hoặc không khai báo
  • Số lượng lỗi 404 đột biến

5. Gợi ý phản ứng

  • Chặn IP đáng ngờ bằng fail2ban hoặc cấu hình deny trong Nginx/Apache.
  • Dùng Cloudflare để chặn bot layer 7, hoặc bật Under Attack Mode nếu bị quét hàng loạt.
  • Cập nhật và giới hạn các file dễ bị dò tìm (ẩn wp-login.php, tắt XML-RPC nếu không dùng…)

6. Tự động hóa với script phân tích

Bạn có thể viết shell script chạy cron 5 phút một lần để lọc IP đáng ngờ và gửi cảnh báo Telegram hoặc email.

#!/bin/bash
LOG="/var/log/nginx/access.log"
IP_LIST=$(awk '{print $1}' $LOG | sort | uniq -c | sort -nr | awk '$1 > 100 {print $2}')

for ip in $IP_LIST; do
  echo "Cảnh báo: IP $ip truy cập quá nhiều"
  # Gửi về Telegram, email, hoặc block ngay tại đây
done

Kết luận

Phân tích log server là kỹ năng cần thiết cho mọi quản trị viên. Dù bạn dùng WordPress hay bất kỳ nền tảng nào, hãy tận dụng access log để theo dõi và bảo vệ hệ thống. Không cần dùng đến plugin nặng nề, chỉ vài lệnh Linux cơ bản là đủ để nắm bắt tình hình.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...