index.html 82 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778
  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 de dovecot et de l'authentification - 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 de dovecot et de l'authentification";
  17. var mkdocs_page_input_path = "10-dix.md";
  18. var mkdocs_page_url = "/10-dix/";
  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 ">
  80. <a class="" href="../8-huit/">Installation du serveur DNS</a>
  81. </li>
  82. <li>
  83. <li>
  84. <li class="toctree-l1 ">
  85. <a class="" href="../9-neuf/">Installation d'un serveur web</a>
  86. </li>
  87. <li>
  88. <li>
  89. <li class="toctree-l1 current">
  90. <a class="current" href="./">Installation de dovecot et de l'authentification</a>
  91. <ul>
  92. <li class="toctree-l3"><a href="#installation-de-dovecot-et-de-lauthentification">Installation de dovecot et de l'authentification</a></li>
  93. <li><a class="toctree-l4" href="#installation-des-programmes">Installation des programmes</a></li>
  94. <li><a class="toctree-l4" href="#choix-de-la-base-de-donnees">Choix de la base de données</a></li>
  95. <li><a class="toctree-l4" href="#configuration-du-type-de-boite-aux-lettres">Configuration du type de boîte aux lettres</a></li>
  96. <li class="toctree-l3"><a href="#architecture">Architecture</a></li>
  97. <li class="toctree-l3"><a href="#schema-densemble">Schéma d'ensemble</a></li>
  98. <li class="toctree-l3"><a href="#explication">Explication:</a></li>
  99. <li><a class="toctree-l4" href="#les-ports-servis-par-postfix">Les ports servis par Postfix</a></li>
  100. <li class="toctree-l3"><a href="#les-ports-servis-par-dovecot">Les ports servis par Dovecot</a></li>
  101. <li class="toctree-l3"><a href="#ce-que-nous-allons-implementer">Ce que nous allons implémenter</a></li>
  102. <li class="toctree-l3"><a href="#configuration-de-dovecot">Configuration de Dovecot</a></li>
  103. <li class="toctree-l3"><a href="#configuration-des-certificats">Configuration des certificats</a></li>
  104. <li><a class="toctree-l4" href="#test">Test</a></li>
  105. <li><a class="toctree-l4" href="#test-de-la-connexion-sur-le-port-993-a-partir-dun-ordinateur-exterieur">Test de la connexion sur le port 993 à partir d'un ordinateur extérieur</a></li>
  106. <li class="toctree-l3"><a href="#configuration-dun-port-qui-naccepte-que-les-communications-chiffrees">Configuration d'un port qui n'accepte que les communications chiffrées.</a></li>
  107. <li><a class="toctree-l4" href="#test_1">Test</a></li>
  108. <li><a class="toctree-l4" href="#test-de-connexion-sur-le-port-465">test de connexion sur le port 465</a></li>
  109. <li><a class="toctree-l4" href="#test_2">Test</a></li>
  110. <li><a class="toctree-l4" href="#test_3">Test</a></li>
  111. <li class="toctree-l3"><a href="#interdiction-de-communications-non-chiffrees-sur-le-port-465">Interdiction de communications non-chiffrées sur le port 465</a></li>
  112. <li><a class="toctree-l4" href="#test_4">Test</a></li>
  113. <li class="toctree-l3"><a href="#ajout-de-la-gestion-du-port-587">Ajout de la gestion du port 587</a></li>
  114. <li><a class="toctree-l4" href="#test_5">Test</a></li>
  115. <li class="toctree-l3"><a href="#ajout-de-la-gesion-du-port-993-imap-avec-ssltls">Ajout de la gesion du port 993 (imap avec SSL/TLS)</a></li>
  116. <li><a class="toctree-l4" href="#test_6">Test</a></li>
  117. <li class="toctree-l3"><a href="#mise-en-route">Mise en route</a></li>
  118. <li><a class="toctree-l4" href="#test_7">Test</a></li>
  119. <li class="toctree-l3"><a href="#mise-en-place-du-fichier-auto-configuration-mozilla">Mise en place du fichier "auto-configuration" Mozilla</a></li>
  120. <li class="toctree-l3"><a href="#test-en-situation">Test en situation ...</a></li>
  121. <li><a class="toctree-l4" href="#lecture-des-messages">Lecture des messages</a></li>
  122. <li><a class="toctree-l4" href="#envoi-de-messages">Envoi de messages</a></li>
  123. <li class="toctree-l3"><a href="#installation-dun-analyseur-des-logs-mail">Installation d'un analyseur des logs mail</a></li>
  124. <li><a class="toctree-l4" href="#installation">Installation</a></li>
  125. <li><a class="toctree-l4" href="#utilisation">Utilisation</a></li>
  126. <li class="toctree-l3"><a href="#installation-de-rainloop-webmail">Installation de rainloop (webmail)</a></li>
  127. <li><a class="toctree-l4" href="#la-documentation-dinstallation-est-ici">La documentation d'installation est ici:</a></li>
  128. <li><a class="toctree-l4" href="#installation-des-dependances-librairies-et-programmes">Installation des dépendances: librairies et programmes</a></li>
  129. <li><a class="toctree-l4" href="#creation-du-repertoire-ou-sera-installe-rainloop">Création du répertoire où sera installé rainloop:</a></li>
  130. <li><a class="toctree-l4" href="#telechargement-du-programme-et-decompression-dans-son-repertoire-daccueil">Téléchargement du programme et décompression dans son répertoire d'accueil</a></li>
  131. <li><a class="toctree-l4" href="#configuration-des-permissions">Configuration des permissions</a></li>
  132. <li><a class="toctree-l4" href="#mise-en-route-du-webmail-dans-apache">Mise en route du webmail dans apache</a></li>
  133. <li><a class="toctree-l4" href="#installation-de-linterface-sqlite-de-php">Installation de l'interface sqlite de php</a></li>
  134. <li><a class="toctree-l4" href="#ajout-de-lacces-en-https-de-notre-webmail-avec-le-programme-certbot-de-letsencrypt">Ajout de l'accès en https de notre webmail (avec le programme certbot de letsencrypt):</a></li>
  135. <li><a class="toctree-l4" href="#configuration-de-notre-webmail">Configuration de notre webmail</a></li>
  136. </ul>
  137. </li>
  138. <li>
  139. <li>
  140. <li class="toctree-l1 ">
  141. <a class="" href="../11-onze/">Installation des certificats letsencrypt</a>
  142. </li>
  143. <li>
  144. <li>
  145. <li class="toctree-l1 ">
  146. <a class="" href="../12-douze/">Ajout des enregistrements SPF et DKIM au fichier de zone DNS</a>
  147. </li>
  148. <li>
  149. <li>
  150. <li class="toctree-l1 ">
  151. <a class="" href="../17-dixsept/">Installation de programmes de surveillance du serveur</a>
  152. </li>
  153. <li>
  154. <li>
  155. <li class="toctree-l1 ">
  156. <a class="" href="../18-dixhuit/">Installation d'un webmail</a>
  157. </li>
  158. <li>
  159. <li>
  160. <li class="toctree-l1 ">
  161. <a class="" href="../19-dixneuf/">Installation de git et de gogs</a>
  162. </li>
  163. <li>
  164. </ul>
  165. </div>
  166. &nbsp;
  167. </nav>
  168. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  169. <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
  170. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  171. <a href="..">The Yojik Server Installation Guide</a>
  172. </nav>
  173. <div class="wy-nav-content">
  174. <div class="rst-content">
  175. <div role="navigation" aria-label="breadcrumbs navigation">
  176. <ul class="wy-breadcrumbs">
  177. <li><a href="..">Docs</a> &raquo;</li>
  178. <li>Installation de dovecot et de l'authentification</li>
  179. <li class="wy-breadcrumbs-aside">
  180. </li>
  181. </ul>
  182. <hr/>
  183. </div>
  184. <div role="main">
  185. <div class="section">
  186. <h2 id="installation-de-dovecot-et-de-lauthentification">Installation de <strong>dovecot</strong> et de l'authentification</h2>
  187. <p>Pour l'instant, pour récupérer ses émails, il faut d'abord avoir un compte sur le serveur et se loguer. Ensuite, avec la commande mailx, on peut voir ses messages.</p>
  188. <p>Exemple:</p>
  189. <pre><code class="shell">ericadmin@aijan:~$ mailx
  190. &quot;/var/mail/ericadmin&quot;: 2 messages 2 non lus
  191. &gt;U 1 Eric Streit dim. mai 20 08:4 20/742 essai d envoi à root
  192. U 2 Eric Streit dim. mai 20 08:5 19/736 un autre essai
  193. ?
  194. </code></pre>
  195. <p>Nous allons installer dovecot qui est un serveur <strong>pop/imap</strong> et d'authentification <strong>SASL</strong>. Nous pourrons ensuite nous connecter sur le serveur avec un client mail comme <strong>thunderbird</strong>, et récupérer et envoyer nos messages avec celui-ci.</p>
  196. <h3 id="installation-des-programmes">Installation des programmes</h3>
  197. <p>Nous n'installerons que les programmes nécessaires à la gestion du protocole <strong>imap</strong> des courriers. Nous n'utilisons pas le protocole <strong>pop3</strong>.</p>
  198. <p>Tout d'abord, faites une copie de /etc/postfix/main.conf et /etc/postfix/master.conf:</p>
  199. <pre><code class="shell"># cp master.cf master.cf.orig
  200. # cp main.cf main.cf.orig
  201. </code></pre>
  202. <p>Nous allons maintenant configurer nos boites émail; 2 systèmes sont courants: fichier unique qui contient tous vos messages (type mbox) ou répertoire avec un fichier par émail (type maildir). Par défaut, le type est mbox.
  203. Nous allons changer cela (question de goût ...) Pour cela, nous aurons besoins des programmes utilitaires installés avec dovecot.</p>
  204. <h3 id="choix-de-la-base-de-donnees">Choix de la base de données</h3>
  205. <p>Nous utiliserons la base de données <strong>sqlite</strong>. Il est bien sûr préférable d'utiliser une base de données plus traditionnelle comme <strong>mysql</strong> ou <strong>postgresql</strong> si le nombre d'utilisateurs est important. Mon serveur de mails n'aura que moins de 10 adresses émail, donc, <strong>sqlite</strong> suffira.</p>
  206. <pre><code class="shell">root@adara:/home/www# apt install dovecot-common dovecot-imapd dovecot-sqlite
  207. Lecture des listes de paquets... Fait
  208. Construction de l arbre des dépendances
  209. Lecture des informations d état... Fait
  210. Note : sélection de « dovecot-core » au lieu de « dovecot-common »
  211. The following additional packages will be installed:
  212. libexttextcat-2.0-0 libexttextcat-data libstemmer0d
  213. Paquets suggérés :
  214. dovecot-gssapi dovecot-sieve dovecot-pgsql dovecot-mysql dovecot-ldap dovecot-pop3d dovecot-lmtpd dovecot-managesieved dovecot-solr dovecot-lucene ufw
  215. Les NOUVEAUX paquets suivants seront installés :
  216. dovecot-core dovecot-imapd dovecot-sqlite libexttextcat-2.0-0 libexttextcat-data libstemmer0d
  217. 0 mis à jour, 6 nouvellement installés, 0 à enlever et 0 non mis à jour.
  218. Il est nécessaire de prendre 5 062 ko dans les archives.
  219. Après cette opération, 12,2 Mo d espace disque supplémentaires seront utilisés.
  220. Souhaitez-vous continuer ? [O/n] o
  221. Réception de:1 http://debian.mirrors.ovh.net/debian stretch/main amd64 libexttextcat-data all 3.4.4-2 [167 kB]
  222. Réception de:2 http://debian.mirrors.ovh.net/debian stretch/main amd64 libexttextcat-2.0-0 amd64 3.4.4-2+b1 [16,2 kB]
  223. Réception de:3 http://debian.mirrors.ovh.net/debian stretch/main amd64 libstemmer0d amd64 0+svn585-1+b2 [63,3 kB]
  224. Réception de:4 http://debian.mirrors.ovh.net/debian stretch/main amd64 dovecot-core amd64 1:2.2.27-3+deb9u2 [3 324 kB]
  225. Réception de:5 http://debian.mirrors.ovh.net/debian stretch/main amd64 dovecot-imapd amd64 1:2.2.27-3+deb9u2 [814 kB]
  226. Réception de:6 http://debian.mirrors.ovh.net/debian stretch/main amd64 dovecot-sqlite amd64 1:2.2.27-3+deb9u2 [677 kB]
  227. 5 062 ko réceptionnés en 0s (6 873 ko/s)
  228. Sélection du paquet libexttextcat-data précédemment désélectionné.
  229. (Lecture de la base de données... 26792 fichiers et répertoires déjà installés.)
  230. Préparation du dépaquetage de .../0-libexttextcat-data_3.4.4-2_all.deb ...
  231. Dépaquetage de libexttextcat-data (3.4.4-2) ...
  232. Sélection du paquet libexttextcat-2.0-0:amd64 précédemment désélectionné.
  233. Préparation du dépaquetage de .../1-libexttextcat-2.0-0_3.4.4-2+b1_amd64.deb ...
  234. Dépaquetage de libexttextcat-2.0-0:amd64 (3.4.4-2+b1) ...
  235. Sélection du paquet libstemmer0d:amd64 précédemment désélectionné.
  236. Préparation du dépaquetage de .../2-libstemmer0d_0+svn585-1+b2_amd64.deb ...
  237. Dépaquetage de libstemmer0d:amd64 (0+svn585-1+b2) ...
  238. Sélection du paquet dovecot-core précédemment désélectionné.
  239. Préparation du dépaquetage de .../3-dovecot-core_1%3a2.2.27-3+deb9u2_amd64.deb ...
  240. Dépaquetage de dovecot-core (1:2.2.27-3+deb9u2) ...
  241. Sélection du paquet dovecot-imapd précédemment désélectionné.
  242. Préparation du dépaquetage de .../4-dovecot-imapd_1%3a2.2.27-3+deb9u2_amd64.deb ...
  243. Dépaquetage de dovecot-imapd (1:2.2.27-3+deb9u2) ...
  244. Sélection du paquet dovecot-sqlite précédemment désélectionné.
  245. Préparation du dépaquetage de .../5-dovecot-sqlite_1%3a2.2.27-3+deb9u2_amd64.deb ...
  246. Dépaquetage de dovecot-sqlite (1:2.2.27-3+deb9u2) ...
  247. Paramétrage de libstemmer0d:amd64 (0+svn585-1+b2) ...
  248. Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
  249. Paramétrage de libexttextcat-data (3.4.4-2) ...
  250. Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u3) ...
  251. Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
  252. Paramétrage de libexttextcat-2.0-0:amd64 (3.4.4-2+b1) ...
  253. Paramétrage de dovecot-core (1:2.2.27-3+deb9u2) ...
  254. Creating config file /etc/dovecot/dovecot.conf with new version
  255. Creating config file /etc/dovecot/dovecot-dict-auth.conf.ext with new version
  256. Creating config file /etc/dovecot/dovecot-dict-sql.conf.ext with new version
  257. Creating config file /etc/dovecot/dovecot-sql.conf.ext with new version
  258. Creating config file /etc/dovecot/conf.d/10-auth.conf with new version
  259. Creating config file /etc/dovecot/conf.d/10-director.conf with new version
  260. Creating config file /etc/dovecot/conf.d/10-logging.conf with new version
  261. Creating config file /etc/dovecot/conf.d/10-mail.conf with new version
  262. Creating config file /etc/dovecot/conf.d/10-master.conf with new version
  263. Creating config file /etc/dovecot/conf.d/10-tcpwrapper.conf with new version
  264. Creating config file /etc/dovecot/conf.d/15-lda.conf with new version
  265. Creating config file /etc/dovecot/conf.d/15-mailboxes.conf with new version
  266. Creating config file /etc/dovecot/conf.d/90-acl.conf with new version
  267. Creating config file /etc/dovecot/conf.d/90-plugin.conf with new version
  268. Creating config file /etc/dovecot/conf.d/90-quota.conf with new version
  269. Creating config file /etc/dovecot/conf.d/auth-checkpassword.conf.ext with new version
  270. Creating config file /etc/dovecot/conf.d/auth-deny.conf.ext with new version
  271. Creating config file /etc/dovecot/conf.d/auth-dict.conf.ext with new version
  272. Creating config file /etc/dovecot/conf.d/auth-master.conf.ext with new version
  273. Creating config file /etc/dovecot/conf.d/auth-passwdfile.conf.ext with new version
  274. Creating config file /etc/dovecot/conf.d/auth-sql.conf.ext with new version
  275. Creating config file /etc/dovecot/conf.d/auth-static.conf.ext with new version
  276. Creating config file /etc/dovecot/conf.d/auth-system.conf.ext with new version
  277. Creating config file /etc/dovecot/conf.d/auth-vpopmail.conf.ext with new version
  278. Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /lib/systemd/system/dovecot.service.
  279. Paramétrage de dovecot-imapd (1:2.2.27-3+deb9u2) ...
  280. Creating config file /etc/dovecot/conf.d/20-imap.conf with new version
  281. Paramétrage de dovecot-sqlite (1:2.2.27-3+deb9u2) ...
  282. Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
  283. Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u3) ...
  284. Traitement des actions différées (« triggers ») pour dovecot-core (1:2.2.27-3+deb9u2) ...
  285. root@adara:/home/www#
  286. </code></pre>
  287. <h3 id="configuration-du-type-de-boite-aux-lettres">Configuration du type de boîte aux lettres</h3>
  288. <p>C'est ici que l'on configure si on veut un fichier unique qui contient tous les messages (type inbox) ou un fichier par émail (type Maildir).</p>
  289. <p>Cela se passe dans le fichier /etc/postfix/main.cf</p>
  290. <p>On rajoute les lignes suivantes:</p>
  291. <pre><code>home_mailbox = Maildir/
  292. mailbox_command =
  293. </code></pre>
  294. <p>Si ces lignes existaient avant, il faut les commenter (ajout d'un # en début de ligne.)
  295. On recharge le fichier de conf</p>
  296. <pre><code>service postfix reload
  297. </code></pre>
  298. <p>Et on teste:</p>
  299. <pre><code class="shell">eric@aldebaran:~/Devs/Travail/Installation serveur/Tutorial$ mail ericadmin@aijan.yojik.net
  300. Cc:
  301. Subject: Re-essai
  302. re-essai de aldebaran
  303. .
  304. eric@aldebaran:~/Devs/Travail/Installation serveur/Tutorial$
  305. </code></pre>
  306. <p>J'envoie un courrier à partir de mon desktop.
  307. Vérification sur le serveur:</p>
  308. <pre><code class="shell">ericadmin@aijan:~$ ls
  309. bin index.html Maildir mbox
  310. ericadmin@aijan:~$
  311. </code></pre>
  312. <p>Le répertoire Maildir a bien été créé.
  313. Vérification de la réception des messages:</p>
  314. <pre><code class="shell">ricadmin@aijan:~$ cd Maildir/
  315. ericadmin@aijan:~/Maildir$ ls
  316. cur new tmp
  317. ericadmin@aijan:~/Maildir$ cd new/
  318. ericadmin@aijan:~/Maildir/new$ ls
  319. 1526897441.V801Icc005dM227044.aijan 1526897501.V801Icc0060M464181.aijan 1526897576.V801Icc0061M979030.aijan
  320. ericadmin@aijan:~/Maildir/new$
  321. ericadmin@aijan:~/Maildir/new$ cat 1526897576.V801Icc0061M979030.aijan
  322. Return-Path: &lt;eric@aldebaran.yojik.net&gt;
  323. X-Original-To: ericadmin@aijan.yojik.net
  324. Delivered-To: ericadmin@aijan.yojik.net
  325. Received: from aldebaran.yojik.net (unknown [IPv6:2a01:e0a:54:c220:6423:417b:6ef:ee21])
  326. by aijan.yojik.net (Postfix) with ESMTP id EC11BD00903
  327. for &lt;ericadmin@aijan.yojik.net&gt;; Mon, 21 May 2018 12:12:56 +0200 (CEST)
  328. Received: by aldebaran.yojik.net (Postfix, from userid 1000)
  329. id 8B42920620A; Mon, 21 May 2018 12:12:56 +0200 (CEST)
  330. To: &lt;ericadmin@aijan.yojik.net&gt;
  331. Subject: Re-essai
  332. X-Mailer: mail (GNU Mailutils 3.1.1)
  333. Message-Id: &lt;20180521101256.8B42920620A@aldebaran.yojik.net&gt;
  334. Date: Mon, 21 May 2018 12:12:56 +0200 (CEST)
  335. From: eric@aldebaran.yojik.net (Eric Streit)
  336. re-essai de aldebaran
  337. .
  338. ericadmin@aijan:~/Maildir/new$
  339. </code></pre>
  340. <p>Les messages sont bien reçus. Par contre, mailx ne fonctionne plus (uniquement avec des fichiers mbox.)
  341. Pour lire nos messages, il nous faut installer le lecteur de courriers <strong>mutt</strong>.</p>
  342. <pre><code class="shell">root@aijan:/etc/postfix# apt install mutt
  343. Lecture des listes de paquets... Fait
  344. Construction de l'arbre des dépendances
  345. Lecture des informations d'état... Fait
  346. The following additional packages will be installed:
  347. libgmime-2.6-0 libgpgme11 libnotmuch4 libtalloc2 libtokyocabinet9
  348. Paquets suggérés :
  349. gpgsm urlview mixmaster
  350. Les NOUVEAUX paquets suivants seront installés :
  351. libgmime-2.6-0 libgpgme11 libnotmuch4 libtalloc2 libtokyocabinet9 mutt
  352. 0 mis à jour, 6 nouvellement installés, 0 à enlever et 12 non mis à jour.
  353. Il est nécessaire de prendre 2 433 ko dans les archives.
  354. Après cette opération, 8 665 ko d'espace disque supplémentaires seront utilisés.
  355. Souhaitez-vous continuer ? [O/n] o
  356. Réception de:1 http://deb.debian.org/debian stretch/main amd64 libtokyocabinet9 amd64 1.4.48-11+b1 [367 kB]
  357. Réception de:2 http://deb.debian.org/debian stretch/main amd64 libgpgme11 amd64 1.8.0-3+b2 [160 kB]
  358. Réception de:3 http://deb.debian.org/debian stretch/main amd64 libgmime-2.6-0 amd64 2.6.22+dfsg2-1 [232 kB]
  359. Réception de:4 http://deb.debian.org/debian stretch/main amd64 libtalloc2 amd64 2.1.8-1 [36,3 kB]
  360. ....
  361. </code></pre>
  362. <p>On teste; on le lance avec la commande suivante:</p>
  363. <pre><code class="shell">ericadmin@aijan:~$ mutt -f ./Maildir/
  364. GPGME : protocole CMS non disponible
  365. 3 gardé(s), 0 effacé(s).
  366. ericadmin@aijan:~$
  367. </code></pre>
  368. <p>Résultat: (extrait de l'écran)</p>
  369. <pre><code class="shell">q:Quitter d:Effacer u:Récup s:Sauver m:Message r:Répondre g:Groupe ?:Aide
  370. 1 O + mai 21 root (0,1K) Essai
  371. 2 O F mai 21 To root@localho (0,1K) essai d'envoi à root
  372. 3 O + mai 21 Eric Streit (0,1K) Re-essai
  373. NeoMutt: ./Maildir/ [Msgs:3 Old:3 1,6K](threads/date)-
  374. </code></pre>
  375. <p>Nos émails sont bien là :) Nous pourrons supprimer mutt plus tard si nous voulons gagner un peu de place.</p>
  376. <h2 id="architecture">Architecture</h2>
  377. <p>Avant de continuer à configurer notre serveur mail, il serait utile d'avoir une vue d'ensemble du système que nous allons configurer. Pour l'instant, nous n'avons apporté que peu de modifications aux fichiers de configuration (nous avons seulement changé le type de format de nos boîtes aux lettres :</p>
  378. <pre><code>mbox -&gt; Maildir
  379. </code></pre>
  380. <p>Si nous regardons quels ports sont écoutés; nous voyons que nous avons pour l'instant:</p>
  381. <pre><code>le port 22 (SSH)
  382. le port 25 (Postfix)
  383. le port 80 (Apache)
  384. le port 443 (Apache)
  385. le port 53 et 953 (Bind)
  386. </code></pre>
  387. <p>et le port 143 (imap) de dovecot, mais dovecot n'est pas encore intégré à notre serveur mail et est <strong>non-configuré</strong>.</p>
  388. <pre><code class="shell">root@aijan:/home/ericadmin# netstat -tlnp
  389. Connexions Internet actives (seulement serveurs)
  390. Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
  391. tcp 0 0 192.168.111.240:53 0.0.0.0:* LISTEN 536/named
  392. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 536/named
  393. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 603/sshd
  394. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 850/master
  395. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 536/named
  396. tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 676/apache2
  397. tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 607/dovecot
  398. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 676/apache2
  399. tcp6 0 0 :::53 :::* LISTEN 536/named
  400. tcp6 0 0 :::22 :::* LISTEN 603/sshd
  401. tcp6 0 0 :::25 :::* LISTEN 850/master
  402. tcp6 0 0 ::1:953 :::* LISTEN 536/named
  403. tcp6 0 0 :::143 :::* LISTEN 607/dovecot
  404. root@aijan:/home/ericadmin#
  405. </code></pre>
  406. <p>Notez la commande <strong>netstat -tlnp</strong> pour voir les ports ouverts ainsi que les programmes qui les gèrent.</p>
  407. <p><img alt="Notre serveur de mail" src="../Images/dessin.svg" /></p>
  408. <p>Nous n'utiliserons pas le protocole Pop3 (ni sa variante pop3s). Le protocole Imap offre bien plus de possibilités. (parties rouges entourées de noir)</p>
  409. <h2 id="schema-densemble">Schéma d'ensemble</h2>
  410. <p>Les parties implémentées sont en rouge sur le dessin suivant:</p>
  411. <p><img alt="Notre serveur de mail" src="../Images/dessin1.svg" /></p>
  412. <h2 id="explication">Explication:</h2>
  413. <h3 id="les-ports-servis-par-postfix">Les ports servis par Postfix</h3>
  414. <ol>
  415. <li>Le port 25 est utilisé pour la communication entre serveurs smtp; il permet une connexion "en clair" ou chiffrée. Il peut être aussi utilisé pour l'envoi des mails à partir d'un client. Nous l'avons d'ailleurs fait avec la commande <strong>mail</strong> et <strong>telnet</strong>.</li>
  416. <li>Le port 587 est le port "submission", port utilisé par défaut par les <strong>clients mail</strong> pour <strong>envoyer</strong> du courrier sur le serveur (thunderbird, etc ...) qui le dispatche ensuite, soit dans les boîtes de courrier locales, soit à un destinataire extérieur.</li>
  417. <li>Le port 465 est un port qui a été réservé pour les communications chiffrées (SMTP over SSL): il était utilisé avant que STARTTLS ne soit utilisé; il a été enlevé des ports standards de mail.</li>
  418. </ol>
  419. <p>Le premier port (25) est un port d'entrée-sortie réservé à la communication entre serveurs ("mais permet aussi la submission de messages avec authentification".) Souvenez-vous que le port 25 est bloqué par de nombreux FAI. La communication peut être chiffrée ou non, suivant les possibilités du serveur et du client, et donc, les mots de passe peuvent passer en clair. La communication commence en mode "clair" et après négociation, passe en mode "chiffrée" si celle-ci est disponible: (STARTTLS)</p>
  420. <p>Les 2 derniers ports (465 et 587) sont des ports d'entrée de vos messages envoyés par des clients, après authentification, en mode chiffré ou non.</p>
  421. <h2 id="les-ports-servis-par-dovecot">Les ports servis par Dovecot</h2>
  422. <ol>
  423. <li>Les ports 143 et 993 sont des ports réservés au protocole IMAP(s).</li>
  424. <li>Les port 110 et 995 sont des ports réservés au protocole POP3(s), mais nous ne l'utiliserons pas.</li>
  425. </ol>
  426. <p>Ces ports sont servis par Dovecot. Il permettent de gérer notre boîte mail, récupérer, effacer nos messages, créer des dossiers dans lesquels nous pouvons trier nos messages.</p>
  427. <h2 id="ce-que-nous-allons-implementer">Ce que nous allons implémenter</h2>
  428. <p>Nous implémenterons une politique particulière, comme celle décrite ici:
  429. <a href="https://samhobbs.co.uk/2013/12/raspberry-pi-email-server-part-2-dovecot">RasperryPi Email server Part 2</a>
  430. Cet auteur sépare les communications entre serveurs (port 25) et client-serveur (ports 587 et 465). Il empêche les communications non-chifrées entre client et serveur, et utilise le port 465 pour les communications chiffrées (déprécié par le standard.)
  431. Jusqu'à maintenant, nous n'avons utilisé ni dovecot, ni base de données; l'authentification se faisant directement sur le serveur en accédant à notre compte sur le serveur (login par identifiant/mot de passe ou clef SSH).
  432. Nous allons implémenter l'accès par <strong>Imap</strong> et <strong>Imaps</strong> de nos courriers à partir de n'importe quelle machine et avec authentification (toujours pas de comptes virtuels.) L'authentification se faisait avant en se connectant sur nos comptes en <strong>SSH</strong>. Nous avons déjà généré auparavant nos clefs de chiffrage avec <strong>certbot</strong>. (voir le chapitre suivant ...)
  433. Elles sont situées dans <strong>/etc/letsencrypt/live/atom.yojik.net</strong>.
  434. Dovecot est un serveur Imap et pop3. Il assure en plus l'authentification.</p>
  435. <h2 id="configuration-de-dovecot">Configuration de Dovecot</h2>
  436. <ul>
  437. <li>
  438. <p>Indiquer à Dovecot d'écouter sur toutes les interfaces, en IPV4 et IPV6. Le fichier à configurer (après copie) est <strong>/etc/dovecot/dovecot.conf</strong>; changer la ligne qui contient:</p>
  439. <blockquote>
  440. <p>listen =
  441. en
  442. listen = *, ::</p>
  443. </blockquote>
  444. </li>
  445. <li>
  446. <p>Il faut lui indiquer <strong>où</strong> sont stockés nos mails et sous quel <strong>format</strong>. Cela se configure dans le fichier:</p>
  447. <p>/etc/dovecot/conf.d/10-mail.conf
  448. Voici un extrait du contenu original:</p>
  449. <pre><code>## Mailbox locations and namespaces
  450. ##
  451. mail_location = mbox:~/mail:INBOX=/var/mail/%u
  452. </code></pre>
  453. <p>Le format par défaut est <strong>mbox</strong> situé dans <strong>/var/mail/user</strong>
  454. Nous allons changer cela en:</p>
  455. <pre><code>mail_location = maildir:~/Maildir
  456. </code></pre>
  457. <p>Dovecot utilisera notre boîte aux lettres située dans le home de chaque user, et dans le répertoire Maildir.</p>
  458. <p>Souvenez-vous que nous avions configuré Postfix afin qu'il utilise le format Maidir.</p>
  459. </li>
  460. <li>
  461. <p>Indiquer à Postfix d'utiliser dovecot pour l'accès aux mails ainsi que pour l'authentification.</p>
  462. <p>Nous allons modifier le fichier <strong>/etc/postfix/main.cf</strong> et ajouter les lignes suivantes:</p>
  463. <pre><code>smtpd_sasl_type = dovecot
  464. smtpd_sasl_path = private/auth
  465. smtpd_sasl_auth_enable = yes
  466. </code></pre>
  467. <p>Nous allons indiquer à Dovecot de répondre aux demandes d'authentification de postfix:
  468. Après avoir fait une sauvegarde du fichier original /etc/dovecot/conf.d/10-master.conf (toujours sauvegarder les fichiers avant modifications!), nous allons modifier le mécanisme d'authentification de docvecot. Pour cela nous allons remplacer la partie intitulée <strong>service auth</strong> par ce qui suit:</p>
  469. <pre><code>service auth {
  470. unix_listener /var/spool/postfix/private/auth {
  471. mode = 0660
  472. user = postfix
  473. group = postfix
  474. }
  475. </code></pre>
  476. </li>
  477. <li>
  478. <p>Autorisons maintenant le <strong>plain login</strong>; nous allons modifier le fichier <strong>/etc/dovecot/conf.d/10-auth.conf</strong> en ajoutant ou modifiant les lignes suivantes:</p>
  479. <pre><code>disable_plaintext_auth = no
  480. auth_mechanisms = plain login
  481. </code></pre>
  482. <p>On relance postfix et dovecot pour prendre en compte les modifications.</p>
  483. <pre><code>root@atom:/etc/postfix# systemctl restart postfix
  484. root@atom:/etc/postfix# systemctl restart dovecot
  485. </code></pre>
  486. <p>On vérifie que tout s'est bien passé avec la commande:</p>
  487. <pre><code>root@atom:/etc/postfix# tail -f /var/log/daemon.log
  488. Nov 26 12:47:22 atom systemd[1]: Stopped Postfix Mail Transport Agent (instance -).
  489. Nov 26 12:47:22 atom systemd[1]: Starting Postfix Mail Transport Agent (instance -)...
  490. Nov 26 12:47:23 atom systemd[1]: Started Postfix Mail Transport Agent (instance -).
  491. Nov 26 12:47:23 atom systemd[1]: Starting Postfix Mail Transport Agent...
  492. Nov 26 12:47:23 atom systemd[1]: Started Postfix Mail Transport Agent.
  493. Nov 26 12:47:28 atom systemd[1]: Stopping Dovecot IMAP/POP3 email server...
  494. Nov 26 12:47:29 atom systemd[1]: Stopped Dovecot IMAP/POP3 email server.
  495. Nov 26 12:47:29 atom systemd[1]: Starting Dovecot IMAP/POP3 email server...
  496. Nov 26 12:47:29 atom systemd[1]: dovecot.service: PID file /var/run/dovecot/master.pid not readable (yet?) after start: No such file or directory
  497. Nov 26 12:47:29 atom systemd[1]: Started Dovecot IMAP/POP3 email server.
  498. </code></pre>
  499. <p>On quitte avec Ctrl C.</p>
  500. <p>C'est bon.</p>
  501. </li>
  502. <li>
  503. <p>Test 1</p>
  504. <p>Nous allons nous connecter avec telnet; voici la capture de la session:</p>
  505. <p>Tout d'abord, création d'un nouvel utilisateur de nom testmail et mot de passe testmail (oui, rien de bien original). A partir du compte root, nous allons envoyer un message à cet utilisateur (voir au-dessus pour comment faire avec la commande mail.)</p>
  506. <p>Testons si le message est bien arrivé:</p>
  507. </li>
  508. </ul>
  509. <pre><code class="shell">root@atom:/etc/postfix# adduser testmail
  510. Ajout de l'utilisateur « testmail25 » ...
  511. Ajout du nouveau groupe « testmail25 » (1001) ...
  512. Ajout du nouvel utilisateur « testmail25 » (1001) avec le groupe « testmail25 » ...
  513. Création du répertoire personnel « /home/testmail25 »...
  514. Copie des fichiers depuis « /etc/skel »...
  515. Entrez le nouveau mot de passe UNIX :
  516. Retapez le nouveau mot de passe UNIX :
  517. passwd: password updated successfully
  518. Changing the user information for testmail
  519. Enter the new value, or press ENTER for the default
  520. Full Name []:
  521. Room Number []:
  522. Work Phone []:
  523. Home Phone []:
  524. Other []:
  525. Cette information est-elle correcte ? [O/n]o
  526. root@atom:/etc/postfix# mail testmail
  527. Cc:
  528. Subject: Essai 7
  529. Essai 7
  530. .
  531. root@atom:/etc/postfix# su - testmail
  532. testmail25@atom:~$ mutt -f ./Maildir/
  533. GPGME : protocole CMS non disponible
  534. 1 gardé(s), 0 effacé(s).
  535. </code></pre>
  536. <p>Le message est bien arrivé. Essayons avec les commandes Imap; il nous faut installer telnet avant:</p>
  537. <pre><code> apt install telnet
  538. </code></pre>
  539. <p>Nous pouvons donc nous connecter aux ports suivants: 143 et 993.</p>
  540. <pre><code class="shell">root@aijan:/home/ericadmin# telnet localhost 143
  541. Trying ::1...
  542. Connected to localhost.
  543. Escape character is '^]'.
  544. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
  545. x1 LOGIN testmail testmail
  546. x1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in
  547. x2 SELECT Inbox
  548. * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
  549. * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
  550. * 1 EXISTS
  551. * 1 RECENT
  552. * OK [UNSEEN 1] First unseen.
  553. * OK [UIDVALIDITY 1527165527] UIDs valid
  554. * OK [UIDNEXT 2] Predicted next UID
  555. x2 OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
  556. x4 LOGOUT
  557. * BYE Logging out
  558. x4 OK Logout completed (0.000 + 0.000 secs).
  559. Connection closed by foreign host.
  560. root@aijan:/home/ericadmin#
  561. </code></pre>
  562. <p>Ça marche: <em>OK [UNSEEN 1] First unseen.</em></p>
  563. <p>Nous nous sommes connectés avec le mot de passe en clait (testmail pour l'utilisateur testmail.)</p>
  564. <ul>
  565. <li>
  566. <p>Test 2: envoi de mail</p>
  567. <p>Connexion sur le port 25 (postfix) en utilisant l'authentification gérée par dovecot.
  568. Nous avons chiffré le mot de passe avec la commande suivante:</p>
  569. <pre><code> printf '\0%s\0%s' 'testmail' 'testmail' | openssl base64
  570. AHRlc3RtYWlsAHRlc3RtYWls
  571. </code></pre>
  572. </li>
  573. </ul>
  574. <pre><code class="shell">root@aijan:/home/ericadmin# telnet localhost 25
  575. Trying ::1...
  576. Connected to localhost.
  577. Escape character is '^]'.
  578. 220 aijan.yojik.net ESMTP Postfix (Debian/GNU)
  579. ehlo localhost
  580. 250-aijan.yojik.net
  581. 250-PIPELINING
  582. 250-SIZE 10240000
  583. 250-VRFY
  584. 250-ETRN
  585. 250-STARTTLS
  586. 250-AUTH PLAIN LOGIN
  587. 250-ENHANCEDSTATUSCODES
  588. 250-8BITMIME
  589. 250-DSN
  590. 250 SMTPUTF8
  591. AUTH PLAIN AHRlc3RtYWlsAHRlc3RtYWls
  592. 235 2.7.0 Authentication successful
  593. mail from: testmail
  594. 250 2.1.0 Ok
  595. data
  596. 554 5.5.1 Error: no valid recipients
  597. rcpt to: ericounet26200@gmail.com
  598. 250 2.1.5 Ok
  599. data
  600. 354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;
  601. Subject: mon, premier mail avec sasl
  602. mon premier mail avec sasl
  603. .
  604. 250 2.0.0 Ok: queued as A664BD004A1
  605. quit
  606. 221 2.0.0 Bye
  607. Connection closed by foreign host.
  608. root@aijan:/home/ericadmin#
  609. </code></pre>
  610. <p>Vérification de la bonne réception du message: le message est bien reçu.</p>
  611. <h2 id="configuration-des-certificats">Configuration des certificats</h2>
  612. <p>Jusqu'à présent, nous avons utilisé les certificats fournis par Debian à l'installation.
  613. Nous allons utiliser les certificats que nous avons créés auparavant avec letsencrypt.
  614. Il y a 2 lignes à modifier dans /etc/postfix/main.cf:</p>
  615. <blockquote>
  616. <p>smtpd_tls_cert_file = /etc/letsencrypt/live/toto.yojik.net/fullchain.pem
  617. smtpd_tls_key_file = /etc/letsencrypt/live/toto.yojik.net/privkey.pem</p>
  618. </blockquote>
  619. <p>Bien entendu, modifiez la partie <strong>toto.yojik.net</strong> par le nom de votre serveur mail et pour lequel vous avez généré les certificats.
  620. Il y a 3 lignes à ajouter/modifier dans /etc/dovecot/conf.d/10-ssl.conf</p>
  621. <blockquote>
  622. <p>ssl = required
  623. ssl_cert = &lt;/etc/letsencrypt/live/toto.yojik.net/fullchain.pem
  624. ssl_key = &lt;/etc/letsencrypt/live/toto.yojik.net/privkey.pem</p>
  625. </blockquote>
  626. <p>Comme avant, personnalisez avec votre nom de serveur mail.
  627. Relancez vos serveurs avec les commandes suivantes:</p>
  628. <pre><code class="shell">root@aijan:/home/ericadmin# systemctl restart postfix
  629. root@aijan:/home/ericadmin# systemctl restart dovecot
  630. </code></pre>
  631. <p>Bien vérifier dans les logs (/var/log/daemon.log) que tout s'est bien passé (pas d'erreur de frappe par exemple ...)</p>
  632. <h3 id="test">Test</h3>
  633. <p>Nous allons refaire les tests déjà réalisés précédemment pour vérifier que "rien n'est cassé" suite à la modification de nos certificats.</p>
  634. <pre><code class="shell">root@aijan:/home/ericadmin# telnet localhost 25
  635. Trying ::1...
  636. Connected to localhost.
  637. Escape character is '^]'.
  638. 220 aijan.yojik.net ESMTP Postfix (Debian/GNU)
  639. ehlo aijan.yojik.net
  640. 250-aijan.yojik.net
  641. 250-PIPELINING
  642. 250-SIZE 10240000
  643. 250-VRFY
  644. 250-ETRN
  645. 250-STARTTLS
  646. 250-AUTH PLAIN LOGIN
  647. 250-ENHANCEDSTATUSCODES
  648. 250-8BITMIME
  649. 250-DSN
  650. 250 SMTPUTF8
  651. AUTH PLAIN AHRlc3RtYWlsAHRlc3RtYWls
  652. 235 2.7.0 Authentication successful
  653. mail from: testmail
  654. 250 2.1.0 Ok
  655. rcpt to: ericounet26200@gmail.com
  656. 250 2.1.5 Ok
  657. data
  658. 354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;
  659. subject: essai
  660. un essai
  661. .
  662. 250 2.0.0 Ok: queued as 9EEF6D0002E
  663. quit
  664. 502 5.5.2 Error: command not recognized
  665. quit
  666. 221 2.0.0 Bye
  667. Connection closed by foreign host.
  668. root@aijan:/home/ericadmin#
  669. </code></pre>
  670. <p>Ça fonctionne. L'authentification avec les nouveaux certificats est assurée.</p>
  671. <h3 id="test-de-la-connexion-sur-le-port-993-a-partir-dun-ordinateur-exterieur">Test de la connexion sur le port 993 à partir d'un ordinateur extérieur</h3>
  672. <pre><code>eric@aldebaran:~$ openssl s_client -connect yojik.net:993
  673. CONNECTED(00000003)
  674. depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
  675. verify return:1
  676. depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
  677. verify return:1
  678. depth=0 CN = atom.yojik.net
  679. verify return:1
  680. ---
  681. Certificate chain
  682. 0 s:/CN=atom.yojik.net
  683. i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
  684. 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
  685. i:/O=Digital Signature Trust Co./CN=DST Root CA X3
  686. ---
  687. Server certificate
  688. -----BEGIN CERTIFICATE-----
  689. MIIFVTCCBD2gAwIBAgISA2ymxMSWOd9z4d5MhK1RarzkMA0GCSqGSIb3DQEBCwUA
  690. MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
  691. ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODExMTExNTI2NDhaFw0x
  692. OTAyMDkxNTI2NDhaMBkxFzAVBgNVBAMTDmF0b20ueW9qaWsubmV0MIIBIjANBgkq
  693. hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr+SwsS/VwilSnazx4Y9Xj9OIzYPx2s5W
  694. kxocZT7BMdO0oKNKolbe6AJMGrNKf5TjQu9EN+yal6rNZUOrrR7dS2gKvRjyH2mW
  695. 5JniCW/osYVkHglgjvNbihQP4IBY9brvvtIW9reKyA9adq5zHHRW2RNaBG18oXFa
  696. mQb+uFGiCkpyjGK7XYmPkVA7DM6TtciFBGeTmY15vF4aniPQtu1TuksEc+WDvWfR
  697. K9ebYXghqBJd1OigtgVhOpDiSAnxjtx9wcjHuic/9wU8iI2VdkOB0xoMxlRNjQSZ
  698. DWgRCiZr/LwtoX6bSWzJex1kW7Q/zQnvA1eaKqD6mCIp5uO7KiK5AQIDAQABo4IC
  699. ZDCCAmAwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
  700. BQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQyxrlKdL9RV+v8Y7YwH4mV0iq4
  701. EDAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBvBggrBgEFBQcBAQRj
  702. MGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5jcnlwdC5v
  703. cmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5jcnlwdC5v
  704. cmcvMBkGA1UdEQQSMBCCDmF0b20ueW9qaWsubmV0MEwGA1UdIARFMEMwCAYGZ4EM
  705. AQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0
  706. c2VuY3J5cHQub3JnMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHcA4mlLribo6UAJ
  707. 6IYbtjuD1D7n/nSI+6SPKJMBnd3x2/4AAAFnA5jZtQAABAMASDBGAiEAshqJHr2M
  708. l6n+9Dd31jkskn3lxh5iC7FTfPZoKxZGT6ECIQDDby9vNMmzh8eYysYr5UuTE4R9
  709. VOko3rzQZgj51O/nEQB2AGPy283oO8wszwtyhCdXazOkjWF3j711pjixx2hUS9iN
  710. AAABZwOY2bgAAAQDAEcwRQIhAPTO+Wry4Fl2+HddFMsWpfYJQ7dkXtW93N1+z77y
  711. ofgMAiB76ad1N7+AVOh4YvrRboK31F5cs3YJnKmKxINWkrI70TANBgkqhkiG9w0B
  712. AQsFAAOCAQEAJ1BYUTWpCIIYD0FKB9vuCEfYrg1NNHhYYr0jUKR49EPLO8DS1aRp
  713. KK1tr9EZti2lOYaEOKNo4dQkLLKgsF1kovHreosvXPF2oXRbN6UdVu+67fhIokD5
  714. FIS9pphaxIHEC4A9h7JK0LHJHMG9ySRDBbtz9Y0b7z5jGIxX0yzaqBcPJVG26SJm
  715. uyiys2bklC+N3mYAVYb/c3VWdCWzusHks+HCTx2y+YkqVkvCepdQYFoUKpk6ScSc
  716. Fz6r0DWBXGmhJLg0K+KxfXGUtTtwDjnBZCocX3FrQsQNrbYtvLyK2QhDv1Mr6V96
  717. P11a4LV3qq2eTfoIiNd9m2iqCJ7/pSWIjw==
  718. -----END CERTIFICATE-----
  719. subject=/CN=atom.yojik.net
  720. issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
  721. ---
  722. No client certificate CA names sent
  723. Peer signing digest: SHA512
  724. Server Temp Key: ECDH, P-384, 384 bits
  725. ---
  726. SSL handshake has read 3236 bytes and written 334 bytes
  727. Verification: OK
  728. ---
  729. New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
  730. Server public key is 2048 bit
  731. Secure Renegotiation IS supported
  732. Compression: NONE
  733. Expansion: NONE
  734. No ALPN negotiated
  735. SSL-Session:
  736. Protocol : TLSv1.2
  737. Cipher : ECDHE-RSA-AES256-GCM-SHA384
  738. Session-ID: D488F9943CD771D5DF400C676729BDF315F5CBD01128E922D7DBCC0D80B467F3
  739. Session-ID-ctx:
  740. Master-Key: 45BF00E99AA29FB83E1395741E3A506800473105882554C46B50639665B600000E1F3048F051EF5E12D6C0804A0698D8
  741. PSK identity: None
  742. PSK identity hint: None
  743. SRP username: None
  744. TLS session ticket lifetime hint: 7200 (seconds)
  745. TLS session ticket:
  746. 0000 - 59 1e 77 bc e8 c1 0e f8-c9 f2 38 f8 f9 f0 e9 4f Y.w.......8....O
  747. 0010 - 4b 91 2a 39 73 cc a6 85-f2 22 96 ae 4a a3 84 b8 K.*9s....&quot;..J...
  748. 0020 - e8 de 9b 34 74 1a d9 e7-88 f5 d1 bb 4c 2d 59 f2 ...4t.......L-Y.
  749. 0030 - 0e 99 1e bd b7 82 ef 32-ab 0c 1a 33 c0 dd 31 6a .......2...3..1j
  750. 0040 - 5b 38 fc c5 27 29 d7 a3-ae f0 a5 bb 66 a0 b4 eb [8..')......f...
  751. 0050 - 7c 95 f2 16 cb 92 5c f3-7f c0 30 33 ec 77 f0 a8 |.....\...03.w..
  752. 0060 - 8f 5e 9c f7 de c9 4f 95-1a 0e 09 27 7a 45 b0 db .^....O....'zE..
  753. 0070 - 84 ba 72 37 f1 a2 f5 95-43 0c e2 eb a3 18 94 a8 ..r7....C.......
  754. 0080 - b3 d4 d7 15 4c 81 08 a2-17 3f 7b 15 fe 81 d8 5c ....L....?{....\
  755. 0090 - 74 60 ac 5e 2a 5a 22 07-6f ba 03 4f d5 46 5a 04 t`.^*Z&quot;.o..O.FZ.
  756. Start Time: 1543235404
  757. Timeout : 7200 (sec)
  758. Verify return code: 0 (ok)
  759. Extended master secret: yes
  760. ---
  761. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
  762. 1 Login testmail testmail
  763. 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in
  764. QUIT
  765. DONE
  766. eric@aldebaran:~$
  767. </code></pre>
  768. <p>Le <strong>OK [CAPABILITY ...</strong> indique que la connexion s'est faite normalement; les caractéristiques du certificat sont affichées au-dessus. Le <strong>Logged: in</strong> indique que l'authentification a marché.</p>
  769. <p>Nous avons donc testé les ports 25, 143 et 993 avec succès.</p>
  770. <h2 id="configuration-dun-port-qui-naccepte-que-les-communications-chiffrees">Configuration d'un port qui n'accepte que les communications chiffrées.</h2>
  771. <p>Pour l'instant, postfix n'écoute que le port 25 (vous pouvez le vérifier avec la commande <strong>netstat -tlpn</strong>.
  772. Dans le fichier /etc/postfix/master.cf, seul la ligne suivante est active (décommentée):</p>
  773. <pre><code>smtp inet n - y - - smtpd
  774. </code></pre>
  775. <p>Nous allons mettre postfix en écoute du port 465:
  776. Dans le fichier /etc/postfix/master.cf, la ligne à décommenter est la suivante:</p>
  777. <pre><code class="shell"># smtps inet n - - - - smtpd
  778. </code></pre>
  779. <p>pour obtenir:</p>
  780. <pre><code class="shell">smtps inet n - - - - smtpd
  781. </code></pre>
  782. <h3 id="test_1">Test</h3>
  783. <p>On relance postfix et on regarde les ports servis:</p>
  784. <pre><code class="shell">root@aijan:/home/ericadmin# service postfix restart
  785. root@aijan:/home/ericadmin# netstat -tlpn
  786. Connexions Internet actives (seulement serveurs)
  787. Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
  788. tcp 0 0 192.168.111.240:53 0.0.0.0:* LISTEN 552/named
  789. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 552/named
  790. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 580/sshd
  791. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2159/master
  792. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 552/named
  793. tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 649/apache2
  794. tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1792/dovecot
  795. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 649/apache2
  796. tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 2159/master
  797. tcp6 0 0 :::53 :::* LISTEN 552/named
  798. tcp6 0 0 :::22 :::* LISTEN 580/sshd
  799. tcp6 0 0 :::25 :::* LISTEN 2159/master
  800. tcp6 0 0 ::1:953 :::* LISTEN 552/named
  801. tcp6 0 0 :::143 :::* LISTEN 1792/dovecot
  802. tcp6 0 0 :::465 :::* LISTEN 2159/master
  803. root@aijan:/home/ericadmin#
  804. </code></pre>
  805. <p>Le port 465 est ouvert et servi par postfix.</p>
  806. <h3 id="test-de-connexion-sur-le-port-465">test de connexion sur le port 465</h3>
  807. <pre><code class="shell">root@aijan:/home/ericadmin# telnet localhost 465
  808. Trying ::1...
  809. Connected to localhost.
  810. Escape character is '^]'.
  811. 220 aijan.yojik.net ESMTP Postfix (Debian/GNU)
  812. ehlo aijan.yojik.net
  813. 250-aijan.yojik.net
  814. 250-PIPELINING
  815. 250-SIZE 10240000
  816. 250-VRFY
  817. 250-ETRN
  818. 250-STARTTLS
  819. 250-AUTH PLAIN LOGIN
  820. 250-ENHANCEDSTATUSCODES
  821. 250-8BITMIME
  822. 250-DSN
  823. 250 SMTPUTF8
  824. quit
  825. 221 2.0.0 Bye
  826. Connection closed by foreign host.
  827. root@aijan:/home/ericadmin#
  828. </code></pre>
  829. <p>La connexion se fait normalement.
  830. Nous allons maintenant bloquer les communications non-chiffrées; les paramètres à modifier sont dans /etc/postfix/master.conf (2 premiers paramètres de la ligne smtps à décommenter.)</p>
  831. <pre><code class="shell">smtps inet n - - - - smtpd
  832. -o syslog_name=postfix/smtps
  833. -o smtpd_tls_wrappermode=yes
  834. </code></pre>
  835. <h3 id="test_2">Test</h3>
  836. <ol>
  837. <li>Essai avec communication non-chifrée:</li>
  838. </ol>
  839. <pre><code class="shell">root@aijan:/home/ericadmin# telnet localhost 465
  840. Trying ::1...
  841. Connected to localhost.
  842. Escape character is '^]'.
  843. Connection closed by foreign host.
  844. root@aijan:/home/ericadmin#
  845. </code></pre>
  846. <p>La communication est <strong>refusée</strong>.</p>
  847. <ol>
  848. <li>Essai avec communication chiffrée (nous utilisons <strong>openssl</strong> pour cela):</li>
  849. </ol>
  850. <pre><code class="shell">root@adara:/etc# openssl s_client -connect localhost:465 -quiet
  851. depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
  852. verify return:1
  853. depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
  854. verify return:1
  855. depth=0 CN = adara.yojik.eu
  856. verify return:1
  857. 220 adara.yojik.eu ESMTP Postfix (Debian/GNU)
  858. ehlo me
  859. 250-adara.yojik.eu
  860. 250-PIPELINING
  861. 250-SIZE 10240000
  862. 250-VRFY
  863. 250-ETRN
  864. 250-AUTH PLAIN LOGIN
  865. 250-ENHANCEDSTATUSCODES
  866. 250-8BITMIME
  867. 250-DSN
  868. 250 SMTPUTF8
  869. quit
  870. 221 2.0.0 Bye
  871. root@adara:/etc#
  872. </code></pre>
  873. <p>La communication est <strong>acceptée</strong> et fonctionne. Nous voyons aussi que notre certificat Letsencrypt a été vérifié.</p>
  874. <p>Il reste une modification à faire pour n'autoriser que les communications chiffrées:
  875. Dans /etc/postfix/main.cf ajouter ou modifier la ligne suivante:</p>
  876. <pre><code>smtpd_tls_auth_only = yes
  877. </code></pre>
  878. <p>Et rechargez Postfix.</p>
  879. <h3 id="test_3">Test</h3>
  880. <pre><code class="shell">root@aijan:/home/ericadmin# telnet localhost 25
  881. Trying ::1...
  882. Connected to localhost.
  883. Escape character is '^]'.
  884. 220 aijan.yojik.net ESMTP Postfix (Debian/GNU)
  885. ehlo aijan.yojik.net
  886. 250-aijan.yojik.net
  887. 250-PIPELINING
  888. 250-SIZE 10240000
  889. 250-VRFY
  890. 250-ETRN
  891. 250-STARTTLS
  892. 250-ENHANCEDSTATUSCODES
  893. 250-8BITMIME
  894. 250-DSN
  895. 250 SMTPUTF8
  896. quit
  897. 221 2.0.0 Bye
  898. Connection closed by foreign host.
  899. root@aijan:/home/ericadmin#
  900. </code></pre>
  901. <p>On voit que la ligne "250-AUTH PLAIN LOGIN" est absente, ce qui confirme que Postfix a bien pris en compte notre dernière modification.</p>
  902. <h2 id="interdiction-de-communications-non-chiffrees-sur-le-port-465">Interdiction de communications non-chiffrées sur le port 465</h2>
  903. <p>Nous allons rajouter/modifier une "restriction" à la ligne gérant le port 465 dans /etc/postfix/master.cf</p>
  904. <pre><code class="shell">smtps inet n - - - - smtpd
  905. -o syslog_name=postfix/smtps
  906. -o smtpd_tls_wrappermode=yes
  907. -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  908. </code></pre>
  909. <p>La dernière ligne est rajoutée, dé-commentée, modifiée (suivant le cas). On recharge postfix et on teste.</p>
  910. <h3 id="test_4">Test</h3>
  911. <pre><code class="shell">root@aijan:/etc/postfix# telnet localhost 465
  912. Trying ::1...
  913. Connected to localhost.
  914. Escape character is '^]'.
  915. quit
  916. Connection closed by foreign host.
  917. root@aijan:/etc/postfix#
  918. </code></pre>
  919. <p>Ça fonctionne.</p>
  920. <h2 id="ajout-de-la-gestion-du-port-587">Ajout de la gestion du port 587</h2>
  921. <p>Dans le fichier /etc/postfix/master.cf, dé-commentez les lignes suivantes et modifiez les comme indiqué. Ce sont les mêmes modifications que celles effectuées pour le port 465.</p>
  922. <pre><code class="shell">submission inet n - y - - smtpd
  923. -o syslog_name=postfix/submission
  924. -o smtpd_tls_security_level=encrypt
  925. -o smtpd_sasl_auth_enable=yes
  926. Ainsi que
  927. -o smtpd_recipient_restrictions=
  928. </code></pre>
  929. <h3 id="test_5">Test</h3>
  930. <pre><code class="shell">root@aijan:/etc/bind# netstat -tlnp
  931. Connexions Internet actives (seulement serveurs)
  932. Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
  933. tcp 0 0 192.168.111.240:53 0.0.0.0:* LISTEN 3410/named
  934. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3410/named
  935. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 580/sshd
  936. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 4080/master
  937. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 3410/named
  938. tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 649/apache2
  939. tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 2668/dovecot
  940. tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 4080/master
  941. tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 2668/dovecot
  942. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 649/apache2
  943. tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 4080/master
  944. tcp6 0 0 :::53 :::* LISTEN 3410/named
  945. tcp6 0 0 :::22 :::* LISTEN 580/sshd
  946. tcp6 0 0 :::25 :::* LISTEN 4080/master
  947. tcp6 0 0 ::1:953 :::* LISTEN 3410/named
  948. tcp6 0 0 :::993 :::* LISTEN 2668/dovecot
  949. tcp6 0 0 :::587 :::* LISTEN 4080/master
  950. tcp6 0 0 :::143 :::* LISTEN 2668/dovecot
  951. tcp6 0 0 :::465 :::* LISTEN 4080/master
  952. root@aijan:/etc/bind#
  953. </code></pre>
  954. <p>Le port 587 est géré.</p>
  955. <h2 id="ajout-de-la-gesion-du-port-993-imap-avec-ssltls">Ajout de la gesion du port 993 (imap avec SSL/TLS)</h2>
  956. <p>Nous allons modifier la configuration de dovecot pour la prise en charge de ce port.</p>
  957. <p>Il n'est pas encore "servi" comme nous l'avons vu avec la commande <strong>netstat -tlpn</strong> (vu auparavant.)</p>
  958. <p>Le fichier à modifier est: /etc/dovecot/conf.d/10-master.conf
  959. La partie du fichier à modifier est la suivante:</p>
  960. <pre><code class="shell">service imap-login {
  961. inet_listener imap {
  962. #port = 143
  963. }
  964. inet_listener imaps {
  965. #port = 993
  966. #ssl = yes
  967. }
  968. </code></pre>
  969. <p>pour donner ceci:</p>
  970. <pre><code class="shell">service imap-login {
  971. inet_listener imap {
  972. port = 143
  973. }
  974. inet_listener imaps {
  975. port = 993
  976. ssl = yes
  977. }
  978. </code></pre>
  979. <p>Dans le fichier /etc/dovecot/conf.d/10-ssl.conf:</p>
  980. <pre><code class="shell"> ssl = yes
  981. ssl_protocols = !SSLv3
  982. </code></pre>
  983. <h3 id="test_6">Test</h3>
  984. <pre><code class="shell">root@aijan:/etc/dovecot# netstat -tlpn
  985. Connexions Internet actives (seulement serveurs)
  986. Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
  987. tcp 0 0 192.168.111.240:53 0.0.0.0:* LISTEN 552/named
  988. tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 552/named
  989. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 580/sshd
  990. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2376/master
  991. tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 552/named
  992. tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 649/apache2
  993. tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 2668/dovecot
  994. tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 2668/dovecot
  995. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 649/apache2
  996. tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 2376/master
  997. tcp6 0 0 :::53 :::* LISTEN 552/named
  998. tcp6 0 0 :::22 :::* LISTEN 580/sshd
  999. tcp6 0 0 :::25 :::* LISTEN 2376/master
  1000. tcp6 0 0 ::1:953 :::* LISTEN 552/named
  1001. tcp6 0 0 :::993 :::* LISTEN 2668/dovecot
  1002. tcp6 0 0 :::143 :::* LISTEN 2668/dovecot
  1003. tcp6 0 0 :::465 :::* LISTEN 2376/master
  1004. root@aijan:/etc/dovecot#
  1005. </code></pre>
  1006. <p>Le port 993 est actif.</p>
  1007. <h2 id="mise-en-route">Mise en route</h2>
  1008. <p>Pour l'instant, notre Firewall n'autorise aucune conenxion sur les port 143, 993, 465, 587. Nous allons ouvrir les ports. Avant cela, il nous faut supprimer l'utilisateur <strong>testmail</strong> ...</p>
  1009. <pre><code>userdel testmail
  1010. </code></pre>
  1011. <p>Pensez à supprimer le répertoire home de cet utlisateur:</p>
  1012. <pre><code>rm -Rf /home/testmail
  1013. </code></pre>
  1014. <p>Ceci fait, ouvrons nos ports. Voici les lignes à ajouter à notre programme firewall.sh. Il suffira de le lancer et de sauver la configuration (comme déjà vu précédemment)</p>
  1015. <pre><code class="shell"> #mail!!
  1016. # Mail SMTP:25
  1017. $IPT -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
  1018. $IPT -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
  1019. $IP6T -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
  1020. $IP6T -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
  1021. # Mail SMTP:587
  1022. $IPT -t filter -A INPUT -p tcp --dport 587 -j ACCEPT
  1023. $IPT -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
  1024. $IP6T -t filter -A INPUT -p tcp --dport 597 -j ACCEPT
  1025. $IP6T -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT
  1026. # Mail IMAP:143
  1027. $IPT -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
  1028. $IPT -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
  1029. $IP6T -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
  1030. $IP6T -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
  1031. # Mail IMAPS:993
  1032. $IPT -t filter -A INPUT -p tcp --dport 993 -j ACCEPT
  1033. $IPT -t filter -A OUTPUT -p tcp --dport 993 -j ACCEPT
  1034. $IP6T -t filter -A INPUT -p tcp --dport 993 -j ACCEPT
  1035. $IP6T -t filter -A OUTPUT -p tcp --dport 993 -j ACCEPT
  1036. # Mail 465
  1037. $IPT -t filter -A INPUT -p tcp --dport 465 -j ACCEPT
  1038. $IPT -t filter -A OUTPUT -p tcp --dport 465 -j ACCEPT
  1039. $IP6T -t filter -A INPUT -p tcp --dport 465 -j ACCEPT
  1040. $IP6T -t filter -A OUTPUT -p tcp --dport 465 -j ACCEPT
  1041. </code></pre>
  1042. <h3 id="test_7">Test</h3>
  1043. <pre><code class="shell">root@aijan:/home/ericadmin/bin# ./firewall.sh restart
  1044. firewall stopped [OK]
  1045. firewall started [OK]
  1046. root@aijan:/home/ericadmin/bin# iptables -L
  1047. Chain INPUT (policy DROP)
  1048. target prot opt source destination
  1049. ACCEPT all -- anywhere anywhere
  1050. ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
  1051. ACCEPT tcp -- anywhere anywhere tcp dpt:domain
  1052. ACCEPT udp -- anywhere anywhere udp dpt:domain
  1053. ACCEPT tcp -- 192.168.111.150 anywhere
  1054. ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
  1055. ACCEPT tcp -- anywhere anywhere tcp dpt:http
  1056. ACCEPT tcp -- anywhere anywhere tcp dpt:https
  1057. ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
  1058. ACCEPT tcp -- anywhere anywhere tcp dpt:submission
  1059. ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
  1060. ACCEPT tcp -- anywhere anywhere tcp dpt:imaps
  1061. ACCEPT tcp -- anywhere anywhere tcp dpt:urd
  1062. Chain FORWARD (policy DROP)
  1063. target prot opt source destination
  1064. Chain OUTPUT (policy ACCEPT)
  1065. target prot opt source destination
  1066. ACCEPT all -- anywhere anywhere
  1067. ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
  1068. ACCEPT udp -- anywhere anywhere udp dpt:ntp
  1069. ACCEPT tcp -- anywhere anywhere tcp dpt:http
  1070. ACCEPT tcp -- anywhere anywhere tcp dpt:https
  1071. ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
  1072. ACCEPT tcp -- anywhere anywhere tcp dpt:submission
  1073. ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
  1074. ACCEPT tcp -- anywhere anywhere tcp dpt:imaps
  1075. ACCEPT tcp -- anywhere anywhere tcp dpt:urd
  1076. root@aijan:/home/ericadmin/bin#
  1077. </code></pre>
  1078. <p>Les ports sont bien ouverts.
  1079. Et on sauvegarde:</p>
  1080. <pre><code>service netfilter-persistent save
  1081. </code></pre>
  1082. <pre><code class="shell">root@aijan:/home/ericadmin/bin# service netfilter-persistent save
  1083. [....] Saving netfilter rules...run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
  1084. run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
  1085. done.
  1086. root@aijan:/home/ericadmin/bin#
  1087. </code></pre>
  1088. <p>Les règles IPV4 et IPV6 sont sauvegardées.</p>
  1089. <h2 id="mise-en-place-du-fichier-auto-configuration-mozilla">Mise en place du fichier "auto-configuration" Mozilla</h2>
  1090. <p>A voir ....</p>
  1091. <h2 id="test-en-situation">Test en situation ...</h2>
  1092. <h3 id="lecture-des-messages">Lecture des messages</h3>
  1093. <p>A partir de ma machine de bureau, test de connexion en IMAP, liste des messages, et lecture du contenu (port 993):</p>
  1094. <pre><code class="shell">eric@aldebaran:~$ openssl s_client -connect atom.yojik.net:993 -quiet
  1095. depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
  1096. verify return:1
  1097. depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
  1098. verify return:1
  1099. depth=0 CN = aijan.yojik.net
  1100. verify return:1
  1101. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
  1102. a login ericadmin eBnIDQ+FZZI=
  1103. a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in
  1104. b select inbox
  1105. * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk)
  1106. * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk \*)] Flags permitted.
  1107. * 3 EXISTS
  1108. * 0 RECENT
  1109. * OK [UIDVALIDITY 1527410684] UIDs valid
  1110. * OK [UIDNEXT 4] Predicted next UID
  1111. b OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
  1112. c FETCH 1:* FLAGS
  1113. * 1 FETCH (FLAGS (\Seen NonJunk))
  1114. * 2 FETCH (FLAGS (\Seen NonJunk))
  1115. * 3 FETCH (FLAGS (\Seen))
  1116. c OK Fetch completed (0.001 + 0.000 secs).
  1117. d Fetch BODY[TEXT]
  1118. d BAD Error in IMAP command FETCH: Invalid arguments (0.000 + 0.000 secs).
  1119. d fetch body
  1120. d BAD Error in IMAP command FETCH: Invalid arguments (0.000 + 0.000 secs).
  1121. d FETCH 1 body
  1122. * 1 FETCH (BODY (&quot;text&quot; &quot;plain&quot; (&quot;charset&quot; &quot;us-ascii&quot;) NIL NIL &quot;7bit&quot; 10 2))
  1123. d OK Fetch completed (0.002 + 0.000 + 0.001 secs).
  1124. e fetch 2 body
  1125. * 2 FETCH (BODY (&quot;text&quot; &quot;plain&quot; (&quot;charset&quot; &quot;us-ascii&quot;) NIL NIL &quot;7bit&quot; 3 1))
  1126. e OK Fetch completed (0.001 + 0.000 secs).
  1127. f fetch 2 body[]
  1128. * 2 FETCH (BODY[] {466}
  1129. Return-Path: &lt;ericadmin@aijan.yojik.net&gt;
  1130. X-Original-To: root@localhost
  1131. Delivered-To: root@localhost
  1132. Received: by aijan.yojik.net (Postfix, from userid 1000)
  1133. id 6D42CD00904; Mon, 21 May 2018 12:11:41 +0200 (CEST)
  1134. To: &lt;root@localhost&gt;
  1135. Subject: essai d'envoi à root
  1136. X-Mailer: mail (GNU Mailutils 3.1.1)
  1137. Message-Id: &lt;20180521101141.6D42CD00904@aijan.yojik.net&gt;
  1138. Date: Mon, 21 May 2018 12:11:41 +0200 (CEST)
  1139. From: ericadmin@aijan.yojik.net (Eric Streit)
  1140. .
  1141. )
  1142. f OK Fetch completed (0.001 + 0.000 secs).
  1143. g fetch 3 body[]
  1144. * 3 FETCH (BODY[] {735}
  1145. Return-Path: &lt;eric@aldebaran.yojik.net&gt;
  1146. X-Original-To: ericadmin@aijan.yojik.net
  1147. Delivered-To: ericadmin@aijan.yojik.net
  1148. Received: from aldebaran.yojik.net (unknown [IPv6:2a01:e0a:54:c220:6423:417b:6ef:ee21])
  1149. by aijan.yojik.net (Postfix) with ESMTP id EC11BD00903
  1150. for &lt;ericadmin@aijan.yojik.net&gt;; Mon, 21 May 2018 12:12:56 +0200 (CEST)
  1151. Received: by aldebaran.yojik.net (Postfix, from userid 1000)
  1152. id 8B42920620A; Mon, 21 May 2018 12:12:56 +0200 (CEST)
  1153. To: &lt;ericadmin@aijan.yojik.net&gt;
  1154. Subject: Re-essai
  1155. X-Mailer: mail (GNU Mailutils 3.1.1)
  1156. Message-Id: &lt;20180521101256.8B42920620A@aldebaran.yojik.net&gt;
  1157. Date: Mon, 21 May 2018 12:12:56 +0200 (CEST)
  1158. From: eric@aldebaran.yojik.net (Eric Streit)
  1159. re-essai de aldebaran
  1160. .
  1161. )
  1162. g OK Fetch completed (0.001 + 0.000 secs).
  1163. h logout
  1164. * BYE Logging out
  1165. h OK Logout completed (0.000 + 0.000 secs).
  1166. eric@aldebaran:~$
  1167. </code></pre>
  1168. <p>A partir de ma machine de bureau, test de connexion en IMAP, liste des messages, et lecture du contenu (port 143):</p>
  1169. <pre><code class="shell">eric@aldebaran:~$ telnet aijan.yojik.net 143
  1170. Trying 192.168.111.240...
  1171. Connected to aijan.yojik.net.
  1172. Escape character is '^]'.
  1173. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
  1174. ehlo aldebaran.yojik.eu
  1175. ehlo BAD Error in IMAP command received by server.
  1176. a login ericadmin eBnIDQ+FZZI=
  1177. a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in
  1178. b select inbox
  1179. * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk)
  1180. * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk \*)] Flags permitted.
  1181. * 3 EXISTS
  1182. * 0 RECENT
  1183. * OK [UIDVALIDITY 1527410684] UIDs valid
  1184. * OK [UIDNEXT 4] Predicted next UID
  1185. b OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
  1186. c logout
  1187. * BYE Logging out
  1188. c OK Logout completed (0.000 + 0.000 secs).
  1189. Connection closed by foreign host.
  1190. eric@aldebaran:~$
  1191. </code></pre>
  1192. <p>La récupération des messages s'est bien passée.</p>
  1193. <h3 id="envoi-de-messages">Envoi de messages</h3>
  1194. <p>Image de la configuration à faire sur <strong>thunderbird</strong>:</p>
  1195. <p>L'envoi de messages à partir de Thunderbird fonctionne. Il faut bien configurer le port smtp à 465 ...</p>
  1196. <p>Image de la configuration à faire.</p>
  1197. <p>L'envoi sur mon serveur personnel a échoué: l'adresse IPV4 fournie par FREE était sur une liste de blocage (anti-spams). J'ai demandé à être enlevé de cette liste, ce qui va prendre 48H environ.</p>
  1198. <p>Ré-essai ensuite ...</p>
  1199. <ol>
  1200. <li>Envoi d'un message sur le compte du serveur à partir de la machine de bureau (thunderbird): OK.</li>
  1201. <li>Réception des messages sur la machine de bureau (thunderbird): OK.</li>
  1202. <li>Envoi d'un message à partir du compte du serveur (thunderbird): ça OK.</li>
  1203. </ol>
  1204. <h2 id="installation-dun-analyseur-des-logs-mail">Installation d'un analyseur des logs mail</h2>
  1205. <h3 id="installation">Installation</h3>
  1206. <pre><code class="shell">apt-get install pflogsumm
  1207. </code></pre>
  1208. <h3 id="utilisation">Utilisation</h3>
  1209. <pre><code>pflogsumm -d today /var/log/mail.log
  1210. </code></pre>
  1211. <p>Vous obtiendrez une analyse approfondie des logs de la partie mail.</p>
  1212. <pre><code class="shell">root@adara:/home/ericadmin# pflogsumm -d today /var/log/mail.log
  1213. Postfix log summaries for Jul 1
  1214. Grand Totals
  1215. messages
  1216. 24 received
  1217. 23 delivered
  1218. 0 forwarded
  1219. 0 deferred
  1220. 0 bounced
  1221. 29 rejected (55%)
  1222. 0 reject warnings
  1223. 0 held
  1224. 0 discarded (0%)
  1225. 2248k bytes received
  1226. 2248k bytes delivered
  1227. 17 senders
  1228. 13 sending hosts/domains
  1229. 3 recipients
  1230. 2 recipient hosts/domains
  1231. Per-Hour Traffic Summary
  1232. time received delivered deferred bounced rejected
  1233. --
  1234. 0000-0100 0 0 0 0 0
  1235. 0100-0200 0 0 0 0 0
  1236. 0200-0300 0 0 0 0 0
  1237. 0300-0400 0 0 0 0 3
  1238. 0400-0500 0 0 0 0 7
  1239. 0500-0600 0 0 0 0 1
  1240. 0600-0700 1 1 0 0 1
  1241. 0700-0800 2 2 0 0 1
  1242. 0800-0900 4 4 0 0 7
  1243. 0900-1000 4 4 0 0 2
  1244. 1000-1100 10 9 0 0 2
  1245. 1100-1200 2 2 0 0 1
  1246. 1200-1300 0 0 0 0 2
  1247. 1300-1400 0 0 0 0 0
  1248. 1400-1500 0 0 0 0 0
  1249. 1500-1600 1 1 0 0 2
  1250. 1600-1700 0 0 0 0 0
  1251. 1700-1800 0 0 0 0 0
  1252. 1800-1900 0 0 0 0 0
  1253. 1900-2000 0 0 0 0 0
  1254. 2000-2100 0 0 0 0 0
  1255. 2100-2200 0 0 0 0 0
  1256. 2200-2300 0 0 0 0 0
  1257. 2300-2400 0 0 0 0 0
  1258. Host/Domain Summary: Message Delivery
  1259. --
  1260. sent cnt bytes defers avg dly max dly host/domain
  1261. -- - - - - --
  1262. 21 2241k 0 4,6 s 47,0 s yojik.eu
  1263. 2 7008 0 0,8 s 1,0 s picapo.net
  1264. Host/Domain Summary: Messages Received
  1265. msg cnt bytes host/domain
  1266. -- - --
  1267. 7 1918k yojik.eu
  1268. 4 12773 lists.oasis-open.org
  1269. 2 29818 nongnu.org
  1270. 1 61932 sg.booking.com
  1271. 1 53567 bounces.amazon.fr
  1272. 1 46492 bounce.newsletter.delamaison.fr
  1273. 1 36499 mail.bitwarden.com
  1274. 1 36232 infos.materiel.net
  1275. 1 25976 newsdesmarq.ccemails.com
  1276. 1 20320 tradepubs.nl00.net
  1277. 1 6892 5v7mfyjapqzjtpqc.fncpq.3-xsveaq.na6.bnc.salesforce.com
  1278. 1 4987 hussein.org
  1279. 1 2021 inhrr.gob.ve
  1280. Senders by message count
  1281. 6 goulya@yojik.eu
  1282. 2 m17n-list-bounces+eric=yojik.eu@nongnu.org
  1283. 1 bounces+3318447-412f-eric=yojik.eu@mail.bitwarden.com
  1284. 1 bounces+4713178-1151-eric=yojik.eu@sg.booking.com
  1285. 1 email@newsdesmarq.ccemails.com
  1286. 1 do_not_reply=netgear.com__413ah3rz7vwihm9c.ly8u7ddmyngfvref@5v7mfyjapqzjtpqc.fncpq.3-xsveaq.na6.bnc.salesforce.com
  1287. 1 eric@yojik.eu
  1288. 1 20180701072218f38c0af2e0e840cf938ae502e570p0eu@bounces.amazon.fr
  1289. 1 bounce-419_HTML-28507929-182305-7304800-452@bounce.newsletter.delamaison.fr
  1290. 1 p-m8bl38j2p7vg88u3n3hrzdpp4rcbq9n7x8cvc2fn23u5pwpnseghvzq-BHP30@infos.materiel.net
  1291. 1 Offers@tradepubs.nl00.net
  1292. 1 info@hussein.org
  1293. 1 docbook-apps-return-14782-eric=yojik.eu@lists.oasis-open.org
  1294. 1 docbook-apps-return-14783-eric=yojik.eu@lists.oasis-open.org
  1295. 1 docbook-apps-return-14784-eric=yojik.eu@lists.oasis-open.org
  1296. 1 docbook-return-3958-eric=yojik.eu@lists.oasis-open.org
  1297. 1 maria.rueda@inhrr.gob.ve
  1298. Recipients by message count
  1299. 15 eric@yojik.eu
  1300. 6 goulya@yojik.eu
  1301. 2 nico@picapo.net
  1302. Senders by message size
  1303. --
  1304. 1917k goulya@yojik.eu
  1305. 61932 bounces+4713178-1151-eric=yojik.eu@sg.booking.com
  1306. 53567 20180701072218f38c0af2e0e840cf938ae502e570p0eu@bounces.amazon.fr
  1307. 46492 bounce-419_HTML-28507929-182305-7304800-452@bounce.newsletter.delamaison.fr
  1308. 36499 bounces+3318447-412f-eric=yojik.eu@mail.bitwarden.com
  1309. 36232 p-m8bl38j2p7vg88u3n3hrzdpp4rcbq9n7x8cvc2fn23u5pwpnseghvzq-BHP30@infos.materiel.net
  1310. 29818 m17n-list-bounces+eric=yojik.eu@nongnu.org
  1311. 25976 email@newsdesmarq.ccemails.com
  1312. 20320 Offers@tradepubs.nl00.net
  1313. 6892 do_not_reply=netgear.com__413ah3rz7vwihm9c.ly8u7ddmyngfvref@5v7mfyjapqzjtpqc.fncpq.3-xsveaq.na6.bnc.salesforce.com
  1314. 4987 info@hussein.org
  1315. 4275 docbook-apps-return-14782-eric=yojik.eu@lists.oasis-open.org
  1316. 3589 docbook-return-3958-eric=yojik.eu@lists.oasis-open.org
  1317. 2564 docbook-apps-return-14784-eric=yojik.eu@lists.oasis-open.org
  1318. 2345 docbook-apps-return-14783-eric=yojik.eu@lists.oasis-open.org
  1319. 2021 maria.rueda@inhrr.gob.ve
  1320. 1124 eric@yojik.eu
  1321. Recipients by message size
  1322. --
  1323. 1916k goulya@yojik.eu
  1324. 333462 eric@yojik.eu
  1325. 7008 nico@picapo.net
  1326. message deferral detail: none
  1327. message bounce detail (by relay): none
  1328. message reject detail
  1329. RCPT
  1330. blocked using zen.spamhaus.org (total: 2)
  1331. 1 amazonaws.com
  1332. 1 b941c024.business.dg-w.de
  1333. cannot find your hostname (total: 25)
  1334. 9 183.159.95.6
  1335. 3 210.239.8.55
  1336. 3 114.228.155.122
  1337. 2 2406:fc00:1:7:214:22ff:fe08:eb34
  1338. 2 117.63.127.41
  1339. 2 159.89.236.50
  1340. 1 140.127.1.29
  1341. 1 37.49.227.169
  1342. 1 80.211.61.89
  1343. 1 222.95.187.160
  1344. Client host rejected: Access denied (total: 2)
  1345. 2 80.211.61.89
  1346. message reject warning detail: none
  1347. message hold detail: none
  1348. message discard detail: none
  1349. smtp delivery failures: none
  1350. Warnings
  1351. --
  1352. smtpd (total: 16)
  1353. 6 hostname host89-61-211-80.serverdedicati.aruba.it does not reso...
  1354. 3 hostname host-210.239.8.55.n-cube.ne.jp does not resolve to add...
  1355. 2 mm-115-58-214-37.mogilev.dynamic.pppoe.byfly.by[37.214.58.115]:...
  1356. 2 hostname 41.127.63.117.broad.cz.js.dynamic.163data.com.cn does ...
  1357. 1 hostname hn.kd.ny.adsl does not resolve to address 115.57.125.2...
  1358. 1 hostname mails.npust.edu.tw does not resolve to address 140.127...
  1359. 1 hostname 82-64-48-5.subs.proxad.net does not resolve to address...
  1360. Fatal Errors: none
  1361. Panics: none
  1362. Master daemon messages: none
  1363. root@adara:/home/ericadmin#
  1364. </code></pre>
  1365. <p>Bien: la configuration est quasi terminée: il nous reste à ajouter SPF, DKIM, Dane et DNSSEC. et les comptes virtuels ...</p>
  1366. <h2 id="installation-de-rainloop-webmail">Installation de rainloop (webmail)</h2>
  1367. <p>Télécharger la version communautaire sur le site, et la décompresser dans votre répertoire web (/home/www/ pour moi.)</p>
  1368. <h3 id="la-documentation-dinstallation-est-ici">La documentation d'installation est ici:</h3>
  1369. <p><a href="http://www.rainloop.net/docs/installation/" title="Rainloop: installation">Documentation de l'installation de rainloop</a></p>
  1370. <h3 id="installation-des-dependances-librairies-et-programmes">Installation des dépendances: librairies et programmes</h3>
  1371. <p><em>Partie à améliorer .....</em></p>
  1372. <p>Rainloop repose sur le language PHP et il y a beaucoup de librairies nécessaires à son fonctionnement. J'ai installé la base et regardé les erreurs pour charger au fur et à mesure les paquets nécessaires.</p>
  1373. <p>Je vais plutôt faire la liste de tous les paquets installés avec php; ce sera plus simple. Vous aurez aussi besoin de <strong>unzip</strong> pour dé-archiver rainloop.</p>
  1374. <pre><code class="shell">apt install unzip
  1375. </code></pre>
  1376. <pre><code class="shell">root@atom:/var/www/html/yaziknet# dpkg -l | grep php
  1377. ii libapache2-mod-php7.0 7.0.33-0+deb9u1 i386 server-side, HTML-embedded scripting language (Apache 2 module)
  1378. ii php-common 1:49 all Common files for PHP packages
  1379. ii php7.0 7.0.33-0+deb9u1 all server-side, HTML-embedded scripting language (metapackage)
  1380. ii php7.0-cli 7.0.33-0+deb9u1 i386 command-line interpreter for the PHP scripting language
  1381. ii php7.0-common 7.0.33-0+deb9u1 i386 documentation, examples and common module for PHP
  1382. ii php7.0-curl 7.0.33-0+deb9u1 i386 CURL module for PHP
  1383. ii php7.0-json 7.0.33-0+deb9u1 i386 JSON module for PHP
  1384. ii php7.0-opcache 7.0.33-0+deb9u1 i386 Zend OpCache module for PHP
  1385. ii php7.0-readline 7.0.33-0+deb9u1 i386 readline module for PHP
  1386. ii php7.0-sqlite3 7.0.33-0+deb9u1 i386 SQLite3 module for PHP
  1387. ii php7.0-xml 7.0.33-0+deb9u1 i386 DOM, SimpleXML, WDDX, XML, and XSL module for PHP
  1388. root@atom:/var/www/html/yaziknet#
  1389. </code></pre>
  1390. <h3 id="creation-du-repertoire-ou-sera-installe-rainloop">Création du répertoire où sera installé rainloop:</h3>
  1391. <p>Nous installerons rainloop dans le répertoire par défaut de apache:</p>
  1392. <pre><code class="shell">/var/www/html/
  1393. </code></pre>
  1394. <pre><code class="shell">root@atom:/home/www# cd /var/www/html
  1395. root@atom:/var/www/html# mkdir rainloop
  1396. root@atom:/var/www/html# cd rainloop
  1397. </code></pre>
  1398. <h3 id="telechargement-du-programme-et-decompression-dans-son-repertoire-daccueil">Téléchargement du programme et décompression dans son répertoire d'accueil</h3>
  1399. <pre><code class="shell">wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip
  1400. unzip rainloop-latest.zip -d /var/www/html/rainloop
  1401. </code></pre>
  1402. <p>Il existe dans la documentation une approche différente <strong>tout en un</strong>, qui fait appel à un script <strong>qui fait tout</strong>. Voyez la documentation correspondante. Remplacez bien sûr <strong>repository</strong> dans les commandes suivantes par le répertoire dans lequel vous avez installé rainloop.</p>
  1403. <pre><code class="shell">url -sL https://repository.rainloop.net/installer.php | php
  1404. ou
  1405. wget -qO- https://repository.rainloop.net/installer.php | php
  1406. </code></pre>
  1407. <h3 id="configuration-des-permissions">Configuration des permissions</h3>
  1408. <p>Voilà les étapes à suivre:</p>
  1409. <p>• Donner les droits de lecture/écriture correspondants et nécessaires à l'application:</p>
  1410. <pre><code class="shell">cd /var/www/html/rainloop
  1411. find . -type d -exec chmod 755 {} \;
  1412. find . -type f -exec chmod 644 {} \;
  1413. </code></pre>
  1414. <p>• Déterminer l'utilisateur (pour nous, www-data du groupe www-data):</p>
  1415. <pre><code class="shell">cd /var/www/html/rainloop
  1416. chown -R www-data:www-data .
  1417. </code></pre>
  1418. <h3 id="mise-en-route-du-webmail-dans-apache">Mise en route du webmail dans apache</h3>
  1419. <p>Un example de site web apache (dans /etc/apache2/sites-available), que j'ai appelé <strong>webmail.conf</strong>:</p>
  1420. <pre><code class="shell">&lt;VirtualHost *:80&gt;
  1421. ServerAdmin webmaster@yojik.net
  1422. ServerName webmail.yojik.net
  1423. DocumentRoot /var/www/html/rainloop/
  1424. &lt;Directory &quot;/var/www/html/rainloop/&quot;&gt;
  1425. Options Indexes MultiViews
  1426. AllowOverride FileInfo AuthConfig Indexes
  1427. Order allow,deny
  1428. allow from all
  1429. Require all granted
  1430. &lt;/Directory&gt;
  1431. ErrorLog ${APACHE_LOG_DIR}/error.log
  1432. CustomLog ${APACHE_LOG_DIR}/access.log combined
  1433. &lt;/VirtualHost&gt;
  1434. </code></pre>
  1435. <p>Le webmail sera accessible sous: <strong>webmail.yojik.net</strong></p>
  1436. <h4 id="validation-du-site-dans-apache-et-rechargement-de-apache">Validation du site dans apache et rechargement de apache:</h4>
  1437. <pre><code class="shell">root@atom:/etc# a2ensite webmail
  1438. root@adara:/home/www/rainloop# service apache2 restart
  1439. </code></pre>
  1440. <h3 id="installation-de-linterface-sqlite-de-php">Installation de l'interface sqlite de php</h3>
  1441. <p>Pour certaines parties de rainloop, une base de données est nécessaire; il y a le choix entre plusieurs bases de données, comme mysql, postgresql et sqlite, que j'ai choisie.</p>
  1442. <p>Il nous faut donc installer les dépendances php correspondantes:</p>
  1443. <pre><code class="shell">root@adara:/home/www/rainloop# apt install php7.0-sqlite3
  1444. etc...
  1445. </code></pre>
  1446. <p>On relance apache:</p>
  1447. <pre><code class="shell">root@adara:/home/www/rainloop# service apache2 restart
  1448. root@adara:/home/www/rainloop#
  1449. </code></pre>
  1450. <h3 id="ajout-de-lacces-en-https-de-notre-webmail-avec-le-programme-certbot-de-letsencrypt">Ajout de l'accès en <strong>https</strong> de notre webmail (avec le programme certbot de letsencrypt):</h3>
  1451. <pre><code class="shell">root@adara:/home/www/rainloop# certbot --apache
  1452. </code></pre>
  1453. <p>et suivre les instructions.</p>
  1454. <p>Relancez apache:</p>
  1455. <pre><code class="shell">root@adara:/home/www/rainloop# service apache2 restart
  1456. root@adara:/home/www/rainloop#
  1457. </code></pre>
  1458. <p>Votre webmail est maintenant accessible. Il nous reste à le configurer.</p>
  1459. <h3 id="configuration-de-notre-webmail">Configuration de notre webmail</h3>
  1460. <p>Le panneau de configuration est acessible à cette adresse:</p>
  1461. <pre><code>http://webmail.yojik.net/?admin
  1462. </code></pre>
  1463. <p>Les identifiants <strong>d'usine</strong> sont les suivants:</p>
  1464. <ul>
  1465. <li>login: admin</li>
  1466. <li>password: 12345</li>
  1467. </ul>
  1468. <p>Ils ont à changer d'urgence! dans le panneau de configuration.</p>
  1469. <p>Vous pouvez ensuite ajouter vos domaines ainsi que les comptes de messagerie. Les images suivantes sont celles de la documentation officielle.</p>
  1470. <p><img alt="Image du panneau de configuration: les domaines" src="../Images/domain-11.png" /></p>
  1471. <p><img alt="Image du panneau de configuration: les comptes" src="../Images/domain-12.png" /></p>
  1472. <p>Vous pouvez parcourir le menu gauche pour adapter votre webmail à vos convenance: plugins, thèmes, language d'affichage etc ...</p>
  1473. </div>
  1474. </div>
  1475. <footer>
  1476. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  1477. <a href="../11-onze/" class="btn btn-neutral float-right" title="Installation des certificats letsencrypt">Next <span class="icon icon-circle-arrow-right"></span></a>
  1478. <a href="../9-neuf/" class="btn btn-neutral" title="Installation d'un serveur web"><span class="icon icon-circle-arrow-left"></span> Previous</a>
  1479. </div>
  1480. <hr/>
  1481. <div role="contentinfo">
  1482. <!-- Copyright etc -->
  1483. </div>
  1484. 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>.
  1485. </footer>
  1486. </div>
  1487. </div>
  1488. </section>
  1489. </div>
  1490. <div class="rst-versions" role="note" style="cursor: pointer">
  1491. <span class="rst-current-version" data-toggle="rst-current-version">
  1492. <span><a href="../9-neuf/" style="color: #fcfcfc;">&laquo; Previous</a></span>
  1493. <span style="margin-left: 15px"><a href="../11-onze/" style="color: #fcfcfc">Next &raquo;</a></span>
  1494. </span>
  1495. </div>
  1496. </body>
  1497. </html>