Heureux possesseur d’un téléphone Android, j’utilise comme bon nombre de mes compères le logiciel K9-mail, probablement le meilleur MUA disponible sur cette plateforme, et qui a le bon goût d’être Libre, au contraire des centaines de milliers d’applis merdiques à 0.99€.
Jusqu’à présent, je n’utilisais K9 que pour lire mon mail, essentiellement dans le metro, “on the go”. Et puis finalement, je suis dit qu’il serait fort convivial de pouvoir utiliser mon serveur mail perso depuis un peu partout.
Mon serveur mail, est-il besoin de le préciser, est un domU NetBSD sur lequel sont executés Sendmail et dovecot.
Il y a un certain temps de cela, j’avais documenté la méthode pour FreeBSD, et assez étrangement, jamais pour NetBSD. Je vais donc corriger le tir de ce pas.
La première chose à faire est de préciser que nous souhaitons bénéficier du support TLS et SASL dans sendmail. Ceci est réalisé dans le fichier /etc/mk.conf:
PKG_OPTIONS.sendmail= tls sasl
Je ne sais pas si cela est lié au fait que la machine sur laquelle j’ai mené l’opération est “encore” en 5.0.2, mais la compilation de cyrus-sasl a misérablement échoué dans sa configuration par défaut. Ceci:
db_ndbm.c: In function '_sasldb_getdata': db_ndbm.c:95: warning: passing argument 3 of 'utils->getcallback' from incompatible pointer type
M’a mis sur la voie, et j’ai donc ajouté dans mon /etc/mk.conf la ligne suivante:
SASL_DBTYPE= berkeley
Un make update clean plus loin, tout était installé. Il est à noter que, par défaut, cyrus-sasl ne fournit aucun plugin, aussi, il sera nécessaire d’en installer au moins un, par exemple:
# cd /usr/pkgsrc/security/cy2-login # make install clean
Qui nous permettra d’utiliser le couple login/password de notre système. Deux étapes sont nécessaires pour utiliser cette méthode, tout d’abord, il faut installer le démon saslauthd, en charge des échange d’authentification plain text:
# cd /usr/pkgsrc/security/cyrus-saslauthd/ # make install clean # cp /usr/pkg/share/examples/rc.d/saslauthd /etc/rc.d # echo "saslauthd=YES" >> /etc/rc.conf # /etc/rc.d/saslauthd start
Puis de préciser au plugin SASL qu’il devra utiliser le démon saslauthd pour l’authentification en provenance de sendmail.
# cat /usr/pkg/lib/sasl2/Sendmail.conf pwcheck_method:saslauthd
Nous ajoutons maintenant à sendmail la gestion de ces deux nouvelles fonctionnalités:
# cd /usr/pkg/share/sendmail/cf # cat monserveur.mc [...] dnl ### SMTP AUTH define(`confAUTH_MECHANISMS', `LOGIN')dnl TRUST_AUTH_MECH(`LOGIN')dnl dnl ### STARTTLS dnl ### Ces sertificats sont en provenance de CACert.org. Il ne s'agit pas de certificats auto-signés define(`confCACERT_PATH',`/etc/mail/certs/')dnl define(`confCACERT', `/etc/mail/certs/cacert.crt') define(`confSERVER_CERT',`/etc/mail/certs/certificat_serveur.pem')dnl define(`confSERVER_KEY',`/etc/mail/certs/certificat_privatekey.pem')dnl [...]
Puis nous compilons et installons la nouvelle configuration:
# make install-cf CF=monserveur rm -f monserveur.cf m4 ../m4/cf.m4 monserveur.mc > monserveur.cf || ( rm -f monserveur.cf && exit 1 ) echo "### monserveur.mc ###" >>monserveur.cf sed -e 's/^/# /' monserveur.mc >>monserveur.cf chmod 444 monserveur.cf /usr/bin/install -c -o root -g wheel -m 0444 monserveur.cf /etc/mail/sendmail.cf /usr/bin/install -c -o root -g wheel -m 0444 monserveur.cf /etc/mail/submit.cf
À l’issue d’un /etc/rc.d/sendmail restart, nous devrions constater les choses suivantes:
# sendmail -d0.1 -bv root | grep SASL
SASLv2 SCANF SOCKETMAP STARTTLS TCPWRAPPERS USERDB XDEBUG
Et également:
# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220monserveur ESMTP Sendmail 8.14.5/8.14.5; Fri, 11 Nov 2011 13:13:17 +0100 (CET) ehlo localhost 250-monserveur Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 5000000 250-DSN 250-ETRN 250-AUTH LOGIN 250-STARTTLS 250-DELIVERBY 250 HELP
Ne reste alors qu’à configurer votre MUA pour qu’il utilise votre serveur SMTP sur le port 587 en TLS avec la méthode LOGIN, avec les login/passwd de l’utilisateur souhaité.
Enjoy.
Recent Comments