こんにちは群れ、今日私たちはいくつかのDNSのものを学ぶつもりです。 DNSとは何か、DNSのしくみ、その種類などは誰もが知っています。それでは、まとめて、DNS応答ポリシーゾーン(RPZ)に関する今日のトピックに飛び込みましょう。
DNSサーバーに関する他のトピックを表示するには、こちらにアクセスしてください。
RPZとは何ですか?
DNS応答ポリシーゾーン(RPZ)は、DNS管理者がDNSサーバーのポリシーをカスタマイズできるようにするDNSゾーンであり、サーバーがクライアントのDNSクエリに対して変更された回答を返すようにします。つまり、RPZは、DNS応答をリアルタイムで変更する方法を提供します。これを使用して、潜在的に危険なDNSデータを変更して通信をブロックしたり、ローカルデータを提供して「壁に囲まれた庭」にリダイレクトしたりできます。 RPZを使用してクエリ応答を変更したり、任意のドメインをブロックしたりできるため、DNSファイアウォールとも呼ばれます。
他のDNSゾーンと同様に、RPZはさまざまなリソースレコード(RR)セットで構成されています。 SOA、NS、DNSSECレコードではなく、他のすべてのRRにはトリガーとトリガーのアクションが含まれています。
以下に基づいてDNSクエリを書き換えるように構成されたトリガー:
- IPアドレス/サブネット(RPZ-IP)
- ホスト名/ドメイン(QNAME)
- ネームサーバー名/ドメイン(RPZ-NSDNAME)
- ネームサーバーアドレス/サブネット(RPZ-NSIP)
- クライアントIP(RPZ-CLIENT-IP)
ポリシーアクションは次のとおりです
- 「NXDOMAIN」アクション(CNAME。)
- 「NODATA」アクション(CNAME *。)
- 「PASSTHRU」アクション(CNAME rpz-passthru。)
- 「DROP」アクション(CNAME rpz-drop。)
- 「TCPのみ」のアクション(CNAME rpz-tcpのみ)
- 「ローカルデータ」アクション(任意のRRタイプ)
RPZアプリケーション:
DNS RPZには、さまざまなアプリケーションとユースケースがあります。例:
- マルウェアとフィッシングのWebサイトをブロックする
- 広告をブロックする
- ドメインRRを書き換えて、カスタムDNSデータを提供する
- 一連のインターネットユーザーのトラフィックをブロックし、壁に囲まれた庭にリクエストを送信します
この記事では、BIND9でRPZを構成し、すべてのユーザーのドメインをブロックし、一部のユーザーをウォールドガーデンにリダイレクトする方法を学習します。
BIND9をインストールしてRPZを構成します:
DebianLinuxにBIND9キャッシングDNSサーバーをインストールしましょう。
# apt-get update
# apt-get install -y bind9
bind9を有効にして開始します サービス
# systemctl enable bind9.service
# systemctl start bind9.service
# systemctl status bind9.service
出力:
サーバーの物理インターフェイスには、192.168.10.38アドレスが構成されています。次に、BIND9のリスニングステータスを確認します
# netstat -lntup | grep -E "PID|named"
出力:
BIND9は、すべてのインターフェイスでIPv4とIPv6の両方のアドレスファミリをリッスンしていることがわかります。 IPv4でBIND9を操作するには、 / etc / default / bind9の起動オプションのみを変更します。 ファイル
OPTIONS="-4 -u bind"
bind9を再起動します サービス
# systemctl restart bind9.service
デフォルトオプションファイルのバックアップ
# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.ori
/etc/bind/named.conf.optionsのBIND9メインオプションとゾーン名の下にRPZ構成ディレクティブを追加します ファイル
response-policy { zone "rpz"; };
response-policyに複数のゾーンを追加することもできます 次のようなディレクティブ
response-policy {
zone "rpz1";
zone "rpz2";
};
次に、ゾーンのプロパティを定義します
zone "rpz" {
type master;
file "rpz.local";
allow-query { localhost; };
allow-update { none; };
};
ここで、マルウェアの活動が原因でドメインをブロックしたい場合、または広告サイトである場合、または規制当局からサイトをブロックするように指示された場合を考えてみます。この例では、「 youtube.com」をブロックしています 「。 rpz.localを作成します 以下のコンテンツを含むBIND9のデフォルトディレクトリ内のファイル
$TTL 60
@ IN SOA localhost. root.localhost. (
2022012801 ; serial
1h ; refresh
30m ; retry
1w ; expiry
30m) ; minimum
IN NS ns1.example.com.
IN NS ns2.example.com.
youtube.com 30 IN CNAME .
*.youtube.com 30 IN CNAME .
BIND9サービスを再起動します
# systemctl restart bind9.service
上記の設定ディレクティブでは、ドメイン「 youtube.com」の「NXDOMAIN」ポリシーアクションを定義しました 「。これで、ワークステーションから参照しようとすると、サイトを参照できなくなり、ブラウザにNXDOMAINメッセージが返されます
次の例では、「 btcl.com.bd」をリダイレクトします 」RPZを使用して壁に囲まれた庭へのユーザー。 DNSクエリでローカルデータを提供することにより、ユーザーにメッセージを表示します。これを実現するには、次のようにRRを作成する必要があります
btcl.com.bd 30 IN A 192.168.10.38
*.btcl.com.bd 30 IN A 192.168.10.38
注: 192.168.10.38で実行されているウェブサーバーがあります ユーザーにカスタムメッセージを提供します。
BIND9サービスを再起動します。
ウェブサイトの閲覧「http://btcl.com.bd 」メッセージの下の結果
デフォルトの顧客がRPZを使用して支払いをブロックする
この例では、未払いの残高があるすべてのユーザーを壁に囲まれた庭にリダイレクトして、会費を支払うようにメッセージを表示します。
請求書の支払いに失敗したIPアドレス192.168.10.13のユーザーがいます。ユーザーへのすべてのリクエストをウォールガーデンウェブサーバー192.168.10.38にリダイレクトするには、 rpz.localを設定します。 次のようにファイルします
32.13.10.168.192.rpz-client-ip 30 IN A 192.168.10.38
注: 32.13.10.168.192.rpz-client-ip CIDR表記でホストIPを定義します192.168.10.13/32 。サブネットをブロックする場合172.16.20.0/24 次に、 24.0.20.16.172.rpz-client-ipとして表示されます。 。
BIND9サービスを再起動します。
通常のクライアントからの閲覧
壁に囲まれたクライアントからの閲覧
参照:
https://tools.ietf.org/id/draft-vixie-dnsop-dns-rpz-00.html
http://www.zytrax.com/books/dns/