MX, SPF and RPZ Re: DNS domain Pointing to a DSL U/verse host

2019-08-16 Thread m3047

Hi Eduardo.

On Thu, 15 Aug 2019, Eduardo Bonsi wrote:

First, thank you for taking the time to layout your views and suggestion!


;-)


NOTE: This is a perfect use case for off-label use of RPZ, you could
define your PTR record in an RPZ and you wouldn't need to take over the 
whole zone.


Thank you for this suggestion! It would be great to have some examples, 
if is not to ask you too much already!


Sure. 8-) Do you have waldo in your domain?

# dig waldo.bonsi.org

; <<>> DiG 9.8.3-P1 <<>> waldo.bonsi.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 10359
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;waldo.bonsi.org.   IN  A

;; AUTHORITY SECTION:
bonsi.org.		300	IN	SOA 
ns-cloud-b1.googledomains.com. cloud-dns-hostmaster.google.com. 56 21600 
3600 259200 300


;; Query time: 540 msec
;; SERVER: 10.0.0.220#53(10.0.0.220)
;; WHEN: Fri Aug 16 09:52:54 2019
;; MSG SIZE  rcvd: 129

Let's fix that:

# net-dns.pl add white waldo.bonsi.org A 10.9.8.7

(That's a script which dynamically updates the zone whitelist.m3047.net, a 
local vanity domain.)


# dig waldo.bonsi.org.whitelist.m3047.net

; <<>> DiG 9.8.3-P1 <<>> waldo.bonsi.org.whitelist.m3047.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42402
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;waldo.bonsi.org.whitelist.m3047.net. INA

;; ANSWER SECTION:
WALDO.BONSI.ORG.whitelist.m3047.net. 600 IN A   10.9.8.7

;; Query time: 7 msec
;; SERVER: 10.0.0.220#53(10.0.0.220)
;; WHEN: Fri Aug 16 09:55:41 2019
;; MSG SIZE  rcvd: 104

Let's make sure I didn't break your zone:

# dig www.bonsi.org

; <<>> DiG 9.8.3-P1 <<>> www.bonsi.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42111
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.bonsi.org. IN  A

;; ANSWER SECTION:
www.bonsi.org.  21600   IN  A   162.201.66.177

;; Query time: 126 msec
;; SERVER: 10.0.0.220#53(10.0.0.220)
;; WHEN: Fri Aug 16 09:56:49 2019
;; MSG SIZE  rcvd: 47

Looks good. Where's waldo?

# dig waldo.bonsi.org

; <<>> DiG 9.8.3-P1 <<>> waldo.bonsi.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16655
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;waldo.bonsi.org.   IN  A

;; ANSWER SECTION:
WALDO.BONSI.ORG.5   IN  A   10.9.8.7

;; ADDITIONAL SECTION:
whitelist.m3047.net.	1	IN	SOA	DEV.NULL. M3047.M3047.NET. 
364 600 60 86400 600


;; Query time: 7 msec
;; SERVER: 10.0.0.220#53(10.0.0.220)
;; WHEN: Fri Aug 16 09:57:26 2019
;; MSG SIZE  rcvd: 142

You'll notice that the authority comes from whitelist.m3047.net, and that 
I didn't have to take over your entire zone in order to rewrite that 
particular FQDN. This does break DNSSEC.


How does this hang together in the BIND config?

# cat /etc/named.conf
...
options {
...
 // RPZs
 response-policy {
 zone "whitelist.m3047.net";
 zone "rpz1.m3047.net";
 };
...
};
...
zone "whitelist.m3047.net" {
 type master;
 check-names ignore;
 file "whitelist.m3047.net";
};
...

# rndc freeze whitelist.m3047.net
# rndc thaw whitelist.m3047.net
# cat whitelist.m3047.net
$ORIGIN .
$TTL 900; 15 minutes
whitelist.m3047.net IN SOA  DEV.NULL. M3047.M3047.NET. (
364; serial
600; refresh (10 minutes)
60 ; retry (1 minute)
86400  ; expire (1 day)
600; minimum (10 minutes)
)
NS  LOCALHOST.
...
$ORIGIN AP.ORG.whitelist.m3047.net.
*   CNAME   rpz-passthru.
$ORIGIN ORG.whitelist.m3047.net.
WALDO.BONSI A   10.9.8.7
$ORIGIN CONSUMERREPORTSCDN.ORG.whitelist.m3047.net.
*   CNAME   rpz-passthru.
...

(RPZs have special semantics for actions like passthrough and NXDOMAIN.)


Fundamentally, you're not authoritative for the zone:


I am totally aware about that! That would be more simple if I just go 
ahead and order some static ips from AT ...and that would cost me an 
arm and a leg and get done with it! Then, "probably" I would not > be 
here asking this question at all.


We are referring to the in-addr.arpa zone, just to be clear. There is 
reverse for it, it's just provided by SW Bell. It's not pointing to an 
FQDN within your zone (bonsi.org). That could be seen as "spammy", but a 
lot of people outsource email these days. (It would be interesting to know 
just how "spammy" that is as a feature in reality and in perception.) Some 
people view 

Re: DNS domain Pointing to a DSL U/verse host

2019-08-15 Thread Eduardo Bonsi
Dear Fred,

> First, thank you for taking the time to layout your views and suggestion!


I've read through this a couple of times. Seems like you've got Apache running 
on 162.201.66.177 (and presumably you know that it is in fact visible to the 
world). The provider's reverse record points to 
162-201-66-177.lightspeed.sntcca.sbcglobal.net. You run the DNS for the zone, 
and you've got the address in question in there as www. You've also usurped the 
zone 66.201.162.in-addr.arpa and configured it on that server.

The problem statement seems to be some variation of "when I do a reverse lookup 
on 162.201.66.177 I get 162-201-66-177.lightspeed.sntcca.sbcglobal.net instead 
of www.bonsi.org".

The problem statement has the following variations:

1) Doing a DNS lookup with a DNS tool, e.g. dig.
2) Apache
2a) Doing name lookups during/access control.
2b) Where it's doing them.

I very assiduously stated "usurped" above. For starters, out of the /24 you 
only defined the record you're interested in. If you were authoritative, you'd 
better expect complaints. ;-)

NOTE: This is a perfect use case for off-label use of RPZ, you could define 
your PTR record in an RPZ and you wouldn't need to take over the whole zone.

> Thank you for this suggestion! It would be great to have some examples, if is 
> not to ask you too much already!

Fundamentally, you're not authoritative for the zone:

> I am totally aware about that! That would be more simple if I just go ahead 
> and order some static ips from AT ...and that would cost me an arm and a 
> leg and get done with it! Then, "probably" I would not > be here asking this 
> question at all.

> However, I am trying to use what is available to me, (something but not too 
> much! but with not intention to use unduly) and do the best I can with this 
> something! Thanks for using the word "usurped" because > it did raise my 
> awareness to fix something that I thought would just facilitate the 
> resolution of the the domain. It was not my deliberate intention to "usurp" 
> the 66.201.162.in-addr.arpa zone even thou
> your use of the word is totally correct for this case.

# dig 66.201.162.in-addr.arpa ns +short
ns10b.attdns.net.
ns10a.attdns.net.

You're not authoritative for bonsi.org either:

# dig bonsi.org soa +short
ns-cloud-b1.googledomains.com. cloud-dns-hostmaster.google.com. 55 21600 3600 
259200 300
# dig bonsi.org soa ns +short
;; Warning, extra type option
ns-cloud-b3.googledomains.com.
ns-cloud-b4.googledomains.com.
ns-cloud-b1.googledomains.com.
ns-cloud-b2.googledomains.com.

> Yes, I am aware about that too! Even thou, I am not authoritative according 
> to the BIND rules, I do have authoritative control of the zone bonsi.org at 
> the registrar GoogleDomains.com.

If you want to get your definition, you need to refer to your server:

# dig @216.239.32.107 www.bonsi.org +short
162.201.66.177

And...

dig @216.239.32.107 -x 162.201.66.177

; <<>> DiG 9.8.3-P1 <<>> @216.239.32.107 -x 162.201.66.177
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 59075
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;177.66.201.162.in-addr.arpa.   IN  PTR

;; Query time: 21 msec
;; SERVER: 216.239.32.107#53(216.239.32.107)
;; WHEN: Thu Aug 15 09:06:24 2019
;; MSG SIZE  rcvd: 45

Oh drat that didn't work! What's the ground truth here? The ground truth is 
that this isn't truly your server, it's Google's:

# dig -x 216.239.32.107 +short
ns-cloud-b1.googledomains.com.

Google isn't going to let you do that. For one thing, Google probably knows 
they're not authoritative for the reverse zone (previously shown).

> The only one with authority to reverse that ip is AT and as I mention 
> before, AT is not going to do that unless I pay them the extra, extra bucks 
> for static IPs.

Now we're going to talk about running your own nameserver (like BIND) because 
it's useful. I'm going to ignore the forward DNS for bonsi.org, which is 
working. FTR, if you were running your own server (and committed to managing it 
for use as an auth) you could request that the zone be delegated there from 
.org.

> I am aware of that! I just could ask AT to reverse the domain. I am only 
> running a catching namesever locally, (No recursion) and for that I am only 
> authoritative for the internal zones. Here, I can do >that without having to 
> request anybody ... :)

> [server:~] root# dig @127.0.0.1 -x 192.168.1.3

> ; <<>> DiG 9.10.6 <<>> @127.0.0.1 -x 192.168.1.3
> ; (1 server found)
> ;; global options: +cmd
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48149
> ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4
> 
> ;; OPT PSEUDOSECTION:
> ; EDNS: version: 0, flags:; udp: 4096
> ;; QUESTION SECTION:
> ;3.1.168.192.in-addr.arpa.IN  PTR
> 
> ;; ANSWER SECTION:
> 3.1.168.192.in-addr.arpa. 

Re: DNS domain Pointing to a DSL U/verse host

2019-08-15 Thread m3047
I've read through this a couple of times. Seems like you've got Apache 
running on 162.201.66.177 (and presumably you know that it is in fact 
visible to the world). The provider's reverse record points to 
162-201-66-177.lightspeed.sntcca.sbcglobal.net. You run the DNS for the 
zone, and you've got the address in question in there as www. You've also

usurped the zone 66.201.162.in-addr.arpa and configured it on that server.

The problem statement seems to be some variation of "when I do a reverse 
lookup on 162.201.66.177 I get 
162-201-66-177.lightspeed.sntcca.sbcglobal.net instead of www.bonsi.org".


The problem statement has the following variations:

1) Doing a DNS lookup with a DNS tool, e.g. dig.
2) Apache
2a) Doing name lookups during/access control.
2b) Where it's doing them.

I very assiduously stated "usurped" above. For starters, out of the /24 
you only defined the record you're interested in. If you were 
authoritative, you'd better expect complaints. ;-)


NOTE: This is a perfect use case for off-label use of RPZ, you could 
define your PTR record in an RPZ and you wouldn't need to take over the 
whole zone.


Fundamentally, you're not authoritative for the zone:

# dig 66.201.162.in-addr.arpa ns +short
ns10b.attdns.net.
ns10a.attdns.net.

You're not authoritative for bonsi.org either:

# dig bonsi.org soa +short
ns-cloud-b1.googledomains.com. cloud-dns-hostmaster.google.com. 55 21600 
3600 259200 300

# dig bonsi.org soa ns +short
;; Warning, extra type option
ns-cloud-b3.googledomains.com.
ns-cloud-b4.googledomains.com.
ns-cloud-b1.googledomains.com.
ns-cloud-b2.googledomains.com.

If you want to get your definition, you need to refer to your server:

# dig @216.239.32.107 www.bonsi.org +short
162.201.66.177

And...

dig @216.239.32.107 -x 162.201.66.177

; <<>> DiG 9.8.3-P1 <<>> @216.239.32.107 -x 162.201.66.177
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 59075
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;177.66.201.162.in-addr.arpa.   IN  PTR

;; Query time: 21 msec
;; SERVER: 216.239.32.107#53(216.239.32.107)
;; WHEN: Thu Aug 15 09:06:24 2019
;; MSG SIZE  rcvd: 45

Oh drat that didn't work! What's the ground truth here? The ground truth 
is that this isn't truly your server, it's Google's:


# dig -x 216.239.32.107 +short
ns-cloud-b1.googledomains.com.

Google isn't going to let you do that. For one thing, Google probably 
knows they're not authoritative for the reverse zone (previously shown).


Now we're going to talk about running your own nameserver (like BIND) 
because it's useful. I'm going to ignore the forward DNS for bonsi.org, 
which is working. FTR, if you were running your own server (and committed 
to managing it for use as an auth) you could request that the zone be 
delegated there from .org.


The use cases we're concerned with here are having a local vanity zone, 
and the unquestioned virtues of a local caching resolver. We are going to 
assume that the caching resolver is not open to the world. You could even 
run your bonsi.org authoritatively on the caching resolver but not 
delegated, if you wanted to have stuff which resolved locally but wasn't 
in the zone for world + dog (see previous note regarding RPZ).


I'm going to assume that your configuration for the reverse zone will 
work, subject to the previous caveats regarding multiple PTR records, 
ignoring completeness (see previous note regarding RPZ).


Assuming that you've got the reverse zone defined (in a DNS server which 
will serve it) you can query it with "dig @ ..." 
(which we tried above and got REFUSED).


That's not particularly convenient. What you'd do is set this resolver as 
the DNS for your subnet (either manually or via DHCP). Having done so, 
zones which are authoritatively (or via RPZ) served from the caching 
resolver will mask the properly delegated configuration.


If you configure your local caching resolver for the server running 
Apache, then Apache will use it when resolving addresses to names, as it 
is wont to do for access control and logging. This is also likely to be 
faster than reaching out over the internet; it will also continue to work 
if Google's DNS goes down for some reason.


Looks like you've got IPv6 too, we'll leave that for aother day.

We'll leave search lists and information leakage for another day.

On Wed, 14 Aug 2019, Eduardo Bonsi wrote:


[...]
bonsi.org hosted by Google Domain (In view external) zone;



[...]
;
177IN  PTR  ns1.bonsi.org.
177IN  PTR  ns2.bonsi.org.
177IN  PTR  ns3.bonsi.org.
;
177IN  PTR  bonsi.org.
177IN  PTR  www.bonsi.org.

NOTE: Multiple PTR records is