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

Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
admin:mail [2013/07/23 11:57] – Création de la page, sans commentaires. thomas.fuzeauadmin:services:mail [2017/02/26 14:46] – [DKIM] Revert non-typo (chemin relatif au chroot…) david.sinquin
Ligne 1: Ligne 1:
-====== Serveurs Mails ======+[[:admin|< retour à la page de l'administration technique]]
  
-Cette page explique succinctement comment configurer un serveur mails sous postfix avec amavisd, spamassassin et clamav.+====== Serveur email ======
  
-Il est également possible d'ajouter un outil de [[admin:mailman|Mailing-list]].+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]].
  
-===== Packages =====+Ce serveur gère aussi les [[admin:services:mailman|mailing-lists]].
  
-  # nano /etc/apt/sources.list+===== Postfix =====
  
-  # wheezy-updates +  # apt install postfix 
-  deb     http://ftp.fr.debian.org/debian/     wheezy-updates main contrib non-free +   
-  deb-src http://ftp.fr.debian.org/debian/     wheezy-updates main contrib non-free +Sur hexagon, configurer Postfix en tant que serveur mail Internet pour le domaine **federez.net** :
- +
-  # aptitude update +
-  # aptitude upgrade +
- +
-  # aptitude install postfix postgrey +
-  # 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+
  
   # dpkg-reconfigure postfix   # dpkg-reconfigure postfix
-  System mail name : quigon.federez.net+  System mail name : hexagon.federez.net
   root and postmaster mail recipient : admin@federez.net   root and postmaster mail recipient : admin@federez.net
-  Other destinations to accept mail for : federez.net, quigon.federez.net, etc.+  Other destinations to accept mail for : federez.net, hexagon.federez.net, etc.
   Force synchronous updates on mail queue : No   Force synchronous updates on mail queue : No
   Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128   Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Ligne 31: Ligne 23:
   Local address extension character: +   Local address extension character: +
   Internet protocols to use: all   Internet protocols to use: all
- 
  
 ===== Postgrey ===== ===== Postgrey =====
  
-  nano /etc/default/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'' :
  
   POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=65 --max-age=40 --retry-window=5h --auto-whitelist-clients=3"   POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=65 --max-age=40 --retry-window=5h --auto-whitelist-clients=3"
   POSTGREY_TEXT="Unable to accept the message now. Please retry later."   POSTGREY_TEXT="Unable to accept the message now. Please retry later."
  
-  # nano /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 48: 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 =====
  
-  # nano /etc/postgrey/whitelist_clients+Installer les trois programmes et les extensions leur permettant d'analyser les emails :
  
-  # some others +  # apt install amavisd-new clamav clamav-daemon clamav-freshclam \ 
-  scarlet.be +  #     spamassassin bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl \ 
-  hotmail.com +  #     lhasa arj rar unrar unrar-free nomarch lzop cabextract razor pyzor p7zip-full pax zip unzip zoo
-  yahoo.co.uk +
-  europa.eu +
-  mail-out.ovh.net +
-  paypal.com +
-  mxb.ovh.net +
-  cert.org +
-  bigfoot.com +
-  brutele.be +
-  tech.numericable.fr+
  
-  # kill $(ps aux | grep '/postgrey' | grep -v grep | awk '{print $2}'+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 :
-  # /etc/init.d/postgrey restart +
-  # /etc/init.d/postfix restart+
  
---> postgrey doit marcher :-) --< +  # amavisd-new
- +
-===== Amavisd, spamassassin, clamav ===== +
- +
-  # nano /etc/postfix/master.cf +
- +
-  # amavis+
   amavisfeed unix    -                             smtp   amavisfeed unix    -                             smtp
        -o smtp_data_done_timeout=1200        -o smtp_data_done_timeout=1200
Ligne 102: Ligne 81:
        -o relay_recipient_maps=        -o relay_recipient_maps=
  
-  # nano /etc/postfix/main.cf+Dans ''/etc/postfix/main.cf'', déclarer le service de filtrage :
  
   # amavis   # amavis
Ligne 108: Ligne 87:
   receive_override_options = no_address_mappings   receive_override_options = no_address_mappings
  
-  # nano /etc/amavis/conf.d/15-content_filter_mode+Dans ''/etc/amavis/conf.d/15-content_filter_mode'', activer le filtrage de spam et de virus :
  
   @bypass_virus_checks_maps = (   @bypass_virus_checks_maps = (
Ligne 115: Ligne 94:
      \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);      \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
  
-  # nano /etc/amavis/conf.d/05-domain_id+Dans ''/etc/amavis/conf.d/05-domain_id'', spécifier les domaines à prendre en compte :
  
-  #@local_domains_acl = ( ".$mydomain" ); +  @local_domains_acl = ( ".federez.net", ".federez.org", ".federez.fr", ".federez.eu" );
-  @local_domains_acl = ( ".federez.net", ".federez.org", ".federez.fr", "federez.eu" );+
  
-  # nano /etc/amavis/conf.d/20-debian_defaults +Dans ''/etc/spamassassin/local.cf'', désactiver l'expiration par SpamAssassin de tokens Bayes :
- +
-  $sa_spam_subject_tag = ''+
-  [...] +
-  # qr'.\.(exe|vbs|pif|scr|bat|cmd|com|cpl)$'i, # banned extension - basic +
-    qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|grp|hlp|hta| +
-           inf|ins|isp|js|jse|lnk|mda|mdb|mde|mdw|mdt|mdz|msc|msi|msp|mst| +
-           ops|pcd|pif|prg|reg|scr|sct|shb|shs|vb|vbe|vbs| +
-           wmf|wsc|wsf|wsh)$'ix,  # banned ext - long +
-  [...] +
- +
-  # nano /etc/amavis/conf.d/01-debian +
- +
-  $unrar      = ['rar', 'unrar']; #disabled (non-free, no security support) +
-  #$unrar      = ['unrar-free']; +
- +
-  # nano /etc/spamassassin/local.cf+
  
   bayes_auto_expire 0   bayes_auto_expire 0
- +   
-  # nano /etc/default/spamassassin+Activer le lancement de SpamAssassin par le système en modifiant ''/etc/default/spamassassin'' :
  
   CRON=1   CRON=1
 +  
 +Enfin, initialiser SpamAssassin, ClamAV et amavisd-new, puis tout relancer :
  
   # adduser clamav amavis   # adduser clamav amavis
Ligne 152: Ligne 116:
   # /etc/init.d/postfix restart   # /etc/init.d/postfix restart
  
-===== Debug =====+===== 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
  
-  /usr/share/doc/amavisd-new/README.Debian +ssl_prefer_server_ciphers = yes 
-  /usr/share/doc/amavisd-new/README.postfix.gz+</file>
  
-  /etc/init.d/amavis debug +On configure postfix pour écrire les mail dans le home des utilisateurs en ajoutant dans ''/etc/postfix/main.cf'' : 
-  ou +  home_mailbox = Maildir/
-  /etc/init.d/amavis debug-sa+
  
-  tail /var/log/mail.log+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