내 DNS 서버의 named.conf에
rate-limit {
responses-per-second 5;
window 5;
};
이것이 실제로 무엇을 의미합니까? 그리고 DNS 클라이언트 문제를 일으킬 수 있습니까? 구성이 너무 빡빡합니까?
답변
단일 DNS 클라이언트가 1 초 안에 얻을 수있는 동일한 응답의 수를 제한합니다. 이 window 5
옵션은 5 * 5 응답의 버스트를 허용합니다.
“동일한 응답”및 “단일 DNS 클라이언트”는 여기에서 약간 명백한 용어입니다. 자세한 내용은 다음을 참조하십시오. http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .
일반적으로 속도를 제한하는 것이 좋습니다. 언젠가 DOS 공격의 경우 도움이 될 수 있습니다. 대부분의 경우 기본값은 정상입니다.
답변
BIND 9.9에 대한 관리자 참조 매뉴얼을 읽어야 합니다 .
기본적으로 responses-per-second
초당 하나의 단일 대상으로 보낼 수있는 동일한 회신의 수입니다. 정의는 까다 롭습니다.
단일 대상은 해당 크기로 구성 되거나 적용 가능한 크기의 네트워크 주소 블록 입니다 . (가) 경우에 따라서, (24), 그리고 모두 와는 DNS 서버를 쿼리, 그들은이 할당량을 공유하고 단지 두 사람 사이에 많은 쿼리를 보낼 수 있습니다.ipv4-prefix-length
ipv6-prefix-length
ipv4-prefix-length
192.0.2.1
192.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
조금 더 복잡합니다. 할당량을 뱅킹 할 수있는 시간 (초)입니다. 승산 window
과 responses-per-second
모든 할당량 포지티브 이상의 염기성 조건 버스트 용량이 될 수있는 최대 값을 제공한다.
포괄적 인 예를 들자면 :
에 대한 재귀없는 정식 네임 서버입니다 example.net.
. 지난 10 초 동안 DNS 트래픽이 전혀 보이지 않고 해당 구성이 전 세계적으로 적용된다고 상상해보십시오. 다음과 같은 이벤트가 순차적으로 발생합니다.
- 호스트 198.51.100.1은에 대해 100 개의 쿼리를 보냅니다
IN NS example.net.
. 25는 허용되고 나머지 75는 무시됩니다. - 호스트 198.51.100.1은에 대해 100 개의 쿼리를 보냅니다
IN A nonexistent.example.net.
. 25는 허용되고 나머지 75는 무시됩니다. - 호스트 198.51.100.1은 1 개의 쿼리를 보냅니다
IN MX nonexistent-domain.example.net.
. 존재하지 않는 도메인의 한계에 도달 했으므로 무시됩니다. - 호스트 198.51.100.1은에 대해 1 개의 쿼리를 보냅니다
IN A example.net.
. 허용됩니다. - 호스트 192.0.2.1-192.0.2.50은 각각에 대해 단일 쿼리를 보냅니다
IN NS example.net.
. 그들 중 25 명은 답장을 받고 나머지 25 명은 무시됩니다. 198.51.100.0/24의 할당량은이 호스트에 적용되지 않지만 192.0.2.0/24의 할당량을 공유합니다. - 1 초
- 호스트 192.0.2.26-192.0.2.50은 쿼리를 반복합니다
IN NS example.net.
. 할당량은 초당 5 개의 쿼리로만 보충되므로 나머지 5 개는 응답을 받고 나머지 20 개는 무시됩니다.
답변
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도 잘 작동합니다. 공격이 발견되면 트래픽을 서비스에서 완전히 차단합니다.
답변
나는 속도를 제한하는 것이 좋지 않다고 생각한다. 자신에게 물어보십시오 : 웹 서버 응답도 평가합니까? DNS 응답이 웹 서버 응답보다 덜 중요하다고 생각하는 이유는 무엇입니까?
그리고 당신이 한계를 평가하더라도, 그 5 req / sec 소리는 매우 낮습니다.