Ràng buộc giới hạn tốc độ DNS và giá trị cho phản hồi mỗi giây và cửa sổ


8

Trong máy chủ DNS của tôi có tên. Tôi thấy

    rate-limit {
            responses-per-second 5;
            window 5;
    };

Điều này thực sự có ý nghĩa gì? Và nó có thể gây ra sự cố máy khách DNS không? Đây có phải là một cấu hình quá chặt chẽ?


2
Về phần "ý nghĩa thực sự của nó", tôi muốn giới thiệu phần có liên quan trong hướng dẫn , cũng xem phần tương tự cho phiên bản 9.10 sắp tới
Håkan Lindqvist

Câu trả lời:


7

Nó giới hạn số lượng phản hồi giống hệt nhau mà một máy khách DNS có thể nhận được trong một giây. Các window 5tùy chọn cho phép sự bùng nổ của 5 * 5 câu trả lời.

"Phản hồi giống hệt nhau" và "máy khách DNS đơn" là một số thuật ngữ không rõ ràng ở đây, hãy đọc phần này để biết thêm thông tin: http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .

Nói chung, đó là một điều tốt để giới hạn tỷ lệ - có thể giúp bạn trong trường hợp DOS tấn công một ngày nào đó. Mặc định sẽ ổn cho hầu hết các trường hợp.


Phần về "nổ" trong đoạn đầu tiên là sai. windowchỉ được sử dụng để kiểm soát thời gian trong đó "phản hồi giống hệt" được gửi đến từng "máy khách DNS duy nhất" được theo dõi. Các BIND 9 Quản trị Reference Manual trạng thái: các [RRL khách hàng] Tài khoản không thể trở thành tích cực hơn so với mỗi giây giới hạn hay tiêu cực hơn windowgiới hạn cho mỗi thứ hai lần. Thông báo này của Vernon Schryver giải thích chi tiết hơn về hành vi của thuật toán.
Kempniu

11

Bạn nên đọc hướng dẫn tham khảo của quản trị viên cho BIND 9.9 .

Về cơ bản, responses-per-secondlà số lượng trả lời giống hệt nhau có thể được gửi đến một đích duy nhất, mỗi giây. Các định nghĩa là khó khăn.

Một đích duy nhất là một khối các địa chỉ mạng, có kích thước được định cấu hình trong ipv4-prefix-lengthhoặc ipv6-prefix-lengthcó thể áp dụng. Vì vậy, nếu ipv4-prefix-lengthlà 24 và cả hai 192.0.2.1192.0.2.2đang truy vấn máy chủ DNS, họ sẽ chia sẻ hạn ngạch này và chỉ có thể gửi rất nhiều truy vấn giữa hai người.

Trả lời giống hệt là trả lời các truy vấn cho một RRtype cụ thể cho một tên tồn tại cụ thể hoặc cho một tên không tồn tại. Các truy vấn sau đây đều khác biệt:

IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.

Tuy nhiên, tất cả các truy vấn sau đây giống hệt nhau (giả sử, nonexistent.domain.example.net.v.v. sống đúng với tên của chúng):

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.

windowlàm phức tạp thêm một chút vẫn còn. Đó là số giây mà hạn ngạch có thể được đánh dấu. Nhân windowresponses-per-secondđưa ra mức tối đa mà bất kỳ hạn ngạch nào cũng có thể tích cực, hoặc trong điều kiện cơ bản hơn, khả năng bùng nổ.

Để đưa ra một ví dụ bắt tất cả:

Bạn là máy chủ tên không có thẩm quyền cho example.net.. Hãy tưởng tượng không có lưu lượng DNS nào được nhìn thấy trong 10 giây qua và cấu hình trong câu hỏi được áp dụng trên toàn cầu. Các sự kiện sau đây xảy ra tuần tự:

  1. Máy chủ 198.51.100.1 gửi 100 truy vấn cho IN NS example.net.. 25 sẽ được cho phép, và 75 còn lại sẽ bị bỏ qua.
  2. Máy chủ 198.51.100.1 gửi 100 truy vấn cho IN A nonexistent.example.net.. 25 sẽ được cho phép, và 75 còn lại sẽ bị bỏ qua.
  3. Máy chủ 198.51.100.1 gửi 1 truy vấn cho IN MX nonexistent-domain.example.net. Nó sẽ bị bỏ qua vì đã đạt đến giới hạn cho các miền không tồn tại.
  4. Máy chủ 198.51.100.1 gửi 1 truy vấn cho IN A example.net.. Điều đó được cho phép.
  5. Lưu trữ 192.0.2.1 đến 192.0.2.50 mỗi máy chủ gửi một truy vấn duy nhất cho IN NS example.net.. 25 trong số họ nhận được trả lời và 25 người còn lại bị bỏ qua; hạn ngạch cho 198.51.100.0/24 không áp dụng cho các máy chủ này, nhưng chúng chia sẻ hạn ngạch cho 192.0.2.0/24.
  6. Một giây trôi qua
  7. Các máy chủ 192.0.2.26 đến 192.0.2.50 lặp lại truy vấn của họ IN NS example.net.. 5 trong số họ nhận được trả lời và 20 người còn lại bị bỏ qua, vì hạn ngạch chỉ được bổ sung bởi 5 truy vấn mỗi giây.

