-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le 10/02/2014 16:44, Olivier Calzi a C)crit :
> Hi all, Nous utilisons tous des services de messagerie en ligne tel
> que Gmail, Outlook, Yahoo... Mais si vous vouliez prendre le
> contrC4le de vos mails? comment faire?
> 
> Comparons la technologie Exchange de Microsoft avec ces CAL's et
> ces
/ces/ses/g
> licences et son budget ou  les technologies open-source comme
> Sendmail, Postfix ou dans notre cas OpenSMTPD.
> 
> Afin d'avoir un service aussi-complet que Gmail il faudra mettre
> en place plusieurs briques et OpenSMTPD en fait partie. OpenSMTPD
> est  un service SMTP libre utilisant le-dit protocole comme dC)fini
> dans la RFC 5321. Il permet d'C)changer des e-mails avec d'autres
> systC(mes utilisant ce protocole.
{On peut comprendre -si on est malcomprenant- que openSMTPd ne cause
qu'avec un autre OpenSMTPd}
> 
> OpenSMTPD est un service "jeune" qui a voulu reprendre la
> simplicitC) de comprC)hension et de configuration du firewall Packet
> Filter d'OpenBSD. Ce service est implC)mentC) depuis OpenBSD 4.6 dans
> la branche "unstable" et depuis OpenBSD 5.3 en tant que stable.
> 
> Le MAN est la premiC(res phase de l'approche pour utiliser ce
> service, il
/PremiC(res/premiC(re/
> fournit les premiC(res C)tapes pour un dC)ploiement propre.
> 
> *smtpd* is not enabled by default.In order to use it as the system 
> mailer, ensure the mail queue is empty, then stop sendmail(8)
> <http://www.openbsd.org/cgi-bin/man.cgi?query=sendmail&sektion=8&arch=&apropos=0&manpath=OpenBSD+Current>:
>
>  # /etc/rc.d/sendmail stop Modify the current mailwrapper(8)
> <http://www.openbsd.org/cgi-bin/man.cgi?query=mailwrapper&sektion=8&arch=&apropos=0&manpath=OpenBSD+Current>
> settings by editing //etc/mailer.conf/: sendmail
> /usr/sbin/smtpctl send-mail       /usr/sbin/smtpctl mailq
> /usr/sbin/smtpctl makemap         /usr/libexec/smtpd/makemap 
> newaliases      /usr/libexec/smtpd/makemap
> 
> Disable the sendmail clientmqueue entry in crontab(1)
> <http://www.openbsd.org/cgi-bin/man.cgi?query=crontab&sektion=1&arch=&apropos=0&manpath=OpenBSD+Current>.
>
>  Rebuild the aliases database, and enable the daemon:
> 
> # newaliases # echo "sendmail_flags=NO" >> /etc/rc.conf.local #
> echo "smtpd_flags=" >> /etc/rc.conf.local # /etc/rc.d/smtpd start
> 
> Maintenant que le paramC)trages du service au niveau du systC(me est
> faite
/paramC(trages/paramC(trage/
> nous allons passer C  la configuration du fichier "smtpd.conf".
> 
> listen on all
> 
> table aliases db:/etc/mail/aliases.db
> 
> # Uncomment the following to accept external mail for domain
> "example.org <http://example.org>" # # accept from any for domain
> "example.org <http://example.org>" alias <aliases> deliver to mbox 
> accept from any for domain "dev.unix-experience.fr
> <http://dev.unix-experience.fr>" alias <aliases> deliver to
> maildir accept for local alias <aliases> deliver to maildir accept
> for any relay
> 
> Le service est C  prC)sent configurC), il nous reste C  accepter les 
> connections externes sur le port 25 avec Packet Filter et C 
> redC)marrer
{Comment les accepter ces paquets TPC/25 ? : CF plus loin}
> le service smtpd avec la commande */etc/rc.d/smtpd restart***.
> 
> Pour vC)rifier votre configuration Opensmtpd comme pour PF il existe
> la commande*smtpd -n*.
> 
> Pour lancer smtpd en mode debug lancer la commande *smtpd -dv*.
> 
> Configurez maintenant Packet Filter (rappel: fichier
> */etc/pf.conf*)
> 
> pass in proto tcp to self port smtp
> 
> VC)rifiez maintenant la syntaxe et chargez le jeux de rC(gles:
> 
> #Pour verifier la syntaxe pfctl -nf /etc/pf.conf
> 
> #Pour charger les nouvelles regles
/regles/rC(gles/
> pfctl -f /etc/pf.conf
> 
> Pour conclure cette partie, rC)alisons un test:
> 
> telnet dev.unix-experience.fr <http://dev.unix-experience.fr> 25 
> Connected to dev.unix-experience.fr
> <http://dev.unix-experience.fr>. Escape character is '^]'. 220
> hermes.my.domain ESMTP OpenSMTPD
> 
> Allons un peux plus loin dans notre configuration et renforC'ons la
> sC)curitC):
> 
> 
> Chiffrement TLS
> 
> listen on pcn0 port 25 tls-require hostname Hermes
> 
> Accordons une analyse de cette ligne de configuration du fichier
> smtpd.conf
> 
> *listen on pcn0 port 25* : le service C)coutera sur l'interface pcn0
> sur le port 25 ( si le paramC(tre "all" est actif, le service
> C)coutera sur toutes les interfaces)
> 
> *tls-require* : Force les clients C  C)tablir une connexion
> sC)curisC)e avant d'C*tre autorisC)s C  dialoguer au SMTP, l'option
> *tls* seule peux suffire mais *tls-require* renforce globalement.
> Il faut noter que l'utilisation de ces options nC)cessite la
> crC)ation de certificats. Ces certificats peuvent C*tre spC)cifiC)s par
> l'ajout de l'option *certificate *<name>.crt, <name>.key, <name>.dh
> prC)sent dans le rC)pertoire /etc/mail/certs/. NC)anmoins si cette
> option n'est pas prC)sente, le service recherchera des certificats
> sous la forme pcn0.crt et pcn0.key qui correspond au nom de
> l'interface sur laquelle nous C)coutons. Il est utile de noter que
> si nous ne crC)ons qu'un certificat et sa clC) et non le CA ainsi que
> le DH le service utilisera  ces paramC(tres par dC)faut.
> 
> *hostname Hermes* : permet de spC)cifier un nom pour la banniC(re
> smtpd.
> 
> 
> Test d'envoi
> 
> Nous allons C  prC)sent rC)aliser un test db
> commande
> 
> *mail*, en ayant lancC) smtpd en mode debug, ainsi nous pourrons 
> comprendre les interactions par les logs.
> 
> echo "Ceci est un message de test" |mail -v -s "TEST MAIL"
> root@localhost
> 
> <<< 220 hermes.my.domain ESMTP OpenSMTPD
>>>> EHLO localhost
> <<< 250-hermes.my.domain Hello localhost [local], pleased to meet
> you <<< 250-8BITMIME <<< 250-ENHANCEDSTATUSCODES <<< 250-SIZE
> 36700160 <<< 250 HELP
>>>> MAIL FROM: <r...@hermes.my.domain>
> <<< 250 Ok
>>>> RCPT TO: <root@localhost>
> <<< 250 Recipient ok
>>>> DATA
> <<< 354 Enter mail, end with "." on a line by itself
>>>> .
> <<< 250 e636d771 Message accepted for delivery
>>>> QUIT
> <<< 221 Bye
> 
> Ceci est le dC)tail des interaction qui ont eu lieu pendant la 
> communication avec le serveur SMTP. On y retrouve les champs du 
> destinataire et de l'C)metteur.
> 
> Si on regarde les logs de plus prC(s, nous pouvons observer que le 
> service est extrC*mement verbeux:
> 
> smtp-in: New session 000000001f305e85 from host 0@localhost
> [local] debug: aliases_get: returned 1 aliases debug:
> 0x12ad371d0000: end of message, msgflags=0x0000 smtp-in: Accepted
> message e636d771 on session 000000001f305e85:
> from=<r...@hermes.my.domain>, to=<root@localhost>, size=245,
> ndest=1, proto=ESMTP debug: scheduler: evp:e636d771a30c37cc
> scheduled (mda) debug: lka: userinfo <getpwnam>:unixexperience 
> smtp-in: Closing session 000000001f305e85 debug: mda: new session
> 000000002962b8f8 for user "unixexperience" evpid e636d771a30c37cc 
> debug: smtp: 0x12ad371d0000: deleting session: done debug: mda: no
> more envelope for "unixexperience" debug: mda: got message fd 3 for
> session 000000002962b8f8 evpid e636d771a30c37cc debug: mda:
> querying mda fd for session 000000002962b8f8 evpid
> e636d771a30c37cc debug: smtpd: forking mda for session
> 000000002962b8f8: "/home/unixexperience/Maildir" as unixexperience 
> debug: mda: got mda fd 4 for session 000000002962b8f8 evpid
> e636d771a30c37cc debug: mda: end-of-file for session
> 000000002962b8f8 evpid e636d771a30c37cc debug: mda: all data sent
> for session 000000002962b8f8 evpid e636d771a30c37cc debug: smtpd:
> mda process done for session 000000002962b8f8: exited okay 
> delivery: Ok for e636d771a30c37cc: from=<r...@hermes.my.domain>,
> to=<root@localhost>, user=unixexperience, method=maildir, delay=1s,
> stat=Delivered debug: mda: session 000000002962b8f8 done debug:
> mda: user "unixexperience" becomes runnable debug: mda: all done
> for user "unixexperience"
> 
> Nous pouvons alors dC)crire les C)tapes de rC)ception du mail par dans
> un premier par le MTA qui C  rechercher un alias liant le
> destinataire (root@localhost), une fois identifiC) comme
> l'utilisateur "unixexperience", le MTA transmet le message au MDA
> interne de opensmtpd en  attribuant alors l'"evpid" que l'on peux
> interprC)tC) comme "enveloppe identifer" au mda.
> 
> Ensuite une session interne s'initialise ou le message va C*tre
> dC)livrC) dans l'emplacement Maildir correspond C  l'utilisateur
> unixexperience.
> 
> 
> Configuration d'un relai
/relai/relais/

