web-dev-qa-db-ja.com

単純なDNSURLブロッキングのためのDNSMasqとBind

ドメインの誤ったIPアドレスを返すことにより、特定のWebサイトへのアクセスをブロックするDNSサーバーを構築しています。

現在、DNSMasqを使用してこれを実行していますが、リストは非常に大きく、この機能を実行するためにバインドに移動しようとしています。 DNSMasqは大きなリストを静かに処理しますが、いくつかの制限があり、私の選択を余儀なくされています。 DNSMasqのドメイン全体に対してこれを行うには、次のように構成ファイルに1行追加するだけです。

address=/url.com/1.2.3.4

これにより、1.2.3.4に対して常に*.url.comが返されます。

私は次のことでいくつかの支援を探しています:

  1. 同様のことを達成するBINDの非常に基本的なゾーン設定をどのように達成できますか?
  2. 私のドメインリストは1000000以上のレコードであることを覚えておいてください
  3. マスターゾーンと、このゾーンに含まれる単純な大きなドメインリストを作成できますか?

乾杯

pjf

2
pjf

DNSブラックリストは、誰かが本当に必要な場合にサイトにアクセスするのを阻止する方法ではありませんが、悪意のあるソフトウェアやcasual悪いWebサイトにアクセスしようとする場合に役立ちます。 。

応答ポリシーゾーン(RPZ)

RPZを使用すると、応答の書き換えルールを定義するゾーンファイルを作成できます。これらはバージョン9.8.1で実装されました。

IPアドレスがbadrecord.example.com.である198.51.100.1をブロックするとします。ここでは実際のIPは重要ではありませんが、何が起こるかを補強するのに役立つIPを提供します。

options {
    # Snip.
    response-policy { zone "mypolicy"; };
};

zone "mypolicy" {
    type master;
    file "mypolicy.zone";
    allow-query { none; };
};

ゾーンファイルは次のようになります。

$TTL 1H
@                       SOA LOCALHOST. doesnt.really.matter.example.org. (1 1h 15m 30d 2h)

                        ; NS required for zone syntax reasons, but ignored
                        NS  LOCALHOST.

; CNAME bad reply to a DNS record that isn't in this file
badrecord.example.com.  CNAME mywalledgarden.example.edu.

; replace bad reply with fixed IP address
badrecord2.example.com. A     203.0.113.1

; rewrite the top of a bad domain, as well as all records immediately
; beneath the apex. (i.e. not further than one level deep)
example.net.            A     203.0.113.1
*.example.net.          A     203.0.113.1

観察:

  • 「mypolicy」は実際のDNSゾーンです。ゾーン転送を使用して、ゾーン転送を環境全体に分散し、単一のサーバーからデータを制御できます。
  • allow-queryルールにより、ユーザーはゾーンに直接クエリを実行できません。
  • これらのルールはブロックしませんqueriesですが、通常は不良データを含むクエリへの応答はすべて書き換えられます。これの副作用は、存在しないレコードの要求がNXDOMAINを正しく返すことです。クライアントが不良データを含む応答を取得するために、応答を変更するだけです可能であれば
  • DNSワイルドカードマッチングの通常のルールが適用されます。

実行できる書き換えはこれらだけではありません。完全な構文と潜在的なアプリケーションについては、BINDARMを参照することをお勧めします。


インターネット上に、ルート(.)ゾーンの作成や、ブロックする必要のあるドメインごとに1つのゾーンの作成などを提案するガイドがいくつかあります。そうしないでください。これは、DNS管理者がより良いオプションがないために頼っていた、古くて扱いにくい方法です。 RPZがオプションであり、それがニーズをカバーしている場合は、それを使用してください。ドメインに対して権限がない場合は、ドメインに対して権限を持つように構成しないでください。

2
Andrew B