{"id":93513,"date":"2018-12-28T01:00:51","date_gmt":"2018-12-28T01:00:51","guid":{"rendered":"https:\/\/www.internetsociety.org\/blog\/2019\/01\/dns-over-tls-sous-linux-systemd\/"},"modified":"2025-11-14T15:09:08","modified_gmt":"2025-11-14T15:09:08","slug":"dns-over-tls-sous-linux-systemd","status":"publish","type":"post","link":"https:\/\/www.internetsociety.org\/fr\/blog\/2018\/12\/dns-over-tls-sous-linux-systemd\/","title":{"rendered":"DNS-over-TLS sous Linux (systemd)"},"content":{"rendered":"<p>Alors que nous pr\u00e9parions r\u00e9cemment un article sur la confidentialit\u00e9 DNS, nous avons appris que certaines versions r\u00e9centes de Linux \u00e9taient fournies avec la possibilit\u00e9 d&rsquo;\u00e9mettre des requ\u00eates DNS-over-TLS. Nous avons donc d\u00e9cid\u00e9 d&rsquo;essayer Ubuntu 18.10 sur un ordinateur portable.<\/p>\n<p>Les versions plus r\u00e9centes d&rsquo;Ubuntu utilisent un service de r\u00e9solution de noms sp\u00e9cifique appel\u00e9 \u00ab&nbsp;system-resolved.service(8)&nbsp;\u00bb. Le fichier de configuration \u00ab&nbsp;resolved.conf(5)&nbsp;\u00bb pr\u00e9cise la plupart des d\u00e9tails pour la r\u00e9solution de noms, notamment les protocoles et les r\u00e9solveurs \u00e0 utiliser, tandis que les fichiers de configuration \u00ab&nbsp;\/etc\/systemd\/network\/*.network&nbsp;\u00bb (voir \u00ab&nbsp;systemd.network(5)&nbsp;\u00bb pour plus de d\u00e9tails) de \u00ab&nbsp;systemd-networkd.service(8)&nbsp;\u00bb sp\u00e9cifient tous les param\u00e8tres sp\u00e9cifiques par lien.<\/p>\n<p>La configuration par d\u00e9faut de \u00ab&nbsp;systemd-resolved&nbsp;\u00bb est s\u00e9lectionn\u00e9e au moment de la compilation et \u00ab&nbsp;\/etc\/systemd\/resolved.conf&nbsp;\u00bb contient normalement des lignes comment\u00e9es d\u00e9crivant ces valeurs par d\u00e9faut. Le contenu du fichier susmentionn\u00e9 sur une nouvelle installation d\u2019Ubuntu 18.10 est par exemple&nbsp;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"post-img post-img-none 92466\" src=\"https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/systemd-Config-1-450x299.png\" alt=\"\" width=\"450\" height=\"299\"><\/p>\n<p>Comme on peut le d\u00e9duire \u00e0 partir du fichier, DNS-over-TLS (DoT) est pris en charge, mais d\u00e9sactiv\u00e9 par d\u00e9faut. Au moment de la r\u00e9daction du pr\u00e9sent document, seul le DoT opportuniste est pris en charge conform\u00e9ment au manuel, le r\u00e9solveur essaiera donc d\u2019abord de r\u00e9soudre le probl\u00e8me en utilisant le DoT avant de revenir au DNS traditionnel en cas de d\u00e9faillance, permettant ainsi des attaques de d\u00e9classement lorsqu&rsquo;un attaquant cause intentionnellement une d\u00e9faillance DoT afin que la r\u00e9solution de nom revienne au DNS traditionnel.<\/p>\n<p>Nous avons d\u00e9cid\u00e9 de mettre le DoT \u00e0 l&rsquo;essai en modifiant trois variables de configuration dans \u00ab&nbsp;\/etc\/systemd\/resolved.conf&nbsp;\u00bb&nbsp;:<\/p>\n<ul>\n<li>D\u00e9finir \u00ab&nbsp;DNS&nbsp;\u00bb sur l&rsquo;adresse IP du serveur DoT<\/li>\n<li>D\u00e9finir \u00ab&nbsp;DNSOverTLS&nbsp;\u00bb sur \u00ab&nbsp;opportuniste&nbsp;\u00bb<\/li>\n<li>D\u00e9finir \u00ab&nbsp;Domaines&nbsp;\u00bb sur \u00ab&nbsp;~.&nbsp;\u00bb<\/li>\n<\/ul>\n<p>La variable \u00ab&nbsp;DNS&nbsp;\u00bb contient la liste des adresses IP correspondant au r\u00e9solveur r\u00e9cursif DoT (vous trouverez une liste des r\u00e9solveurs r\u00e9cursifs publics <a href=\"https:\/\/dnsprivacy.org\/wiki\/display\/DP\/DNS+Privacy+Public+Resolvers#DNSPrivacyPublicResolvers-DNS-over-TLS(DoT)\">ici<\/a>).<\/p>\n<p>D\u00e9finir \u00ab&nbsp;DNSOverTLS&nbsp;\u00bb sur \u00ab&nbsp;opportuniste&nbsp;\u00bb active le DoT en mode opportuniste &#8211; cela signifie que le DoT sera utilis\u00e9 si possible, mais que le r\u00e9solveur de stub reviendra au DNS traditionnel en cas d&rsquo;\u00e9chec.<\/p>\n<p>Enfin, le fait de d\u00e9finir \u00ab&nbsp;Domaines&nbsp;\u00bb sur \u00ab&nbsp;~.&nbsp;\u00bb indique \u00e0 \u00ab&nbsp;systemd-resolved&nbsp;\u00bb de pr\u00e9f\u00e9rer le serveur de noms sp\u00e9cifi\u00e9 \u00e0 tout serveur DNS par lien pouvant \u00eatre disponible. Il s&rsquo;agit d&rsquo;un param\u00e8tre important, car sinon un r\u00e9solveur DNS par lien non-DoT pourrait avoir priorit\u00e9 sur le r\u00e9solveur DoT.<\/p>\n<p>Notre configuration r\u00e9sultante devient donc&nbsp;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"post-img post-img-none 92469\" src=\"https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/systemd-Config-2-450x299.png\" alt=\"\" width=\"450\" height=\"299\"><\/p>\n<p>Une fois ces modifications appliqu\u00e9es, il faut les appliquer en ex\u00e9cutant la commande suivante&nbsp;:<\/p>\n<p>sudo systemctl restart systemd-resolved<\/p>\n<p>Cela fait, nous avons ensuite d\u00e9cid\u00e9 de rev\u00e9rifier que le DoT \u00e9tait utilis\u00e9 plut\u00f4t que le DNS traditionnel. Nous avons donc simplement ex\u00e9cut\u00e9 un renifleur sur l&rsquo;ordinateur portable Ubuntu et fait une requ\u00eate DNS pour \u00ab&nbsp;fgont.go6lab.si&nbsp;\u00bb qui a r\u00e9v\u00e9l\u00e9&nbsp;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"post-img post-img-none 92472\" src=\"https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/systemd-Config-3-450x301.png\" alt=\"\" width=\"450\" height=\"301\"><\/p>\n<p>Notre requ\u00eate a g\u00e9n\u00e9r\u00e9 un trafic DoT et DNS traditionnel en parall\u00e8le. En fait, lorsque nous avons par la suite utilis\u00e9 un renifleur sur le serveur de noms faisant autorit\u00e9, il a confirm\u00e9 que le r\u00e9solveur local de notre r\u00e9seau (192.168.3.1) et le r\u00e9solveur de Cloud-flare \u00e9mettaient des requ\u00eates pour le domaine ci-dessus.<\/p>\n<p>En r\u00e9ponse \u00e0 cette constatation, nous avons essay\u00e9 de comprendre pourquoi le trafic DNS traditionnel \u00e9tait visible en parall\u00e8le, au lieu du trafic DoT, ou du moins le trafic DoT suivi du trafic DNS traditionnel, en partant du principe que DoT avait \u00e9chou\u00e9. De plus, pourquoi le r\u00e9solveur local avait-il \u00e9t\u00e9 utilis\u00e9 pour la r\u00e9solution DNS alors m\u00eame que la variable \u00ab&nbsp;Domaines&nbsp;\u00bb indiquait \u00e0 \u00ab&nbsp;systemd-resolved&nbsp;\u00bb d&rsquo;utiliser le r\u00e9solveur DoT sp\u00e9cifi\u00e9 plut\u00f4t que tout autre r\u00e9solveur.<\/p>\n<p>Il semble donc que la mise en \u0153uvre \u00ab&nbsp;systemd-resolved&nbsp;\u00bb pour le DoT opportuniste n&rsquo;utilise pas le DNS traditionnel uniquement \u00e0 la suite d&rsquo;\u00e9checs du DoT, mais plut\u00f4t en parall\u00e8le aux requ\u00eates DoT. D&rsquo;autre part, une discussion sur le r\u00e9f\u00e9rentiel GitHub pour \u00ab&nbsp;systemd&nbsp;\u00bb indique que la documentation de la variable \u00ab&nbsp;Domaines&nbsp;\u00bb est en r\u00e9alit\u00e9 incorrecte et sp\u00e9cifie simplement que le r\u00e9solveur DoT doit \u00eatre utilis\u00e9 pour les domaines correspondant au suffixe sp\u00e9cifi\u00e9 (\u00ab&nbsp;.&nbsp;\u00bb dans notre cas), ce qui <strong>ne signifie pas<\/strong> que ce r\u00e9solveur doit \u00eatre le seul employ\u00e9 pour r\u00e9soudre les domaines correspondants.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Sur la base des tests que nous avons effectu\u00e9s, nous ne pouvons que conclure \u00e0 une faille dans la mise en \u0153uvre DoT de \u00ab&nbsp;systemd-resolved&nbsp;\u00bb. Manifestement, utiliser un r\u00e9solveur DoT n&rsquo;a de sens que si les requ\u00eates DNS sont envoy\u00e9es exclusivement sur un canal crypt\u00e9, ou tout au moins, si le DNS traditionnel est utilis\u00e9 uniquement en r\u00e9ponse aux d\u00e9faillances DoT (et \u00e9ventuellement apr\u00e8s confirmation par l&rsquo;utilisateur que le DNS traditionnel doit \u00eatre utilis\u00e9).<\/p>\n<p>Nous recommandons donc actuellement qu&rsquo;en cas d&rsquo;utilisation de DoT, d&rsquo;autres mises en \u0153uvre telles que <a href=\"https:\/\/dnsprivacy.org\/wiki\/display\/DP\/DNS+Privacy+Daemon+-+Stubby\">Stubby<\/a> soient utilis\u00e9es jusqu&rsquo;\u00e0 ce que ce probl\u00e8me rencontr\u00e9 avec \u00ab&nbsp;systemd&nbsp;\u00bb soit r\u00e9solu.<\/p>\n<p><strong>Remerciements<\/strong><\/p>\n<p>Nous tenons \u00e0 remercier Sara Dickinson de l&rsquo;aide qu&rsquo;elle nous a apport\u00e9e pour analyser ces probl\u00e8mes.<\/p>\n<p><strong>Informations suppl\u00e9mentaires<\/strong><\/p>\n<ul>\n<li>Introduction \u00e0 la confidentialit\u00e9 DNS de l&rsquo;Internet Society<\/li>\n<li><a href=\"https:\/\/dnsprivacy.org\/wiki\/display\/DP\/DNS+Privacy+Public+Resolvers#DNSPrivacyPublicResolvers-DNS-over-TLS(DoT)\">R\u00e9solveurs publics de confidentialit\u00e9 DNS<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/systemd\/systemd\/issues\/9472\">Le comportement pour .~ semble invalide<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Alors que nous pr\u00e9parions r\u00e9cemment un article sur la confidentialit\u00e9 DNS, nous avons appris que certaines versions r\u00e9centes de Linux \u00e9taient fournies avec la possibilit\u00e9 d&rsquo;\u00e9mettre des requ\u00eates DNS-over-TLS. Nous avons donc d\u00e9cid\u00e9 d&rsquo;essayer Ubuntu 18.10 sur un ordinateur portable. Les versions plus r\u00e9centes d&rsquo;Ubuntu utilisent un service de r\u00e9solution de noms sp\u00e9cifique appel\u00e9 \u00ab&nbsp;system-resolved.service(8)&nbsp;\u00bb. [&hellip;]<\/p>\n","protected":false},"author":1411,"featured_media":92424,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[178,6187,2581,4909,4775,146],"tags":[3540,6265],"region_news_regions":[6029],"content_category":[6101],"ppma_author":[4605,4622],"class_list":["post-93513","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-securite","category-comment-fonctionne-internet","category-domain-name-system-dns-fr","category-renforcer-internet","category-securite-fr","category-deploy360-fr","tag-dns-over-tls-fr","tag-domain-name-system-dns","region_news_regions-mondial","content_category-blog-type"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"thumbnail":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS-150x150.png",150,150,true],"medium":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"medium_large":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"large":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"1536x1536":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"2048x2048":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"post-thumbnail":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS-250x166.png",250,166,true],"square":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"gform-image-choice-sm":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"gform-image-choice-md":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false],"gform-image-choice-lg":["https:\/\/www.internetsociety.org\/wp-content\/uploads\/2018\/12\/DNS-over-TLS.png",275,183,false]},"uagb_author_info":{"display_name":"Kevin Meynell","author_link":"https:\/\/www.internetsociety.org\/fr\/author\/meynell2\/"},"uagb_comment_info":0,"uagb_excerpt":"Alors que nous pr\u00e9parions r\u00e9cemment un article sur la confidentialit\u00e9 DNS, nous avons appris que certaines versions r\u00e9centes de Linux \u00e9taient fournies avec la possibilit\u00e9 d&rsquo;\u00e9mettre des requ\u00eates DNS-over-TLS. Nous avons donc d\u00e9cid\u00e9 d&rsquo;essayer Ubuntu 18.10 sur un ordinateur portable. Les versions plus r\u00e9centes d&rsquo;Ubuntu utilisent un service de r\u00e9solution de noms sp\u00e9cifique appel\u00e9 \u00ab&nbsp;system-resolved.service(8)&nbsp;\u00bb.\u2026","authors":[{"term_id":4605,"user_id":1411,"is_guest":0,"slug":"meynell2","display_name":"Kevin Meynell","avatar_url":{"url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","url2x":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g2x"},"0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""},{"term_id":4622,"user_id":1399,"is_guest":0,"slug":"gont","display_name":"Fernando Gont","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3a46e5fdc55a29d8bd6266aba558fe240b12b22896c88bd19b49c4c5effc04ef?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/posts\/93513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/users\/1411"}],"replies":[{"embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/comments?post=93513"}],"version-history":[{"count":0,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/posts\/93513\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/media\/92424"}],"wp:attachment":[{"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/media?parent=93513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/categories?post=93513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/tags?post=93513"},{"taxonomy":"region_news_regions","embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/region_news_regions?post=93513"},{"taxonomy":"content_category","embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/content_category?post=93513"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.internetsociety.org\/fr\/wp-json\/wp\/v2\/ppma_author?post=93513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}