ネットワーク内の特定のクライアントのDnsmasqホワイトリスト

ネットワーク内の特定のクライアントのDnsmasqホワイトリスト

私はdnsmasqを使ってネットワーク上の特定のクライアントのホワイトリストを設定したいと思います。

たとえば、192.168.1.10 - 192.168.1.20 の範囲のクライアントに対して、次の規則が必要です。

no-resolv
server=/pbskids.org/192.168.0.1
server=/disney.go.com/192.168.0.1

これにより、クライアントは許可されたWebサイトにのみアクセスできます。この範囲外のネットワーク上のクライアントは、必要なDNSサーバーを使用できる必要があります。どうすればいいですか?

編集する:

これがこれまでのdnsmasq.confの内容です:

bogus-priv
domain-needed
no-resolv

server=/pbskids.org/192.168.0.1
server=/disney.go.com/192.168.0.1

予想される結果は、ネットワーク上のすべてのクライアントに対するアップストリームDNSルックアップを拒否することです。今私が必要とするのは、特定のクライアントがアップストリームDNSを使用できるようにする方法です。私はそのようなオプションが存在しないと思いますが、おそらく私の考えを伝えるのに役立ちます。

use-resolv --source 192.168.1.150

つまり、クライアントのIPアドレスが192.168.1.150の場合、アップストリームDNSサーバーが使用されます。または私が元々探していたものは次のとおりです。

no-resolv --source 192.168.1.100

つまり、クライアントのIPアドレスが192.168.1.100の場合、アップストリームサーバーはまったく使用されません。

このようなことができない場合は、おそらく2つの別々のネットワークが必要になるでしょう。

答え1

このチュートリアルはあなたが望むものとまったく同じです。タイトル:保護とサーフィン(dnsmasqとホワイトリスト)

アイデアはとても簡単です。コンピュータが認識している唯一のDNSサーバーがDNSMasqサーバーになるようにコンピュータを隔離します。次に、DNSMasq 構成に次の行を追加します。ドキュメント、/etc/dnsmasq.conf

domain-needed
bogus-priv
log-queries
log-facility=/var/log/dnsmasq.log
no-resolv
interface=eth0

# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1
server=/google.com/192.168.0.1
server=/dan-dare.org/192.168.0.1
server=/dan-dare.net/192.168.0.1
server=/pbskids.org/192.168.0.1
server=/playhousedisney.com/192.168.0.1
server=/disney.go.com/192.168.0.1
server=/starfall.com/192.168.0.1

これが完了すると、DNSMasqサーバーを指しているサーバーは、構成内のもの以外のDNS結果を見つけることができません。文書。

メモ:これは決して完全な証拠ではなく、簡単に迂回することができます。ただし、お子様が他のウェブサイトへのアクセスをブロックするためにこの機能を使用している場合は、作業を完了するのに十分です。

ドメイン名システム

DNSが設定ファイル.dnsMasqサーバーを介してのみ要求を送信するように設定するようにシステムを設定できます/etc/resolv.conf

nameserver 192.168.1.1

関連情報