=====MTA (mail transfer agent)===== Below a configuration for an MTA with the config and user-info in files on the system. For a configuration with the user-info stored in LDAP see: This system is only the MTA itself, it routes the e-mail to one or more mailstores on separate machines. Cyrus, Dovecot, Zarafa, pick your choice. To service an RBL yourself, see: [[https://hannibal.solstice.nl/hannibalwiki/picoenterprise:email-rbl]] ====Service description==== This configuration has a submission listener on port 587/tcp, which only accepts TLS connections, and authenticated users (out of a sasl-passwordfile). Destination mail has to be delivered on port 25/tcp. ====Installation==== apt-get install postfix postfix-doc sasl2-bin libsasl2-modules Extra stuff: apt-get install postgrey apt-get install postfix-policyd-spf-python ====Configuration==== Add the postfix user to the group sasl: usermod -a -G sasl postfix Configure SASL: /etc/default/saslauthd START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="sasldb" MECH_OPTIONS="" THREADS=5 OPTIONS="-c -m /var/run/saslauthd" /etc/postfix/sasl/smtpd.conf pwcheck_method: saslauthd mech_list: plain login /etc/postfix/main.cf maximal_queue_lifetime = 12w bounce_queue_lifetime = 12w smtpd_banner = postoffice.example.com ESMTP disable_vrfy_command = yes biff = no append_dot_mydomain = no smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache myhostname = smtp.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = intra.example.com mydestination = smtp.intra.example.com, localhost mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = ipv4 virtual_alias_domains = example2.com example3.com example4.com virtual_alias_maps = hash:/etc/postfix/virtual transport_maps = hash:/etc/postfix/transport smtpd_sasl_type = cyrus smtpd_sasl_path = smtpd smtpd_sasl_auth_enable = no #broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous, noplaintext smtpd_sasl_tls_security_options = noanonymous smtpd_tls_auth_only = yes smtpd_sasl_authenticated_header = yes policy-spf_time_limit=3600s smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_helo_access hash:/etc/postfix/whitelist, reject_unauth_destination, check_policy_service unix:private/policy-spf, reject_rbl_client cbl.abuseat.org, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, check_policy_service inet:127.0.0.1:10023 /etc/postfix/virtual info1@example.com me@intra.example.com info2@example.com me@intra.example.com info3@example.com me@intra.example.com info4@example.com you@intra.example.com info5@example.com you@intra.example.com info6@example.com we@intra.example.com info7@example.com we@intra.example.com info8@example.com me@intra.example.com,we@intra.example.com /etc/postfix/transport me@intra.example.com smtp:cyrus1.intra.example.com:25 you@intra.example.com lmtp:cyrus2.intra.example.com:24 we@intra.example.com lmtp:dovecot1.intra.example.com:24 * smtp:[172.16.50.2] /etc/default/postgrey POSTGREY_OPTS="--inet=10023 --delay=250 --max-age=400" POSTGREY_TEXT="Lots of work now but welcome in five minutes" /etc/postfix-policyd-spf-python/policyd-spf.conf debugLevel = 1 defaultSeedOnly = 1 HELO_reject = SPF_Not_Pass Mail_From_reject = Fail PermError_reject = False TempError_Defer = False skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128 /etc/postfix/master.cf ... # smtp-submission: 587 inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_client_restrictions=permit_sasl_authenticated,reject ... # SPF: policy-spf unix - n n - - spawn user=nobody argv=/usr/bin/policyd-spf ...