vendredi 17 juillet 2015

Comment savoir si son FAI bloque déjà le port 53 ?


Source :  http://www.bortzmeyer.org/port53-filtre.html

À noter que le blocage du port 53 empêcherait immédiatement la technique la plus utilisée aujourd'hui pour contourner les portails captifs de tant d'aéroports et hôtels : le tunnel DNS.

Le rapport du MAAWG ne cite pas ce point, sans doute parce qu'il rendrait leurs intentions répressives trop voyantes mais cela a dû compter dans cette recommandation.
Comment savoir si son FAI bloque déjà le port 53 ? Lui demander ne donne jamais aucun résultat (essayez : appelez le support de votre FAI). Lire les CGV a peu de chances de vous apporter des explications claires. Il vaut donc mieux tester.

Si, sur une machine Unix, vous pouvez utiliser dig :

% dig @a.nic.fr A www.wikipedia.fr
et récupérer la bonne valeur (une redirection vers les serveurs du domaine de Wikipédia) :

...
;; AUTHORITY SECTION:
wikipedia.fr.           172800  IN      NS      c.dns.gandi.net.
wikipedia.fr.           172800  IN      NS      a.dns.gandi.net.
wikipedia.fr.           172800  IN      NS      b.dns.gandi.net.
...

c'est que vous avez un accès au port 53 : vous pouvez interroger directement les serveurs faisant autorité. Vous pouvez aussi tester d'autres TLD que .fr, bien sûr.
Parfois, le filtrage dépend du contenu.

Ainsi, en Chine, les requêtes DNS sont souvent modifiées par la censure et il faut donc tester, non seulement avec www.wikipedia.fr mais également avec des noms sensibles (en Chine, facebook.com ou twitter.com).

Même si vous avez l'impression que vous parlez directement au serveur DNS (option @ de dig), des équipements intermédiaires sur le réseau modifient vos réponses.
Si vous n'avez pas dig, vous pouvez aussi utiliser le service http://netalyzr.icsi.berkeley.edu/faq.html#nolaunch (il nécessite Java).
Si le FAI filtre le port 53, y a t-il des solutions de contournement ? On peut imaginer, par exemple (voir l'article de Spyou) un serveur DNS interne qui parle à un serveur externe sur un autre port que le 53.

Avec un récurseur comme Unbound, une configuration comme cela fonctionnerait pour le serveur interne, l'externe écoutant sur le port 443 (qui a peu de chances d'être filtré) :

forward-zone:
  name: "."
  forward-addr: 192.0.2.73@443

Le serveur externe, toujours si c'est un Unbound, a juste besoin de :
server:
    interface: 192.0.2.73@443
 
pour écouter sur le port 443 en sus de ses ports habituels.

source : http://www.bortzmeyer.org/port53-filtre.html

acidburn0zzz.github.io