> 
> Nous pouvons considC)rer vouloir faire relayer nos mail par notre
> service smtp dans le cadre ou les ports ou la destination de notre
> smtp est
/ou/oC9/

> bloquC)e C  notre emplacement gC)ographique ou tout simplement pour
> en faire un relais Nous allons donc ajouter une rC(gle qui
> relaierons nos
/relaierons/relaiera/

> mails via GMAIL.
> 
> Voici C  quoi ressemble notre fichier smtpd.conf:
> 
> listen on pcn0 port 25 tls-require auth hostname Hermes listen on
> pcn0 port 465 smtps auth  hostname Hermes
> 
> table secrets db:/etc/mail/secrets.db table aliases
> db:/etc/mail/aliases.db
> 
> # Uncomment the following to accept external mail for domain
> "example.org
> <http://example.org>"http://www.unix-experience.fr/wp-admin/post.php?post=2889&action=edit&message=10
>
> 
#
> # accept from any for domain "example.org <http://example.org>"
> alias <aliases> deliver to mbox accept from local for any relay via
> tls+ auth://la...@smtp.gmail.com:587
> <http://la...@smtp.gmail.com:587> auth <secrets>
> 
> Pour arriver C  cette configuration nous avons dC;t rC)aliser
> plusieurs
/dC;t/dC;/

