Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
technique:adminsys:mail:tests:mail_local:ldap [2021/11/22 22:29] – ↷ Page déplacée de technique:internal_serv:mail:tests:mail_local:ldap à technique:adminsys:mail:tests:mail_local:ldap qduchemitechnique:adminsys:mail:tests:mail_local:ldap [2022/05/24 20:59] (Version actuelle) ppom
Ligne 1: Ligne 1:
 +====== 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.)):
 +
 +<code>
 +$docker exec -it pica-mail-mta /bin/bash
 +</code>
 +
 +On peut maintenant envoyer un mail à l'aide de la commande ''telnet'' :
 +
 +<code>
 +#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:<huetremy@picasoft.net>
 +250 2.1.0 Ok
 +>RCPT TO:<louise@picasoft.net>
 +250 2.1.5 Ok
 +>DATA
 +354 End data with <CR><LF>.<CR><LF>
 +>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
 +</code>
 +===== 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:
 +
 +<code>
 +$docker exec -it pica-mail-mda /bin/bash
 +</code>
 +
 +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.))  :
 +
 +<code>
 +#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: <huetremy@picasoft.net>
 +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 <louise@picasoft.net>; 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 <louise@picasoft.net>; 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
 +</code>
 +