# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Modified as per http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/ smtpd_banner = $myhostname ESMTP $mail_name biff = no # Accept messages up to 50MB message_size_limit = 51200000 # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # antispam smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname smtpd_sender_restrictions = reject_unknown_address disable_vrfy_command = yes strict_rfc821_envelopes = yes invalid_hostname_reject_code = 554 multi_recipient_bounce_reject_code = 554 non_fqdn_reject_code = 554 relay_domains_reject_code = 554 unknown_address_reject_code = 554 unknown_client_reject_code = 554 unknown_hostname_reject_code = 554 unknown_local_recipient_reject_code = 554 unknown_relay_recipient_reject_code = 554 unknown_virtual_alias_reject_code = 554 unknown_virtual_mailbox_reject_code = 554 unverified_recipient_reject_code = 554 unverified_sender_reject_code = 554 # TLS parameters smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3 smtp_tls_mandatory_protocols=!SSLv2,!SSLv3 smtp_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_cert_file=/etc/letsencrypt/live/{{ domain }}/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/{{ domain }}/privkey.pem smtpd_use_tls=yes smtpd_tls_auth_only = yes smtp_tls_security_level = may smtp_tls_loglevel = 2 smtpd_tls_received_header = yes smtp_tls_note_starttls_offer = yes smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt # http://www.postfix.org/FORWARD_SECRECY_README.html smtp_tls_ciphers = medium smtpd_tls_dh1024_param_file = /etc/ssl/private/dhparam2048.pem smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous # set to empty value for backwards compatibility # as per http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions smtpd_relay_restrictions = smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_pipelining, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = {{ mail_server_hostname }} myorigin = $mydomain alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 {{ ' '.join(friendly_networks) }} #mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all # dovecot db virtual_transport = lmtp:unix:private/dovecot-lmtp mailbox_transport = lmtp:unix:private/dovecot-lmtp dovecot_destination_recipient_limit = 1 virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual-mailbox-domains.cf virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual-mailbox-maps.cf virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf local_recipient_maps = $virtual_mailbox_maps # Milters: Rspamd smtpd_milters = inet:127.0.0.1:11332 non_smtpd_milters = $smtpd_milters milter_protocol = 6 milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen} {auth_type} milter_default_action = accept smtpd_client_restrictions = permit_sasl_authenticated # Postscreen postscreen_access_list = permit_mynetworks postscreen_dnsbl_sites = sbl-xbl.spamhaus.org*2 cbl.abuseat.org*2 bl.spamcop.net*2 dnsbl.sorbs.net*1 spam.spamrats.com*2 postscreen_dnsbl_threshold = 3 postscreen_dnsbl_action = enforce postscreen_greet_action = enforce {% if mail_header_privacy == 1 %} # Remove local client IP from headers smtp_header_checks = pcre:/etc/postfix/maps/smtp_header_checks.pcre {% endif %}