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

29

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 également utiliser IRC).

vivin
la source
4
Soyez prudent - tenter de contourner les contrôles de sécurité peut en faire escorter certaines entreprises. Il est également possible que d'autres serveurs DNS soient bloqués.
uSlackr

Réponses:

15

Linux ne prend pas en charge l'utilisation de serveurs DNS spécifiques au domaine via resolv.conf. Vous pouvez potentiellement contourner ce problème en exécutant un serveur de noms de mise en cache (tel que BINDou 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 scutilcommande. 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 scutilcommande comme cela , et d'une recherche Google pour openvpnet scutildonnera 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.

larsks
la source
1
Est-ce toujours vrai dans le systemd-resolvedmonde? (Oui, je me rends compte que votre réponse a 7 ans)
Pointy
1
@Pointy Il semble que les versions récentes de systemd- resolved
corford
35

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
mgorven
la source
2
Cela peut absolument être fait en utilisant la résolution DNS standard fournie par certains systèmes d'exploitation. Mais pas par Linux.
larsks
Pour contrôler quelle interface utiliser, j'ai ajouté le @vpn0 à la fin des serveurs DNS. Cela peut être utile pour l'utiliser uniquement lorsqu'un VPN est en place.
Alex
8

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=2004062902195410

Alek_A
la source
Est-ce que cela s'applique à High Sierra?
Tolsadus
1
Il fonctionne toujours sur Mojave
byte255
5

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émarrez 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.

Richard Hodges
la source
3

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.

mrlotfi
la source