web-dev-qa-db-ja.com

RPZCNAMEがRPZの使用をリークします

歴史上の理由から、1つのドメイン(example.com)のホストには内部IP(192.168.0.0/16)とパブリックIPの両方があります。これを分割して、外部ユーザーの内部ホスト名が解決されないようにします。

私の現在の計画は、RPZでバインドを使用することです。

私のnamed.confは次のとおりです。

options {
    directory "/var/named";
    pid-file "/run/named/named.pid";

    // Uncomment these to enable IPv6 connections support
    // IPv4 will still work:
    //  listen-on-v6 { any; };
    // Add this for no IPv4:
    //  listen-on { none; };

    allow-recursion { localhost; };
    allow-transfer { none; };
    allow-update { none; };

    version none;
    hostname none;
    server-id none;
    response-policy { zone "rpz"; };
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "127.0.0.zone";
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
    type master;
    file "localhost.ip6.zone";
};

zone "255.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "0.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "." IN {
    type hint;
    file "root.hint";
};

zone "rpz" {type master; file "rpz"; allow-query {localhost;}; };

私のrpzゾーンファイルは次のとおりです。

$TTL 1H
@                 SOA LOCALHOST. named-mgr.example.com (16 1h 15m 30d 2h)
@ IN    NS  localhost.
support.example.com     A   192.168.1.1
cname.example.com   CNAME support.example.com
*.example.com CNAME rpz-passthru.
*   CNAME .

Support.example.comをクエリすると、次のような結果が得られます。

# Dig +short support.example.com @127.0.0.1
192.168.1.1

しかし、cname.example.comを照会すると、IPは解決されますが、クライアントにはRPZゾーンにいることが通知されます。

# Dig +short cname.example.com @127.0.0.1
support.example.com.rpz.
192.168.1.1

または、ゾーンファイルのCNAMEを次のように変更することもできます。

cname.example.com   CNAME support.example.com. ;mind the period at the end

ただし、これにより、バインドがcnameを再帰的に解決できなくなります。

# Dig +short cname.example.com @127.0.0.1
support.example.com.
# Dig +short support.example.com. @127.0.0.1
192.168.1.1

私が間違っていることを説明できますか?

ありがとうクレメンス

2

返信はかなり遅れていますが、これは iscメーリングリスト で回答されています。残念ながら、次のような複数のrpzレコードをチェーンすることはできません。

cname.example.com    CNAME  support.example.com.
support.example.com      A   192.168.1.1

rpzはワンショット操作です。クエリによって2つのルックアップが発生した場合(CNAMEが関係している場合は自動的に発生します)、最初のルックアップのみがrpzによって処理されます。

構成を次のように変更する必要があります

cname.example.com       A   192.168.1.1
support.example.com     A   192.168.1.1

...各エントリは1回のルックアップで回答できます。

Cnameレコードを使用しない場合は、cnameレコードの後ろのピリオドの必要性についても心配する必要はありません;)
とにかく、rpzファイルでCNAMEレコードを使用する必要がある場合は、ピリオドを追加してください。 rpzに関しては、他のすべてはあまり意味がありません。

1
DonEstefan