Outils pour utilisateurs

Outils du site


admin:services:mail

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édentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
admin:services:mail [2015/01/25 14:12] – refonte pour une page plus claire bertrand.bonnefoy-claudetadmin:services:mail [2017/02/26 14:46] – [DKIM] Revert non-typo (chemin relatif au chroot…) david.sinquin
Ligne 3: Ligne 3:
 ====== Serveur email ====== ====== Serveur email ======
  
-Le serveur mail de FedeRez est [[http://www.postfix.org/|Postfix]].  Le filtrage de spam est effectué par [[http://postgrey.schweikert.ch/|Postgrey]], [[http://www.ijs.si/software/amavisd/|amavisd-new]], [[http://spamassassin.apache.org/|SpamAssassin]] et [[http://www.clamav.net|ClamAV]].+Le serveur mail de FedeRez est [[http://www.postfix.org/|Postfix]].  Le filtrage de spam est effectué par [[http://postgrey.schweikert.ch/|Postgrey]], [[http://www.ijs.si/software/amavisd/|amavisd-new]], [[http://spamassassin.apache.org/|SpamAssassin]] et [[http://www.clamav.net|ClamAV]].  Les emails sortants sont signés par [[http://www.opendkim.org/|OpenDKIM]].
  
 Ce serveur gère aussi les [[admin:services:mailman|mailing-lists]]. Ce serveur gère aussi les [[admin:services:mailman|mailing-lists]].
  
-===== Installation =====+===== Postfix =====
  
-  # aptitude install postfix postgrey +  # apt install postfix
-  # aptitude install amavisd-new clamav clamav-daemon clamav-freshclam +
-  # aptitude install spamassassin bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl +
-  # aptitude install lha arj rar unrar unrar-free nomarch lzop cabextract razor pyzor p7zip-full pax zip unzip lha zoo+
      
-===== Postfix =====+Sur hexagon, configurer Postfix en tant que serveur mail Internet pour le domaine **federez.net** :
  
   # dpkg-reconfigure postfix   # dpkg-reconfigure postfix
Ligne 28: Ligne 25:
  
 ===== Postgrey ===== ===== Postgrey =====
 +
 +Postgrey semble peu efficace, il n'est donc pas installé sur dodecagon. Ce qui suit pourra être effacé après migration à l'exception de la configuration de ```smtpd_recipient_restrictions```.
 +
 +  apt install postgrey
  
 Dans ''/etc/default/postgrey'' : Dans ''/etc/default/postgrey'' :
Ligne 36: Ligne 37:
 Dans ''/etc/postfix/main.cf'' : Dans ''/etc/postfix/main.cf'' :
  
-  # postgrey 
   smtpd_recipient_restrictions = permit_mynetworks,   smtpd_recipient_restrictions = permit_mynetworks,
                                  permit_sasl_authenticated,                                  permit_sasl_authenticated,
Ligne 42: Ligne 42:
                                  check_policy_service inet:127.0.0.1:10023                                  check_policy_service inet:127.0.0.1:10023
  
 +Vérifier que ''hostmaster@'' et ''postmaster@'' sont bien listés dans ''/etc/postgrey/whitelist_recipients''.
 +===== amavisd-new, SpamAssassin et ClamAV =====
  
-La whitelist est dans ''/etc/postgrey/whitelist_clients''.+Installer les trois programmes et les extensions leur permettant d'analyser les emails :
  
-Tout relancer : +  apt install amavisd-new clamav clamav-daemon clamav-freshclam \ 
- +  #     spamassassin bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl \ 
-  kill $(ps aux | grep '/postgrey' | grep -v grep | awk '{print $2}') +  #     lhasa arj rar unrar unrar-free nomarch lzop cabextract razor pyzor p7zip-full pax zip unzip zoo
-  # /etc/init.d/postgrey restart +
-  # /etc/init.d/postfix restart +
- +
-===== amavisd-new, SpamAssassin et ClamAV =====+
  
-Dans ''/etc/postfix/master.cf'', spécifier un service amavisfeed pour transmettre des messages à amavis et un service d'écoute sur le port 10025 pour récupérer les emails filtrés :+Dans ''/etc/postfix/master.cf'', spécifier un service **amavisfeed** pour transmettre des messages à amavis et un service d'écoute sur le port 10025 pour récupérer les emails filtrés :
  
   # amavisd-new   # amavisd-new
Ligne 98: Ligne 96:
 Dans ''/etc/amavis/conf.d/05-domain_id'', spécifier les domaines à prendre en compte : Dans ''/etc/amavis/conf.d/05-domain_id'', spécifier les domaines à prendre en compte :
  
-  @local_domains_acl = ( ".federez.net", ".federez.org", ".federez.fr", "federez.eu" );+  @local_domains_acl = ( ".federez.net", ".federez.org", ".federez.fr", ".federez.eu" );
  
 Dans ''/etc/spamassassin/local.cf'', désactiver l'expiration par SpamAssassin de tokens Bayes : Dans ''/etc/spamassassin/local.cf'', désactiver l'expiration par SpamAssassin de tokens Bayes :
Ligne 117: Ligne 115:
   # /etc/init.d/clamav-daemon restart   # /etc/init.d/clamav-daemon restart
   # /etc/init.d/postfix restart   # /etc/init.d/postfix restart
 +
 +===== DKIM =====
 +
 +Installer OpenDKIM et ses outils (pour la génération de clé) :
 +
 +  apt install opendkim opendkim-tools
 +
 +Générer une clé pour hexagon :
 +
 +  opendkim-genkey -a -b 3072 -h sha256 -s hexagon
 +
 +Le fichier généré ''hexagon.txt'' contient l'enregistrement à ajouter à la zone DNS, qu'il faut adapter pour respecter la limite de longueur :
 +
 +<code>
 +hexagon._domainkey TXT ("v=DKIM1; h=sha256; k=rsa;"
 +                        "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA25gly"
 +                        "4G4PlH/UEg80Qn1ie882v96u2OahP9bfzRfIcEjTQEswbdHC83N"
 +                        "wIRLRJPSxGko8pg5ediL5fFsb8uze2PUnDuGG/8gqBUjpBojwO4"
 +                        "CVdBMi+IXd8r0CLPrnPH9hRdxKLFWNYTAjxbt4OvlZJ6HbqF68a"
 +                        "b+nqsPUJByYUnaBNY4WvGEI5iLTKlhwWGO5bFFkoAGiOn8Ek3bV"
 +                        "F8Q/r88DkW3gJs+42/Q4JdgaDpwrmT77KNKNLZJbug12qy4o6YG"
 +                        "V6acPeiYuCPDwZdbMB7kup2mTeeT2gXkBbLMIAA1XWFbXvcclh5"
 +                        "JFH/qzHpjiWmVgpYZpcPrUiUXygBWuQIDAQAB")
 +</code>
 +
 +Pendant la mise en place, il est recommandé de lui affecter un petit TTL et l'option de ''t=y;'' de façon à ce qu'une erreur soit rapide à corriger et n'ait pas d'impact sur l'acheminement des emails.
 +
 +L'autre fichier généré, ''hexagon.private'', est la clé privée.  La placer dans ''/etc/dkim'' et restreindre les permissions à la lecture seule, pour OpenDKIM :
 +
 +  mv hexagon.private /etc/dkim
 +  chown opendkim: /etc/dkim/hexagon.private
 +  chmod a-w /etc/dkim/hexagon.private
 +
 +Configurer OpenDKIM pour cette clé et ce domaine, dans ''/etc/opendkim.conf'' :
 +
 +  Domain federez.net
 +  KeyFile /etc/dkim/hexagon.private
 +  Selector hexagon
 +
 +Pour communiquer avec Postfix, utiliser un socket unix dans son chroot :
 +
 +  mkdir -p /var/spool/postfix/var/run/opendkim
 +  chown opendkim: /var/spool/postfix/var/run/opendkim
 +
 +Le chemin du socket est configuré dans ''/etc/default/opendkim'' :
 +
 +  SOCKET="local:/var/spool/postfix/var/run/opendkim/opendkim.sock"
 +
 +Comme suggéré dans ''/usr/share/doc/opendkim/README.Debian'', pour que Postfix ait accès au socket créé par OpenDKIM, choisir **mail** comme groupe primaire pour **opendkim** :
 +
 +  usermod -g mail opendkim
 +
 +Ajouter ensuite postfix au groupe mail :
 +  adduser postfix mail
 +
 +Enfin, configurer Postfix dans ''/etc/postfix/main.cf'' :
 +
 +  milter_default_action = accept
 +  smtpd_milters = unix:/var/run/opendkim/opendkim.sock # Chemin relatif au chroot
 +  non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
 +
 +L'action par défaut **accept** permet au serveur de continuer à fonctionner s'il y a une erreur sur le socket d'OpenDKIM.
 +
 +===== Envoi authentifié d'email =====
 +
 +Postfix peut authentifier des clients et leur permettre de relayer des emails sortants avec l'implémentation SASL de [[http://www.cyrusimap.org|CyrusIMAP]].  La convention est d'utiliser le port TCP 587 (submission) pour cette fonctionnalité.
 +
 +Installer SASL :
 +
 +  apt install sasl2-bin
 +
 +Dans ''/etc/default/saslauthd'', permettre le démarrage du démon, choisir le mécanisme **ldap** et choisir un répertoire dans le chroot de Postfix pour que ce dernier puisse accéder au socket unix de **saslauthd** :
 +
 +  START=yes
 +  MECHANISMS="ldap"
 +  OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
 +
 +Indiquer à Debian le nouveau répertoire et ajouter **postfix** au groupe **sasl** pour l'accès au socket :
 +
 +  dpkg-statoverride --add root sasl 750 /var/spool/postfix/var/run/saslauthd
 +  gpasswd -a postfix sasl
 +
 +Configurer la connexion au serveur LDAP, dans ''/etc/saslauthd.conf'' :
 +
 +  ldap_servers: ldap://ldap.federez.net ldap://ldap-ro.federez.net
 +  ldap_start_tls: yes 
 +  ldap_tls_check_peer: yes 
 +  ldap_search_base: ou=users,dc=federez,dc=net
 +  ldap_filter: (uid=%u)
 +  ldap_bind_dn: cn=saslauth,ou=service-users,dc=federez,dc=net
 +  ldap_password: secret
 +
 +Un compte de service LDAP a été créé pour permettre à **saslauthd** d'authentifier des utilisateurs.
 +
 +Configurer Postfix pour l'authentification SASL, dans ''/etc/postfix/sasl/smtpd.conf'' :
 +
 +  pwcheck_method: saslauthd
 +  mech_list: PLAIN LOGIN
 +
 +Activer le service **submission** avec authentification SASL, dans ''/etc/postfix/master.cf'' :
 +
 +  submission inet n                               smtpd
 +    -o syslog_name=postfix/submission
 +    -o smtpd_tls_security_level=encrypt
 +    -o smtpd_sasl_auth_enable=yes
 +    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
 +    -o milter_macro_daemon_name=ORIGINATING
 +
 +===== Boîtes mail =====
 +
 +Pour permettre de récupérer ses mails en IMAPS, on installe dovecot :
 +  apt install 'dovecot-(core|imapd|ldap)'
 +
 +Pour n'écouter que sur le port IMAPS (donc avec une connexion en TLS) on crée ''/etc/dovecot/local.conf'' avec :
 +<file bash /etc/dovecot/local.conf>
 +# On force IMAP en TLS dès le début de la connexion
 +service imap-login {
 +    inet_listener imap {
 +        port=0
 +    }
 +}
 +</file>
 +
 +Ensuite, on édite des fichiers dans ''/etc/dovecot/conf.d/'' pour avoir :
 +<file bash /etc/dovecot/conf.d/10-auth.conf>
 +auth_mechanisms = plain login
 +</file>
 +
 +<file bash /etc/dovecot/conf.d/10-mail.conf>
 +mail_location = maildir:~/Maildir
 +</file>
 +
 +<file bash /etc/dovecot/conf.d/10-master.conf>
 +service auth {
 +        unix_listener /var/spool/postfix/private/auth {
 +                mode = 0660
 +                user = postfix
 +                group = postfix
 +        }
 +}
 +</file>
 +
 +<file bash /etc/dovecot/conf.d/10-ssl.conf>
 +ssl = required
 +
 +ssl_cert = </etc/letsencrypt/live/federez.net/fullchain.pem
 +ssl_key = </etc/letsencrypt/live/federez.net/privkey.pem
 +
 +ssl_dh_parameters_length = 3072
 +
 +ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
 +
 +ssl_cipher_list = ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384
 +
 +ssl_prefer_server_ciphers = yes
 +</file>
 +
 +On configure postfix pour écrire les mail dans le home des utilisateurs en ajoutant dans ''/etc/postfix/main.cf'' :
 +  home_mailbox = Maildir/
 +
 +On configurera pour finir fail2ban pour bannir ceux qui ferraient trop d'échecs de connexions (pour dovecot, et, si ce n'est pas déjà fait, pour postfix et sasl).
admin/services/mail.txt · Dernière modification : 2017/02/26 16:26 de david.sinquin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki