mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 15:45:25 +00:00
1219. [func] New category 'update-security'.
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -1,3 +1,5 @@
|
|||||||
|
1219. [func] New category 'update-security'.
|
||||||
|
|
||||||
1218. [port] Compaq Trucluster support.
|
1218. [port] Compaq Trucluster support.
|
||||||
|
|
||||||
1219. [bug] Set AI_ADDRCONFIG when looking up addresses
|
1219. [bug] Set AI_ADDRCONFIG when looking up addresses
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: log.h,v 1.19 2001/05/28 05:17:02 marka Exp $ */
|
/* $Id: log.h,v 1.20 2002/06/12 06:29:44 marka Exp $ */
|
||||||
|
|
||||||
#ifndef NAMED_LOG_H
|
#ifndef NAMED_LOG_H
|
||||||
#define NAMED_LOG_H 1
|
#define NAMED_LOG_H 1
|
||||||
@@ -33,6 +33,7 @@
|
|||||||
#define NS_LOGCATEGORY_UPDATE (&ns_g_categories[3])
|
#define NS_LOGCATEGORY_UPDATE (&ns_g_categories[3])
|
||||||
#define NS_LOGCATEGORY_QUERIES (&ns_g_categories[4])
|
#define NS_LOGCATEGORY_QUERIES (&ns_g_categories[4])
|
||||||
#define NS_LOGCATEGORY_UNMATCHED (&ns_g_categories[5])
|
#define NS_LOGCATEGORY_UNMATCHED (&ns_g_categories[5])
|
||||||
|
#define NS_LOGCATEGORY_UPDATE_SECURITY (&ns_g_categories[6])
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Backwards compatibility.
|
* Backwards compatibility.
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: log.c,v 1.35 2001/11/23 01:15:06 marka Exp $ */
|
/* $Id: log.c,v 1.36 2002/06/12 06:29:42 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -40,6 +40,7 @@ static isc_logcategory_t categories[] = {
|
|||||||
{ "update", 0 },
|
{ "update", 0 },
|
||||||
{ "queries", 0 },
|
{ "queries", 0 },
|
||||||
{ "unmatched", 0 },
|
{ "unmatched", 0 },
|
||||||
|
{ "update-security", 0 },
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: update.c,v 1.99 2002/05/24 06:26:04 marka Exp $ */
|
/* $Id: update.c,v 1.100 2002/06/12 06:29:43 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -213,6 +213,33 @@ update_log(ns_client_t *client, dns_zone_t *zone,
|
|||||||
namebuf, classbuf, message);
|
namebuf, classbuf, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isc_result_t
|
||||||
|
checkupdateacl(ns_client_t *client, dns_acl_t *acl, const char *message,
|
||||||
|
dns_name_t *zonename)
|
||||||
|
{
|
||||||
|
char namebuf[DNS_NAME_FORMATSIZE];
|
||||||
|
char classbuf[DNS_RDATACLASS_FORMATSIZE];
|
||||||
|
int level = ISC_LOG_ERROR;
|
||||||
|
const char *msg = "denied";
|
||||||
|
isc_result_t result;
|
||||||
|
|
||||||
|
result = ns_client_checkaclsilent(client, acl, ISC_FALSE);
|
||||||
|
|
||||||
|
if (result == ISC_R_SUCCESS) {
|
||||||
|
level = ISC_LOG_DEBUG(3);
|
||||||
|
msg = "approved";
|
||||||
|
}
|
||||||
|
|
||||||
|
dns_name_format(zonename, namebuf, sizeof(namebuf));
|
||||||
|
dns_rdataclass_format(client->view->rdclass, classbuf,
|
||||||
|
sizeof(classbuf));
|
||||||
|
|
||||||
|
ns_client_log(client, NS_LOGCATEGORY_UPDATE_SECURITY,
|
||||||
|
NS_LOGMODULE_UPDATE, level, "%s '%s/%s' %s",
|
||||||
|
message, namebuf, classbuf, msg);
|
||||||
|
return (result);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update a single RR in version 'ver' of 'db' and log the
|
* Update a single RR in version 'ver' of 'db' and log the
|
||||||
* update in 'diff'.
|
* update in 'diff'.
|
||||||
@@ -1993,9 +2020,8 @@ ns_update_start(ns_client_t *client, isc_result_t sigresult) {
|
|||||||
CHECK(send_update_event(client, zone));
|
CHECK(send_update_event(client, zone));
|
||||||
break;
|
break;
|
||||||
case dns_zone_slave:
|
case dns_zone_slave:
|
||||||
CHECK(ns_client_checkacl(client, "update forwarding",
|
CHECK(checkupdateacl(client, dns_zone_getforwardacl(zone),
|
||||||
dns_zone_getforwardacl(zone),
|
"update forwarding", zonename));
|
||||||
ISC_FALSE, ISC_LOG_ERROR));
|
|
||||||
CHECK(send_forward_event(client, zone));
|
CHECK(send_forward_event(client, zone));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -2166,25 +2192,15 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
|||||||
* Check Requestor's Permissions. It seems a bit silly to do this
|
* Check Requestor's Permissions. It seems a bit silly to do this
|
||||||
* only after prerequisite testing, but that is what RFC2136 says.
|
* only after prerequisite testing, but that is what RFC2136 says.
|
||||||
*/
|
*/
|
||||||
|
result = ISC_R_SUCCESS;
|
||||||
|
if (ssutable == NULL)
|
||||||
|
CHECK(checkupdateacl(client, dns_zone_getupdateacl(zone),
|
||||||
|
"update", zonename));
|
||||||
|
else if (client->signer == NULL)
|
||||||
|
CHECK(checkupdateacl(client, NULL, "update", zonename));
|
||||||
|
|
||||||
if (dns_zone_getupdatedisabled(zone))
|
if (dns_zone_getupdatedisabled(zone))
|
||||||
FAILC(DNS_R_REFUSED, "dynamic update temporarily disabled");
|
FAILC(DNS_R_REFUSED, "dynamic update temporarily disabled");
|
||||||
if (ssutable == NULL) {
|
|
||||||
char msg[DNS_RDATACLASS_FORMATSIZE + DNS_NAME_FORMATSIZE
|
|
||||||
+ sizeof("update '/'")];
|
|
||||||
ns_client_aclmsg("update", zonename, client->view->rdclass,
|
|
||||||
msg, sizeof(msg));
|
|
||||||
CHECK(ns_client_checkacl(client, msg,
|
|
||||||
dns_zone_getupdateacl(zone),
|
|
||||||
ISC_FALSE, ISC_LOG_ERROR));
|
|
||||||
} else if (client->signer == NULL) {
|
|
||||||
/* This gets us a free log message. */
|
|
||||||
char msg[DNS_RDATACLASS_FORMATSIZE + DNS_NAME_FORMATSIZE
|
|
||||||
+ sizeof("update '/'")];
|
|
||||||
ns_client_aclmsg("update", zonename, client->view->rdclass,
|
|
||||||
msg, sizeof(msg));
|
|
||||||
CHECK(ns_client_checkacl(client, msg, NULL, ISC_FALSE,
|
|
||||||
ISC_LOG_ERROR));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Perform the Update Section Prescan.
|
* Perform the Update Section Prescan.
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
|
||||||
"http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
|
"http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
|
||||||
|
|
||||||
<!-- File: $Id: Bv9ARM-book.xml,v 1.200 2002/05/17 02:07:36 marka Exp $ -->
|
<!-- File: $Id: Bv9ARM-book.xml,v 1.201 2002/06/12 06:29:49 marka Exp $ -->
|
||||||
|
|
||||||
<book>
|
<book>
|
||||||
<title>BIND 9 Administrator Reference Manual</title>
|
<title>BIND 9 Administrator Reference Manual</title>
|
||||||
@@ -2742,6 +2742,10 @@ the <command>null</command> channel.</para></entry>
|
|||||||
<entry colname = "2"><para>Dynamic updates.</para></entry>
|
<entry colname = "2"><para>Dynamic updates.</para></entry>
|
||||||
</row>
|
</row>
|
||||||
<row rowsep = "0">
|
<row rowsep = "0">
|
||||||
|
<entry colname = "1"><para><command>update-security</command></para></entry>
|
||||||
|
<entry colname = "2"><para>Approval and denial of update requests.</para></entry>
|
||||||
|
</row>
|
||||||
|
<row rowsep = "0">
|
||||||
<entry colname = "1"><para><command>queries</command></para></entry>
|
<entry colname = "1"><para><command>queries</command></para></entry>
|
||||||
<entry colname = "2"><para>Queries. Using the category <command>queries</command> will enable query logging.</para></entry>
|
<entry colname = "2"><para>Queries. Using the category <command>queries</command> will enable query logging.</para></entry>
|
||||||
</row>
|
</row>
|
||||||
@@ -2839,6 +2843,7 @@ statement in the <filename>named.conf</filename> file:</para>
|
|||||||
<optional> dialup <replaceable>dialup_option</replaceable>; </optional>
|
<optional> dialup <replaceable>dialup_option</replaceable>; </optional>
|
||||||
<optional> fake-iquery <replaceable>yes_or_no</replaceable>; </optional>
|
<optional> fake-iquery <replaceable>yes_or_no</replaceable>; </optional>
|
||||||
<optional> fetch-glue <replaceable>yes_or_no</replaceable>; </optional>
|
<optional> fetch-glue <replaceable>yes_or_no</replaceable>; </optional>
|
||||||
|
<optional> flush-zones-on-shutdown <replaceable>yes_or_no</replaceable>; </optional>
|
||||||
<optional> has-old-clients <replaceable>yes_or_no</replaceable>; </optional>
|
<optional> has-old-clients <replaceable>yes_or_no</replaceable>; </optional>
|
||||||
<optional> host-statistics <replaceable>yes_or_no</replaceable>; </optional>
|
<optional> host-statistics <replaceable>yes_or_no</replaceable>; </optional>
|
||||||
<optional> minimal-responses <replaceable>yes_or_no</replaceable>; </optional>
|
<optional> minimal-responses <replaceable>yes_or_no</replaceable>; </optional>
|
||||||
@@ -3158,6 +3163,12 @@ didn't have when constructing the additional
|
|||||||
data section of a response. This is now considered a bad idea
|
data section of a response. This is now considered a bad idea
|
||||||
and BIND 9 never does it.</para></listitem></varlistentry>
|
and BIND 9 never does it.</para></listitem></varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>flush-zones-on-shutdown</command></term>
|
||||||
|
<listitem><para>When the nameserver exits due receiving SIGTERM,
|
||||||
|
flush / do not flush any pending zone writes. The default is
|
||||||
|
<command>flush-zones-on-shutdown</command> <userinput>no</userinput>.
|
||||||
|
</para></listitem></varlistentry>
|
||||||
|
|
||||||
<varlistentry><term><command>has-old-clients</command></term>
|
<varlistentry><term><command>has-old-clients</command></term>
|
||||||
<listitem><para>This option was incorrectly implemented
|
<listitem><para>This option was incorrectly implemented
|
||||||
in <acronym>BIND</acronym> 8, and is ignored by <acronym>BIND</acronym> 9.
|
in <acronym>BIND</acronym> 8, and is ignored by <acronym>BIND</acronym> 9.
|
||||||
|
Reference in New Issue
Block a user