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

samedi 4 juillet 2015

https://freedom-ip.com/forum/viewtopic.php?id=399


Pourquoi installer un resolver DNS en local ?
Pour au minimum les trois solutions énumérées ci-dessous :
1 - Pas de logs ailleurs
2 - Requêtes DNS garanties contre les injections.
3 - Court-circuiter les blocages DNS des FAI ou autre serveur de relai en interrogeant directement les serveurs root.
On va donc installer ceci sur des machines Linux et Windows.

LINUX :
Installation de Unbound :
Ubuntu :
$ sudo apt-get install unbound
Fedora :
# yum install unbound
Dans la console (mode root) entrez :
# unbound-anchor
(Si des messages d'erreurs apparaissent supprimer le fichier /etc/unbound/root.keys existant,unbound-anchor va le régénérer)
Téléchargez le fichier : ftp://ftp.internic.net/domain/named.cache er l'enregistrer en root sous : /etc/unbound/root.hints
En mode root éditez le fichier : /etc/unbound/unbound.conf
Et remplacer tout par (en mettant les valeurs de votre processeur dans les 5 lignes concernées) :
# unbound.conf
server:
    interface: 127.0.0.1
    interface: ::1
    access-control: 127.0.0.0/8 allow 
    access-control: ::1 allow
    verbosity: 0
 
    num-threads: 2 #nombre de core processeur par machine. Ex: 8 machines équipées d'un proc 4 core chacune = 32. Une machine équipée de 2 proc 4 core = 8.
    msg-cache-slabs: 4 #nombre de core au carré
    rrset-cache-slabs: 4 #nombre de core au carré
    infra-cache-slabs: 4 #nombre de core au carré
    key-cache-slabs: 4 #nombre de core au carré
    rrset-cache-size: 100m
    msg-cache-size: 50m
    outgoing-range: 465
    so-rcvbuf: 4m
    so-sndbuf: 4m
    port: 53
    do-ip4: yes
    do-ip6: no
    do-udp: yes
    do-tcp: yes

    hide-identity: yes
    hide-version: yes 
    harden-glue: yes

    harden-dnssec-stripped: yes
    auto-trust-anchor-file: "/etc/unbound/root.key"
    root-hints: "/etc/unbound/root.hints"
Redémarrer le service Unbound :
Ubuntu :
/etc/init.d/unbound restart
Fedora :
service unbound restart

WINDOWS :
La méthode est exactement la même :
Télécharger la dernière version d'Unbound pour Windows : http://unbound.net/download.html
Lors de l'install, cochez Root anchor - DNSSEC
Installez la dans : c:\Program Files\Unbound
Dans le répertoire c:\Program Files\Unbound faites une copie de sauvegarde des fichiers service.conf et root.hints
Dans service.conf copier-coller la config ci-dessous :
# File: service.conf

server:
directory: "c:\Program Files\Unbound"
root-hints: "root.hints"
auto-trust-anchor-file: "root.key"
interface: 127.0.0.1
access-control: 192.168.0.0/16 allow 
access-control: 127.0.0.0/8 allow
verbosity: 0
prefetch: yes
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
Dans root.hints copier-coller la liste des serveurs racines :
;; QUESTION SECTION:
;.                IN    NS

;; ANSWER SECTION:
.            518400    IN    NS    A.ROOT-SERVERS.NET.
.            518400    IN    NS    I.ROOT-SERVERS.NET.
.            518400    IN    NS    C.ROOT-SERVERS.NET.
.            518400    IN    NS    H.ROOT-SERVERS.NET.
.            518400    IN    NS    M.ROOT-SERVERS.NET.
.            518400    IN    NS    E.ROOT-SERVERS.NET.
.            518400    IN    NS    K.ROOT-SERVERS.NET.
.            518400    IN    NS    L.ROOT-SERVERS.NET.
.            518400    IN    NS    B.ROOT-SERVERS.NET.
.            518400    IN    NS    J.ROOT-SERVERS.NET.
.            518400    IN    NS    D.ROOT-SERVERS.NET.
.            518400    IN    NS    G.ROOT-SERVERS.NET.
.            518400    IN    NS    F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET.    3600000    IN    A    198.41.0.4
B.ROOT-SERVERS.NET.    3600000    IN    A    192.228.79.201
C.ROOT-SERVERS.NET.    3600000    IN    A    192.33.4.12
D.ROOT-SERVERS.NET.    3600000    IN    A    128.8.10.90
E.ROOT-SERVERS.NET.    3600000    IN    A    192.203.230.10
F.ROOT-SERVERS.NET.    3600000    IN    A    192.5.5.241
G.ROOT-SERVERS.NET.    3600000    IN    A    192.112.36.4
H.ROOT-SERVERS.NET.    3600000    IN    A    128.63.2.53
I.ROOT-SERVERS.NET.    3600000    IN    A    192.36.148.17
J.ROOT-SERVERS.NET.    3600000    IN    A    192.58.128.30
K.ROOT-SERVERS.NET.    3600000    IN    A    193.0.14.129
L.ROOT-SERVERS.NET.    3600000    IN    A    199.7.83.42
M.ROOT-SERVERS.NET.    3600000    IN    A    202.12.27.33
Redémarrez le service Unbound dans la liste des services.

--------
Dans votre choix de DNS pour votre connexion réseau entrez votre machine soit 127.0.0.1
(Débloquez le port 53 dans votre firewall)
That's all.

(Evidemment, l'idéal est que votre VPN favori n'utilise pas les DNS de ceux proposés gratuitement... Qu'ils ne participent pas au piège eux même sans le vouloir...)
Un peu de lecture :
http://www.bortzmeyer.org/opendns-non-merci.html
http://www.bortzmeyer.org/opendns-dnscurve.html
http://www.bortzmeyer.org/dnscurve.html
http://www.bortzmeyer.org/port53-filtre.html
Evidemment DNSSEC est implémenté dans le tuto ( http://fr.wikipedia.org/wiki/Domain_Nam … Extensions ) pour les questions c'est fait pour.
Un chtit test : http://dnssectest.sidn.nl/test.php
_____________________________________________
Le 6 Fevrier 2013
Configuration du DNS en IPv6
Dans "unbound.conf" ou "service.conf" remplacer :
do-ip6: no
par
do-ip6: yes


puis mettez à jour le fichier "root.hints" en remplaçant le son contenu par :
;; QUESTION SECTION:
;.                IN    NS

;; ANSWER SECTION:
.            518400    IN    NS    A.ROOT-SERVERS.NET.
.            518400    IN    NS    I.ROOT-SERVERS.NET.
.            518400    IN    NS    C.ROOT-SERVERS.NET.
.            518400    IN    NS    H.ROOT-SERVERS.NET.
.            518400    IN    NS    M.ROOT-SERVERS.NET.
.            518400    IN    NS    E.ROOT-SERVERS.NET.
.            518400    IN    NS    K.ROOT-SERVERS.NET.
.            518400    IN    NS    L.ROOT-SERVERS.NET.
.            518400    IN    NS    B.ROOT-SERVERS.NET.
.            518400    IN    NS    J.ROOT-SERVERS.NET.
.            518400    IN    NS    D.ROOT-SERVERS.NET.
.            518400    IN    NS    G.ROOT-SERVERS.NET.
.            518400    IN    NS    F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET.    3600000    IN    A    198.41.0.4
A.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:503:BA3E::2:30
B.ROOT-SERVERS.NET.    3600000    IN    A    192.228.79.201
C.ROOT-SERVERS.NET.    3600000    IN    A    192.33.4.12
D.ROOT-SERVERS.NET.    3600000    IN    A    128.8.10.90
D.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:500:2D::D
E.ROOT-SERVERS.NET.    3600000    IN    A    192.203.230.10
F.ROOT-SERVERS.NET.    3600000    IN    A    192.5.5.241
F.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:500:2F::F
G.ROOT-SERVERS.NET.    3600000    IN    A    192.112.36.4
H.ROOT-SERVERS.NET.    3600000    IN    A    128.63.2.53
H.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:500:1::803F:235
I.ROOT-SERVERS.NET.    3600000    IN    A    192.36.148.17
I.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:7FE::53
J.ROOT-SERVERS.NET.    3600000    IN    A    192.58.128.30
J.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:503:C27::2:30
K.ROOT-SERVERS.NET.    3600000    IN    A    193.0.14.129
K.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:7FD::1
L.ROOT-SERVERS.NET.    3600000    IN    A    199.7.83.42
L.ROOT-SERVERS.NET.    3600000    IN    AAAA  2001:500:3::42
M.ROOT-SERVERS.NET.    3600000    IN    A    202.12.27.33
M.ROOT-SERVERS.NET.    3600000    IN  AAAA  2001:DC3::35
Dernière modification par ycD (2012-01-28 12:58:27)

acidburn0zzz.github.io