Description
Stubby est une application qui agit en tant que client DNS, sur protocole sécurisé (en utilisant DoT ). Ce logiciel chiffre les requêtes DNS envoyées d’une machine cliente vers un résolveur DNS, ou un serveur DNS faisant autorité afin d’augmenter la confidentialité des communications de l’utilisateur, par le chiffrement des requêtes DNS. De même, il peut faire des requêtes DNS selon le protocole DNSSEC.
Attention : il ne fait pas office de résolveur cache DNS, ni de serveur faisant autorité ; ce n’est qu’un client DNS !
De plus, il n’existe ni package, ni port de Stubby sous OpenBSD stable… et encore moins de port officiel du projet stubbly vers OpenBSD, d’où le titre “EXPÉRIMENTAL”. Nous allons devoir récupérer les sources, les compiler, installer, configurer, etc…
Installation
L’installation du client stubby se fait/fera sous OpenBSD stable.
- la 6.3 à ce jour…
Pré-requis
OpenSSL
: installé par défautLibyaml
: à installer…autoconf
,automake
: à installer pour les phases de configuration, compilation avant installation
# pkg_add autoconf automake libyaml
quirks-2.414 signed on 2018-03-28T14:24:37Z
Ambiguous: choose package for autoconf
a 0: <None>
1: autoconf-2.13p4
2: autoconf-2.52p6
3: autoconf-2.54p5
4: autoconf-2.56p4
5: autoconf-2.57p4
6: autoconf-2.58p5
7: autoconf-2.59p5
8: autoconf-2.60p5
9: autoconf-2.61p5
10: autoconf-2.62p2
11: autoconf-2.63p1
12: autoconf-2.64p1
13: autoconf-2.65p1
14: autoconf-2.67p1
15: autoconf-2.68p1
16: autoconf-2.69p2
Your choice: 16
Ambiguous: choose package for automake
a 0: <None>
1: automake-1.10.3p8
2: automake-1.11.6p2
3: automake-1.12.6p1
4: automake-1.13.4p1
5: automake-1.14.1p0
6: automake-1.15.1
7: automake-1.4.6p5
8: automake-1.8.5p9
9: automake-1.9.6p12
Your choice: 6
Puis on va suivre les recommandations officielles d’installation depuis les sources
- pour Linux - en les adaptant à notre cher OS qu’est OpenBSD. Chacune des étapes est à exécuter l’une après l’autre.
Téléchargement
$ git clone https://github.com/getdnsapi/getdns.git
$ cd getdns
$ git checkout develop
La deuxième commande git nous permet d’obtenir les sources les plus récentes…
Configuration
$ git submodule update --init
$ libtoolize -ci
$ export AUTOCONF_VERSION=2.69
$ export AUTOMAKE_VERSION=1.15
$ autoreconf -fi
$ mkdir build && cd build
$ ../configure --prefix=/usr/local --without-libidn --enable-stub-only --with-stubby
Compilation
$ make
# make install
Bien-sûr, à la place de la dernière commande, si vous avez configuré
doas
, vous pouvez ainsi l’exécuter :
$ doas make install
resolv.conf
Il est nécessaire de modifier votre fichier /etc/resolv.conf
afin de
communiquer directement avec stubby :
nameserver 127.0.0.1
nameserver ::1
stubby.yml
Le fichier de configuration de stubby se trouve être dans
/usr/local/etc/stubby/stubby.yml
. Si vous en créez un au format yaml
dans votre répertoire personnel, tel que ~/.stubby.yml
, il sera lu en
premier.
Exécution
Pour exécuter stubby, il suffit de :
# stubby
[12:57:39.896254] STUBBY: Read config from file /usr/local/etc/stubby/stubby.yml
[12:57:39.898479] STUBBY: DNSSEC Validation is OFF
[12:57:39.898585] STUBBY: Transport list is:
[12:57:39.898617] STUBBY: - TLS
[12:57:39.898681] STUBBY: Privacy Usage Profile is Strict (Authentication required)
[12:57:39.898713] STUBBY: (NOTE a Strict Profile only applies when TLS is the ONLY transport!!)
[12:57:39.898749] STUBBY: Starting DAEMON....
Quelques informations intéressantes :
- le drapeau
-C
permet de spécifier un autre fichier de configuration, à la place de l’original. - le drapeau
-g
permet de fonctionner en arrière plan… - le drapeau
-i
permet de vérifier la configuration ! - le drapeau
-l
a pour objectif de journaliser les connexions. Pour l’instant, la sortie se fait sur la sortie standardstdout
!
Test
L’usage très simple de dig
nous permettra de nous assurer du bon
fonctionnement :
⇒ Version IPv4
$ dig @127.0.0.1 www.gandi.net
; <<>> DiG 9.4.2-P2 <<>> @127.0.0.1 www.gandi.net
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40041
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:
;www.gandi.net. IN A
;; ANSWER SECTION:
www.gandi.net. 21583 IN CNAME prod.gandi.map.fastly.net.
prod.gandi.map.fastly.net. 3600 IN A 151.101.37.103
;; AUTHORITY SECTION:
fastly.net. 3600 IN NS ns1.fastly.net.
fastly.net. 3600 IN NS ns2.fastly.net.
fastly.net. 3600 IN NS ns3.fastly.net.
fastly.net. 3600 IN NS ns4.fastly.net.
;; Query time: 1888 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Mar 22 14:15:51 2018
;; MSG SIZE rcvd: 155
⇒ Version IPv6 :
$ dig @::1 www.gandi.net
; <<>> DiG 9.4.2-P2 <<>> @::1 www.gandi.net
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24688
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;www.gandi.net. IN A
;; ANSWER SECTION:
www.gandi.net. 84574 IN CNAME prod.gandi.map.fastly.net.
prod.gandi.map.fastly.net. 3600 IN A 151.101.85.103
;; AUTHORITY SECTION:
fastly.net. 168207 IN NS ns4.fastly.net.
fastly.net. 168207 IN NS ns2.fastly.net.
fastly.net. 168207 IN NS ns1.fastly.net.
fastly.net. 168207 IN NS ns3.fastly.net.
;; ADDITIONAL SECTION:
ns1.fastly.net. 3600 IN A 23.235.32.32
ns2.fastly.net. 3600 IN A 104.156.80.32
ns3.fastly.net. 3600 IN A 23.235.36.32
ns4.fastly.net. 3600 IN A 104.156.84.32
;; Query time: 1614 msec
;; SERVER: ::1#53(::1)
;; WHEN: Thu Mar 22 14:16:40 2018
;; MSG SIZE rcvd: 219