Máy chủ của tôi đang bị tấn công DDOS và tôi muốn chặn IP đang thực hiện, tôi nên tìm nhật ký nào để xác định IP của kẻ tấn công?
Máy chủ của tôi đang bị tấn công DDOS và tôi muốn chặn IP đang thực hiện, tôi nên tìm nhật ký nào để xác định IP của kẻ tấn công?
Câu trả lời:
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more
Hãy xem các địa chỉ IP hàng đầu. Nếu bất kỳ ai nổi bật so với những người khác, những người đó sẽ là những người để tường lửa.
netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more
Điều này sẽ xem xét các kết nối hiện đang hoạt động để xem liệu có bất kỳ IP nào kết nối với cổng 80. Bạn có thể cần phải thay đổi cắt -c 45- vì địa chỉ IP có thể không bắt đầu ở cột 45. Nếu ai đó đang thực hiện lũ UDP máy chủ web của bạn, điều này cũng sẽ chọn nó.
Nếu bạn không thể hiển thị bất kỳ IP nào vượt quá định mức, bạn sẽ cần phải giả sử rằng bạn có một botnet tấn công bạn và sẽ cần tìm các mẫu cụ thể trong nhật ký để xem họ đang làm gì. Một cuộc tấn công phổ biến chống lại các trang web wordpress là:
GET /index.php? HTTP/1.0
Nếu bạn xem qua nhật ký truy cập cho trang web của mình, bạn có thể làm điều gì đó như:
cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more
trong đó sẽ hiển thị cho bạn các URL thường gặp nhất. Bạn có thể thấy rằng họ đang nhấn một tập lệnh cụ thể thay vì tải toàn bộ trang web.
cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more
sẽ cho phép bạn xem UserAgents phổ biến. Có thể là họ đang sử dụng một UserAgent duy nhất trong cuộc tấn công của họ.
Mẹo nhỏ là tìm một điểm chung với lưu lượng tấn công không tồn tại trong lưu lượng thông thường của bạn và sau đó lọc thông qua iptables, mod_rewrite hoặc ngược dòng với webhost của bạn. Nếu bạn đang gặp phải Slowloris, Apache 2.2.15 hiện có mô-đun reqtimeout cho phép bạn định cấu hình một số cài đặt để bảo vệ tốt hơn trước Slowloris.
Một số lời khuyên tốt ở đây. Tôi cũng muốn thêm điều này:
netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''
Đặt cái này dưới một bí danh (ví dụ nn). Điều này sẽ cung cấp cho bạn một phối cảnh "đồ họa" của các ips với các kết nối được thiết lập nhiều hơn.
Hi vọng điêu nay co ich.
Đối với những người không thể làm việc này, tôi đã sửa cú pháp để nó chạy cho tôi trong Ubuntu:
netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'
Các tệp nhật ký yêu thích của tôi để kiểm tra các cuộc tấn công DOS là / var / log / safe (trong Redhat / Centos / Fedora ....) và /var/log/auth.log (dưới ub Ubuntu, debian ...). Bạn sẽ thấy các lần đăng nhập thất bại được thực hiện từ IP nguồn của kẻ tấn công, hầu hết các lần tấn công dựa trên từ điển.
để bảo vệ máy chủ của tôi, tôi sử dụng Fail2Ban một tập lệnh đơn giản
quét các tệp nhật ký như / var / log / pwdfail hoặc / var / log / apache / error_log và cấm IP khiến quá nhiều lỗi mật khẩu. Nó cập nhật các quy tắc tường lửa để từ chối địa chỉ IP.
Bản phân phối nào?
Tôi nghĩ rằng nhật ký nằm dưới /var/log/apache2/access.log với Ubuntu ... Cũng có thể là Debian.
Chạy updateb là sudo sau đó xác định vị trí access.log từ dòng lệnh.
EDIT: Tôi tin rằng mặc dù điều này sẽ chỉ xảy ra nếu họ đánh bạn bằng cách yêu cầu các trang hoặc trực tiếp qua cổng 80. Nếu họ đang truy cập các cổng khác, bạn sẽ không thấy thông tin bạn cần ở đó, bạn sẽ cần kiểm tra và xem quy trình nào chạy trên cổng đó và xem nhật ký kết nối cho quá trình đó.
Nếu bạn đang ở trong một DOS phân tán, chắc chắn có nhiều hơn một IP để chặn và IP có thể bị giả mạo, tốt hơn hết bạn nên hỏi ISP của bạn như mfinni nói. Ngoài ra, điều này có thể nhiều hơn một DOS chống lại máy chủ của bạn nhưng là một mồi nhử để che giấu cuộc tấn công thực sự khỏi bị phát hiện, vì vậy hãy kiểm tra xem tất cả các dịch vụ tiếp xúc của bạn có được chạy bằng phần mềm cập nhật hay không. Bạn cũng có thể quan tâm đến mod_dosevasive cho apache.
Đầu tiên bạn phải xác định loại DOS. Một số cuộc tấn công rất lén lút nhưng hiệu quả (Slowloris), một số trong số chúng quá nặng có thể khiến ISP bị giảm (ICMP tràn từ băng thông cao hơn nguồn ISP của bạn).
Sau khi bạn xác định loại DOS, hãy gọi cho ISP của bạn và hỏi họ xem họ có thể lọc lưu lượng không.
Tôi đã thấy lũ ICMP nặng đến nỗi chúng tôi phải yêu cầu ISP thượng nguồn lọc ra IP đích thông qua cộng đồng BGP.