web-dev-qa-db-fra.com

Existe-t-il un moyen d'utiliser un DNS spécifique pour un domaine spécifique?

Au travail, nous utilisons OpenDNS et il a bloqué à tort irc.freenode.net pour les logiciels malveillants. Comment puis-je m'assurer que toute demande de * .freenode.net passe à 8.8.8.8 et 8.8.4.4 (DNS de Google).

J'ai essayé de le faire en jouant avec resolv.conf sur Ubuntu, mais je n'ai pas pu aller trop loin. De plus, existe-t-il un moyen facile de le faire pour les systèmes Mac et Windows (j'ai quelques collègues utilisant ces systèmes d'exploitation et ils aimeraient utiliser IRC également).

29
vivin

Linux ne prend pas en charge l'utilisation de serveurs DNS spécifiques au domaine via resolv.conf. Vous pouvez éventuellement contourner ce problème en exécutant un serveur de noms de mise en cache (tel que BIND ou dnsmasq) localement, puis en configurant des redirecteurs explicites pour chaque domaine.

Sous OS X, ce type de paramètre est relativement facile à utiliser avec la commande scutil. Le cas d'utilisation courant de cette configuration est de transmettre des demandes DNS pour une connexion VPN à des serveurs DNS spécifiques au VPN, vous trouverez donc cela souvent discuté de concert avec, par exemple, OpenVPN. Ce document parle de la commande scutil comme le fait this , et une recherche Google pour openvpn et scutil donnera Plus de résultats.

Je ne suis pas sûr de Windows. Vous pouvez probablement utiliser la solution de serveur DNS local pour les trois plates-formes si vous en avez besoin.

15
larsks

Cela ne peut pas être fait avec la résolution DNS standard fournie par * nix (et Windows AFAIK), vous avez besoin de votre propre serveur DNS pour ce faire. On * nix dnsmasq est le meilleur choix pour cela, et vous pouvez soit l'exécuter sur chaque poste de travail, soit l'exécuter sur un serveur et configurer tous les postes de travail pour l'utiliser.

/etc/resolv.conf:

nameserver 127.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220

/etc/dnsmasq.conf:

server=/freenode.net/8.8.8.8
server=/freenode.net/8.8.4.4
37
mgorven

Sous OS X, vous pouvez utiliser des fichiers comme /etc/resolver/example.com avec du contenu:

nameserver 172.16.5.5

pour transférer les demandes DNS pour * .example.com au 172.16.5.5

http://hints.macworld.com/article.php?story=200406290219541

10
Alek_A

J'ai fait cela sur Fedora en installant un serveur DNS local.

installez d'abord bind:

Sudo dnf install bind

étape 1: ajouter une ligne à /etc/named.conf (en tant que root):

include "/etc/named/freenode.net.conf";

étape 2: créez le fichier de zone /etc/named/freenode.net.conf (en tant que root):

zone "freenode.net" {
    type forward;
    forwarders { 8.8.8.8; };
};

redémarrer maintenant nommé:

Sudo service named restart

reconfigurez maintenant vos paramètres de réseau local pour utiliser 127.0.0.1 comme serveur DNS, plutôt que les hôtes alloués par DCHP.

5
Richard Hodges

Il est possible d'utiliser l'option firejail --dns pour cela. Par exemple:

firejail --dns=8.8.8.8 firefox

De cette façon, le serveur DNS peut être défini par application au lieu de par domaine. Cela pourrait donc être une meilleure solution dans certaines circonstances.

4
mrlotfi

Vous pouvez le faire sur Windows avec PowerShell:

Add-DnsClientNrptRule -Namespace "pqr.com" -NameServers "10.0.0.1"

Référence: https://docs.Microsoft.com/en-us/powershell/module/dnsclient/add-dnsclientnrptrule?view=win10-ps

2
aoetalks