manager/install/postfix.go

139 lines
5.4 KiB
Go

package install
import "fmt"
const (
postconf = "postconf"
)
func setPostfixVirtualMysql() error {
if e := postfixSetConfig("virtual_alias_maps", "mysql:/etc/postfix/mysql/virtual_alias_maps.cf"); e != nil {
return e
}
if e := postfixSetConfig("virtual_mailbox_domains", "mysql:/etc/postfix/mysql/virtual_domains_maps.cf"); e != nil {
return e
}
if e := postfixSetConfig("virtual_mailbox_maps", "mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf"); e != nil {
return e
}
return nil
}
func setPostfixConfigAll(hostname string) error {
postfixSetConfig("compatibility_level", "2")
postfixSetConfig("queue_directory", "/var/spool/postfix")
postfixSetConfig("command_directory", "/usr/sbin")
postfixSetConfig("daemon_directory", "/usr/libexec/postfix")
postfixSetConfig("data_directory", "/var/lib/postfix")
postfixSetConfig("mail_owner", "postfix")
postfixSetConfig("myhostname", hostname)
postfixSetConfig("mydomain", "")
postfixSetConfig("myorigin", "$myhostname")
postfixSetConfig("inet_interfaces", "all")
postfixSetConfig("unknown_local_recipient_reject_code", "550")
postfixSetConfig("mynetworks_style", "host")
postfixSetConfig("alias_maps", "hash:/etc/aliases")
postfixSetConfig("smtpd_banner", "$myhostname ESMTP $mail_name")
postfixSetConfig("debug_peer_level", "2")
postfixSetConfig("debugger_command", "PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5")
postfixSetConfig("sendmail_path", "/usr/sbin/sendmail")
postfixSetConfig("newaliases_path", "/usr/bin/newaliases")
postfixSetConfig("mailq_path", "/usr/bin/mailq")
postfixSetConfig("setgid_group", "postdrop")
postfixSetConfig("html_directory", "no")
postfixSetConfig("manpage_directory", "/usr/share/man")
postfixSetConfig("readme_directory", "no")
postfixSetConfig("inet_protocols", "ipv4,ipv6")
postfixSetConfig("meta_directory", "/etc/postfix")
postfixSetConfig("shlib_directory", "/usr/lib64/postfix/${mail_version}")
postfixSetConfig("smtp_tls_session_cache_database", "btree:/var/lib/postfix/smtp_scache")
postfixSetConfig("smtp_tls_security_level", "may")
postfixSetConfig("tls_random_source", "dev:/dev/urandom")
postfixSetConfig("smtp_tls_loglevel", "1")
postfixSetConfig("smtpd_tls_loglevel", "1")
postfixSetConfig("smtpd_tls_cert_file", fmt.Sprintf("/etc/letsencrypt/live/%s/fullchain.pem", hostname))
postfixSetConfig("smtpd_tls_received_header", "yes")
postfixSetConfig("smtpd_tls_security_level", "may")
postfixSetConfig("smtpd_tls_key_file", fmt.Sprintf("/etc/letsencrypt/live/%s/privkey.pem", hostname))
postfixSetConfig("append_dot_mydomain", "no")
postfixSetConfig("biff", "no")
postfixSetConfig("delay_warning_time", "4h")
postfixSetConfig("smtpd_use_tls", "yes")
postfixSetConfig("smtpd_tls_session_cache_database", "btree:/var/lib/postfix/smtpd_scache")
postfixSetConfig("smtp_tls_session_cache_database", "btree:/var/lib/postfix/smtp_scache")
postfixSetConfig("smtpd_tls_loglevel", "1")
postfixSetConfig("smtpd_tls_auth_only", "yes")
postfixSetConfig("mailbox_size_limit", "0")
postfixSetConfig("recipient_delimiter", "+")
postfixSetConfig("notify_classes", "resource, software")
postfixSetConfig("error_notice_recipient", "info@icod.de")
// postfixSetConfig("")
return nil
}
func postfixSetConfig(key, value string) error {
return runCmd(postconf, "-e", fmt.Sprintf("%s = %s", key, value))
}
/*
virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf
virtual_gid_maps = static:2000
virtual_mailbox_base = /srv/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
virtual_minimum_uid = 2000
virtual_uid_maps = static:2000
#dovecot_destination_recipient_limit = 1
virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
message_size_limit = 40000000
home_mailbox = Maildir/
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtp_use_tls = yes
smtpd_tls_received_header = yes
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1
smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1
smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1
smtpd_tls_mandatory_ciphers = medium
tls_random_source = dev:/dev/urandom
smtpd_recipient_restrictions =
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_non_fqdn_sender,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client bl.spamcop.net,
smtpd_helo_required = yes
smtpd_sender_restrictions =
reject_unknown_sender_domain,
check_sender_access pcre:/etc/postfix/access
smtpd_data_restrictions =
reject_unauth_pipelining
smtpd_client_restrictions = permit_sasl_authenticated
#,reject_rbl_client localhost
# check_client_access hash:/etc/postfix/client_access,
smtpd_milters = inet:localhost:8891 inet:localhost:11332
non_smtpd_milters = inet:localhost:8891
milter_default_action = accept
smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CBC3-SHA, KRB5-DES, CBC3-SHA
smtpd_tls_dh512_param_file = /etc/postfix/dhparams.pem
smtpd_tls_dh1024_param_file = /etc/postfix/dhparams.pem
*/