다수의 도메인 이름과 일부 TLD를 블랙리스트에 올리는 데 사용되는 DNS 서버

다수의 도메인 이름과 일부 TLD를 블랙리스트에 올리는 데 사용되는 DNS 서버

nullroute 또는 127.0.0.1 다중 도메인을 넣을 수 있는 LAN용 기본 DNS 서버를 설정하려고 합니다.

차단하려는 도메인은 목록에 있지만 정규식을 사용하여 일부 도메인도 차단하고 싶습니다(설정 시 필수).

이를 수행하기 위한 나의 후보 소프트웨어는 다양한 유용한 기능을 갖춘 재귀 캐싱 보안 DNS 서버인 Unbound인 것 같습니다.

그러나 Unbound는 정규 표현식을 지원하지 않는 것 같습니다!

또한 Unbound는 지역 복제와 관련하여 매우 까다롭습니다. 내 도메인 목록은 여러 혼합 소스로 구성되었으므로 일부 스크립트를 사용하여 많은 중복 항목을 필터링할 수 있을 뿐만 아니라 목록의 도메인을 사용하여 필터링할 수도 있습니다. 예를 들면 다음과 같습니다.

aaah.very.this.com

뿐만 아니라

매우.this.com

이렇게 하면 지역 중복이 있기 때문에 Unbound가 오류와 함께 비명을 지르게 됩니다.

이는 사소한 문제이고 도메인 목록을 더 잘 정리하여 제거할 수 있지만 주요 문제는 도메인 요청을 처리하기 위한 정규식이 부족하다는 것입니다.

*.com이나 *.biz 등을 모두 차단할 수 있나요?

[\w\.\-]+.com A 127.0.0.1
[\w\.\-]+.com AAAA ::1

내 정규식은 예입니다. 더 복잡한 정규식을 사용할 수 있습니다.

보너스

좀 더 불쾌한 일을 할 수 있었을까요? nullroute 또는 127.0.0.1을 가리키는 모든 항목과 도메인 화이트리스트만 외부 DNS로 전달하여 해결할 수 있습니까?

답장을 보내실 경우, 제가 답변을 알고 싶기 때문에 이 추가 질문을 잊지 말고 꼭 물어보시기 바랍니다.

어떡해? Bind9, dnsmasq, 언바운드, pdns-recursor...

답변1

DNS 서비스 수준에서 도메인/요청을 가로채는 것과 IP 넷블록 경로를 127.0.0.1/null 경로로 리디렉션하는 것은 완전히 다른 두 가지입니다.

내 관점에서는 DNS 수준이 더 효율적이고 리소스 효율적입니다.

IP 수준/널 경로에서 차단하는 것이 더 효율적이지만 관리하기가 더 번거롭고 더 넓은 규모로 사용할 경우 CPU 사용량이 약간 더 높아집니다.

DNS 수준에서 블랙리스트를 사용하면 종종 수십만 개의 이름에 도달할 수 있으며 그렇게 큰 라우팅 테이블을 갖는 것은 불가능하다는 점을 명심하십시오.

나 자신도 dnsmasq나 BIND를 통해 블랙리스트에 대해 조사해 본 적이 있다. DNS 블랙리스트를 사용하여 광고, 맬웨어를 차단하고 스마트 TV가 다시 전화(LG 웹사이트)하지 못하도록 차단합니다.

BIND의 응답 정책 영역을 사용하게 된 이유는 이름 끝에 *라는 간단한 정규식을 허용하여 블랙리스트의 크기를 크게 줄일 수 있기 때문입니다.DNS 응답 정책 영역

BIND의 RPZ는 모든 최신 Linux 배포판과 마찬가지로 BIND 9.8 이상부터 지원됩니다.

RPZ 기능을 구성했기 때문에 BIND DNS 서버는 문자열/정규식과 일치하는 도메인/DNS 이름이 존재하지 않는다고 간단히 응답합니다. 일치하지 않는 다른 모든 이름은 일반적인 프로세스를 통해 해결됩니다.