4
iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP 

IPtables có thể hoạt động tốt như vậy. Giữ lưu lượng truy cập ra khỏi dịch vụ hoàn toàn nếu một cuộc tấn công được tìm thấy.


tuyệt vời! Tôi thậm chí không nghĩ về iptables. Nhưng điều đó có nghĩa là gì trong tiếng Anh. Tôi có thể đoán ... nếu một số IP gửi 11 truy vấn dns trở lên chặn chúng trong 60 giây, phải không?
Dế đỏ

Không, bản dịch là: Chấp nhận không quá 11 gói trong khung thời gian 60 giây, bỏ tất cả các gói khác.
drcelus

1
Tôi gặp sự cố, sau khi thử áp dụng giải pháp tốt đẹp của bạn, tôi đã gặp một lỗi như: "iptables: Áp dụng quy tắc tường lửa: iptables-restore v1.4.7: -c bộ đếm gói không phải là số Lỗi xảy ra ở dòng: 17" Dòng 17 là dòng đầu tiên một trong những của bạn Tôi nên tải một số mô-đun cụ thể?

dòng đầu tiên phải như sau: iptables -A INPUT -p udp -m udp --dport 53 -m Recent --set --name dnslimit --rsource

2
Tôi sẽ không đi xa như nói rằng nó "hoạt động tốt như vậy". Tỷ lệ này giới hạn mà không có ý tưởng nào nếu thực sự cùng một truy vấn bị spam hoặc các truy vấn khác nhau, thì truy vấn sau có nhiều khả năng là lưu lượng truy cập hợp pháp.
Håkan Lindqvist

0

Tôi không nghĩ rằng nên đánh giá giới hạn, hãy tự hỏi: bạn có đánh giá giới hạn phản hồi của máy chủ web không? Tại sao bạn nghĩ phản hồi DNS ít quan trọng hơn phản hồi của máy chủ web?
Và ngay cả khi bạn đánh giá giới hạn, 5 req / giây nghe có vẻ rất thấp.


2
Đánh giá lại các phản hồi của máy chủ web có thể không phải là một ý tưởng tồi trong một số trường hợp. Nhưng DNS chủ yếu là UDP, dễ bị giả mạo (không giống như http), do đó việc giới hạn tốc độ là cần thiết ngăn bạn sử dụng máy chủ tên trong các cuộc tấn công khuếch đại hoặc phản xạ.
arjarj

Nếu anh ta không phải là người giải quyết mở thì tôi không nghĩ đó là mục tiêu tốt cho các cuộc tấn công phản xạ / khuếch đại, nhưng bạn có quyền. 5 req / giây tôi vẫn nghĩ là quá thấp.
Sandor Marton

1
Anh ta không chỉ định nếu đó là một máy chủ đệ quy hoặc máy chủ có thẩm quyền. Đối với một giới hạn tỷ lệ máy chủ có thẩm quyền vẫn còn quan trọng. Ngoài ra, đó không chỉ là 5 yêu cầu mỗi giây, mà là 5 câu trả lời giống nhau mỗi giây và thậm chí còn được sửa nếu bạn tạo các câu trả lời khác nhau. Nói chung, cài đặt 5 yêu cầu mỗi giây là tốt khi liên kết (vì một máy chủ hợp pháp cũng hỏi các câu hỏi khác ở giữa).
arjarj

Ok, tôi đã kiểm tra các tài liệu và như tôi thấy giới hạn tỷ lệ là cài đặt trên mỗi máy khách chứ không phải trên mỗi máy chủ. Tôi có ấn tượng rằng ràng buộc sẽ bị giới hạn trong tổng số nếu 5req / s. Mỗi khách hàng 5req / giây là ok.
Sandor Marton
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.