네트워크의 특정 클라이언트에 대한 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

이렇게 하면 해당 클라이언트는 허용된 웹사이트에만 액세스할 수 있습니다. 이 범위 밖의 네트워크에 있는 클라이언트는 원하는 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인 경우 업스트림 서버는 전혀 사용되지 않습니다.

이런 일을 할 수 없다면 아마도 두 개의 별도 네트워크가 필요할 것입니다.

답변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

관련 정보