Configurer son DNS personnel avec pfSense

tbowan

24 juin 2019

Quelle que soit votre raison, il est toujours pratique d'avoir son propre serveur DNS. Comme on va le voir, avec pfSense, c'est simple comme bonjour.

Il y a plein de bonnes raisons d’installer son serveur DNS personnel. Au delà de filtrer les publicités, c’est aussi une façon de retrouver son indépendance. Vis à vis des FAI mais aussi des serveurs gratuits (comme on dit : « Si c’est gratuit, c’est toi le produit »).

De notre côté, la réflexion a été plus terre à terre. Lorsque nous avions configuré nos deux passerelles, nous avions oublié un petit détails...

Par défaut, pfSense transmet les requêtes vers les boxes, qu'importe l'état de la connexion en amont.

En temps normal, on perd un peu de temps pour les résolutions DNS qui partent vers l'ADSL mais ça ne se voit pas vraiment.

Lorsque la fibre tombe, c'est une autre histoire. Les requêtes qui partent de ce côté n'obtiennent pas de réponse et ce n'est qu'après l'expiration du délai que pfSense les rejoue côté ADSL et qu'on peut enfin espérer une réponse. Lors de la navigation, ça se ressent fort.

Configurer le serveur DNS

Une fois que votre pare-feu est installé et configuré, la configuration du serveur DNS se fait via le menu Services / DNS Resolver.

Activer le serveur

On commence par activer le service (on coche la case Enable).

Activer le DNS

Activer le DNS

Activer DNSSEC

Tant qu'on y est, autant activer la vérification des domaines, il suffit de cocher DNSSEC. Dans l'idéal, il faudrait aussi que les clients fassent aussi la vérification, mais c'est toujours ça de pris.

Activer DNSSEC

Activer DNSSEC

Forcer la résolution

Ne reste qu'à s'assurer que le serveur effectue ses requêtes plutôt que les transmettre à d'autres serveurs. Pour ça, on décoche DNS Query Forwarding.

Forcer la résolution

Forcer la résolution

C'est ce réglage spécifique qui nous faisait défaut dans notre configuration précédente. Grâce à lui, pfSense va transmettre ses requêtes aux serveurs racines, sur leurs adresses publiques et donc utiliser la passerelle par défaut en fonction des connexions internet disponibles.

Relier avec le DHCP

Ensuite, c'est suivant les goûts, personnellement, on a activé le liens entre DNS et DHCP pour pouvoir utiliser les noms d'hôtes de nos machines plutôt que leurs adresses IP. Nos utilisateurs ont apprécié, c'est plus facile de rejoindre maman que 192.168.5.107.

Appliquer

On peut alors sauvegarder. Ne cherchez pas le bouton tout en bas, il n'y est pas parce que cet écran contient aussi les surcharges (pour les hôtes ou les domaines complet), remontez simplement un peu 😉.

Et comme il s'agit d'une configuration du serveur en fonctionnement, il faut ensuite appliquer la configuration (pour relancer le service).

Vérifier sa configuration

Normalement, tout tombe en marche tout seul. Mais en cas de soucis d'accès à Internet, vous pourriez vouloir vérifier votre conf DNS.

Status

Pour connaître l'état du serveur, vous pouvez passer par le menu Status / DNS Resolver. Cet écran vous liste les serveurs racines qu'il connaît. La liste est longue mais montre que, globalement, il est en bonne santé.

Résolution

Plus spécifiquement, il peut parfois être utile de lancer une résolution directement depuis le serveur, pour comparer avec les résolutions faites sur vos autres postes.

Dans ce cas, c'est via Diagnostics / DNS Lookup. Entrez un nom à résoudre dans le champ, cliquez sur Lookup et observez la magie opérer (ou pas).

DNSSEC

Pour vérifier que DNSSEC est bien actif, des domaines témoins sont disponibles. Les plus utilisés étant ceux de verteiltesysteme.net :

  1. sigok.verteiltesysteme.net qui possède une signature valide et devrait donc être résolu si la résolution DNS fonctionne de manière générale,
  2. sigfail.verteiltesysteme.net qui n'en possède pas et ne devrait pas pouvoir être résolu si DNSSEC est bien activé.

Cette résolution peut se faire via le pare-feu ou n'importe quel poste de votre réseaux. Et pour s'amuser, on peu aussi comparer les serveurs que vous avez sous la main1...

Serveur DNSSEC
pfSense ✔️
freebox ✔️
redbox (SFR)
SOSH (Orange)
Bouygues

Pour l'instant, la sécurité des abonné ne semble pas une priorité pour beaucoup de FAI.

Et maintenant ?

Et voilà ! On dispose d'une configuration compatible avec nos deux accès internet et d'un serveur de confiance. Même si les attaques DNS et la censure ne sont pas très courantes, c'est toujours un peu d'indépendance de gagné.


  1. Si vous avez des résultats pour d'autres box, je suis preneur 😉.