diff --git a/lib/configfiles/freebsd.inc.php b/lib/configfiles/freebsd.inc.php index 5c4f24c7..630182d9 100644 --- a/lib/configfiles/freebsd.inc.php +++ b/lib/configfiles/freebsd.inc.php @@ -111,6 +111,21 @@ return Array( 'restart' => Array( 'sh /usr/local/etc/rc.d/postfix restart' ) + ), + 'dkim' => Array( + 'label' => 'DomainKey filter', + 'commands' => Array( + 'cd /usr/ports/mail/dkim-milter/', + 'make install clean', + 'touch /usr/local/etc/mail/dkim-filter.conf' + ), + 'files' => Array( + 'dkim-filter.conf' => '/usr/local/etc/mail/dkim-filter.conf', + 'postfix_dkim_addition.cf' => '/usr/local/etc/postfix/main.cf' + ), + 'restart' => Array( + '/usr/local/etc/rc.d/milter-dkim restart ' + ) ) ) ), diff --git a/scripts/jobs/cron_tasks.inc.dns.10.bind.php b/scripts/jobs/cron_tasks.inc.dns.10.bind.php index 98133cbe..d391d0d6 100644 --- a/scripts/jobs/cron_tasks.inc.dns.10.bind.php +++ b/scripts/jobs/cron_tasks.inc.dns.10.bind.php @@ -289,7 +289,7 @@ class bind while($domain = $this->db->fetch_array($result_domains)) { - $privkey_filename = makeCorrectFile($this->settings['dkim']['dkim_prefix'] . '/dkim_' . $domain['dkim_id'] . '.private'); + $privkey_filename = makeCorrectFile($this->settings['dkim']['dkim_prefix'] . '/dkim_' . $domain['dkim_id']); $pubkey_filename = makeCorrectFile($this->settings['dkim']['dkim_prefix'] . '/dkim_' . $domain['dkim_id'] . '.public'); if($domain['dkim_privkey'] == '' @@ -297,7 +297,7 @@ class bind { $max_dkim_id = $this->db->query_first("SELECT MAX(`dkim_id`) as `max_dkim_id` FROM `" . TABLE_PANEL_DOMAINS . "`"); $domain['dkim_id'] = (int)$max_dkim_id['max_dkim_id'] + 1; - $privkey_filename = makeCorrectFile($this->settings['dkim']['dkim_prefix'] . '/dkim_' . $domain['dkim_id'] . '.private'); + $privkey_filename = makeCorrectFile($this->settings['dkim']['dkim_prefix'] . '/dkim_' . $domain['dkim_id']); safe_exec('openssl genrsa -out ' . escapeshellarg($privkey_filename) . ' 1024'); $domain['dkim_privkey'] = file_get_contents($privkey_filename); safe_exec("chmod 0640 " . escapeshellarg($privkey_filename)); diff --git a/templates/misc/configfiles/freebsd/dkim/dkim-filter.conf b/templates/misc/configfiles/freebsd/dkim/dkim-filter.conf new file mode 100644 index 00000000..579391e2 --- /dev/null +++ b/templates/misc/configfiles/freebsd/dkim/dkim-filter.conf @@ -0,0 +1,15 @@ +Syslog yes +UMask 002 + +Canonicalization relaxed/simple +Mode sv +SubDomains yes +X-Header yes + +KeyList /usr/local/etc/mail/dkim.key +Domain /usr/local/etc/mail/domains +LogWhy yes + +Socket inet:8891@localhost + +# OmitHeaders Return-Path,Received,Comments,Keywords,Bcc,Resent-Bcc,To diff --git a/templates/misc/configfiles/freebsd/dkim/postfix_dkim_addition.cf b/templates/misc/configfiles/freebsd/dkim/postfix_dkim_addition.cf new file mode 100644 index 00000000..932caf02 --- /dev/null +++ b/templates/misc/configfiles/freebsd/dkim/postfix_dkim_addition.cf @@ -0,0 +1,7 @@ +# +# Add these lines to the main.cf to use DKIM +# +milter_default_action = accept +milter_protocol = 2 +smtpd_milters = inet:localhost:8891 +non_smtpd_milters = inet:localhost:8891