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
Prochaine révision
Révision précédente
dbmail [Le 31/03/2013, 19:33]
titouan [PostFix] x509 clients
dbmail [Le 02/03/2023, 00:34] (Version actuelle)
sefran Ajout tag
Ligne 1: Ligne 1:
-{{tag>​serveur serveurs_messagerie courriel ubuntu_server brouillon}}+{{tag>​serveur serveurs_messagerie courriel ubuntu_server ​mda brouillon}}
 ---- ----
  
Ligne 17: Ligne 17:
 ^  Cas   ^ IP fixe  ^dynamique ​ ^ DNS zone  ^ MX   ^ dyndns no-ip  ^   ​POSTFIX DBMAIL ​ ^^ ^  Cas   ^ IP fixe  ^dynamique ​ ^ DNS zone  ^ MX   ^ dyndns no-ip  ^   ​POSTFIX DBMAIL ​ ^^
 ^1   ​|oui ​ |x        | [[http://​www.isalo.org/​wiki.debian-fr/​index.php?​title=Configuration_d%27un_serveur_mail_avec_Postfix#​Un_exemple_de_configuration_de_DNS_chez_gandi.net|GANDI]] ​ | oui | x | Envoyer ET Recevoir |oui | ^1   ​|oui ​ |x        | [[http://​www.isalo.org/​wiki.debian-fr/​index.php?​title=Configuration_d%27un_serveur_mail_avec_Postfix#​Un_exemple_de_configuration_de_DNS_chez_gandi.net|GANDI]] ​ | oui | x | Envoyer ET Recevoir |oui |
-^2   ​| ​   |               ​|[[http://​guides.ovh.com/​VotreServeurMail|OVH]] ​  ​| ​    ​| ​             |   ​+^2   ​| ​   |               ​|[[http://​guides.ovh.com/​VotreServeurMail|OVH]] ​  ​| ​    ​| ​             |
 ^3   ​|x ​  | oui      | test.domain.tld | ok.dyndns.org | ok.dyndns.org | Envoyer ET Recevoir | test.domain.tld mail is handled by ok.dyndns.org.| ^3   ​|x ​  | oui      | test.domain.tld | ok.dyndns.org | ok.dyndns.org | Envoyer ET Recevoir | test.domain.tld mail is handled by ok.dyndns.org.|
-^4   ​|x ​  ​|oui ​      ​|x ​    ​|x ​   |ok.dyndns.org ​    | Envoyer Uniquement ​ |ok.dyndns.org has no MX record. voir smtp_generic_maps |  +^4   ​|x ​  ​|oui ​      ​|x ​    ​|x ​   |ok.dyndns.org ​    | Envoyer Uniquement ​ |ok.dyndns.org has no MX record. voir smtp_generic_maps | 
-^4   | -------------------->​ dbmail est inutile : Recevoir sur imap.fai.fr imap.gmail.com ​   ||||||canonical_maps relayhost /​etc/​aliases |  +^4   | -------------------->​ dbmail est inutile : Recevoir sur imap.fai.fr imap.gmail.com ​   ||||||canonical_maps relayhost /​etc/​aliases | 
-^5   | x   ​|oui ​              | x    |x    | ok.dyndns.org mxok.dyndns.org ​ |Envoyer ET Recevoir |ok.dyndns.org mail is handled by mxok.dyndns.org. |   ​ +^5   | x   ​|oui ​              | x    |x    | ok.dyndns.org mxok.dyndns.org ​ |Envoyer ET Recevoir |ok.dyndns.org mail is handled by mxok.dyndns.org. | 
-^6  |    |             ​| ​    ​| ​    ​| ​             |           ​+^6  |    |             ​| ​    ​| ​    ​| ​             |
 légende; ​   x=non, ​       host -t mx domain.tld légende; ​   x=non, ​       host -t mx domain.tld
 >Cas 1,2,3 recommandés >Cas 1,2,3 recommandés
  
  ===== PostFix =====  ===== PostFix =====
-  +  * paquets 
-Ajout à la fin de /​etc/​postfix/​master.cf +<​code>​ 
- sudo nano /etc/postfix/master.cf +sudo apt-get install ​postfix ​postfix-cdb postfix-mysql postfix-pcre postfix-ldap postfix-doc pflogsumm 
- dbmail-lmtp     ​unix ​   ​      ​      n             ​      lmtp+sudo apt-get install libgsasl7 libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin cyrus-sasl2-dbg cyrus-sasl2-doc 
 +sudo apt-get install php-auth-sasl php5-sasl libapache2-mod-authn-sasl 
 +</​code>​
  
 === Configuration de postfix === === Configuration de postfix ===
- sudo dpkg-reconfigure postfix+<​code>​ 
 +sudo dpkg-reconfigure postfix 
 +</​code>​  
 +  * Ajouter à la fin de sudo nano /​etc/​postfix/​master.cf 
 +<​code>​ 
 +dbmail-lmtp ​    ​unix ​   -       ​- ​      ​n ​      ​- ​      ​- ​      ​lmtp 
 +</​code>​
  
 === mailname main.cf === === mailname main.cf ===
  
 <​code>​sudo nano /​etc/​mailname <​code>​sudo nano /​etc/​mailname
-domain.com</​code>​ +domain.tld</​code>​
- +
-  * //​domain.com//​ est le domaine en tant que domaine de messagerie +
-  *// smtp.domain.com//​ est le CNAME ou alias du MX, ou MX lui même. +
-  * le mailto: //​toto@domain.com//​ est alors potentiellement possible  +
-NB: valable également pour un //​sous.domain.com//​ en tant que domaine de messagerie+
  
 +  * //​domain.tld//​ est le domaine en tant que domaine de messagerie
 +  *// smtp.domain.tld//​ est le CNAME ou alias du MX, ou MX lui même.
 +  * le mailto: //​toto@domain.tld//​ est alors potentiellement possible
 +NB: valable également pour un //​sous.domain.tld//​ en tant que domaine de messagerie
 +  * /etc/hosts
 <​code>​sudo nano /etc/hosts <​code>​sudo nano /etc/hosts
-127.0.0.1 www.domain.tld smtp.domain.com dynamic.noip.tld ... localhost+127.0.0.1 ​  ​www.domain.tld smtp.domain.tld dynamic.noip.tld ... local_name localhost 
 +#​127.0.1.1 ​  ​local_name 
 +# The following lines are desirable for IPv6 capable hosts 
 +::1   ​www.domain.tld smtp.domain.tld dynamic.noip.tld ip6-localhost ​ip6-loopback 
 +fe00::0 ip6-localnet 
 +ff00::0 ip6-mcastprefix 
 +ff02::1 ip6-allnodes 
 +ff02::2 ip6-allrouters
 </​code>​ </​code>​
-Il n'est pas nécessaire de fixer //​smtp.domain.com// comme nom local de la machine. (sudo hostname -s)+Il n'est pas nécessaire de fixer //​smtp.domain.tld// comme nom local de la machine. (hostname -s)
 <​code>​ <​code>​
 smtp_host_lookup = native, dns smtp_host_lookup = native, dns
 </​code>​ </​code>​
 +  * man hostname dnsdomainname 
 +<​code>​ 
 +hostname -s   # local_name 
 +ce_que_vous_voulez 
 +hostname -f   # fqdn 
 +www.mydomain.tld 
 +hostname -d   # domaine 
 +mydomain.tld 
 +</​code>​
 === main.cf === === main.cf ===
  
Ligne 81: Ligne 104:
 relay_recipient_maps = mysql:/​etc/​postfix/​dbmail_recipients.cf relay_recipient_maps = mysql:/​etc/​postfix/​dbmail_recipients.cf
 relayhost =  relayhost = 
-#transport_maps = hash:/​etc/​postfix/​transport+transport_maps = hash:/​etc/​postfix/​transport
  
 # Selon chaque config DNS # Selon chaque config DNS
Ligne 292: Ligne 315:
 </​code> ​     ​ </​code> ​     ​
       ​       ​
 +=== Dbmail sql query ===
  
 Création de /​etc/​postfix/​dbmail_domains.cf Création de /​etc/​postfix/​dbmail_domains.cf
Ligne 319: Ligne 343:
 </​code>​ </​code>​
  
-Redémarrage ​postfix+ 
 +=== Envoyer Directement === 
 + 
 +  * relayhost= ​  #​aucune valeur 
 +  * renseigner transport_maps 
 + 
 +  * transport_maps = hash:/etc/postfix/​transport 
 +<​code>​ 
 +sudo nano /​etc/​postfix/​transport 
 +mydomain.tld ​   : 
 +#​mydomain.tld ​   local: ​  #​méthode non-virtual-sql 
 +</​code>​ 
 +<​code>​ 
 +sudo postmap hash:/​etc/​postfix/​transport  
 +</​code>​ 
 + 
 +  * /​var/​log/​mail.log 
 +<​code>​ 
 +www postfix/​smtp[3965]:​ 0A7ACA1A90: to=<​kim@gmx.com>,​ relay=host[91.224.146.211]:​25,​ delay=1, delays=0.09/​0.01/​0.72/​0.2,​ dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as D21C6817BF) 
 +</​code>​ 
 + 
 +=== Envoyer Indirectement (par relais) === 
 + 
 +  * relayhost=[smtp.sfr.fr]:​587 
 +  * ou relayhost= ​  #​aucune valeur ​ et renseigner transport_maps 
 + 
 +  * si le relais nécessite une //​authentification//,​ renseigner //​smtp_sasl_password_maps//​ = hash:/​etc/​postfix/​sasl/​sasl_passwd 
 +<​code>​ 
 +sudo nano /​etc/​postfix/​sasl/​sasl_passwd 
 +[smtp.sfr.fr]:​587 robert.pierre@sfr.fr:​mot-de-passe 
 +</​code>​ 
 +sudo postmap hash:/​etc/​postfix/​sasl/​sasl_passwd 
 + 
 +<​code>​ 
 +sudo nano /​etc/​postfix/​transport 
 +#cas 1 
 +#​mydomain.tld ​   local: ​    #​méthode non-virtual-sql 
 +mydomain.tld ​    : 
 +#cas 2 
 +#gmail.com smtp:​[smtp.gmail.com]:​587 
 +#​yahoo.fr ​ smtp:​[smtp.yahoo.fr]:​587 
 +# cas 3 
 +*       ​smtp:​[smtp.sfr.fr]:​587 
 +</​code>​ 
 +sudo postmap hash:/​etc/​postfix/​transport 
 + 
 +  * exemples; 
 +<​code>​ 
 +expéditeur -> destinataire (transport) 
 +toto@mydomain.tld envoie un mail vers tata@mydomain.tld ​ (cas 1) 
 +toto@mydomain.tld envoie un mail vers polo@gmail.com en utilisant le relais [smtp.gmail.com]:​587 ​ (cas2) 
 +toto@mydomain.tld envoie un mail vers arthur@orange.fr en utilisant le [smtp.sfr.fr]:​587 (cas 3) 
 +</​code>​ 
 + 
 +  * /​var/​log/​mail.log
 <​code>​ <​code>​
-sudo postfix ​start|stop|reload+www postfix/​smtp[2657]:​ 60462A2AFF: to=<​kim@gmx.com>,​ relay=smtp.sfr.fr[93.17.128.85]:​587,​ delay=0.5, delays=0.13/​0.02/​0.22/​0.13,​ dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as B3A817000087)
 </​code>​ </​code>​
  
Ligne 328: Ligne 406:
 D'​après le main.cf master.cf; D'​après le main.cf master.cf;
   - Interdit: depuis l'​extérieur,​ pas d'​authentification   - Interdit: depuis l'​extérieur,​ pas d'​authentification
-  - Autorisé : en local, pas d'​authentification+  - Autorisé : en 127.0.0.1, pas d'​authentification
   - filtrage spamd clamsmtpd ​   - filtrage spamd clamsmtpd ​
  
   * Serveur Sortant: smtp.domain.tld   * Serveur Sortant: smtp.domain.tld
-  * Port : 25,​587,​465 +  * Port : 25,587,465,​5678(option) 
-  * Nom utilisateur:​ toto@domain.tld ​+  * Nom utilisateur:​ toto@domain.tld
   * Méthode d'​authentification:​ mot de passe normal (plain), mot de passe chiffré (cram-md5)   * Méthode d'​authentification:​ mot de passe normal (plain), mot de passe chiffré (cram-md5)
   * Sécurité de la connexion : STARTTLS, TLS/SSL   * Sécurité de la connexion : STARTTLS, TLS/SSL
  
-==x509 ​clients==+==x509 ​client==
  
   *  **Connexion forte**   *  **Connexion forte**
-a/ Si un certficat x509 client (format .p12) dans le magasin des certificats de thunderbird est associé à toto@domain.tld,​ cela surcharge ”//​Anonymous TLS connection//​” par ”//​Trusted TLS connection//​”,​ matché par permit_tls_clientcerts=hash:/​etc/​postfix/​clientcerts. Biensûr, lors de la création du certificat client, il faut prévoir CN=toto@domain.tld et ajouter votre CA (Autorité de Certification) sous smtp_tls_CApath|smtp_tls_CAfile+a/ Si un certficat x509 client (format .p12) dans le magasin des certificats de thunderbird est associé à toto@domain.tld,​ cela surcharge ”//​Anonymous TLS connection//​” par ”//​Trusted TLS connection//​”,​ matché par permit_tls_clientcerts=hash:/​etc/​postfix/​clientcerts. Biensûr, lors de la création du certificat client, il faut prévoir CN=toto@domain.tld et ajouter votre CA (Autorité de Certification) sous smtp_tls_CApath smtp_tls_CAfile
 <​code>​ <​code>​
 sudo nano /​etc/​postfix/​clientcerts sudo nano /​etc/​postfix/​clientcerts
Ligne 363: Ligne 441:
    -o smtpd_sender_restrictions=reject_unlisted_sender,​permit    -o smtpd_sender_restrictions=reject_unlisted_sender,​permit
 </​code>​ </​code>​
-Au niveau du MUA type thunderbird,​ on a: +Au niveau du MUA type thunderbird,​ on a:
 -nom du serveur SMTP= smtp.domain.tld -nom du serveur SMTP= smtp.domain.tld
 -Port= 5678 -Port= 5678
Ligne 369: Ligne 447:
 -Méthode d'​authentification= pas d'​authentification -Méthode d'​authentification= pas d'​authentification
 -Sécurité de la connexion= STARTTLS obligatoire -Sécurité de la connexion= STARTTLS obligatoire
 +
 +//telnet avec x509client//​
 +<​code>​
 +openssl s_client -connect smtp.domain.tld:​5678 -starttls smtp -cert toto@domain.tld-cert.pem -key toto@domain.tld-key.pem
 +....
 +Acceptable client certificate
 +</​code>​
 +Pour le telnet, il faut le format certificat.pem et key.pem au lieu du p12
 +
 +//telnet sans x509client//​
 +<​code>​
 +openssl s_client -connect smtp.domain.tld:​5678 -starttls smtp
 +...
 +No client certificate presented
 +</​code>​
 +La session échoue après le ehlo.
  
   *  **Signature forte**   *  **Signature forte**
Ligne 376: Ligne 470:
 Pour chiffrer un mail en utilisant une authentification forte, il faut le x509 client du destinataire au format pem, sans sa clef privée. Si Toto veut envoyer un mail chiffré (SMIME pkcs7) à Tata, alors toto doit avoir dans le magasin des certficats x509 thunderbird:​ toto-cert.p12 + tata-cert.pem Pour chiffrer un mail en utilisant une authentification forte, il faut le x509 client du destinataire au format pem, sans sa clef privée. Si Toto veut envoyer un mail chiffré (SMIME pkcs7) à Tata, alors toto doit avoir dans le magasin des certficats x509 thunderbird:​ toto-cert.p12 + tata-cert.pem
  
 +== Service ==
  
 +<​code>​
 +sudo postfix <​start|stop|reload>​
 +</​code>​
  
 ====== Dbmail ====== ====== Dbmail ======
Ligne 382: Ligne 480:
 =====  Dbmail 3.x ===== =====  Dbmail 3.x =====
  
-  * prend désormais en charge imaps +   * gestion et stockage via les tables mysql, postgresql, oracle ​
-  ​* gestion et stockage via les tables mysql, postgresql, oracle ​+
   * adapté à la messagerie de masse et aux méthodes virtuelles de Postfix.   * adapté à la messagerie de masse et aux méthodes virtuelles de Postfix.
-  * les tables mysql ou postgresql sont également incompatibles avec celles de dbmail 2.2 + 
 sudo nano /​etc/​apt/​sources.list sudo nano /​etc/​apt/​sources.list
 <​code>​ <​code>​
-squeeze +stable all deb 
-deb http://​debian.nfgd.net/​debian/ ​squeeze ​main+deb http://​debian.nfgd.net/​debian/ ​stable ​main
 # sid # sid
 deb http://​debian.nfgd.net/​debian/​ sid main deb http://​debian.nfgd.net/​debian/​ sid main
 # lucid # lucid
 deb http://​debian.nfgd.net/​debian/​ lucid main deb http://​debian.nfgd.net/​debian/​ lucid main
-#precise oneiric maverick lucid hardy+ppa Leonel Nunez
 deb http://​ppa.launchpad.net/​leonelnunez/​ppa/​ubuntu precise main  deb http://​ppa.launchpad.net/​leonelnunez/​ppa/​ubuntu precise main 
 deb-src http://​ppa.launchpad.net/​leonelnunez/​ppa/​ubuntu precise main  deb-src http://​ppa.launchpad.net/​leonelnunez/​ppa/​ubuntu precise main 
Ligne 401: Ligne 497:
 <​code>​sudo apt-get update && sudo apt-get upgrade</​code>​ <​code>​sudo apt-get update && sudo apt-get upgrade</​code>​
 <​code>​sudo apt-get install dbmail</​code>​ <​code>​sudo apt-get install dbmail</​code>​
-**[[apt://​dbmail|]]** ​ (mysql est déjà inclus dans ce paquet)+
 [[http://​www.dbmail.org/​index.php?​page=download|Téléchargement]] [[http://​www.dbmail.org/​index.php?​page=download|Téléchargement]]
  
Ligne 408: Ligne 504:
   * /​etc/​apt/​sources.list   * /​etc/​apt/​sources.list
 <​code>​deb-src http://​debian.nfgd.net/​debian unstable main</​code>​ <​code>​deb-src http://​debian.nfgd.net/​debian unstable main</​code>​
-  * Chacun des appels apt-get va se plaindre de dépendances manquantes. Juste les installer manuellement,​ et émettre à nouveau la commande.+  * Chacun des appels apt-get va se plaindre de dépendances manquantes ​(*note). Juste les installer manuellement,​ et émettre à nouveau la commande.
 <​code>​ <​code>​
 sudo apt-get -b source libsieve sudo apt-get -b source libsieve
Ligne 418: Ligne 514:
 </​code>​ </​code>​
  
-==== Dbmail 2.2 ==== +=== build-from-tar.tgz=== 
-Présent normalement dans les dépôts. + 
- **[[apt://dbmail,dbmail-mysql|]]**.+  Installer les lib-dev relatives à GLIB, GMIME, SIEVE, MHASH, ZDB, LIBEVENT (*note) 
 +<​code>​ 
 +./configure --with-zdb=/​usr --with-sieve --with-ldap --localstatedir=/​var/​run/​dbmail --sysconfdir=/​etc/​dbmail --with-logdir=/​var/​log/​dbmail 
 + 
 + ​DM_LOGDIR                ​/var/log/dbmail 
 + ​DM_CONFDIR: ​               /etc/dbmail 
 + ​DM_STATEDIR: ​              /​var/​run/​dbmail 
 + ​USE_DM_GETOPT: ​             
 + ​CFLAGS: ​                   ​-g -O2 -pthread -I/​usr/​include/​glib-2.0 -I/​usr/​lib/​glib-2.0/​include ​  ​-D_LARGEFILE64_SOURCE -pthread -I/​usr/​include/​gmime-2.4 -I/​usr/​include/​glib-2.0 -I/​usr/​lib/​glib-2.0/​include ​  ​-I/​usr/​include/​zdb -W -Wall -Wpointer-arith -Wstrict-prototypes 
 + ​GLIB: ​                     -Wl,​--export-dynamic -pthread -lgmodule-2.0 -lrt -lglib-2.0 ​  
 + ​GMIME: ​                    ​-pthread -lgmime-2.4 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 ​  
 + ​SIEVE: ​                    ​-lsieve 
 + ​LDAP: ​                     -lldap 
 + ​SHARED: ​                   yes 
 + ​STATIC: ​                   no 
 + ​CHECK: ​                     
 + ​SOCKETS: ​                   
 + ​MATH: ​                     -lm 
 + ​MHASH: ​                    ​-lmhash 
 + ​LIBEVENT: ​                 -levent 
 + ​OPENSSL: ​                  ​-lssl 
 + ​ZDB: ​                      ​-lzdb 
 + 
 +make all 
 +sudo make install 
 +</​code>​ 
 +Les fichiers sont copiés par défault dans /​usr/​local/​sbin/​ Prévoir un ln -s ou cp pour /usr/sbin 
 + 
 + 
 +==== Dbmail 2.2 (obsolète)==== 
  
 ===== Configuration ===== ===== Configuration =====
 ==== dbmail 3.0 ==== ==== dbmail 3.0 ====
-[[http://​www.iredmail.org/​wiki/​index.php?​title=Integration/​DBMail.iRedMail.with.MySQL.backend/​RHEL#​Summary|Complément d'​informations]] ​+[[http://​www.iredmail.org/​wiki/​index.php?​title=Integration/​DBMail.iRedMail.with.MySQL.backend/​RHEL#​Summary|Complément d'​informations]]
  
  
Ligne 473: Ligne 599:
   * -a  //ajouter un nouveau Compte//   * -a  //ajouter un nouveau Compte//
   * -w  //mot de passe//   * -w  //mot de passe//
-  * -p  //​type_password// ​  md5, plaintext, crypt, md5-hash, md5-digest, crypt-raw, md5-hash-raw,​ md5-digest-raw,​ md5-base64, md5-base64-raw ​+  * -p  //​type_password// ​  md5, plaintext, crypt, md5-hash, md5-digest, crypt-raw, md5-hash-raw,​ md5-digest-raw,​ md5-base64, md5-base64-raw
   * -c  //mise à jour du compte//   * -c  //mise à jour du compte//
   * -s  //créer// une adresse mail ou plusieurs alias  -s toto@domain.tld,​titi@domain.tld   * -s  //créer// une adresse mail ou plusieurs alias  -s toto@domain.tld,​titi@domain.tld
   * -S  //​supprimer//​ une adresse mail ou plusieurs alias   * -S  //​supprimer//​ une adresse mail ou plusieurs alias
-  * -m  //quota// -m 50M +  * -m  //quota// -m 50M
   * -d   //​supprimer un compte//   * -d   //​supprimer un compte//
   * -x toto@domain.tld -t forward@domain2.tld2 ​  //​ajouter un forward //   * -x toto@domain.tld -t forward@domain2.tld2 ​  //​ajouter un forward //
Ligne 496: Ligne 622:
 http://​www.dbmail.org/​dokuwiki/​doku.php/​manage_users http://​www.dbmail.org/​dokuwiki/​doku.php/​manage_users
  
- ​====SASL ​  ​====+ ​====SASL ​ ====
  
-Dbmail utilise saslauthd comme démon d'​authentification (sasl authentication server) ​ou auxprop+Dbmail utilise saslauthd comme démon d'​authentification (sasl authentication server). 
-Rimap (Requête d'​authentification au près du serveur IMAP) et LDAP sont les plus intéressants pour les méthodes //virtual//.+Rimap (Requête d'​authentification au près du serveur IMAP) est exploité dans ce tuto.
 Pam n'est pas vraiment adapté pour la messagerie de masse et il y a toujours moyen de convertir un user unix/pam en virtual/​rimap par exemple. Avec les solutions Webmail, ce sentiment est renforcé. Pam n'est pas vraiment adapté pour la messagerie de masse et il y a toujours moyen de convertir un user unix/pam en virtual/​rimap par exemple. Avec les solutions Webmail, ce sentiment est renforcé.
  
Ligne 527: Ligne 653:
 OPTIONS="​-c -m /​var/​spool/​postfix/​var/​run/​saslauthd"​ OPTIONS="​-c -m /​var/​spool/​postfix/​var/​run/​saslauthd"​
 </​code>​ </​code>​
-  * Service ​+  * Service
 <​code>​ <​code>​
 sudo service saslauthd restart|reload sudo service saslauthd restart|reload
Ligne 542: Ligne 668:
 <​code>​ <​code>​
 [11.22.22.44]:​587 compte@fai.fr:​mot_de_passe [11.22.22.44]:​587 compte@fai.fr:​mot_de_passe
-smtp.gmail.com:​587 compte@gmail.com:​mot_de-passe+[smtp.gmail.com]:587 compte@gmail.com:​mot_de-passe
 </​code>​ </​code>​
 <​code>​ <​code>​
Ligne 561: Ligne 687:
  
   - authentification en clair : PLAIN, LOGIN    - authentification en clair : PLAIN, LOGIN 
-  - authentifcation ​cryptée ​: CRAM-MD5, DIGEST-MD5 ​+  - authentifcation ​chiffrée ​: CRAM-MD5, DIGEST-MD5 ​
   * le mech_list n'a aucun rapport avec le type de stockage des mots de passe.   * le mech_list n'a aucun rapport avec le type de stockage des mots de passe.
-  * cram-md5 a un stockage //​plaintext// ​[[http://​www.dbmail.org/​dokuwiki/​doku.ph/​smtp_auth:​postfix?​s[]=auxprop|Source]]"​"But remember, that this will work only with '​plain'​ passwords in database."" ​+  * cram-md5 a un stockage //​plaintext//​ "But remember, that this will work only with '​plain'​ passwords in database."​
 [[http://​www.postfix.org/​SASL_README.html|Source Cyrus SASL Plugins - auxiliary property plugins]] ​ ""​CRAM-MD5,​ DIGEST-MD5 and NTLM. These mechanisms send credentials encrypted but their verification process requires the password to be available in plaintext. Consequently passwords cannot (!) be stored in encrypted form""​ [[http://​www.postfix.org/​SASL_README.html|Source Cyrus SASL Plugins - auxiliary property plugins]] ​ ""​CRAM-MD5,​ DIGEST-MD5 and NTLM. These mechanisms send credentials encrypted but their verification process requires the password to be available in plaintext. Consequently passwords cannot (!) be stored in encrypted form""​
 <​code>​ <​code>​
 sudo dbmail-users -c toto@domain.tld -p plaintext -w password sudo dbmail-users -c toto@domain.tld -p plaintext -w password
 </​code>​ </​code>​
-  * /​etc/​postfix/​sasl/​smtpd.conf peut être obtenu par lien symbolique ​+  * /​etc/​postfix/​sasl/​smtpd.conf peut être obtenu par lien symbolique
 <​code>​ <​code>​
 sudo ln -s /​usr/​lib/​sasl2/​smtpd.conf /​etc/​postfix/​sasl/​smtpd.conf sudo ln -s /​usr/​lib/​sasl2/​smtpd.conf /​etc/​postfix/​sasl/​smtpd.conf
Ligne 595: Ligne 721:
 sql_select: SELECT passwd FROM dbmail_users WHERE userid = '​%u@%r'​ sql_select: SELECT passwd FROM dbmail_users WHERE userid = '​%u@%r'​
 </​code>​ </​code>​
-NB:  userid = '​%u@%r'​ si vous avez stocké sous la forme toto@domain.tld ​+NB:  userid = '​%u@%r'​ si vous avez stocké sous la forme toto@domain.tld
 [[http://​asyd.net/​docs/​cyrus-options.html|Options SASL]] [[http://​asyd.net/​docs/​cyrus-options.html|Options SASL]]
  
-  * /​etc/​dbmail/​dbmail.conf à modifier 
-<​code>​ 
-# Provide a CAPABILITY to override the default 
-capability = IMAP4 IMAP4rev1 AUTH=CRAM-MD5 AUTH=PLAIN ACL .... 
-</​code>​ 
   * postfix main.cf   * postfix main.cf
 <​code>​ <​code>​
Ligne 618: Ligne 739:
 0: OK "​Success."​ 0: OK "​Success."​
 </​code>​ </​code>​
-=== test avec roundcube ​===+  * test avec roundcube
 <​code>​ <​code>​
 18:49:46 www roundcube: [77EB] C: A0001 ID ("​name"​ "​Roundcube Webmail"​ "​version"​ "​0.7.1"​ "​php"​ "​5.3.2-1ubuntu4.14"​ "​os"​ "​Linux"​ "​command"​ "/​roundube/?​_task=mail&​_action=moveto"​) 18:49:46 www roundcube: [77EB] C: A0001 ID ("​name"​ "​Roundcube Webmail"​ "​version"​ "​0.7.1"​ "​php"​ "​5.3.2-1ubuntu4.14"​ "​os"​ "​Linux"​ "​command"​ "/​roundube/?​_task=mail&​_action=moveto"​)
Ligne 625: Ligne 746:
 18:49:46 www roundcube: [77EB] C: A0002 AUTHENTICATE CRAM-MD5 18:49:46 www roundcube: [77EB] C: A0002 AUTHENTICATE CRAM-MD5
 18:49:46 www roundcube: [77EB] S: + MTM0MzA2MjE4Ni4xOTIzMy4yNkAobm9uZSk= 18:49:46 www roundcube: [77EB] S: + MTM0MzA2MjE4Ni4xOTIzMy4yNkAobm9uZSk=
-18:49:46 www roundcube: [77EB] C: ZXJyb3JAbS50aXRvdS5pbmZvIDczZmQwYmY4NWNiZjQ3YTM3YjliYzNhMWYwOTA5Nzcy+18:49:46 www roundcube: [77EB] C: dG90b0Bkb21haW4udGxkIDI1NmMyNmIxYmY4MjE5YjJlZjUxMTNlNTVjYjAwYmFk
 18:49:46 www roundcube: [77EB] S: A0002 OK [CAPABILITY IMAP4rev1 ACL RIGHTS=texk NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE  18:49:46 www roundcube: [77EB] S: A0002 OK [CAPABILITY IMAP4rev1 ACL RIGHTS=texk NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE 
 STARTTLS ID] User toto@domain.tld authenticated STARTTLS ID] User toto@domain.tld authenticated
Ligne 670: Ligne 791:
 sudo nano /​etc/​postfix/​sender_canonical sudo nano /​etc/​postfix/​sender_canonical
 <​code>​ <​code>​
-yoko       pierre.durand@gmail.com +yoko       babar@monmail.com 
-yoko@domain.tld ​     ​pierre.durand@gmail.com+yoko@domain.tld ​     ​babar@monmail.com
 </​code>​ </​code>​
 <​code>​ <​code>​
Ligne 682: Ligne 803:
 yoko@pc:~$ echo '​bonjour'​ | mail -s '​test'​ toto@sfr.fr yoko@pc:~$ echo '​bonjour'​ | mail -s '​test'​ toto@sfr.fr
 </​code>​ </​code>​
-yoko devient ​pierre.durand@gmail.com, qui envoit ​au destinataire final toto@sfr.fr+yoko devient ​babar@monmail.com, qui envoie ​au destinataire final toto@sfr.fr
  
 === Recevoir et Faire Suivre automatiquement le courrier=== === Recevoir et Faire Suivre automatiquement le courrier===
  
-le courrier à destination de toto@domain.tld est renvoyé chez durand.pierre@free.fr+le courrier à destination de toto@domain.tld est renvoyé chez casimir@free.fr
 <​code>​ <​code>​
-sudo dbmail-users -x toto@domain.tld -t durand.pierre@free.fr+sudo dbmail-users -x toto@domain.tld -t casimir@free.fr
 </​code>​ </​code>​
  
Ligne 721: Ligne 842:
 # Configure the ISP accounts (POP server, users and respective passwords) # Configure the ISP accounts (POP server, users and respective passwords)
 poll imap.gmail.com with protocol IMAP:  poll imap.gmail.com with protocol IMAP: 
-user "pierre.durand@gmail.com" with pass "​motdepasse-de-pierre" with ssl with sslcertck is "​yoko@domain.tld"​ here keep+user "babar@monmail.com" with pass "​motdepasse-de-babar" with ssl with sslcertck is "​yoko@domain.tld"​ here keep
 smtphost smtp.domain.tld smtphost smtp.domain.tld
 </​code>​ </​code>​
 [[http://​fetchmail.berlios.de/​fetchmail-man.html#​5|Options Fetchmail]] [[http://​fetchmail.berlios.de/​fetchmail-man.html#​5|Options Fetchmail]]
  
-Fetchmail relève toutes les heures les mails de pierre.durand@gmail.com et les rapatrie directement sur yoko@domain.tld.+Fetchmail relève toutes les heures les mails de babar@monmail.com et les rapatrie directement sur yoko@domain.tld.
   * keep signifie que fetchmail crée une copie du mail sans le détruire sur le serveur distant.   * keep signifie que fetchmail crée une copie du mail sans le détruire sur le serveur distant.
   * sender_canonical_maps a été défini.   * sender_canonical_maps a été défini.
   * sudo service fetchmail restart # pour relançer le démon.   * sudo service fetchmail restart # pour relançer le démon.
  
-Fetchmail fait un doublon, voir inutile, ​ si vous avez délà roundcube, horde, qui font déjà du //​fetch//​. ​+Fetchmail fait un doublon, voir inutile, ​ si vous avez délà roundcube, qui fait déjà du //fetch//.
   * exemple en modifiant le main.inc.php de roundcube   * exemple en modifiant le main.inc.php de roundcube
  
Ligne 766: Ligne 887:
 </​code>​ </​code>​
  
-Dès qu'un mail arrive chez modo@domain.tld(user_idnr='​9'​),​ un mail "NEW MAIL NOTIFICATION"​ est envoyé par webmaster@domain.tld pour admin.perso@fai.fr ​+Dès qu'un mail arrive chez modo@domain.tld(user_idnr='​9'​),​ un mail "NEW MAIL NOTIFICATION"​ est envoyé par webmaster@domain.tld pour admin.perso@fai.fr
  
 Attention, autonotify@dbmail génère une erreur car évidemment le récipient n'est pas connu. Attention, autonotify@dbmail génère une erreur car évidemment le récipient n'est pas connu.
Ligne 772: Ligne 893:
 ==== dbmail_auto_replies ==== ==== dbmail_auto_replies ====
  
-Chaque utilisateur peut spécifier un message de réponse automatique à tous les messages entrants. ​+Chaque utilisateur peut spécifier un message de réponse automatique à tous les messages entrants.
 >/​etc/​dbmail/​dbmail.conf >/​etc/​dbmail/​dbmail.conf
 AUTO_REPLY ​           = yes AUTO_REPLY ​           = yes
Ligne 797: Ligne 918:
 Ces boîtes sont appelées boîtes aux lettres partagées - Elles sont décrites dans la table //​dbmail_subscription//​. Les droits d'​accès appropriés sont décrits dans la table //​dbmail_acl//​. Ces boîtes sont appelées boîtes aux lettres partagées - Elles sont décrites dans la table //​dbmail_subscription//​. Les droits d'​accès appropriés sont décrits dans la table //​dbmail_acl//​.
  
-Lister les identifiants et récupérer le user_idnr ​+Lister les identifiants et récupérer le user_idnr
 <​code>​ <​code>​
 select user_idnr,​userid,​passwd from dbmail_users; ​ select user_idnr,​userid,​passwd from dbmail_users; ​
Ligne 829: Ligne 950:
 DBMAIL[_dbmail_driver]="​mysql"​ DBMAIL[_dbmail_driver]="​mysql"​
 </​code>​ </​code>​
-modifier pour dbmail 3.x à proximité de function get_all_acls() ​+modifier pour dbmail 3.x à proximité de function get_all_acls()
 <​code>​ <​code>​
 $MYSQL_CLIENT -N -e "​SELECT lookup_flag,​ read_flag, seen_flag, write_flag, insert_flag,​ post_flag, create_flag,​ delete_flag,​ deleted_flag,​ expunge_flag,​ administer_flag FROM dbmail_acl WHERE mailbox_id = $mailbox_idnr and user_id = $user_idnr;"​ $MYSQL_CLIENT -N -e "​SELECT lookup_flag,​ read_flag, seen_flag, write_flag, insert_flag,​ post_flag, create_flag,​ delete_flag,​ deleted_flag,​ expunge_flag,​ administer_flag FROM dbmail_acl WHERE mailbox_id = $mailbox_idnr and user_id = $user_idnr;"​
Ligne 921: Ligne 1042:
 ===== Mailman ===== ===== Mailman =====
 ==== Ajouter les Recipients ==== ==== Ajouter les Recipients ====
-C'est l'​équivalence de virtual-aliases pour d'​autres serveurs imap. Il n'y a pas besoin également de rajouter des aliases dans /​etc/​aliases. Les récipients des listes se trouvent dans la table dbmail_aliases ​+C'est l'​équivalence de virtual-aliases pour d'​autres serveurs imap. Il n'y a pas besoin également de rajouter des aliases dans /​etc/​aliases. Les récipients des listes se trouvent dans la table dbmail_aliases
  
 sudo nano dbmail-add-list sudo nano dbmail-add-list
Ligne 1010: Ligne 1131:
 Ne pas oublier d'​ouvrir les ports du pare-feu Ne pas oublier d'​ouvrir les ports du pare-feu
  
-Exemple avec shorewall : +Exemple avec shorewall :
  sudo vim /​etc/​shorewall/​rules  sudo vim /​etc/​shorewall/​rules
  IMAP/​ACCEPT ​         net             $FW  IMAP/​ACCEPT ​         net             $FW
Ligne 1017: Ligne 1138:
 redémarrage du pare-feu redémarrage du pare-feu
  sudo /​etc/​init.d/​shorewall restart  sudo /​etc/​init.d/​shorewall restart
 +
 +===== Auth Basic Apache SASL SMTP=====
 +
 +Juste un extra de configuration,​ qui exploite le SASL pour une authentification basique, sur une page http, grace au module libapache2-mod-authn-sasl,​ qui supporte seulement le sasldb
 +
 +  * Ajouter sasldb à MECHANISMS dans le /​etc/​default/​saslauthd
 +<​code>​
 +MECHANISMS="​rimap sasldb"​
 +</​code>​
 +/​etc/​postfix/​sasl/​smtpd.conf
 +<​code>​
 +pwcheck_method:​ auxprop saslauthd ​
 +mech_list: CRAM-MD5 PLAIN LOGIN
 +saslauthd_path:​ /​var/​spool/​postfix/​var/​run/​saslauthd/​mux
 +sasldb_path:​ /​var/​spool/​postfix/​var/​run/​saslauthd/​sasldb
 +auxprop_plugin:​ sql sasldb
 +log_level: 7
 +sql_engine: mysql
 +sql_hostnames:​ 127.0.0.1
 +sql_user: dbmail
 +sql_passwd: pass
 +sql_database:​ databasename
 +sql_verbose:​ yes
 +sql_select: SELECT passwd FROM dbmail_users WHERE userid='​%u@%r' ​
 +</​code>​
 +  * Virtualhost apache
 +<​code>​
 +#requis saslauthd + sasldb
 +
 +Alias /​example1 ​ "/​..."​
 +<​Directory "/​...">​
 +...
 +        AuthType Basic
 +        AuthName "​Restricted to Staff users"
 +        AuthBasicProvider sasl
 +        AuthBasicAuthoritative On
 +        AuthSaslPwcheckMethod sasldb
 +        AuthSaslRealm domain.tld
 +        AuthSaslDbPath /​var/​spool/​postfix/​var/​run/​saslauthd/​sasldb
 +        AuthSaslServiceName smtp
 +        Require user toto@domain.tld  ​
 +</​Directory>​
 +</​code>​
 +<​code>​
 +sudo ln -s /etc/sasldb /​var/​spool/​postfix/​var/​run/​saslauthd/​sasldb
 +#creation de toto@domain.tld
 +sudo saslpasswd2 ​ -f /​etc/​sasldb2 toto@domain.tld
 +#listing de la database
 +sudo sasldblistusers2 -f /etc/sasldb
 +</​code>​
 +login: toto@domain.tld ; mot-de-passe:​ totopass ; url http:​../​exemple1
 +
 +===== Auth Digest Apache dbmail_users =====
 +
 +Dans l'​exemple ci-dessous, le SASL n'est pas utilisé. Une requête sql est directement invoquée pour dbmail_users,​ permettant une authentification //Digest// http.
 +
 +Virtualhost avec mod_auth_digest,​ mod_dbd
 +<​code>​
 +DBDriver mysql
 +DBDParams "​host=127.0.0.1 port=3306 dbname=dbmail3 user=dbmail3 pass=motdepasse"​
 +DBDMin ​ 1
 +DBDKeep 2
 +DBDMax ​ 3
 +DBDExptime 240
 +
 +Alias /example2 "/​..."​
 +<​Directory "/​...">​
 +   ​Options Indexes FollowSymLinks Multiviews
 +   ​AllowOverride None
 +   Order allow,deny
 +   Allow from all
 +AuthType Digest
 +AuthDigestAlgorithm MD5
 +AuthName "​hello"​
 +AuthDigestProvider dbd
 +Require valid-user
 +# passwd a été stocké en plaintext
 +AuthDBDUserRealmQuery "​SELECT md5(concat(userid,':​hello:',​passwd)) from dbmail3.dbmail_users WHERE userid = %s"
 +</​Directory>​
 +</​code>​
 +
 ===== Voir aussi ===== ===== Voir aussi =====
  
  • dbmail.1364751234.txt.gz
  • Dernière modification: Le 31/03/2013, 19:33
  • par titouan