index.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  1. <!DOCTYPE html>
  2. <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
  3. <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
  4. <head>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <link rel="shortcut icon" href="../../../img/favicon.ico">
  9. <title>Installation du serveur DNS - Les Tutoriels du Yojik</title>
  10. <link rel="stylesheet" href="../../../css/theme.css" />
  11. <link rel="stylesheet" href="../../../css/theme_extra.css" />
  12. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css" />
  13. <script>
  14. // Current page data
  15. var mkdocs_page_name = "Installation du serveur DNS";
  16. var mkdocs_page_input_path = "Tutoriels/tutostretch/Installation-Serveur-DNS.md";
  17. var mkdocs_page_url = null;
  18. </script>
  19. <script src="../../../js/jquery-2.1.1.min.js" defer></script>
  20. <script src="../../../js/modernizr-2.8.3.min.js" defer></script>
  21. <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
  22. <script>hljs.initHighlightingOnLoad();</script>
  23. </head>
  24. <body class="wy-body-for-nav" role="document">
  25. <div class="wy-grid-for-nav">
  26. <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
  27. <div class="wy-side-scroll">
  28. <div class="wy-side-nav-search">
  29. <a href="../../.." class="icon icon-home"> Les Tutoriels du Yojik</a>
  30. <div role="search">
  31. <form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
  32. <input type="text" name="q" placeholder="Search docs" title="Type search term here" />
  33. </form>
  34. </div>
  35. </div>
  36. <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
  37. <p class="caption"><span class="caption-text">Home</span></p>
  38. <ul>
  39. <li class="toctree-l1"><a class="reference internal" href="../../..">Page d'accueil</a>
  40. </li>
  41. </ul>
  42. <p class="caption"><span class="caption-text">Tutoriels</span></p>
  43. <ul class="current">
  44. <li class="toctree-l1"><a class="reference internal" href="../../tutos/">Introduction</a>
  45. </li>
  46. <li class="toctree-l1 current"><a class="reference internal current" href="#">Installation d'un serveur sécurisé, version Debian/Stretch (obsolète)</a>
  47. <ul class="current">
  48. <li class="toctree-l2"><a class="reference internal" href="../tutostretch/">Présentation</a>
  49. </li>
  50. <li class="toctree-l2 current"><a class="reference internal current" href="#">Installation</a>
  51. <ul class="current">
  52. <li class="toctree-l3"><a class="reference internal" href="../Installation-de-base/">Installation du système de base</a>
  53. </li>
  54. <li class="toctree-l3"><a class="reference internal" href="../ovh/">Démarrage sur serveur OVH</a>
  55. </li>
  56. <li class="toctree-l3"><a class="reference internal" href="../Premi%C3%A8re-Etape-S%C3%A9curisation/">Première étapes de sécurisation du serveur</a>
  57. </li>
  58. <li class="toctree-l3"><a class="reference internal" href="../Configuration-R%C3%A9seau/">Configuration du réseau</a>
  59. </li>
  60. <li class="toctree-l3"><a class="reference internal" href="../Installation-Serveur-Temps/">Installation d'un serveur de temps</a>
  61. </li>
  62. <li class="toctree-l3"><a class="reference internal" href="../Installation-Parre-Feu/">Installation d'un pare-feu</a>
  63. </li>
  64. <li class="toctree-l3"><a class="reference internal" href="../Installation-Fail2ban/">Contrer les attaques de brute-force avec fail2ban</a>
  65. </li>
  66. <li class="toctree-l3"><a class="reference internal" href="../Installation-Serveur-Courrier-Basique/">Installation d'un serveur de courrier basique</a>
  67. </li>
  68. <li class="toctree-l3 current"><a class="reference internal current" href="./">Installation du serveur DNS</a>
  69. <ul class="current">
  70. <li class="toctree-l4"><a class="reference internal" href="#configuration-des-options-fichier-etcbindnamedconfoptions">Configuration des options: fichier /etc/bind/named.conf.options</a>
  71. </li>
  72. <li class="toctree-l4"><a class="reference internal" href="#configuration-de-votre-box-et-des-enregistrements-de-votre-registrar">Configuration de votre box et des enregistrements de votre registrar</a>
  73. </li>
  74. <li class="toctree-l4"><a class="reference internal" href="#verification-de-la-config-dns">Vérification de la config DNS:</a>
  75. </li>
  76. <li class="toctree-l4"><a class="reference internal" href="#configuration-du-reverse-dns">Configuration du reverse DNS</a>
  77. </li>
  78. </ul>
  79. </li>
  80. <li class="toctree-l3"><a class="reference internal" href="../Installation-Serveur-Web/">Installation d'un serveur web</a>
  81. </li>
  82. <li class="toctree-l3"><a class="reference internal" href="../Installation-Dovecot-Authentification/">Installation de dovecot et de l'authentification</a>
  83. </li>
  84. <li class="toctree-l3"><a class="" href="../Installation-Certificats-Letsencrypt.md)">Installation des certificats letsencrypt</a>
  85. </li>
  86. <li class="toctree-l3"><a class="" href="../courrier-SPF-DKIM-OPENDMARC.md">Ajout des enregistrements **spf**, **DKIM**, **DMARC** au fichier de zone DNS</a>
  87. </li>
  88. <li class="toctree-l3"><a class="reference internal" href="../Courrier-Comptes-Virtuels/">Ajout des comptes émail virtuels</a>
  89. </li>
  90. <li class="toctree-l3"><a class="reference internal" href="../Surveillance-Serveur/">Installation de programmes de surveillance du serveur</a>
  91. </li>
  92. <li class="toctree-l3"><a class="reference internal" href="../Installation-Webmail/">Installation d'un webmail (rainloop)</a>
  93. </li>
  94. <li class="toctree-l3"><a class="" href="../Sécurisation-Serveur-Web">Sécurisation d'un serveur WEB</a>
  95. </li>
  96. </ul>
  97. </li>
  98. </ul>
  99. </li>
  100. <li class="toctree-l1"><a class="reference internal" href="#">Installation d'un serveur sécurisé, version Debian/Buster (en cours d'écriture)</a>
  101. <ul>
  102. <li class="toctree-l2"><a class="reference internal" href="../../tutobuster/1-tutobuster/">Présentation</a>
  103. </li>
  104. <li class="toctree-l2"><a class="reference internal" href="../../tutobuster/2-Installation-de-base/">Installation de base</a>
  105. </li>
  106. <li class="toctree-l2"><a class="reference internal" href="../../tutobuster/3-ovh/">Démarrage sur serveur OVH</a>
  107. </li>
  108. <li class="toctree-l2"><a class="reference internal" href="../../tutobuster/4-Plan/">Plan d'ensemble</a>
  109. </li>
  110. <li class="toctree-l2"><a class="reference internal" href="../../tutobuster/5-Premi%C3%A8re-Etape-S%C3%A9curisation/">Premières étapes de sécurisation du serveur</a>
  111. </li>
  112. </ul>
  113. </li>
  114. <li class="toctree-l1"><a class="reference internal" href="#">Installation d'un serveur sécurisé, version Debian/Buster sur RaspberryPI</a>
  115. <ul>
  116. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/tutoraspi/">Présentation</a>
  117. </li>
  118. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Installation-de-base/">Installation de base</a>
  119. </li>
  120. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Premier-d%C3%A9marrage/">Premier démarrage</a>
  121. </li>
  122. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Etat-des-lieux/">État des lieux</a>
  123. </li>
  124. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/S%C3%A9curisation-SSH/">Sécurisation SSH</a>
  125. </li>
  126. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/R%C3%A9seau/">Réseau (des IPs fixes)</a>
  127. </li>
  128. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Knot/">Installation de Knot-resolver</a>
  129. </li>
  130. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Firewall/">Installation d'un pare-feux</a>
  131. </li>
  132. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Fail2ban/">Contrer les attaques de force brute</a>
  133. </li>
  134. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Logwatch/">Surveillance du serveur</a>
  135. </li>
  136. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Installation-courrier-basique/">Installation d'un serveur de courriers basique</a>
  137. </li>
  138. <li class="toctree-l2"><a class="reference internal" href="../../tutoraspi/Annexe/">Annexe</a>
  139. </li>
  140. </ul>
  141. </li>
  142. </ul>
  143. </div>
  144. </div>
  145. </nav>
  146. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  147. <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
  148. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  149. <a href="../../..">Les Tutoriels du Yojik</a>
  150. </nav>
  151. <div class="wy-nav-content">
  152. <div class="rst-content">
  153. <div role="navigation" aria-label="breadcrumbs navigation">
  154. <ul class="wy-breadcrumbs">
  155. <li><a href="../../..">Docs</a> &raquo;</li>
  156. <li>Installation &raquo;</li>
  157. <li>Installation d'un serveur sécurisé, version Debian/Stretch (obsolète) &raquo;</li>
  158. <li>Tutoriels &raquo;</li>
  159. <li>Installation du serveur DNS</li>
  160. <li class="wy-breadcrumbs-aside">
  161. </li>
  162. </ul>
  163. <hr/>
  164. </div>
  165. <div role="main">
  166. <div class="section">
  167. <h1 id="installation-du-serveur-dns">Installation du serveur DNS</h1>
  168. <p>Nous allons installer <strong>bind</strong>.</p>
  169. <pre><code>root@aijan:/home/ericadmin# apt install bind9
  170. Lecture des listes de paquets... Fait
  171. Construction de l'arbre des dépendances
  172. Lecture des informations d'état... Fait
  173. The following additional packages will be installed:
  174. bind9utils libirs141
  175. etc ...
  176. root@aijan:/home/ericadmin# service bind9 start
  177. root@aijan:/home/ericadmin# netstat -tlpn
  178. Connexions Internet actives (seulement serveurs)
  179. Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
  180. tcp 0 0 192.168.111.240:53 0.0.0.0:* LISTEN 13815/named
  181. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 13815/named
  182. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 594/sshd
  183. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 13815/named
  184. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 803/master
  185. tcp6 0 0 :::53 :::* LISTEN 13815/named
  186. tcp6 0 0 :::22 :::* LISTEN 594/sshd
  187. tcp6 0 0 ::1:953 :::* LISTEN 13815/named
  188. tcp6 0 0 :::25 :::* LISTEN 803/master
  189. root@aijan:/home/ericadmin#
  190. </code></pre>
  191. <p>Bien, bind a démarré et écoute sur les ports 53 et 953, en IPV4 et IPV6. Il nous reste à configurer les zones et à ouvrir les ports (firewall). Je vais utiliser comme serveur <strong>dns</strong> secondaire pour la zone <strong>yojik.net</strong> le serveur que j'utilise déjà pour la zone <strong>yojik.eu</strong>.</p>
  192. <p>Nous configurerons le serveur dns local pour qu'il transfère les zones automatiquement vers notre serveur dns secondaire.</p>
  193. <p>Voilà la structure générale de mes serveurs DNS:</p>
  194. <ul>
  195. <li>
  196. <p>adara.yojik.eu: serveur DNS primaire pour le domaine yojik.eu</p>
  197. </li>
  198. <li>
  199. <p>polis.yojik.eu:</p>
  200. </li>
  201. <li>serveur DNS secondaire pour le domaine yojik.eu</li>
  202. <li>serveur DNS secondaire pour le domaine yojik.net</li>
  203. </ul>
  204. <p>aijan.yojik.net: serveur DNS primaire pour le site yojik.net</p>
  205. <p>Ce dernier serveur déclarera l'ensemble des machines et serveurs du domaine yojik.net. (ce sont les machines de bureau/portables ainsi que le serveurs hébergés à la maison.)</p>
  206. <p>Les enregistrements <strong>glue</strong> seront renseignés chez mon registrar (OVH dans mon cas). Les serveurs DNS seront également déclarés chez ce registrar.</p>
  207. <p>Notre zone yojik.net est déclarée dans le fichier <strong>/etc/bind/named.conf.local</strong>. (en faire une copie de sauvegarde!)</p>
  208. <p>Voici son contenu avant modification:</p>
  209. <pre><code>//
  210. // Do any local configuration here
  211. //
  212. // Consider adding the 1918 zones here, if they are not used in your
  213. // organization
  214. //include "/etc/bind/zones.rfc1918";
  215. </code></pre>
  216. <p>Contenu après ajout de la zone yojik.net:</p>
  217. <pre><code> zone "yojik.net" {
  218. type master;
  219. file "/etc/bind/db.yojik.net";
  220. };
  221. </code></pre>
  222. <p>Dans tous les tutorials, vous verrez la déclaration des zones inverses: après de nombreux échanges avec des spécialistes, il s'avère que ce n'est pas nécessaire, car mes serveurs DNS ne seront jamais interrogés pour la résolution inverse: pour cela, il faudrait que mon registrar me délègue la gestion de la zone. Je n'ai qu'une adresse IPV4 associée à ce domaine et pas de délégation.</p>
  223. <p>Création du fichier de zone <strong>db.yojik.net</strong> dans le répertoire <strong>/etc/bind</strong>.</p>
  224. <pre><code>root@aijan:/etc/bind# vim db.yojik.net
  225. root@aijan:/etc/bind# cat db.yojik.net
  226. $TTL 86400
  227. $ORIGIN yojik.net.
  228. @ IN SOA aijan.yojik.net. hostmaster.yojik.net. (
  229. 2018052001 ; serial à changer à chaque modification
  230. 7200 ; refresh, 12h
  231. 3600 ; retry, 1h
  232. 1209600 ; expire
  233. 86400 ) ; negative cache, 24h
  234. ; nameservers
  235. IN NS aijan.yojik.net.
  236. IN NS polis.yojik.eu.
  237. ;mail server
  238. IN MX 10 aijan.yojik.net.
  239. ; domain hosts
  240. yojik.net. IN A 82.64.48.5
  241. yojik.net. IN AAAA 2a01:e0a:54:c220:3aea:a7ff:fea6:cf93
  242. aijan IN A 82.64.48.5
  243. aijan IN AAAA 2a01:e0a:54:c220:3aea:a7ff:fea6:cf93
  244. </code></pre>
  245. <p>On relance bind et on teste en local:</p>
  246. <pre><code>root@aijan:/home/ericadmin# service bind9 restart
  247. root@aijan:/home/ericadmin# nslookup aijan.yojik.net localhost
  248. Server: localhost
  249. Address: ::1#53
  250. Name: aijan.yojik.net
  251. Address: 82.64.48.5
  252. root@aijan:/home/ericadmin#
  253. </code></pre>
  254. <p>Ça marche!</p>
  255. <p>Test de notre enregistrement MX (mail) avec <strong>dig</strong>:</p>
  256. <pre><code>root@aijan:/etc/bind# dig @localhost aijan.yojik.net MX
  257. ; &lt;&gt; DiG 9.10.3-P4-Debian &lt;&gt; @localhost aijan.yojik.net MX
  258. ; (2 servers found)
  259. ;; global options: +cmd
  260. ;; Got answer:
  261. ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 21275
  262. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
  263. ;; OPT PSEUDOSECTION:
  264. ; EDNS: version: 0, flags:; udp: 4096
  265. ;; QUESTION SECTION:
  266. ;aijan.yojik.net. IN MX
  267. ;; AUTHORITY SECTION:
  268. yojik.net. 86400 IN SOA aijan.yojik.net. hostmaster.yojik.net. 2018052003 7200 3600 1209600 86400
  269. ;; Query time: 0 msec
  270. ;; SERVER: ::1#53(::1)
  271. ;; WHEN: Sun May 20 10:27:17 CEST 2018
  272. ;; MSG SIZE rcvd: 91
  273. </code></pre>
  274. <p>Il nous reste plusieurs éléments à configurer pour que notre serveur dns soit pris en compte.</p>
  275. <ol>
  276. <li>Configurer notre box pour rediriger les requêtes extérieures DNS sur notre serveur DNS personnel.</li>
  277. <li>Mettre à jour la configuration de nos enregistrements chez notre registrar.</li>
  278. <li>Ajouter notre zone à notre serveur DNS secondaire (polis.yojik.eu) et mise à jour de la clef de connexion.</li>
  279. </ol>
  280. <p>Fichier /etc/bind/conf.named.local</p>
  281. <pre><code>zone "yojik.eu" {
  282. type slave;
  283. file "db.yojik.eu.local";
  284. masters { 91.121.72.10; };
  285. };
  286. zone "yojik.net" {
  287. type slave;
  288. file "db.yojik.net.local";
  289. masters { 82.64.48.5; };
  290. };
  291. </code></pre>
  292. <h2 id="configuration-des-options-fichier-etcbindnamedconfoptions">Configuration des options: fichier /etc/bind/named.conf.options</h2>
  293. <pre><code>options {
  294. directory "/var/cache/bind";
  295. // If there is a firewall between you and nameservers you want
  296. // to talk to, you may need to fix the firewall to allow multiple
  297. // ports to talk. See http://www.kb.cert.org/vuls/id/800113
  298. // If your ISP provided one or more IP addresses for stable
  299. // nameservers, you probably want to use them as forwarders.
  300. // Uncomment the following block, and insert the addresses replacing
  301. // the all-0's placeholder.
  302. // forwarders {
  303. // 0.0.0.0;
  304. // };
  305. //========================================================================
  306. // If BIND logs error messages about the root key being expired,
  307. // you will need to update your keys. See https://www.isc.org/bind-keys
  308. //========================================================================
  309. dnssec-validation auto;
  310. auth-nxdomain no; # conform to RFC1035
  311. listen-on-v6 { any; };
  312. listen-on { any; };
  313. allow-update { none; };
  314. allow-recursion { 127.0.0.1; ::1; 91.121.72.10;2001:41d0:1:7d0a::1; 37.187.3.182; 2001:41d0:a:3b6::1; };
  315. allow-transfer { 37.187.3.182; 2001:41d0:a:3b6::1; };
  316. version "BIND";
  317. };
  318. </code></pre>
  319. <p>Pensez à vérifier que la clef située dans le fichier: /etc/bind/rndc.key est identique sur votre serveur primaire et secondaire.</p>
  320. <h2 id="configuration-de-votre-box-et-des-enregistrements-de-votre-registrar">Configuration de votre <strong>box</strong> et des enregistrements de votre registrar</h2>
  321. <p>Cela étant très dépendant de chaque registrar et de chaque <strong>box</strong>, je vous laisse chercher sur le net les informations utiles. Sachez tout de même que peu de fournisseurs d'internet autorisent l'installation d'un serveur émail personnel. I8l vous faudra souvent attendre un peu avant que la configuration ne soit prise en compte chez votre registrar.</p>
  322. <h2 id="verification-de-la-config-dns">Vérification de la config DNS:</h2>
  323. <p>Allez sur le site <a href="https://toolbox.googleapps.com/apps/dig/">toolbox</a> pour tester votre configuration.</p>
  324. <h2 id="configuration-du-reverse-dns">Configuration du reverse DNS</h2>
  325. <p>Si vous hébergez votre serveur <em>chez vous</em>, vous devrez configurer le reverse DNS dans la page d'administration de votre ligne Internet.</p>
  326. <p>Pour le FAI Free, allez sur la page: "Personnalisez mon reverse DNS", et mettez votre nom de doamine dans le champ adéquat.</p>
  327. <p>Il faut quelques heures pour que la propagation se fasse.</p>
  328. </div>
  329. </div>
  330. <footer>
  331. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  332. <a href="../Installation-Serveur-Web/" class="btn btn-neutral float-right" title="Installation d'un serveur web">Next <span class="icon icon-circle-arrow-right"></span></a>
  333. <a href="../Installation-Serveur-Courrier-Basique/" class="btn btn-neutral" title="Installation d'un serveur de courrier basique"><span class="icon icon-circle-arrow-left"></span> Previous</a>
  334. </div>
  335. <hr/>
  336. <div role="contentinfo">
  337. <!-- Copyright etc -->
  338. </div>
  339. Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
  340. </footer>
  341. </div>
  342. </div>
  343. </section>
  344. </div>
  345. <div class="rst-versions" role="note" aria-label="versions">
  346. <span class="rst-current-version" data-toggle="rst-current-version">
  347. <span><a href="../Installation-Serveur-Courrier-Basique/" style="color: #fcfcfc;">&laquo; Previous</a></span>
  348. <span style="margin-left: 15px"><a href="../Installation-Serveur-Web/" style="color: #fcfcfc">Next &raquo;</a></span>
  349. </span>
  350. </div>
  351. <script>var base_url = '../../..';</script>
  352. <script src="../../../js/theme.js" defer></script>
  353. <script src="../../../search/main.js" defer></script>
  354. <script defer>
  355. window.onload = function () {
  356. SphinxRtdTheme.Navigation.enable(true);
  357. };
  358. </script>
  359. </body>
  360. </html>