===== Installation d'un serveur SMTP MiNET ===== Des versions plus récentes des fichiers de configuration se trouvent peut-être sur Gitlab. ==== Réseau ==== # cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.102.18 netmask 255.255.255.0 auto eth2 iface eth2 inet static address 157.159.40.18 netmask 255.255.255.128 gateway 157.159.40.1 iface eth2 inet6 static address 2001:660:3203:422::A18 netmask 64 gateway 2001:660:3203:422::1 up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf auto eth103 iface eth103 inet static address 192.168.103.18 netmask 255.255.255.0 auto eth14 iface eth14 inet static address 192.168.14.7 netmask 255.255.255.0 ==== Paquets ==== apt-get install postfix sasl2-bin libsasl2-modules libsasl2-2 opendkim [opendkim-tools] ==== Configuration de l'authentification ==== # cat /etc/saslauthd.conf # LDAP MiNET ldap_servers: ldap://ldap.minet.net/ ldap_version: 3 ldap_auth_method: bind ldap_bind_dn: cn=sasl,ou=auths,ou=systems,ou=equipe,dc=minet,dc=net ldap_password: couic ldap_mech_list: plain login ldap_search_base: ou=equipe,dc=minet,dc=net ldap_filter: (|(&(uid=%u)(objectClass=gosaMailAccount)(|(gosaMailDeliveryMode=*L*)(gosaMailDeliveryMode=*V*)(gosaMailDeliveryMode=*I*)))(&(cn=%u)(cn=cyradmin))) Dans ''/etc/default/saslauthd'' : MECHANISMS="ldap" THREADS=10 OPTIONS="-O /etc/saslauthd.conf -c -m /var/spool/postfix/var/run/saslauthd" Les logs d'authentification sont situés dans ''/var/log/auth.log''. # cat /etc/postfix/sasl/smtpd.conf pwcheck_method: saslauthd mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 ==== Configuration du serveur mail ==== ########################## # Configuration générale # ########################## # Nom de domaine mydomain = minet.net alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # On diminue le temps de séjour dans la file. maximal_queue_lifetime = 2h bounce_queue_lifetime = 2h ######################## # Configuration réseau # ######################## # Autorisation de l'ipv6 (ipv4 par défaut) inet_protocols = all # Réseaux autorisés à relayer via la machine mynetworks = 127.0.0.0/8, 192.168.1.0/24, 192.168.14.0/24, 192.168.102.0/24, 192.168.103.0/24, [2001:660:3203:430::]/64, 157.159.40.243/32 ####################### # Transport des mails # ####################### # Machine à qui on transmet le courier non local (par défaut, adresse de destination) relayhost = mx.minet.net:10025 ####################################### # Configuration de l'authentification # # sur le LDAP avec SASL # ####################################### # Activation sasl smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous # Interopérabilité avec de vieux clients broken_sasl_auth_clients = yes # Ajouter le login de l'authentification à l'en-tête du message smtpd_sasl_authenticated_header = yes ###################### # Règles de filtrage # ###################### # HELO nécessaire smtpd_helo_required = yes # Restriction sur le port 25 : autorisation seulement sur le réseau local smtpd_recipient_restrictions = permit_mynetworks, reject # Restrictions sur les ports authentifiés submission_recipient_restrictions = permit_sasl_authenticated, reject ############ # Sécurité # ############ # Affiche l'hostname d'un serveur offrant du starttls smtp_tls_note_starttls_offer = yes # Certificats smtpd_tls_cert_file = /etc/postfix/tls/cert-minet.net.pem smtpd_tls_key_file = /etc/postfix/tls/key-minet.net.pem # Activation de SSL/TLS smtpd_use_tls = yes smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s # DKIM milter_default_action = accept milter_protocol = 2 smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891 # cat /etc/postfix/master.cf # # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: "man 5 master"). # # Do not forget to execute "postfix reload" after editing this file. # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - - - - smtpd submission inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=$submission_recipient_restrictions smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=$submission_recipient_restrictions #628 inet n - - - - qmqpd pickup fifo n - - 60 1 pickup cleanup unix n - - - 0 cleanup qmgr fifo n - n 300 1 qmgr #qmgr fifo n - - 300 1 oqmgr tlsmgr unix - - - 1000? 1 tlsmgr rewrite unix - - - - - trivial-rewrite bounce unix - - - - 0 bounce defer unix - - - - 0 bounce trace unix - - - - 0 bounce verify unix - - - - 1 verify flush unix n - - 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - - - - smtp # When relaying mail as backup MX, disable fallback_relay to avoid MX loops relay unix - - - - - smtp -o smtp_fallback_relay= # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - - - - showq error unix - - - - - error retry unix - - - - - error discard unix - - - - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - - - - lmtp anvil unix - - - - 1 anvil scache unix - - - - 1 scache ==== Configuration de DKIM ==== Génération des clés : opendkim-genkey -r -s mail -d minet.net Placer la clé privée dans ''/etc/postfix/dkim/minetnet_mail.private'', et le contenu de ''mail.txt'' dans un champ DNS du domaine ''minet.net''. Dans ''/etc/default/opendkim'' : SOCKET="inet:8891@localhost" Puis dans ''/etc/opendkim.conf'' : Domain minet.net KeyFile /etc/postfix/dkim/minetnet_mail.private Selector mail InternalHosts 192.168.102.0/24, 192.168.103.0/24, 192.168.14.0/24 Cela permet d'accepter sans problèmes et de signer les messages des vlans privés, en plus des messages soumis directement au smtp.