139 lines
5.4 KiB
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
|
|
*/
|