===== 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.