====== MX Setup ====== **Version aborted, look for v3** ===== Environment Setup ===== ==== VMail folder ==== groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /var/vmail -m ==== SQL ==== USE mail; CREATE TABLE domains ( domain varchar(50) NOT NULL, PRIMARY KEY (domain) ) ENGINE=MyISAM; CREATE TABLE forwardings ( source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) ) ENGINE=MyISAM; CREATE TABLE users ( email varchar(80) NOT NULL, password varchar(20) NOT NULL, quota INT(10) DEFAULT '10485760', PRIMARY KEY (email) ) ENGINE=MyISAM; CREATE TABLE transport ( domain varchar(128) NOT NULL default '', transport varchar(128) NOT NULL default '', UNIQUE KEY domain (domain) ) ENGINE=MyISAM; cat > /etc/postfix/mysql-virtual_alias.cf < /etc/postfix/mysql-virtual_domains.cf < /etc/postfix/mysql-virtual_forwardings.cf < /etc/postfix/mysql-virtual_mailboxes.cf < /etc/postfix/mysql-virtual_email2email.cf < /etc/postfix/mysql-virtual_transports.cf < /etc/postfix/mysql-virtual_mailbox_limit_maps.cf < ===== Packages Install ===== apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql FIXME # See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP $mail_name (Cray Linux Environment) biff = no # 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 # Server TLS parameters smtpd_tls_cert_file = /etc/dehydrated/certs//fullchain.pem smtpd_tls_key_file = /etc/dehydrated/certs//privkey.pem smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_dh1024_param_file = /etc/postfix/dh_3072.pem # Send TLS parameters smtp_tls_cert_file = $smtpd_tls_cert_file smtp_tls_key_file = $smtpd_tls_key_file smtp_use_tls = $smtpd_use_tls smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_tls_security_level = may # Disable ssl compression (postfix >=2.11) #tls_ssl_options = no_compression # Secure cipherlist setup tls_preempt_cipherlist = yes smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 smtpd_tls_protocols = $smtpd_tls_mandatory_protocols smtp_tls_mandatory_protocols = $smtpd_tls_mandatory_protocols smtp_tls_protocols = $smtpd_tls_mandatory_protocols smtpd_tls_mandatory_ciphers = high smtpd_tls_ciphers = $smtpd_tls_mandatory_ciphers smtp_tls_mandatory_ciphers = $smtpd_tls_mandatory_ciphers smtp_tls_ciphers = $smtpd_tls_mandatory_ciphers smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5, aEDH, RC4, eNULL, DES, 3DES smtpd_tls_exclude_ciphers = $smtpd_tls_mandatory_exclude_ciphers smtp_tls_mandatory_exclude_ciphers = $smtpd_tls_mandatory_exclude_ciphers smtp_tls_exclude_ciphers = $smtpd_tls_mandatory_exclude_ciphers # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = arwen.luthienstar.fr, mx0.luthienstar.fr, localhost, localhost.localdomain relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all message_size_limit = 30720000 virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_mailbox_base = /home/vmail virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 # Security #mtpd_delay_reject = yes #mtpd_helo_required = yes #mtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_hostname, reject_invalid_hostname, permit smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = reject_invalid_hostname, reject_unauth_pipelining, permit_sasl_authenticated, permit_mynetworks, check_sender_access hash:/etc/postfix/sender_acl, check_client_access hash:/etc/postfix/rbl_override, reject_unauth_destination transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks #mime_header_checks = regexp:/etc/postfix/mime_header_checks milter_default_action = accept milter_protocol = 6 milter_command_timeout = 60s smtpd_milters = unix:/var/run/spf-milter-python/spfmilter.sock unix:/var/run/opendkim/opendkim.sock unix:/var/run/opendmarc/opendmarc.sock unix:/var/run/spamass/spamass.sock non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock virtual_transport = maildrop maildrop_destination_recipient_limit = 1 ===== Dovecot-lda ===== FIXME Config Sieve require "fileinto"; require "mailbox"; require "variables"; require "subaddress"; require "envelope"; if header :contains "X-Spam-Flag" "YES" { fileinto "INBOX/Junk"; } if envelope :detail :matches "to" "*" { set :lower :upperfirst "tag" "${1}"; if mailboxexists "INBOX/${1}" { fileinto "INBOX/${1}"; } else { fileinto :create "INBOX/${tag}"; } } ===== SPF Milter ===== ===== DKIM Milter ===== ===== DMARC Milter ===== ===== Spamassassin Milter ===== ===== ClamAV Milter? =====