바인드 DNS 비율 제한 및 초당 응답 및 창 값


8

내 DNS 서버의 named.conf에

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

이것이 실제로 무엇을 의미합니까? 그리고 DNS 클라이언트 문제를 일으킬 수 있습니까? 구성이 너무 빡빡합니까?


2
"실제로 무엇을 의미합니까?"에 관해서는 매뉴얼관련 섹션을 추천 할 것입니다 . 또한 곧 출시 될 9.10 버전과 동일한 섹션을
Håkan Lindqvist

답변:


7

단일 DNS 클라이언트가 1 초 안에 얻을 수있는 동일한 응답의 수를 제한합니다. 이 window 5옵션은 5 * 5 응답의 버스트를 허용합니다.

"동일한 응답"및 "단일 DNS 클라이언트"는 여기에서 약간 명백한 용어입니다. 자세한 내용은 다음을 참조하십시오. http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .

일반적으로 속도를 제한하는 것이 좋습니다. 언젠가 DOS 공격의 경우 도움이 될 수 있습니다. 대부분의 경우 기본값은 정상입니다.


첫 번째 단락에서 "버스트"에 관한 부분이 잘못되었습니다. window는 각 "단일 DNS 클라이언트"로 전송 된 "동일한 응답"이 추적되는 시간 범위를 제어하는 ​​데만 사용됩니다. BIND 9 관리자 참조 설명서 상태 : 에서 [클라이언트의 RRL] 계정은 초당 제한보다 더 긍정적 인 될 수 없다 나보다 더 부정적인 window배 초당 제한. Vernon Schryver 의이 메시지 는 알고리즘의 동작을보다 자세하게 설명합니다.
Kempniu

11

BIND 9.9에 대한 관리자 참조 매뉴얼을 읽어야 합니다 .

기본적으로 responses-per-second초당 하나의 단일 대상으로 보낼 수있는 동일한 회신의 수입니다. 정의는 까다 롭습니다.

단일 대상은 해당 크기로 구성 되거나 적용 가능한 크기의 네트워크 주소 블록 입니다 . (가) 경우에 따라서, (24), 그리고 모두 와는 DNS 서버를 쿼리, 그들은이 할당량을 공유하고 단지 두 사람 사이에 많은 쿼리를 보낼 수 있습니다.ipv4-prefix-lengthipv6-prefix-lengthipv4-prefix-length192.0.2.1192.0.2.2

동일한 응답은 특정 존재 이름 또는 존재하지 않는 이름에 대한 특정 RR 유형에 대한 쿼리에 대한 응답입니다. 다음 쿼리는 모두 고유합니다.

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

그러나 다음과 같은 쿼리는 모두 동일합니다 (예 nonexistent.domain.example.net.: 이름을 따름 ).

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

window조금 더 복잡합니다. 할당량을 뱅킹 할 수있는 시간 (초)입니다. 승산 windowresponses-per-second모든 할당량 포지티브 이상의 염기성 조건 버스트 용량이 될 수있는 최대 값을 제공한다.

포괄적 인 예를 들자면 :

에 대한 재귀없는 정식 네임 서버입니다 example.net.. 지난 10 초 동안 DNS 트래픽이 전혀 보이지 않고 해당 구성이 전 세계적으로 적용된다고 상상해보십시오. 다음과 같은 이벤트가 순차적으로 발생합니다.

  1. 호스트 198.51.100.1은에 대해 100 개의 쿼리를 보냅니다 IN NS example.net.. 25는 허용되고 나머지 75는 무시됩니다.
  2. 호스트 198.51.100.1은에 대해 100 개의 쿼리를 보냅니다 IN A nonexistent.example.net.. 25는 허용되고 나머지 75는 무시됩니다.
  3. 호스트 198.51.100.1은 1 개의 쿼리를 보냅니다 IN MX nonexistent-domain.example.net. . 존재하지 않는 도메인의 한계에 도달 했으므로 무시됩니다.
  4. 호스트 198.51.100.1은에 대해 1 개의 쿼리를 보냅니다 IN A example.net.. 허용됩니다.
  5. 호스트 192.0.2.1-192.0.2.50은 각각에 대해 단일 쿼리를 보냅니다 IN NS example.net.. 그들 중 25 명은 답장을 받고 나머지 25 명은 무시됩니다. 198.51.100.0/24의 할당량은이 호스트에 적용되지 않지만 192.0.2.0/24의 할당량을 공유합니다.
  6. 1 초
  7. 호스트 192.0.2.26-192.0.2.50은 쿼리를 반복합니다 IN NS example.net.. 할당량은 초당 5 개의 쿼리로만 보충되므로 나머지 5 개는 응답을 받고 나머지 20 개는 무시됩니다.

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도 잘 작동합니다. 공격이 발견되면 트래픽을 서비스에서 완전히 차단합니다.


