index.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  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. <title>Installation du serveur DNS - The Yojik Server Installation Guide</title>
  9. <link rel="shortcut icon" href="../img/favicon.ico">
  10. <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
  11. <link rel="stylesheet" href="../css/theme.css" type="text/css" />
  12. <link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
  13. <link rel="stylesheet" href="../css/highlight.css">
  14. <script>
  15. // Current page data
  16. var mkdocs_page_name = "Installation du serveur DNS";
  17. var mkdocs_page_input_path = "8-huit.md";
  18. var mkdocs_page_url = "/8-huit/";
  19. </script>
  20. <script src="../js/jquery-2.1.1.min.js"></script>
  21. <script src="../js/modernizr-2.8.3.min.js"></script>
  22. <script type="text/javascript" src="../js/highlight.pack.js"></script>
  23. <script src="../js/theme.js"></script>
  24. </head>
  25. <body class="wy-body-for-nav" role="document">
  26. <div class="wy-grid-for-nav">
  27. <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
  28. <div class="wy-side-nav-search">
  29. <a href=".." class="icon icon-home"> The Yojik Server Installation Guide</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" />
  33. </form>
  34. </div>
  35. </div>
  36. <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
  37. <ul class="current">
  38. <li>
  39. <li class="toctree-l1 ">
  40. <a class="" href="..">Home</a>
  41. </li>
  42. <li>
  43. <li>
  44. <li class="toctree-l1 ">
  45. <a class="" href="../1-un/">Installation d'un serveur Debian/Stretch sécurisé</a>
  46. </li>
  47. <li>
  48. <li>
  49. <li class="toctree-l1 ">
  50. <a class="" href="../2-deux/">Premières étapes de sécurisation du serveur</a>
  51. </li>
  52. <li>
  53. <li>
  54. <li class="toctree-l1 ">
  55. <a class="" href="../3-trois/">Configuration du réseau</a>
  56. </li>
  57. <li>
  58. <li>
  59. <li class="toctree-l1 ">
  60. <a class="" href="../4-quatre/">Installation d'un serveur de temps</a>
  61. </li>
  62. <li>
  63. <li>
  64. <li class="toctree-l1 ">
  65. <a class="" href="../5-cinq/">Installation d'un pare-feu</a>
  66. </li>
  67. <li>
  68. <li>
  69. <li class="toctree-l1 ">
  70. <a class="" href="../6-six/">Contrer les attaques de brute-force avec fail2ban</a>
  71. </li>
  72. <li>
  73. <li>
  74. <li class="toctree-l1 ">
  75. <a class="" href="../7-sept/">Installation d'un serveur de courrier basique</a>
  76. </li>
  77. <li>
  78. <li>
  79. <li class="toctree-l1 current">
  80. <a class="current" href="./">Installation du serveur DNS</a>
  81. <ul>
  82. <li class="toctree-l3"><a href="#installation-du-serveur-dns">Installation du serveur DNS</a></li>
  83. <li><a class="toctree-l4" href="#configuration-des-options-fichier-etcbindnamedconfoptions">Configuration des options: fichier /etc/bind/named.conf.options</a></li>
  84. <li><a class="toctree-l4" href="#configuration-de-votre-box-et-des-enregistrements-de-votre-registrar">Configuration de votre box et des enregistrements de votre registrar</a></li>
  85. <li><a class="toctree-l4" href="#verification-de-la-config-dns">Vérification de la config DNS:</a></li>
  86. <li><a class="toctree-l4" href="#configuration-du-reverse-dns">Configuration du reverse DNS</a></li>
  87. </ul>
  88. </li>
  89. <li>
  90. <li>
  91. <li class="toctree-l1 ">
  92. <a class="" href="../9-neuf/">Installation d'un serveur web</a>
  93. </li>
  94. <li>
  95. <li>
  96. <li class="toctree-l1 ">
  97. <a class="" href="../10-dix/">Installation de dovecot et de l'authentification</a>
  98. </li>
  99. <li>
  100. <li>
  101. <li class="toctree-l1 ">
  102. <a class="" href="../11-onze/">Installation des certificats letsencrypt</a>
  103. </li>
  104. <li>
  105. <li>
  106. <li class="toctree-l1 ">
  107. <a class="" href="../12-douze/">Ajout des enregistrements SPF et DKIM au fichier de zone DNS</a>
  108. </li>
  109. <li>
  110. <li>
  111. <li class="toctree-l1 ">
  112. <a class="" href="../17-dixsept/">Installation de programmes de surveillance du serveur</a>
  113. </li>
  114. <li>
  115. <li>
  116. <li class="toctree-l1 ">
  117. <a class="" href="../18-dixhuit/">Installation d'un webmail</a>
  118. </li>
  119. <li>
  120. <li>
  121. <li class="toctree-l1 ">
  122. <a class="" href="../19-dixneuf/">Installation de git et de gogs</a>
  123. </li>
  124. <li>
  125. </ul>
  126. </div>
  127. &nbsp;
  128. </nav>
  129. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  130. <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
  131. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  132. <a href="..">The Yojik Server Installation Guide</a>
  133. </nav>
  134. <div class="wy-nav-content">
  135. <div class="rst-content">
  136. <div role="navigation" aria-label="breadcrumbs navigation">
  137. <ul class="wy-breadcrumbs">
  138. <li><a href="..">Docs</a> &raquo;</li>
  139. <li>Installation du serveur DNS</li>
  140. <li class="wy-breadcrumbs-aside">
  141. </li>
  142. </ul>
  143. <hr/>
  144. </div>
  145. <div role="main">
  146. <div class="section">
  147. <p></p>
  148. <h1 id="installation-du-serveur-dns">Installation du serveur DNS</h1>
  149. <p>Nous allons installer <strong>bind</strong>.</p>
  150. <pre><code class="shell">root@aijan:/home/ericadmin# apt install bind9
  151. Lecture des listes de paquets... Fait
  152. Construction de l'arbre des dépendances
  153. Lecture des informations d'état... Fait
  154. The following additional packages will be installed:
  155. bind9utils libirs141
  156. etc ...
  157. root@aijan:/home/ericadmin# service bind9 start
  158. root@aijan:/home/ericadmin# netstat -tlpn
  159. Connexions Internet actives (seulement serveurs)
  160. Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
  161. tcp 0 0 192.168.111.240:53 0.0.0.0:* LISTEN 13815/named
  162. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 13815/named
  163. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 594/sshd
  164. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 13815/named
  165. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 803/master
  166. tcp6 0 0 :::53 :::* LISTEN 13815/named
  167. tcp6 0 0 :::22 :::* LISTEN 594/sshd
  168. tcp6 0 0 ::1:953 :::* LISTEN 13815/named
  169. tcp6 0 0 :::25 :::* LISTEN 803/master
  170. root@aijan:/home/ericadmin#
  171. </code></pre>
  172. <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>
  173. <p>Nous configurerons le serveur dns local pour qu'il transfère les zones automatiquement vers notre serveur dns secondaire.</p>
  174. <p>Voilà la structure générale de mes serveurs DNS:</p>
  175. <ul>
  176. <li>
  177. <p>adara.yojik.eu: serveur DNS primaire pour le domaine yojik.eu</p>
  178. </li>
  179. <li>
  180. <p>polis.yojik.eu:</p>
  181. <ul>
  182. <li>serveur DNS secondaire pour le domaine yojik.eu</li>
  183. <li>serveur DNS secondaire pour le domaine yojik.net</li>
  184. </ul>
  185. </li>
  186. </ul>
  187. <p>aijan.yojik.net: serveur DNS primaire pour le site yojik.net</p>
  188. <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>
  189. <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>
  190. <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>
  191. <p>Voici son contenu avant modification:</p>
  192. <pre><code class="shell">//
  193. // Do any local configuration here
  194. //
  195. // Consider adding the 1918 zones here, if they are not used in your
  196. // organization
  197. //include &quot;/etc/bind/zones.rfc1918&quot;;
  198. </code></pre>
  199. <p>Contenu après ajout de la zone yojik.net:</p>
  200. <pre><code class="shell">zone &quot;yojik.net&quot; {
  201. type master;
  202. file &quot;/etc/bind/db.yojik.net&quot;;
  203. };
  204. </code></pre>
  205. <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>
  206. <p>Création du fichier de zone <strong>db.yojik.net</strong> dans le répertoire <strong>/etc/bind</strong>.</p>
  207. <pre><code class="shell">root@aijan:/etc/bind# vim db.yojik.net
  208. root@aijan:/etc/bind# cat db.yojik.net
  209. $TTL 86400
  210. $ORIGIN yojik.net.
  211. @ IN SOA aijan.yojik.net. hostmaster.yojik.net. (
  212. 2018052001 ; serial à changer à chaque modification
  213. 7200 ; refresh, 12h
  214. 3600 ; retry, 1h
  215. 1209600 ; expire
  216. 86400 ) ; negative cache, 24h
  217. ; nameservers
  218. IN NS aijan.yojik.net.
  219. IN NS polis.yojik.eu.
  220. ;mail server
  221. IN MX 10 aijan.yojik.net.
  222. ; domain hosts
  223. yojik.net. IN A 82.64.48.5
  224. yojik.net. IN AAAA 2a01:e0a:54:c220:3aea:a7ff:fea6:cf93
  225. aijan IN A 82.64.48.5
  226. aijan IN AAAA 2a01:e0a:54:c220:3aea:a7ff:fea6:cf93
  227. </code></pre>
  228. <p>On relance bind et on teste en local:</p>
  229. <pre><code class="shell">root@aijan:/home/ericadmin# service bind9 restart
  230. root@aijan:/home/ericadmin# nslookup aijan.yojik.net localhost
  231. Server: localhost
  232. Address: ::1#53
  233. Name: aijan.yojik.net
  234. Address: 82.64.48.5
  235. root@aijan:/home/ericadmin#
  236. </code></pre>
  237. <p>Ça marche!
  238. Test de notre enregistrement MX (mail) avec <strong>dig</strong>:</p>
  239. <pre><code class="shell">oot@aijan:/etc/bind# dig @localhost aijan.yojik.net MX
  240. ; &lt;&lt;&gt;&gt; DiG 9.10.3-P4-Debian &lt;&lt;&gt;&gt; @localhost aijan.yojik.net MX
  241. ; (2 servers found)
  242. ;; global options: +cmd
  243. ;; Got answer:
  244. ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 21275
  245. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
  246. ;; OPT PSEUDOSECTION:
  247. ; EDNS: version: 0, flags:; udp: 4096
  248. ;; QUESTION SECTION:
  249. ;aijan.yojik.net. IN MX
  250. ;; AUTHORITY SECTION:
  251. yojik.net. 86400 IN SOA aijan.yojik.net. hostmaster.yojik.net. 2018052003 7200 3600 1209600 86400
  252. ;; Query time: 0 msec
  253. ;; SERVER: ::1#53(::1)
  254. ;; WHEN: Sun May 20 10:27:17 CEST 2018
  255. ;; MSG SIZE rcvd: 91
  256. </code></pre>
  257. <p>Il nous reste plusieurs éléments à configurer pour que notre serveur dns soit pris en compte.</p>
  258. <ol>
  259. <li>Configurer notre box pour rediriger les requêtes extérieures DNS sur notre serveur DNS personnel.</li>
  260. <li>Mettre à jour la configuration de nos enregistrements chez notre registrar.</li>
  261. <li>Ajouter notre zone à notre serveur DNS secondaire (polis.yojik.eu) et mise à jour de la clef de connexion.</li>
  262. </ol>
  263. <p>Fichier /etc/bind/conf.named.local</p>
  264. <pre><code class="shell">zone &quot;yojik.eu&quot; {
  265. type slave;
  266. file &quot;db.yojik.eu.local&quot;;
  267. masters { 91.121.72.10; };
  268. };
  269. zone &quot;yojik.net&quot; {
  270. type slave;
  271. file &quot;db.yojik.net.local&quot;;
  272. masters { 82.64.48.5; };
  273. };
  274. </code></pre>
  275. <h3 id="configuration-des-options-fichier-etcbindnamedconfoptions">Configuration des options: fichier /etc/bind/named.conf.options</h3>
  276. <pre><code class="shell">options {
  277. directory &quot;/var/cache/bind&quot;;
  278. // If there is a firewall between you and nameservers you want
  279. // to talk to, you may need to fix the firewall to allow multiple
  280. // ports to talk. See http://www.kb.cert.org/vuls/id/800113
  281. // If your ISP provided one or more IP addresses for stable
  282. // nameservers, you probably want to use them as forwarders.
  283. // Uncomment the following block, and insert the addresses replacing
  284. // the all-0's placeholder.
  285. // forwarders {
  286. // 0.0.0.0;
  287. // };
  288. //========================================================================
  289. // If BIND logs error messages about the root key being expired,
  290. // you will need to update your keys. See https://www.isc.org/bind-keys
  291. //========================================================================
  292. dnssec-validation auto;
  293. auth-nxdomain no; # conform to RFC1035
  294. listen-on-v6 { any; };
  295. listen-on { any; };
  296. allow-update { none; };
  297. 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; };
  298. allow-transfer { 37.187.3.182; 2001:41d0:a:3b6::1; };
  299. version &quot;BIND&quot;;
  300. };
  301. </code></pre>
  302. <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>
  303. <h3 id="configuration-de-votre-box-et-des-enregistrements-de-votre-registrar">Configuration de votre <strong>box</strong> et des enregistrements de votre registrar</h3>
  304. <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>
  305. <h3 id="verification-de-la-config-dns">Vérification de la config DNS:</h3>
  306. <p>Allez sur le site <strong>https://toolbox.googleapps.com/apps/dig/</strong> pour tester votre configuration.</p>
  307. <h3 id="configuration-du-reverse-dns">Configuration du reverse DNS</h3>
  308. <p>Si vous hébergez votre serveur "chez vous", vous devrez configurer le reverse DNS dans la page d'administration de votre ligne Internet.</p>
  309. <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>
  310. <p>Il faut quelques heures pour que la propagation se fasse.</p>
  311. </div>
  312. </div>
  313. <footer>
  314. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  315. <a href="../9-neuf/" class="btn btn-neutral float-right" title="Installation d'un serveur web">Next <span class="icon icon-circle-arrow-right"></span></a>
  316. <a href="../7-sept/" class="btn btn-neutral" title="Installation d'un serveur de courrier basique"><span class="icon icon-circle-arrow-left"></span> Previous</a>
  317. </div>
  318. <hr/>
  319. <div role="contentinfo">
  320. <!-- Copyright etc -->
  321. </div>
  322. Built with <a href="http://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>.
  323. </footer>
  324. </div>
  325. </div>
  326. </section>
  327. </div>
  328. <div class="rst-versions" role="note" style="cursor: pointer">
  329. <span class="rst-current-version" data-toggle="rst-current-version">
  330. <span><a href="../7-sept/" style="color: #fcfcfc;">&laquo; Previous</a></span>
  331. <span style="margin-left: 15px"><a href="../9-neuf/" style="color: #fcfcfc">Next &raquo;</a></span>
  332. </span>
  333. </div>
  334. </body>
  335. </html>