> actions.
> 
> touch "label idgoo...@gmail.com:PASSWD" >> /etc/mail/secrets 
> makemap /etc/mail/secrets chmod 640 /etc/mail/secrets* chown
> root:_smtpd /etc/mail/secrets*
> 
> Nous avons donc crC)e un fichier contenant les informations 
> d'identification pour utiliser le relais de google. Ensuite nous
> avons crC)e le fichier "secrets.db" qui sera utililsC) par smtpd,
> nous avons
/utililsC)/utilisC)/
> restreints les permission sur ce fichier ainsi que son propriC)taire
> et
/restrients/restreint/
permissionS
> le groupe auxquels ils appartiennent pour que ceux-ci puissent
> C*tre
il appartient.
> lisible par le daemon d'OpenSMTPD. Nous avons renseignC) ce fichier
> sous cette forme dans "smtpd.conf".
> 
> table secrets db:/etc/mail/secrets.db
> 
> Maintenant la rC)gle du relai:
relais

> 
> accept from local for any relay via
> tls+auth://la...@smtp.gmail.com:587
> <http://la...@smtp.gmail.com:587> auth <secrets>
> 
> *accept from local for any  *: Nous acceptons les envoie de mail 
> localement pour n'importe quel destination.
> 
> *relay via tls+auth://la...@smtp.gmail.com:587 
> <http://la...@smtp.gmail.com:587> auth <secrets> *: Nous relayons
> via une authentification TLS en utilisant les information
> d'authentification correspondant C  l'C)tiquette label sur le smtp de
> Gmail sur le port 587 en utilisant la table secrets.
> 
> 
> Conclusion:
> 
> Nous reprendrons OpenSMTPD dans un article consacrC) C  la mise en
> place d'un serveur mail complet avec la technologie de
> virtualisation libvirt.
> 
> Ce qu'il faut retenir de OpenSMTPD:
> 
> - Produit en cours de dC)veloppement- Ajout de nouvel fonctionnalitC)
> dans
nouvelles fonctionnalitC)s

> le futur - FacilitC) de comprC)hension de la configuration
> 
> Ce qui est valable aujourd'hui pour son utilisation ne le sera
> sans doute plus demain.
> 
> Source:
> 
> Merci C  la Mailing List d'OpenSMTPD pour m'avoir C)claircit sur le 
> fonctionnement des C)tiquettes.
> 
> http://www.opensmtpd.org/fr/list.html
> 
> http://www.openbsd.org/cgi-bin/man.cgi?query=smtpd&sektion=8
> 
> END
> 
> Cordialement Olivier Calzi
> 
> 

Sinon, c'est top comme doc.
Merci
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Icedove - http://www.enigmail.net/

iEYEARECAAYFAlL5J0kACgkQlhqCFkbqHRbvFwCg0xzD5J7cMa0TxvMzkZokPIXm
El8AnRF6+GVUehxW+jaVSZtJcxYMHtVL
=dlkC
-----END PGP SIGNATURE-----

-- 
You received this mail because you are subscribed to misc@opensmtpd.org
To unsubscribe, send a mail to: misc+unsubscr...@opensmtpd.org

Reply via email to