EC2에서 DNS 서버를 실행 중이며 어제 청구 대시 보드를 확인하고 이번 달에 1.86TB의 사용 된 데이터를 발견했을 때 어제 약 20mbps를 추진하고있었습니다. 그것은 작은 프로젝트 랩에 대한 큰 청구서입니다. 나는 성능 저하를 눈치 채지 못했고 이전에 트래픽 임계 값을 설정하지 않았지만 지금은 대역폭 요금이 $ 200 이상이 들었습니다.
누군가가 내 DNS 서버를 증폭 공격의 일부로 사용한 것 같습니다. 그러나 나는 방법에 대한 손실이 있습니다.
구성은 다음과 같습니다.
// BBB.BBB.BBB.BBB = ns2.mydomain.com ip address
options {
listen-on port 53 { any; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-transfer { BBB.BBB.BBB.BBB; };
allow-query-cache { BBB.BBB.BBB.BBB; };
allow-query { any; };
allow-recursion { none; };
empty-zones-enable no;
forwarders { 8.8.8.8; 8.8.4.4; };
fetch-glue no;
recursion no;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "mydomain.com" IN {
type master;
file "zones/mydomain.com";
allow-transfer { BBB.BBB.BBB.BBB; localhost; };
};
이 구성이 주어지면 로컬에서 호스팅하지 않는 영역에 대한 쿼리에 응답하지 않아야합니까? 이 서버는 일부 도메인의 SOA이지만 다른 서버가 조회하는 데는 사용되지 않습니다 (모두 OpenDNS 또는 Google에 대해 해결 함). 여기에 어떤 지시가 잘못 되었습니까, 아니면 잊고 있습니까? 내 로그 (63MB 이상)는 다음으로 가득 차 있습니다.
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
답변
서버가 권위있는 쿼리에만 응답하도록 설정되어 있어도 증폭 공격에 여전히 사용될 ANY
수 있습니다. 영역 루트에 대한 쿼리는 영역 루트가 경향이 있기 때문에 상당히 무거운 UDP 응답을 트리거 할 수 있습니다 많은 레코드, 특히 SPF / DKIM / DNSSEC 관련 레코드
시스템에서 일어나는 일일 수 있습니다 tcpdump
. 확인에 사용하십시오 . 그들이 증폭 공격에 권위있는 기록을 사용하고 있다면, 가장 좋은 방법은 단순히 새로운 IP로 옮기고 따르지 않기를 희망하는 것입니다. 존 루트 기록을 변경하여 덜 효과적인 증폭 벡터로 만들거나 구현하십시오 응답 속도 제한 (BIND가 지원하는 경우).