나에게 몇 줄의 짧은 예를 들면 다음과 같습니다 /etc/bind/rpz.db.

*.ad.lgappstv.com CNAME .
*.yumenetworks.com CNAME .
*.smartclip.net CNAME .
*.smartshare.lgtvsdp.com CNAME .
*.ibis.lgappstv.com CNAME .
*.doubleclick.net CNAME .
*.l.doubleclick.net CNAME .
*.302br.net CNAME .
*.liveadvert.com CNAME .
*.easysuperdownload-1.com CNAME .
*.easysuperdownload-2.com CNAME .
*.itrackpop.com CNAME .

귀하의 예를 사용하여 :

*.this.com CNAME .
*.biz CNAME .

전체 TLD를 차단하는 것이 최선의 방법이 아닐 수도 있습니다.

BIND는 Unbound만큼 반복에 까다롭지 않습니다. aaaa.this.com 및 this.com을 허용하지만 this.com을 두 번 이상 정의하는 것은 허용하지 않습니다.

RPZ 자체 설정에 관해서는 Unix 및 Linux에 대한 이 질문에 대한 답변을 참조하겠습니다.Bind9의 대형 영역 파일: 광고 차단

Raspberry Pi PI를 사용하여 이미 만들어진 유사한 프로젝트는 다음을 참조하세요.파이홀: 인터넷 광고의 블랙홀이 프로젝트는 또한 일부 알려진 무료 블랙리스트를 안내할 것입니다.

~에서https://github.com/pi-hole/pi-hole/blob/master/adlists.default

https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

# Other lists we consider safe:
http://adblock.gjtech.net/?format=unix-hosts
http://mirror1.malwaredomains.com/files/justdomains
http://sysctl.org/cameleon/hosts
https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt

# hosts-file.net list. Updated frequently, but has been known to block legitimate sites.
http://hosts-file.net/ad_servers.txt

# Mahakala list. Has been known to block legitimage domains including the entire .com range.
# Warning: Due to the sheer size of this list, the web admin console will be unresponsive.
#http://adblock.mahakala.is/

# ADZHOSTS list. Has been known to block legitimate domains
#http://optimate.dl.sourceforge.net/project/adzhosts/HOSTS.txt

# Windows 10 telemetry list - warning this one may block windows update
#https://raw.githubusercontent.com/crazy-max/HostsWindowsBlocker/master/hosts.txt

# Securemecca.com list - Also blocks "adult" sites (pornography/gambling etc)
#http://securemecca.com/Downloads/hosts.txt

# Quidsup's tracker list
https://raw.githubusercontent.com/quidsup/notrack/master/trackers.txt

화이트리스트에 관해서는 분명히 가능합니다.

도메인별로 수행하는 경우 루트 이름 서버에 대한 힌트가 없는 프록시 BIND DNS 서버를 설정해야 합니다.

그러나 허용된 각 도메인은 외부 세계와의 통신을 위해 DNS에 대한 전달자를 사용하여 생성되어야 합니다. 이 이론적인 기사는 아이디어를 매우 잘 요약하고 있습니다.DNS 화이트리스트를 사용하여 악성코드 차단

다시 한번 BIND에서 RPZ를 사용하면 구성이 훨씬 간단해지며 프록시 DNS 서버를 설정할 필요가 없습니다.

이 페이지 구성의 변형으로,RPZ 재방문, RPZ 화이트리스트와 함께 일반적으로 구성된 BIND를 갖게 되며 일반 rpz 정책의 모든 항목을 블랙아웃하게 됩니다(예: * 또는.).

options {
 ....
response-policy { 
   zone "rpz-white" policy PASSTHRU; // my own white list
   zone "rpz-foreign";    // obtained from producer
};
}

화이트리스트는 확실히 모든 것을 거부하는 미친 접근 방식이지만, 화이트리스트를 사용하면 블랙리스트의 광범위한 일치 항목에서 특정 도메인을 제외할 수 있습니다.

관련 정보