Nullルートまたは127.0.0.1の多くのドメインを配置できるLAN用の基本的なDNSサーバーをセットアップしようとしています。
ブロックしたいドメインはリストから取得しますが、正規表現を使用して一部のドメインもブロックしたいです(これは私のセットアップでは必須です)。
このビジネスを行うための私の候補ソフトウェアは、Unbound、つまりさまざまな便利な機能を備えた再帰的キャッシング安全なDNSサーバーであるように思われました。
ただし、Unboundは正規表現をサポートしていないようです!
また、ゾーンの繰り返しに関しては、Unboundは非常にうるさいです。私のドメインリストは多くの混合ソースから構築されているので、いくつかのスクリプトでフィルターで除外する多くの繰り返しが可能ですが、次のようなリストのドメインも使用できます。
aaah.very.this.com
だけでなく
very.this.com
ゾーンの繰り返しがあるため、このリードUnboundはエラーを叫びます。
これはマイナーな問題ですが、ドメインリストをさらにきれいにすることで削除できますが、私の主な問題は、ドメイン要求を処理するための正規表現がないことです。
すべての* .comまたは* .bizまたはそのようなものを何らかの方法でブロックできますか?
[\w\.\-]+.com A 127.0.0.1
[\w\.\-]+.com AAAA ::1
私の正規表現は一例であり、もっと複雑な正規表現で行くことができます...
代わりにもっと厄介なことをすることはできますか? nullrouteまたは127.0.0.1を指すすべてのものと、ドメインのホワイトリストのみが外部DNSに転送されることで解決されますか?
返信する場合は、この質問を忘れないでください。私は答えを知るのがとても興味深いのです。
私ができることは何ですか?Bind9、dnsmasq、unbound、pdns-recursor ...
DNSサービスレベルでのドメイン/リクエストのインターセプト、またはIPネットブロックルートの127.0.0.1/nullルートへのリダイレクトは、2つの非常に異なるものです。
私の観点から見ると、DNSレベルの方が効率的であり、リソースをより軽くしています。
IPレベル/ nullルートブロックの方が効果的ですが、管理が面倒であり、より広いスケールで使用すると、CPU使用率がわずかに高くなります。
DNSレベルでブラックリストを使用すると、数十万の範囲の名前に到達できることが多く、そのような大きなルーティングテーブルを作成することは現実的ではないことに注意してください。
私自身、dnsmasqまたはBINDを介してブラックリストを作成することを調査しました。私は広告、マルウェア、および私のスマートTVコーリングホーム(LGサイト)をブロックするためにDNSブラックリストを使用しています。
私は、BINDでResponse Policy Zoneを使用することになりました。これは、名前の最後に*の単純な正規表現を許可するため、ブラックリストのサイズが大幅に削減されるためです。 DNS応答ポリシーゾーン
BINDのRPZは9.8+ BINDからサポートされていることを忘れないでください。これは、最新のLinuxディストリビューションのすべてに当てはまります。
RPZ機能を構成しているので、string/regexpに一致するドメイン/ DNS名は、BIND 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の大ゾーンファイル:ad-blocking
Raspberry Piを使用した既製の類似プロジェクトについては、以下を参照してください。 Pi-Hole:インターネット広告のブラックホール このプロジェクトは、既知のいくつかの無料のブラックリストにもアクセスできます。
から 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 revisited を使用すると、RPZホワイトリストを使用して通常構成のBINDが作成され、通常のrpzポリシーのすべてがブラックされます(例:*または。)。
options {
....
response-policy {
zone "rpz-white" policy PASSTHRU; // my own white list
zone "rpz-foreign"; // obtained from producer
};
}
ホワイトリストのすべてを拒否するアプローチは確かに非常識であり、ホワイトリストを使用すると、ブラックリストのより広い一致によってヒットされている特定のドメインを免除することができます。