mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-11-22 02:17:26 +00:00
status checks: check IPv6 reverse DNS
This commit is contained in:
parent
20e11bbab3
commit
fdad83a1bb
@ -10,7 +10,7 @@ Mail:
|
|||||||
|
|
||||||
Control panel:
|
Control panel:
|
||||||
|
|
||||||
* When IPv6 is enabled, check that system services are accessible over IPv6 too.
|
* When IPv6 is enabled, check that system services are accessible over IPv6 too and that reverse DNS is setup correctly for the IPv6 address.
|
||||||
* Explanatory text for setting up secondary nameserver is added/fixed.
|
* Explanatory text for setting up secondary nameserver is added/fixed.
|
||||||
* DNS checks now have a timeout in case a DNS server is not responding, so the checks don't stall indefinitely.
|
* DNS checks now have a timeout in case a DNS server is not responding, so the checks don't stall indefinitely.
|
||||||
* Better messages if external DNS is used and, weirdly, custom secondary nameservers are set.
|
* Better messages if external DNS is used and, weirdly, custom secondary nameservers are set.
|
||||||
|
@ -347,15 +347,20 @@ def check_primary_hostname_dns(domain, env, output, dns_domains, dns_zonefiles):
|
|||||||
issues listed here."""
|
issues listed here."""
|
||||||
% (env['PUBLIC_IP'], ip))
|
% (env['PUBLIC_IP'], ip))
|
||||||
|
|
||||||
# Check reverse DNS on the PRIMARY_HOSTNAME. Note that it might not be
|
# Check reverse DNS matches the PRIMARY_HOSTNAME. Note that it might not be
|
||||||
# a DNS zone if it is a subdomain of another domain we have a zone for.
|
# a DNS zone if it is a subdomain of another domain we have a zone for.
|
||||||
ipaddr_rev = dns.reversename.from_address(env['PUBLIC_IP'])
|
existing_rdns_v4 = query_dns(dns.reversename.from_address(env['PUBLIC_IP']), "PTR")
|
||||||
existing_rdns = query_dns(ipaddr_rev, "PTR")
|
existing_rdns_v6 = query_dns(dns.reversename.from_address(env['PUBLIC_IPV6']), "PTR") if env.get("PUBLIC_IPV6") else None
|
||||||
if existing_rdns == domain:
|
if existing_rdns_v4 == domain and existing_rdns_v6 in (None, domain):
|
||||||
output.print_ok("Reverse DNS is set correctly at ISP. [%s ↦ %s]" % (env['PUBLIC_IP'], env['PRIMARY_HOSTNAME']))
|
output.print_ok("Reverse DNS is set correctly at ISP. [%s ↦ %s]" % (
|
||||||
else:
|
env['PUBLIC_IP'] + (("/"+env['PUBLIC_IPV6']) if env.get("PUBLIC_IPV6") else ""),
|
||||||
|
env['PRIMARY_HOSTNAME']))
|
||||||
|
elif existing_rdns_v4 == existing_rdns_v6 or existing_rdns_v6 is None:
|
||||||
output.print_error("""Your box's reverse DNS is currently %s, but it should be %s. Your ISP or cloud provider will have instructions
|
output.print_error("""Your box's reverse DNS is currently %s, but it should be %s. Your ISP or cloud provider will have instructions
|
||||||
on setting up reverse DNS for your box at %s.""" % (existing_rdns, domain, env['PUBLIC_IP']) )
|
on setting up reverse DNS for your box.""" % (existing_rdns_v4, domain) )
|
||||||
|
else:
|
||||||
|
output.print_error("""Your box's reverse DNS is currently %s (IPv4) and %s (IPv6), but it should be %s. Your ISP or cloud provider will have instructions
|
||||||
|
on setting up reverse DNS for your box.""" % (existing_rdns_v4, existing_rdns_v6, domain) )
|
||||||
|
|
||||||
# Check the TLSA record.
|
# Check the TLSA record.
|
||||||
tlsa_qname = "_25._tcp." + domain
|
tlsa_qname = "_25._tcp." + domain
|
||||||
|
Loading…
Reference in New Issue
Block a user