Header Ads Widget

Kiểm tra và xử lý khi Server bị tấn công

Một số trường hợp như mã nguồn của bạn bị chèn các link phishing hoặc bị chèn các đoạn mã vào trong mã nguồn mà không thể quét và kiểm tra bằng công cụ, bị hack, dính shell độc, virus, độc hại


1. Lệnh Netstat: Đếm số lượng kết nối hiện tại

Lệnh này thống kê xem địa chỉ IP nào đang thiết lập nhiều kết nối nhất tới server của bạn ngay tại thời điểm này.
netstat -antu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -n 20

  • netstat -antu: Liệt kê tất cả các kết nối mạng (-a), giao thức TCP (-t), UDP (-u) và hiển thị dưới dạng số (-n).
  • awk '{print $5}': Chỉ lấy cột thứ 5 (cột chứa địa chỉ IP và Port của người dùng).
  • cut -d: -f1: Cắt bỏ phần Port (sau dấu hai chấm) để chỉ giữ lại địa chỉ IP.
  • sort | uniq -c: Sắp xếp các IP giống nhau đứng cạnh nhau và đếm số lần xuất hiện của mỗi IP.
  • sort -nr: Sắp xếp lại danh sách theo số lượng kết nối từ cao xuống thấp.
  • head -n 20: Chỉ hiển thị top 20 IP có kết nối "khủng" nhất.

Mục đích: Phát hiện các cuộc tấn công DDoS hoặc các bot đang mở quá nhiều kết nối đồng thời.


2. Lệnh Grep Nginx Log: Tìm IP bị lỗi nhiều nhất

Lệnh này quét qua lịch sử truy cập của website (Nginx) để tìm các IP thường xuyên gặp các lỗi bảo mật hoặc lỗi trang.
grep -E " 500 | 404 | 403 " /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
  • grep -E " 500 | 404 | 403 ": Tìm các dòng trong file log chứa mã trạng thái HTTP:
  • 500: Lỗi server (có thể do bị spam yêu cầu khiến code bị sập).
  • 404: Không tìm thấy trang (dấu hiệu của bot đang dò quét tìm lỗ hổng hoặc file nhạy cảm).
  • 403: Bị cấm truy cập (IP cố tình vào những nơi không được phép).
  • /var/log/nginx/access.log: Đường dẫn đến file nhật ký truy cập của Nginx.
  • awk '{print $1}': Lấy cột đầu tiên (thường là địa chỉ IP của khách truy cập).
  • sort | uniq -c | sort -nr | head -20: Tương tự lệnh trên, dùng để đếm và liệt kê top 20 IP "vi phạm" nhiều nhất.

Mục đích: Nhận diện các Web Scanner, bot tìm đường dẫn admin, hoặc các IP đang cố gắng tấn công tầng ứng dụng.

3. Đưa vào drop trong iptables

Sử dụng lệnh bên dưới để chặn ip
iptables -I INPUT 1 -s 123.45.6.7 -j DROP

4. Cách xử lý tạm thời để dịch vụ chạy

Restart php nếu trong trường hợp php đang quay, xử lý lâu, vào web chậm
systemctl restart php7.4-fpm.service

Hoặc reload Nginx

systemctl restart nginx 

Nhận xét