X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Funbound%2Fmanifests%2Finit.pp;h=840cfff9b091e08234dd02e5c582a3056c5a5ede;hb=d0c098685b92334a611a0c596a35f538b95ead47;hp=587b19bb6550083f994094f26bfe01c0549fb1d4;hpb=d8e3f059ef06d43cfbbd624774d756b86176fff4;p=mirror%2Fdsa-puppet.git diff --git a/modules/unbound/manifests/init.pp b/modules/unbound/manifests/init.pp index 587b19bb6..840cfff9b 100644 --- a/modules/unbound/manifests/init.pp +++ b/modules/unbound/manifests/init.pp @@ -7,11 +7,13 @@ # include unbound # class unbound { + include stdlib - $is_recursor = getfromhash($site::nodeinfo, 'misc', 'resolver-recursive') - $client_ranges = getfromhash($site::nodeinfo, 'hoster', 'allow_dns_query') - $dodgy_ns = getfromhash($site::nodeinfo, 'hoster', 'nameservers_break_dnssec') - $ns = hiera('nameservers') + $is_recursor = getfromhash($deprecated::nodeinfo, 'misc', 'resolver-recursive') + $client_ranges = hiera('allow_dns_query') + $firewall_blocks_dns = hiera('firewall_blocks_dns', false) + $empty_client_range = empty($client_ranges) + $ns = hiera('resolv::nameservers') package { 'unbound': ensure => installed @@ -23,6 +25,11 @@ class unbound { pattern => 'unbound', } + file { '/etc/init.d/unbound': + source => 'puppet:///modules/unbound/unbound.init', + mode => '0555', + notify => Exec['systemctl daemon-reload'], + } file { '/var/lib/unbound': ensure => directory, owner => unbound, @@ -36,7 +43,8 @@ class unbound { owner => unbound, group => unbound, mode => '0644', - source => 'puppet:///modules/unbound/root.key' + source => 'puppet:///modules/unbound/root.key', + notify => Service['unbound'] } file { '/var/lib/unbound/debian.org.key': ensure => present, @@ -44,7 +52,17 @@ class unbound { owner => unbound, group => unbound, mode => '0644', - source => 'puppet:///modules/unbound/debian.org.key' + source => 'puppet:///modules/unbound/debian.org.key', + notify => Service['unbound'] + } + file { '/var/lib/unbound/29.172.in-addr.arpa.key': + ensure => $firewall_blocks_dns ? { true => 'absent', default => 'present' }, + replace => $firewall_blocks_dns ? { true => true, default => false }, + owner => unbound, + group => unbound, + mode => '0644', + source => 'puppet:///modules/unbound/29.172.in-addr.arpa.key', + notify => Service['unbound'] } file { '/etc/unbound/unbound.conf': content => template('unbound/unbound.conf.erb'), @@ -56,16 +74,16 @@ class unbound { notify => Service['unbound'] } - if ($is_recursor and $client_ranges) { - @ferm::rule { 'dsa-dns': + if ($is_recursor and !$empty_client_range) { + ferm::rule { 'dsa-dns': domain => 'ip', description => 'Allow nameserver access', - rule => sprintf('&TCP_UDP_SERVICE_RANGE(53, (%s))', join_spc(filter_ipv4(getfromhash($site::nodeinfo, 'hoster', 'allow_dns_query')))), + rule => sprintf('&TCP_UDP_SERVICE_RANGE(53, (%s))', join_spc(filter_ipv4($client_ranges))), } - @ferm::rule { 'dsa-dns6': + ferm::rule { 'dsa-dns6': domain => 'ip6', description => 'Allow nameserver access', - rule => sprintf('&TCP_UDP_SERVICE_RANGE(53, (%s))', join_spc(filter_ipv6(getfromhash($site::nodeinfo, 'hoster', 'allow_dns_query')))), + rule => sprintf('&TCP_UDP_SERVICE_RANGE(53, (%s))', join_spc(filter_ipv6($client_ranges))), } } }