diff --git a/lib/functions/dns/function.createDomainZone.php b/lib/functions/dns/function.createDomainZone.php index ad21ee45..c1384537 100644 --- a/lib/functions/dns/function.createDomainZone.php +++ b/lib/functions/dns/function.createDomainZone.php @@ -233,41 +233,54 @@ function createDomainZone($domain_id, $froxlorhostname = false, $isMainButSubTo if (Settings::Get('dkim.use_dkim') == '1') { $dkim_entries = generateDkimEntries($domain); } + if ($domain['isemaildomain'] == '1') { + #DKIM AND DMARC + $zonerecords[] = new DnsEntry('mx._domainkey', 'TXT', '("v=DKIM1; k=rsa;" + "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyk6+Y5RkqqGeTxWmULWE" + "6Z+6SA9M/ccJW9cVhjKLbrGOc3/i0lTvIY1KqNGxvcqZEFyVJJsXL6dnWIcmYY01" + "GIeVL0nAxjLenW3NKFn+bpTmIiHYEegti4R5Il5NRm8o9g41pYqf3yVfqHKr8zNj" + "LnnxBySTX2HpBgTtIZmK13IIbdeeE02aJi5g9AjxpkDak6iv8/kIOVaIgvFKSrSJ" + "E6XZs2ap+RxYLxhDegIwevEFIUUqKYKxwFBx1ELRbvRkxZknH3PdWE9IJqGRxi02" + "gvGhqjXP3JykumRBC47OHeufAeNsx5xy6tsetTq1rOPvMOCeBq1hQWKNUowTMP+/" + "CQIDAQAB" + )'); + $zonerecords[] = new DnsEntry('_dmarc', 'TXT', encloseTXTContent('v=DMARC1; p=reject; rua=mailto:nyvpxtul@ag.dmarcian-eu.com; fo=1; adkim=r; aspf=r; pct=100; rf=afrf; ri=86400;')); + } foreach ($required_entries as $type => $records) { - if ($type == 'TXT') { - foreach ($records as $record) { - if ($record == '@SPF@') { - $txt_content = Settings::Get('spf.spf_entry'); - $zonerecords[] = new DnsEntry('@', 'TXT', encloseTXTContent($txt_content)); - } elseif ($record == 'dkim_' . $domain['dkim_id'] . '._domainkey' && ! empty($dkim_entries)) { - // check for multiline entry - $multiline = false; - if (substr($dkim_entries[0], 0, 1) == '(') { - $multiline = true; - } - $zonerecords[] = new DnsEntry($record, 'TXT', encloseTXTContent($dkim_entries[0], $multiline)); - } elseif ($record == '_adsp._domainkey' && ! empty($dkim_entries) && isset($dkim_entries[1])) { - $zonerecords[] = new DnsEntry($record, 'TXT', encloseTXTContent($dkim_entries[1])); - } + if ($type == 'TXT') { + foreach ($records as $record) { + if ($record == '@SPF@') { + $txt_content = Settings::Get('spf.spf_entry'); + $zonerecords[] = new DnsEntry('@', 'TXT', encloseTXTContent($txt_content)); + } elseif ($record == 'dkim_' . $domain['dkim_id'] . '._domainkey' && ! empty($dkim_entries)) { + // check for multiline entry + $multiline = false; + if (substr($dkim_entries[0], 0, 1) == '(') { + $multiline = true; } + $zonerecords[] = new DnsEntry($record, 'TXT', encloseTXTContent($dkim_entries[0], $multiline)); + } elseif ($record == '_adsp._domainkey' && ! empty($dkim_entries) && isset($dkim_entries[1])) { + $zonerecords[] = new DnsEntry($record, 'TXT', encloseTXTContent($dkim_entries[1])); + } } + } } } } if (empty($primary_ns)) { - // TODO log error: no NS given, use system-hostname - $primary_ns = Settings::Get('system.hostname'); + // TODO log error: no NS given, use system-hostname + $primary_ns = Settings::Get('system.hostname'); } if (! $isMainButSubTo) { - $date = date('Ymd'); - $domain['bindserial'] = (preg_match('/^' . $date . '/', $domain['bindserial']) ? - $domain['bindserial'] + 1 : - $date . '00'); - if (!$froxlorhostname) { - $upd_stmt = Database::prepare(" + $date = date('Ymd'); + $domain['bindserial'] = (preg_match('/^' . $date . '/', $domain['bindserial']) ? + $domain['bindserial'] + 1 : + $date . '00'); + if (!$froxlorhostname) { + $upd_stmt = Database::prepare(" UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `bindserial` = :serial WHERE `id` = :id diff --git a/scripts/jobs/cron_tasks.inc.dns.10.bind.php b/scripts/jobs/cron_tasks.inc.dns.10.bind.php index 2934e2a6..504b733f 100644 --- a/scripts/jobs/cron_tasks.inc.dns.10.bind.php +++ b/scripts/jobs/cron_tasks.inc.dns.10.bind.php @@ -114,28 +114,29 @@ class bind extends DnsBase $bindconf_file .= ' type master;' . "\n"; $bindconf_file .= ' file "' . makeCorrectFile(Settings::Get('system.bindconf_directory') . '/' . $domain['zonefile']) . '";' . "\n"; $bindconf_file .= ' allow-query { any; };' . "\n"; - - if (count($this->_ns) > 0 || count($this->_axfr) > 0) { - // open allow-transfer - $bindconf_file .= ' allow-transfer {' . "\n"; - // put nameservers in allow-transfer - if (count($this->_ns) > 0) { - foreach ($this->_ns as $ns) { - foreach ($ns["ips"] as $ip) { - $bindconf_file .= ' ' . $ip . ";\n"; - } - } - } - // AXFR server #100 - if (count($this->_axfr) > 0) { - foreach ($this->_axfr as $axfrserver) { - $bindconf_file .= ' ' . $axfrserver . ';' . "\n"; - } - } - // close allow-transfer - $bindconf_file .= ' };' . "\n"; - } - + # 2016-12-15 disabled now + #if (count($this->_ns) > 0 || count($this->_axfr) > 0) { + # // open allow-transfer + # $bindconf_file .= ' allow-transfer {' . "\n"; + # // put nameservers in allow-transfer + # if (count($this->_ns) > 0) { + # foreach ($this->_ns as $ns) { + # foreach ($ns["ips"] as $ip) { + # $bindconf_file .= ' ' . $ip . ";\n"; + # } + # } + # } + # // AXFR server #100 + # if (count($this->_axfr) > 0) { + # foreach ($this->_axfr as $axfrserver) { + # if (validate_ip($axfrserver, true) !== false) { + # $bindconf_file .= ' ' . $axfrserver . ';' . "\n"; + # } + # } + # } + # // close allow-transfer + # $bindconf_file .= ' };' . "\n"; + #} $bindconf_file .= '};' . "\n"; $bindconf_file .= "\n";