대박! 나는 iptables조차 생각하지 않았다. 그러나 그것은 영어로 무엇을 의미합니까? 추측 할 수 있습니다. 일부 IP 전송에서 11 회 이상의 DNS 쿼리를 보내면 60 초 동안 차단됩니다.
레드 크리켓

아니오, 번역은 다음과 같습니다. 60 초 동안 11 개 이하의 패킷을 허용하고 다른 모든 패킷을 삭제하십시오.
drcelus

1
문제가 발생했습니다. 멋진 솔루션을 적용한 후에 다음과 같은 오류가 발생했습니다. "iptables : 방화벽 규칙 적용 : iptables-restore v1.4.7 : -c 패킷 카운터가 숫자가 아님 : 줄에 오류가 발생했습니다 : 17"첫 번째 줄 17 당신 중 하나. 특정 모듈을로드해야합니까?

iptables -A 입력 -p udp -m udp --dport 53 -m 최근 --set --name dnslimit --rsource

2
나는 그것이 "똑같이 작동한다"고 말하는 것까지는 가지 않을 것이다. 이 비율은 실제로 동일한 쿼리가 스팸이거나 다른 쿼리 인 경우 아무 생각없이 제한됩니다. 후자는 합법적 인 트래픽 일 가능성이 높습니다.
Håkan Lindqvist

0

나는 속도를 제한하는 것이 좋지 않다고 생각한다. 자신에게 물어보십시오 : 웹 서버 응답도 평가합니까? DNS 응답이 웹 서버 응답보다 덜 중요하다고 생각하는 이유는 무엇입니까?
그리고 당신이 한계를 평가하더라도, 그 5 req / sec 소리는 매우 낮습니다.


2
속도 제한 웹 서버 응답은 어떤 경우에는 그리 나쁜 생각이 아닙니다. 그러나 DNS는 대부분 UDP이며, http와 달리 쉽게 스푸핑되므로 속도 제한이 필요하므로 네임 서버가 증폭 또는 리플렉션 공격에 사용되지 않습니다.
arjarj

그가 열린 리졸버가 아니라면 반사 / 증폭 공격에 대한 좋은 목표는 아니지만 당신은 옳습니다. 5 req / sec 여전히 여전히 너무 낮습니다.
Sandor Marton

1
그는 재귀 서버인지 권한 서버인지 지정하지 않습니다. 신뢰할 수있는 서버 속도 제한은 여전히 ​​중요합니다. 또한 초당 5 개의 요청이 아니라 초당 5 개의 동일한 답변이 있으며 다른 답변을 생성하면 수정됩니다. 일반적으로 초당 5 개의 요청 설정은 바인드에 적합합니다 (합법적 인 서버도 중간에 다른 질문을하기 때문에).
arjarj

좋아, 나는 문서를 확인했고 내가 볼 수 있듯이 rate-limit는 서버 당이 아니라 클라이언트 당 설정입니다. 바인딩이 5req / s이면 총계로 제한 될 것이라는 인상을 받았습니다. 클라이언트 당 5req / sec가 정상입니다.
Sandor Marton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.