Máy chủ bị tấn công DDOS - Làm thế nào để tìm ra IP?


20

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?


2
Làm thế nào mà bạn xác định rằng máy chủ đang bị tấn công? Dường như với tôi rằng bạn sẽ cần xem xét một số loại bảng phiên TCP (netstat trên Windows) để đưa ra quyết định này và khi làm như vậy sẽ thấy các địa chỉ IP của máy chủ kết nối với máy chủ của bạn, điều này sẽ khiến bạn thắc mắc xe đẩy
joeqwerty

Câu trả lời:


43
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.


Cảm ơn rất nhiều, tôi chắc chắn sẽ xem xét vào cuối tuần này.
Webnet

Xuất sắc. rất hữu ích và đơn giản là tuyệt vời .... giữ nó và chúa ban phước cho bạn. Allinonescript.com ( allinonescript.com ) Kiến thức của các nhà phát triển trên toàn thế giới tiếp thu kiến ​​thức.
Vad Xoay S

Miễn là bạn thiết lập chính xác access_log của mình: tail -n 10000 / var / log / httpd / access_log | cut -f 1 -d '' | sort | uniq -c | sort -nr | more Điều này sẽ hoạt động. Làm việc cho tôi,
thùng rác

7

FYI - Bạn nên thử làm việc với ISP của bạn để xem họ có thể chặn nó ngược dòng bạn không.


4

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 ""}'

3

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.


1

để 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.

http://www.fail2ban.org/wiki/index.php/Main_Page


0

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 đó.


0

bạn có thể sử dụng tcpdump để xem địa chỉ đó là $ tcpdump -vv port X nếu bạn nghi ngờ một cổng cụ thể


0

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.


2
IP rất khó giả mạo cho các cuộc tấn công web. Vì kết nối web hợp lệ yêu cầu bắt tay đồng bộ / ack, bạn phải may mắn có được địa chỉ IP giả mạo ack với số thứ tự phù hợp để tải trọng của bạn từ trang tấn công giả mạo hoạt động. Lưu lượng UDP / ICMP không có kết nối và không cho phép các gói giả mạo, nhưng, hầu hết các máy chủ đều chặn các gói đó.
dùng6738237482

0

Đầ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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.