mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
dns/bind: allow multiple acls (#3257)
This commit is contained in:
@@ -11,7 +11,9 @@ Plugin Changelog
|
||||
|
||||
1.26
|
||||
|
||||
* Allow multiple ACLs to be selected for Transfers/Queries (contributed by Robbert Rijkse)
|
||||
* Rename Master/Slave to Primary/Secondary (contributed by Robbert Rijkse)
|
||||
* Add PR record type (contributed by Robbert Rijkse)
|
||||
|
||||
1.25
|
||||
|
||||
|
||||
+4
-4
@@ -14,14 +14,14 @@
|
||||
<field>
|
||||
<id>domain.allowtransfer</id>
|
||||
<label>Allow Transfer</label>
|
||||
<type>dropdown</type>
|
||||
<help>Define an ACL where you allow which server can retrieve this zone.</help>
|
||||
<type>select_multiple</type>
|
||||
<help>Define the ACLs where you allow which server can retrieve this zone.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>domain.allowquery</id>
|
||||
<label>Allow Query</label>
|
||||
<type>dropdown</type>
|
||||
<help>Define an ACL where you allow which client are allowed to query this zone.</help>
|
||||
<type>select_multiple</type>
|
||||
<help>Define the ACLs where you allow which client are allowed to query this zone.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>domain.ttl</id>
|
||||
|
||||
+4
-4
@@ -14,14 +14,14 @@
|
||||
<field>
|
||||
<id>domain.allowtransfer</id>
|
||||
<label>Allow Transfer</label>
|
||||
<type>dropdown</type>
|
||||
<help>Define an ACL where you allow which server can retrieve this zone.</help>
|
||||
<type>select_multiple</type>
|
||||
<help>Define the ACLs where you allow which server can retrieve this zone.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>domain.allowquery</id>
|
||||
<label>Allow Query</label>
|
||||
<type>dropdown</type>
|
||||
<help>Define an ACL where you allow which client are allowed to query this zone.</help>
|
||||
<type>select_multiple</type>
|
||||
<help>Define the ACLs where you allow which client are allowed to query this zone.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>domain.primaryip</id>
|
||||
|
||||
@@ -110,8 +110,14 @@
|
||||
<field>
|
||||
<id>general.allowtransfer</id>
|
||||
<label>Allow Transfer</label>
|
||||
<type>dropdown</type>
|
||||
<help>Define an ACL where you allow which server can retrieve zones.</help>
|
||||
<type>select_multiple</type>
|
||||
<help>Define the ACLs where you allow which server can retrieve zones.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.allowquery</id>
|
||||
<label>Allow Query</label>
|
||||
<type>select_multiple</type>
|
||||
<help>Define the ACLs where you allow which client are allowed to query this server.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.dnssecvalidation</id>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<model>
|
||||
<mount>//OPNsense/bind/domain</mount>
|
||||
<description>BIND domain configuration</description>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
<items>
|
||||
<domains>
|
||||
<domain type="ArrayField">
|
||||
@@ -58,7 +58,7 @@
|
||||
<display>name</display>
|
||||
</template>
|
||||
</Model>
|
||||
<Multiple>N</Multiple>
|
||||
<Multiple>Y</Multiple>
|
||||
<Required>N</Required>
|
||||
</allowtransfer>
|
||||
<allowquery type="ModelRelationField">
|
||||
@@ -69,7 +69,7 @@
|
||||
<display>name</display>
|
||||
</template>
|
||||
</Model>
|
||||
<Multiple>N</Multiple>
|
||||
<Multiple>Y</Multiple>
|
||||
<Required>N</Required>
|
||||
</allowquery>
|
||||
<serial type="TextField">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<model>
|
||||
<mount>//OPNsense/bind/general</mount>
|
||||
<description>BIND configuration</description>
|
||||
<version>1.0.9</version>
|
||||
<version>1.0.10</version>
|
||||
<items>
|
||||
<enabled type="BooleanField">
|
||||
<default>0</default>
|
||||
@@ -91,7 +91,7 @@
|
||||
<display>name</display>
|
||||
</template>
|
||||
</Model>
|
||||
<Multiple>N</Multiple>
|
||||
<Multiple>Y</Multiple>
|
||||
<Required>N</Required>
|
||||
<ValidationMessage>Choose an ACL.</ValidationMessage>
|
||||
</recursion>
|
||||
@@ -103,9 +103,20 @@
|
||||
<display>name</display>
|
||||
</template>
|
||||
</Model>
|
||||
<Multiple>N</Multiple>
|
||||
<Multiple>Y</Multiple>
|
||||
<Required>N</Required>
|
||||
</allowtransfer>
|
||||
<allowquery type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.Bind.Acl</source>
|
||||
<items>acls.acl</items>
|
||||
<display>name</display>
|
||||
</template>
|
||||
</Model>
|
||||
<Multiple>Y</Multiple>
|
||||
<Required>N</Required>
|
||||
</allowquery>
|
||||
<dnssecvalidation type="OptionField">
|
||||
<OptionValues>
|
||||
<no>No</no>
|
||||
|
||||
@@ -47,18 +47,31 @@ options {
|
||||
{% endif %}
|
||||
|
||||
{% if helpers.exists('OPNsense.bind.general.recursion') and OPNsense.bind.general.recursion != '' %}
|
||||
{% for list in helpers.toList('OPNsense.bind.general.recursion') %}
|
||||
{% set recursionlist = helpers.getUUID(list) %}
|
||||
recursion yes;
|
||||
allow-recursion { {{ recursionlist.name }}; };
|
||||
{% endfor %}
|
||||
allow-recursion {
|
||||
{% for acl in helpers.toList('OPNsense.bind.general.recursion') %}
|
||||
{% set recursion_acl = helpers.getUUID(acl) %}
|
||||
{{ recursion_acl.name }};
|
||||
{% endfor %}
|
||||
};
|
||||
{% endif %}
|
||||
|
||||
{% if helpers.exists('OPNsense.bind.general.allowtransfer') and OPNsense.bind.general.allowtransfer != '' %}
|
||||
{% for list in helpers.toList('OPNsense.bind.general.allowtransfer') %}
|
||||
{% set allowtransfer = helpers.getUUID(list) %}
|
||||
allow-transfer { {{ allowtransfer.name }}; };
|
||||
{% endfor %}
|
||||
allow-transfer {
|
||||
{% for acl in helpers.toList('OPNsense.bind.general.allowtransfer') %}
|
||||
{% set transfer_acl = helpers.getUUID(acl) %}
|
||||
{{ transfer_acl.name }};
|
||||
{% endfor %}
|
||||
};
|
||||
{% endif %}
|
||||
|
||||
{% if helpers.exists('OPNsense.bind.general.allowquery') and OPNsense.bind.general.allowquery != '' %}
|
||||
allow-query {
|
||||
{% for acl in helpers.toList('OPNsense.bind.general.allowquery') %}
|
||||
{% set query_acl = helpers.getUUID(list) %}
|
||||
{{ query_acl.name }};
|
||||
{% endfor %}
|
||||
};
|
||||
{% endif %}
|
||||
|
||||
{% if helpers.exists('OPNsense.bind.general.maxcachesize') and OPNsense.bind.general.maxcachesize != '' %}
|
||||
@@ -136,8 +149,6 @@ zone "rpzbing" { type primary; file "/usr/local/etc/namedb/primary/bing.db"; not
|
||||
{% set usedkeys = [] %}
|
||||
{% for domain in helpers.toList('OPNsense.bind.domain.domains.domain') %}
|
||||
{% if domain.enabled == '1' %}
|
||||
{% set allow_transfer = helpers.getUUID(domain.allowtransfer) %}
|
||||
{% set allow_query = helpers.getUUID(domain.allowquery) %}
|
||||
zone "{{ domain.domainname }}" {
|
||||
type {{ domain.type }};
|
||||
{% if domain.type == 'secondary' %}
|
||||
@@ -153,12 +164,22 @@ zone "{{ domain.domainname }}" {
|
||||
{% else %}
|
||||
file "/usr/local/etc/namedb/primary/{{ domain.domainname }}.db";
|
||||
{% endif %}
|
||||
{% if domain.allowtransfer is defined %}
|
||||
allow-transfer { {{ allow_transfer.name }}; };
|
||||
{% endif %}
|
||||
{% if domain.allowquery is defined %}
|
||||
allow-query { {{ allow_query.name }}; };
|
||||
{% endif %}
|
||||
{% if domain.allowtransfer is defined %}
|
||||
allow-transfer {
|
||||
{% for acl in domain.allowtransfer.split(',') %}
|
||||
{% set transfer_acl = helpers.getUUID(acl) %}
|
||||
{{ transfer_acl.name }};
|
||||
{% endfor %}
|
||||
};
|
||||
{% endif %}
|
||||
{% if domain.allowquery is defined %}
|
||||
allow-query {
|
||||
{% for acl in domain.allowquery.split(',') %}
|
||||
{% set query_acl = helpers.getUUID(acl) %}
|
||||
{{ query_acl.name }};
|
||||
{% endfor %}
|
||||
};
|
||||
{% endif %}
|
||||
};
|
||||
{% if domain.type == 'secondary' and domain.transferkey is defined and not(domain.transferkeyname in usedkeys) %}
|
||||
{% do usedkeys.append(domain.transferkeyname) %}
|
||||
|
||||
Reference in New Issue
Block a user