Bind9의 대형 영역 파일: 광고 차단

Bind9의 대형 영역 파일: 광고 차단

내 서버에서 작은(20,000개 항목) 영역 파일을 성공적으로 사용하고 있지만 bind9오늘 내 데이터 공급자가 업데이트를 보냈습니다.영역 파일300,000개 이상의 항목이 됩니다(30Mb+).

문제는 이 영역 파일을 사용하여 서버를 시작할 수 없다는 것입니다. 오류는 보고 되지 named-checkconf않습니다 . 사용 가능한 로그 메시지가 없습니다(또는 올바르게 기록할 수 없습니다).

bind9대용량 구성 파일을 처리하는 것이 가능한지, 그렇다면 어떻게 해결할 수 있는지 알고 싶습니다 . 그렇지 않은 경우 이 문제에 대한 해결책이 있는지 알고 싶습니다. 항목을 데이터베이스에 저장할 수도 있나요?

사용하려는 영역 파일은 다음에서 다운로드할 수 있습니다.여기.

고쳐 쓰다:

service bind9 status잠재적으로 관련이 있는 정보를 표시합니다.

adjusted limit on open files from 4096 to 1048576
found 1 CPU, using 1 worker thread
using 1 UDP listener per interface
using up to 4096 sockets
loading configuration from '/etc/bind/named.conf'

이 정보를 어떻게 해석하거나 사용하는지 잘 모르겠습니다... 어떤 아이디어가 있습니까? 또한 bind9로그가 어디에 있는지 찾을 수 없습니다 . 항목 /var/log/이 없습니다 . bind9누구든지 Debian Jessie에서 어디에 있는지 말해 줄 수 있나요?

답변1

귀하의 영역 파일을 살펴보았습니다. 350,000개 이상의 도메인 목록인 것으로 보이며 현재 로컬 BIND 서버를 마스터 서버로 정의되어 있습니다. 도메인의 형식은 다음과 같습니다.

zone "xxxx.com" { type master; notify no; file "null.zone.file"; };

메모리 요구 사항에 따라 도메인 테이블이 메모리에 로드되므로 대략 40MB-80MB의 사용 가능한 RAM이 필요할 것입니다. (단, 200MB 이상이면 더 편할 것 같습니다.)

서버의 RAM이 심각하게 제한되지 않는 한 이런 일은 거의 발생하지 않을 것 같지만 일어날 수 있습니다.

또한 여러 도메인 이름의 이름에 밑줄("_")이 포함되어 있는 것도 확인했습니다. DNS RR의 밑줄은 일부 RFC(RFC 952 및 RFC 1123)를 중단하므로 BIND 옵션 섹션에 지시어를 추가해야 합니다.

check-names master ignore;

도메인 이름을 블랙리스트에 올리는 형식과 방법은 다음과 같습니다. 버전 9.8부터 BIND는 블랙리스트 도메인을 위해 특별히 생성된 소위 RPZ(응답 정책 영역)를 지원합니다.

오늘날 일부 (상업) 블랙리스트 제공업체는 이 형식을 따릅니다. (저는 직장과 집에서 모두 RPZ를 사용합니다).

RPZ를 사용하는 것이 더 합리적이고 더 가벼운 부하를 의미하므로 서비스 비용을 지불하는 경우 공급업체에 문의하여 사용 방법을 알아보는 것이 좋습니다. RPZ 형식은 와일드카드도 어느 정도 지원하므로 블랙리스트 파일이 훨씬 작습니다.

또 다른 방법은 스크립트를 사용하여 파일을 처리하고 RPZ 형식으로 변경하는 것입니다.

RPZ 및 공식 RPZ 제공업체에 대한 관련 링크를 여기에 남겨두겠습니다.

https://dnsrpz.info

RPZ 구성 방법에 대한 튜토리얼:

http://www.zytrax.com/books/dns/ch9/rpz.html

이미 알고 계시겠지만 현재 구성에서는 열려 있는 파일도 많으므로 RPZ를 사용하는 것이 좋습니다.

대규모 이메일, DNS 또는 HTTP 서버에서 더 많은 열린 파일을 처리하려면 일반적으로 제한을 늘려야 합니다.

상황이 이전 커널만큼 나쁘지는 않지만 그럼에도 불구하고 제한을 높이는 것이 좋습니다.

전역 열린 파일 제한 지시어 편집 및 수정/추가 /etc/sysctl.conf:fs.file-max

fs.file-max=500000

재부팅하지 않고 새 파일 제한을 적용하려면 다음을 실행해야 합니다.

sudo sysctl -p

프로세스당 파일 제한을 보려면 다음을 편집하세요 /etc/security/limits.conf.

* - nofile 400000

프로세스별 파일 제한을 적용하려면 로그아웃했다가 로그인하거나 다음을 실행하세요.

sudo ulimit -n 400000

이 두 가지 제한을 늘린 후에는 BIND를 다시 시작해야 합니다.

sudo service bind9 restart

파일을 RPZ 형식으로 변환하려면 다음을 실행하십시오.

cat bind | tr -d \"  | awk ' { print $2" CNAME ." } ' > /etc/bind/rpz.db

스크립트는 항목을 다음 형식으로 변환합니다.

zeus.developershed.com CNAME .
zeusclicks.com CNAME .
zintext.com CNAME .

명명된 옵션 섹션에 다음을 추가합니다.

response-policy { zone "rpz"; };

RPZ 영역에 대한 선언을 만듭니다.

zone "rpz" {
  type master;
  file "/etc/bind/rpz.db";
};

파일 맨 위에 추가하십시오 /etc/bind/rpz.db.

$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL

@       IN      NS      your_dns_fqdn.

DNS 파일의 구성을 해제하고 BIND 서버를 다시 시작하십시오. 분명히 RPZ 파일은 와일드카드를 사용하여 최적화하고 더 짧아질 수 있지만, 이러한 최적화 없이도 요즘에는 열려 있는 파일이 그렇게 많이 필요하지 않습니다.

BIND/DNS 로그 쿼리의 경우 태그가 /var/log/syslog지정된 시스템 로그와 함께 제공됩니다 named. 다음 명령을 사용할 수 있습니다.

sudo grep named /var/log/syslog

관련 정보