====== Authentification LDAP ====== Cette procédure décrit l'envoi de mail en local d'un utilisateur LDAP à un autre. C'est la solution qui est attendue au terme de la TX. :!: Puisque plusieurs conversations par ''telnet'' sont reportées ici, et afin de simplifier la lecture, nous avons adopté la convention du chevron ''>'' pour spécifier les lignes entrées par l'utilisateur. Mais en réalité, **il n'est pas requis** ! Du reste, c'est la convention ''bash'' qui est adoptée (''#'' pour ''root'' et ''$'' sinon). ===== Build et lancement des conteneurs ===== Utiliser le [fichier Compose du dépôt](https://gitlab.utc.fr/picasoft/projets/services/mail-system/), à lancer par exemple sur la machine de test : ```bash docker-compose build docker-compose up -d ``` ===== Envoi d'un mail à une adresse locale ===== Une fois les conteneurs lancés, nous allons pouvoir envoyer un mail d'un utilisateur LDAP ''huetremy'' à un utilisateur LDAP ''louise''. Tous deux ont été créés dans le LDAP de test de Picasoft préalablement. (:!: **Attention** au schéma LDAP utilisé : le //bind// LDAP s'opère sur l' ''uid'' de l'utilisateur LDAP) Pour cela, il faut rentrer à l'intérieur du conteneur du MTA((En effet, par mesure de sécurité, la connexion au serveur n'est acceptée que pour l'adresse ''127.0.0.1'', donc l'envoi de mail ne peut s'effectuer que //depuis// le serveur lui-même.)): $docker exec -it pica-mail-mta /bin/bash On peut maintenant envoyer un mail à l'aide de la commande ''telnet'' : #telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 pica01-test.test.picasoft.net ESMTP Postfix (Debian/GNU) >helo pica01-test.test.picasoft.net 250 pica01-test.test.picasoft.net >MAIL FROM: 250 2.1.0 Ok >RCPT TO: 250 2.1.5 Ok >DATA 354 End data with . >Subject: Second mail! >Bonjour Pica-world! >. 250 2.0.0 Ok: queued as 946E8FB621 >quit 221 2.0.0 Bye Connection closed by foreign host. #exit ===== Consultation d'un mail en IMAP ===== Il convient enfin de vérifier que le mail a été reçu par le MDA. On rentre à l'intérieur du conteneur: $docker exec -it pica-mail-mda /bin/bash On interroge donc le serveur à l'aide de ''telnet''((Une explication simple et rapide des règles de conversation avec un serveur IMAP est consultable sur cette [[http://www.technologuepro.com/reseaux/Pratique-des-protocoles/Interrogation-d-un-serveur-mail-avec-telnet.html|page]]. Une description plus complète et plus utile (pour comprendre ce qu'on fait) est disponible sur cette [[http://irp.nain-t.net/doku.php/190imap:030_commandes#syntaxe|autre page]].))((Il est intéressant de noter que l'authentification est confirmée à partir de la ligne n°7 du bloc suivant.)) : #telnet localhost 143 Trying 91.224.148.59... Connected to pica-mail-mda.pica01-test.test.picasoft.net. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready. >1 LOGIN louise loufouette 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 // Authentification réussie ! >2 SELECT INBOX * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 1 EXISTS * 1 RECENT * OK [UNSEEN 1] First unseen. /* on récupère l'UID du mail qui vient d'arriver, ici 1 mais pour vous il sera différent. Il est utile pour la commande suivante. */ * OK [UIDVALIDITY 1543245819] UIDs valid * OK [UIDNEXT 2] Predicted next UID 2 OK [READ-WRITE] Select completed (0.000 + 0.000 secs). >3 UID FETCH 1 BODY[HEADER] // on rentrer ici l'UID qu'on a récupéré * 1 FETCH (UID 1 FLAGS (\Seen \Recent) BODY[HEADER] {636} Return-Path: Delivered-To: louise@picasoft.net Received: from pica01-test.test.picasoft.net ([172.19.0.3]) by pica-mail-mda (Dovecot) with LMTP id 5gdxAPsP/Fs4AAAATq6bHg for ; Mon, 26 Nov 2018 15:23:39 +0000 Received: from pica01-test.test.picasoft.net (localhost [127.0.0.1]) by pica01-test.test.picasoft.net (Postfix) with SMTP id 946E8FB621 for ; Mon, 26 Nov 2018 15:22:59 +0000 (UTC) Subject: Second mail! Message-Id: <20181126152314.946E8FB621@pica01-test.test.picasoft.net> Date: Mon, 26 Nov 2018 15:22:59 +0000 (UTC) From: huetremy@picasoft.net ) 3 OK Fetch completed (0.001 + 0.000 secs). >4 UID FETCH 1 BODY[TEXT] * 1 FETCH (UID 1 BODY[TEXT] {21} Bonjour Pica-world! ) 4 OK Fetch completed (0.001 + 0.000 secs). >5 LOGOUT * BYE Logging out 5 OK Logout completed (0.000 + 0.000 secs). Connection closed by foreign host. #exit