Các tấn công DoS/DDoS bất ngờ vào trang web có thể gây ra thiệt hại với trang web của bạn. Ở bài viết này mình hướng dẫn các bạn cách sử dụng lệnh grep để hiển thị các địa chỉ truy cập vào trang web. Đây cũng là 1 phần giúp các bạn phần nào xác định nguyên nhân gây ra lỗi đồi với trang web của mình.
1. Hiển thị tất cả địa chỉ IP có trong file access log
Đối với Apache :
grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /var/log/httpd/access_log | sort | uniq
Đối với Nginx :
grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /var/log/nginx/access.log | sort | uniq
2. Hiển thị các địa chỉ có trong file access log và số lần xuất hiện của chúng
Cách 1 :
Đối với cách này sẽ hiển thị tất các các địa chỉ có trong file access log bao gồm cả các địa chỉ có trong User-Agent
Sắp xếp các địa chỉ theo thứ tự tăng dần
Đối với Apache :
grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /var/log/httpd/access_log | sort | uniq -c | sort -n
Đối với Nginx :
grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /var/log/nginx/access.log | sort | uniq -c | sort -n
Sắp xếp các địa chỉ theo thứ tự giảm dần
Đối với Apache :
grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /var/log/httpd/access_log | sort | uniq -c | sort -nr
Đối với Nginx :
grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /var/log/nginx/access.log | sort | uniq -c | sort -nr
Cách 2 :
Còn đối với cách này sẽ chỉ hiển thị những địa chỉ IP có ở phần đầu của access log (X-FORWARDED_FOR)
Đối với apache :
awk '{print $1}' /var/log/httpd/access_log | sort | uniq -c | sort -nr
Đối với Nginx :
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr