I'm trying to get NSD to deny AXFRs for the zones its serving. I'm compiling
--with-libwrap (although I think that's unnecessary as it looks like the
default is to go ahead and link with libwrap). This is with 2.2.0.
Anyway, I've tried a number of different combinations in /etc/hosts.allow
(and /etc/hosts.deny, although from reading hosts_options(5) on freebsd it
looks like hosts.deny has been deprecated) and I cannot get NSD to refuse
AXFRs.
Here is what I've tried:
/etc/hosts.allow:
axfr : ALL : deny
/etc/hosts.allow:
axfr-netsec.tislabs.com. : ALL : deny
axfr : ALL : deny
/etc/hosts.allow:
axfr : 127.0.0.1 : deny
axfr-netsec.tislabs.com. : ALL : deny
axfr : ALL : deny
None of which cause NSD to refuse AXFR from my localhost.
% dig @localhost netsec.tislabs.com. Axfr
I've also tried using /etc/hosts.deny per a 2003 message on this list:
/etc/hosts.deny:
axfr : ALL : deny
/etc/hosts.deny:
axfr-netsec.tislabs.com. : ALL : deny
axfr : ALL : deny
But nothing works. Anybody have a working example of denying all AXFRs?
[On 14 Feb, @ 20:36, Wesley wrote in "Denying AXFR ..."]
I'm trying to get NSD to deny AXFRs for the zones its serving. I'm compiling
--with-libwrap (although I think that's unnecessary as it looks like the
default is to go ahead and link with libwrap). This is with 2.2.0.
for what it is worth; in future NSD releases all this per zone
configuration stuff will be folded into NSD's own .... config file,
grtz Miek
There's a compile time option for not supporting AXFR all together,
which I found easier to use, since I had the same problem as you.
I seem to remember that it logged something somewhere about what keyword
I _should_ have used. But I found out after recompile. Checked your
syslog?
a message of 44 lines which said:
I'm trying to get NSD to deny AXFRs for the zones its serving.
It is a bit tricky because nsd queries the TCP wrappers with "axfr"
*and* "axfr-TLD". I believe you cannot do it without a general deny
rule. I do it this way (with --with-libwrap as you do):
hosts.deny:
# Default is to refuse
ALL: ALL : spawn /bin/logger -i -p daemon.info "%s REFUSED from %a (%h)" : deny
hosts.allow:
# Local access from AFNIC
axfr: 192.134.4.0/255.255.255.0, 192.134.0.49 : spawn /bin/logger -i -p daemon.info "nsd zone transfer (%s) accepted from %a (%h)" : allow
# Per request from ".si"
axfr-si: X.Y.Z.W/255.255.255.0 : spawn /bin/logger -i -p daemon.info "nsd zone transfer (%s) accepted from %a (%h)" : allow
# Other protocols
sshd: 192.134.4.0/255.255.255.0