web-dev-qa-db-ja.com

ネットワーク上の特定のクライアントの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つの別々のネットワークが必要です。

6
Big McLargeHuge

このチュートリアルはあなたが望むように聞こえます。タイトル: 保護してサーフィンする(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結果を見つけることができなくなります。ファイル。

注:これは決して完全な証明ではなく、かなり簡単に回避できます。しかし、子供たちを他のウェブサイトから遠ざけるためにそれを使用しているのであれば、おそらくそれで十分です。

DNS

DNSが構成ファイル/etc/resolv.conf

nameserver 192.168.1.1
4
slm