Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
email [2013/11/26 14:42] mart [plus-addressing] |
email [2019/04/18 14:46] (Version actuelle) mart |
||
---|---|---|---|
Ligne 65: | Ligne 65: | ||
Le fichier de config principal est ''/etc/postfix/main.cf'' | Le fichier de config principal est ''/etc/postfix/main.cf'' | ||
- | Voici un exemple de fichier fonctionnant, a adapter selon vos besoin. | + | Voici les options importantes (ou à modifier) par rapport au fichier par défaut |
<code> | <code> | ||
- | smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) | + | # Les domaines depuis lesquels on va recevoir des mails |
- | biff = no | + | virtual_mailbox_domains = example.com, domain.net, monsite.org |
- | append_dot_mydomain = no | + | # Dossier de base de stockage des mails |
- | readme_directory = no | + | virtual_mailbox_base = /home/vmail |
- | + | # C'est là qu'on va stocker la liste des emails | |
- | # TLS parameters | + | virtual_mailbox_maps = hash:/etc/postfix/vmaps |
- | smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt | + | virtual_minimum_uid = 100 |
- | smtpd_tls_key_file = /etc/ssl/private/smtpd.key | + | # UID du user et group vmail |
- | smtpd_use_tls=yes | + | virtual_uid_maps = static:5000 |
- | smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache | + | virtual_gid_maps = static:5000 |
- | smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache | + | virtual_alias_maps = hash:/etc/postfix/virtual |
- | smtp_tls_security_level = may | + | # 5GB de taille max des boites virtuelles |
- | smtpd_tls_security_level = may | + | virtual_mailbox_limit = 5368709120 |
- | smtpd_tls_auth_only = no | + | |
- | smtp_tls_note_starttls_offer = yes | + | |
- | smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem | + | |
- | smtpd_tls_loglevel = 1 | + | |
- | smtpd_tls_received_header = yes | + | |
- | smtpd_tls_session_cache_timeout = 3600s | + | |
- | tls_random_source = dev:/dev/urandom | + | |
- | # remplacer par votre FQDN (hostname --long) | ||
- | myhostname = example.com | ||
- | mydomain = localhost | ||
- | alias_maps = hash:/etc/aliases | ||
- | alias_database = hash:/etc/aliases | ||
- | # Verifiez que /etc/mailname contient le résultat de "hostname --long" | ||
- | myorigin = /etc/mailname | ||
- | # on va utiliser des virtual_mailbox_domains donc pas de domaine ici | ||
- | mydestination = localhost | ||
- | relayhost = | ||
# la liste des ip depuis lesquelles on peut accéder au serveur smtp | # la liste des ip depuis lesquelles on peut accéder au serveur smtp | ||
# on commente car on va utiliser SASL-auth pour contrôler | # on commente car on va utiliser SASL-auth pour contrôler | ||
# mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 | # mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 | ||
+ | |||
# 5GB de mailbox max | # 5GB de mailbox max | ||
mailbox_size_limit = 5368709120 | mailbox_size_limit = 5368709120 | ||
+ | |||
+ | # faire du dot addressing | ||
recipient_delimiter = + | recipient_delimiter = + | ||
- | inet_interfaces = all | + | |
- | inet_protocols = all | + | # 50MB de piece jointe max, on est plus en 2000 |
- | home_mailbox = Maildir/ | + | |
- | # 50MB de piece jointe max | + | |
message_size_limit = 52428800 | message_size_limit = 52428800 | ||
Ligne 125: | Ligne 109: | ||
# Table d'autorisation d'adresse mail par login SASL | # Table d'autorisation d'adresse mail par login SASL | ||
smtpd_sender_login_maps = hash:/etc/postfix/sender_login | smtpd_sender_login_maps = hash:/etc/postfix/sender_login | ||
- | |||
- | |||
- | # Virtual | ||
- | # Les domaines depuis lesquels on va recevoir des mails | ||
- | virtual_mailbox_domains = example.com, domain.net, monsite.org | ||
- | # Dossier de base de stockage des mails | ||
- | virtual_mailbox_base = /home/vmail | ||
- | # C'est là qu'on va stocker la liste des emails | ||
- | virtual_mailbox_maps = hash:/etc/postfix/vmaps | ||
- | virtual_minimum_uid = 100 | ||
- | # UID du user et group vmail | ||
- | virtual_uid_maps = static:5000 | ||
- | virtual_gid_maps = static:5000 | ||
- | virtual_alias_maps = hash:/etc/postfix/virtual | ||
- | # 5GB de taille max des boites virtuelles | ||
- | virtual_mailbox_limit = 5368709120 | ||
# pour refuser les adresses non définies | # pour refuser les adresses non définies | ||
Ligne 198: | Ligne 166: | ||
Et on redémarre le serveur ! | Et on redémarre le serveur ! | ||
- | <code>/etc/init.d/postfix restart</code> | + | <code>systemctl restart postfix</code> |
=== Astuce anti-spam === | === Astuce anti-spam === | ||
Ligne 240: | Ligne 208: | ||
Si vous testez de vous connecter depuis l'extérieur, vous aurez besoin de vous authentifier. Configurez d'abord Dovecot (suite du tutoriel). Un exemple de communication SMTP avec authentification est donné [[http://gerardnico.com/wiki/smtp_telnet|ici]]. | Si vous testez de vous connecter depuis l'extérieur, vous aurez besoin de vous authentifier. Configurez d'abord Dovecot (suite du tutoriel). Un exemple de communication SMTP avec authentification est donné [[http://gerardnico.com/wiki/smtp_telnet|ici]]. | ||
==== Maildrop ==== | ==== Maildrop ==== | ||
+ | |||
+ | //TODO remplacer cette section par sieve// | ||
Cette section est **optionnelle**. Le serveur mail fonctionnera très bien si vous laissez Postfix gérer la réception des mails. Seulement, si l'on veut appliquer des filtres, SpamAssassin et autres, l'utilisation de maildrop peut être utile. Si vous utilisez maildrop, le contenu du fichier ''/etc/postfix/vmaps'' change de rôle. Il est nécessaire de continuer à lister chaque adresse email présente dans ce fichier (sinon les mail reçu seront rejetés) mais la seconde partie de la ligne (le dossier de destination), n'a plus d'importance. | Cette section est **optionnelle**. Le serveur mail fonctionnera très bien si vous laissez Postfix gérer la réception des mails. Seulement, si l'on veut appliquer des filtres, SpamAssassin et autres, l'utilisation de maildrop peut être utile. Si vous utilisez maildrop, le contenu du fichier ''/etc/postfix/vmaps'' change de rôle. Il est nécessaire de continuer à lister chaque adresse email présente dans ce fichier (sinon les mail reçu seront rejetés) mais la seconde partie de la ligne (le dossier de destination), n'a plus d'importance. | ||
Ligne 264: | Ligne 234: | ||
<code>DEFAULT="/home/vmail/$1/$2"</code> | <code>DEFAULT="/home/vmail/$1/$2"</code> | ||
- | Le [[http://en.gentoo-wiki.com/wiki/Maildrop#Configuration|wiki de Gentoo]] donne plusieurs exemples de règles de filtrage que l'on peut mettre. Voici par exemple, une que j'utilise pour rediriger les mails venant d'une instance StatusNet dans le sous dossier StatusNet et une autre pour rediriger sur base de l'adresse de la personne qui envoie. | + | Le [[http://en.gentoo-wiki.com/wiki/Maildrop#Configuration|wiki de Gentoo]] (down ? [[http://web.archive.org/web/20130404224643/http://en.gentoo-wiki.com/wiki/Maildrop|archive]]) donne plusieurs exemples de règles de filtrage que l'on peut mettre. Voici par exemple, une que j'utilise pour rediriger les mails venant d'une instance StatusNet dans le sous dossier StatusNet et une autre pour rediriger sur base de l'adresse de la personne qui envoie. |
<code># Redirect to statusnet subdomain | <code># Redirect to statusnet subdomain | ||
Ligne 359: | Ligne 329: | ||
args = /etc/dovecot/users | args = /etc/dovecot/users | ||
} | } | ||
+ | |||
+ | ## /etc/dovecot/10-auth.conf | ||
+ | !include auth-passwdfile.conf.ext | ||
+ | |||
+ | ## /etc/dovecot/conf.d/auth-passwdfile.conf.ext | ||
+ | passdb { | ||
+ | driver = passwd-file | ||
+ | args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd | ||
+ | } | ||
+ | |||
</code> | </code> | ||
+ | ==== Multidomaine et SSL ==== | ||
+ | |||
+ | Si vous avez plusieurs domaines email, il y a des chances que vous ayez également plusieurs certificats SSL. Si vous voulez éviter les grosses alertes de sécurité lorsque vous accédez à vos emails, vous pouvez modifier la configuration Dovecot pour utiliser des certificats en fonction du domaine. | ||
+ | |||
+ | <code> | ||
+ | ssl_cert = </etc/ssl/certs/certificat_global.pem | ||
+ | ssl_key = </etc/ssl/certs/clef_global.key | ||
+ | ... | ||
+ | local_name imap.domaine1.org { | ||
+ | ssl_cert = </etc/ssl/certs/imap.domaine1.org.pem | ||
+ | ssl_key = </etc/ssl/private/imap.domaine1.org.key | ||
+ | } | ||
+ | local_name imap.domaine2.org { | ||
+ | ssl_cert = </etc/ssl/certs/imap.domaine2.crt | ||
+ | ssl_key = </etc/ssl/private/imap.domaine2.key | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Et pour vérifier que le bon certificat est bien sélectionné: ''openssl s_client -connect imap.domaine2.org:993 -servername imap.domaine2.org''. | ||
+ | |||
+ | Attention que le filtre est fait sur le //TLS SNI (Server Name Indication)//, une fonctionnalité que tous les clients mail n'implémentent pas. Thunderbird le fait, pas K9 mail (Android) par exemple. Dans le cas d'un client qui ne l'implémente pas, vous retomberez sur le certificat global. Il suffit de retirer le ''-servername imap.domaine2.org'' dans la commande openssl pour voir le résultat. | ||
==== Création d'utilisateur ==== | ==== Création d'utilisateur ==== | ||
Ligne 499: | Ligne 500: | ||
Et on redémarre ! | Et on redémarre ! | ||
- | <code>/etc/init.d/dovecot restart</code> | + | <code>systemcl restart dovecot</code> |
===== Score de spam ===== | ===== Score de spam ===== | ||
Ligne 715: | Ligne 716: | ||
add_header spam Waw c'est du spam _STARS(*)_ ca</code> | add_header spam Waw c'est du spam _STARS(*)_ ca</code> | ||
+ | ==== fail2ban ==== | ||
+ | |||
+ | Installer le package **fail2ban** et activer dans ''/etc/fail2ban/jail.conf'' les regles ''postfix'', ''dovecot'' et ''sasl''. | ||
===== Autre ===== | ===== Autre ===== | ||
Ligne 722: | Ligne 726: | ||
Une fonctionnalité intéressante dans Gmail est le "plus-addressing", le fait de pouvoir créer une infinité d'adresse email de type nom+alias@serveur.com. Dans postfix, c'est facilement reproductible (sans doute même activé par défaut il me semble). | Une fonctionnalité intéressante dans Gmail est le "plus-addressing", le fait de pouvoir créer une infinité d'adresse email de type nom+alias@serveur.com. Dans postfix, c'est facilement reproductible (sans doute même activé par défaut il me semble). | ||
- | Dans le fichier ''/etc/postfix/main.cf'', chercher la ligne suivante (la rajouter si inexistante) | + | Dans le fichier ''/etc/postfix/main.cf'', chercher la ligne suivante (l'ajouter si inexistante) |
<code>recipient_delimiter = +</code> | <code>recipient_delimiter = +</code> | ||
- | Cela spécifie que le symbole + sera considéré comme délimiteur. Si vous changez le "+" par ".", "_" ou autre, il deviendra le nouveau délimiteur. Cela vous permet donc de creer des adresses de type nom.alias@serveur.com a la place. Certains formulaires refusant les + ou les retirant automatiquement, vous servez ainsi paré (évidement ne fonctionne pas si votre adresse est prenom.nom@serveur.com). | + | Cela spécifie que le symbole + sera considéré comme délimiteur. Si vous changez le "+" par ".", "_" ou autre, il deviendra le nouveau délimiteur. Cela vous permet donc de crever des adresses de type nom.alias@serveur.com a la place. Certains formulaires refusant les + ou les retirant automatiquement, vous servez ainsi paré (évidement ne fonctionne pas si votre adresse est prenom.nom@serveur.com). |
==== Prolongements ==== | ==== Prolongements ==== | ||
La page [[fonction_mail_php|msmtp]] explique comment envoyer des mails en ligne de commande et avec PHP après avoir configuré ce serveur mail. | La page [[fonction_mail_php|msmtp]] explique comment envoyer des mails en ligne de commande et avec PHP après avoir configuré ce serveur mail. |