X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fnamed%2Fmanifests%2Finit.pp;h=f731dffcf703cef6b268751b7a7cbe6167221b29;hb=a83e3881af1772113acb20b94bca403e8daa2b3e;hp=8cfa4080c24542bc8a690a1cd7604dcc53e4e8e8;hpb=026d1beb941daad6cf3a1a248fbd031c9b2dcf64;p=mirror%2Fdsa-puppet.git diff --git a/modules/named/manifests/init.pp b/modules/named/manifests/init.pp index 8cfa4080c..f731dffcf 100644 --- a/modules/named/manifests/init.pp +++ b/modules/named/manifests/init.pp @@ -1,37 +1,74 @@ class named { - activate_munin_check { - "bind":; - } - - package { - bind9: ensure => installed; - } - - exec { - "bind9 restart": - path => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin", - refreshonly => true, - ; - "bind9 reload": - path => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin", - refreshonly => true, - ; - } - file { - "/var/log/bind9": - ensure => directory, - owner => bind, - group => bind, - mode => 775, - ; - } - @ferm::rule { "dsa-bind": - domain => "(ip ip6)", - description => "Allow nameserver access", - rule => "&TCP_UDP_SERVICE(53)" - } -} + munin::check { 'bind': } + + site::aptrepo { 'bind-ratelimit': + ensure => absent, + #url => 'http://db.debian.org/debian-admin', + #suite => 'bind-ratelimit', + #components => 'main', + } + + package { 'bind9': + ensure => installed + } + + service { 'bind9': + ensure => running, + } + + @ferm::rule { '00-dsa-bind-no-ddos-any': + domain => '(ip ip6)', + description => 'Allow nameserver access', + rule => 'proto udp dport 53 mod string from 32 to 64 algo bm hex-string \'|0000ff0001|\' jump DROP' + } -# vim:set et: -# vim:set sts=4 ts=4: -# vim:set shiftwidth=4: + if has_role('dns_primary') { + @ferm::rule { '01-dsa-bind-4': + domain => '(ip)', + description => 'Allow nameserver access', + rule => '&TCP_UDP_SERVICE_RANGE(53, ( $HOST_DNS_GEO_V4 $HOST_NAGIOS_V4 $HOST_RCODE0_V4 $HOST_EASYDNS_V4 $HOST_NETNOD_V4 5.153.231.21 ) )', + } + @ferm::rule { '01-dsa-bind-6': + domain => '(ip6)', + description => 'Allow nameserver access', + rule => '&TCP_UDP_SERVICE_RANGE(53, ( $HOST_DNS_GEO_V6 $HOST_NAGIOS_V6 $HOST_RCODE0_V6 $HOST_NETNOD_V6 2001:41c8:1000:21::21:21 ) )', + } + } else { + @ferm::rule { '01-dsa-bind': + domain => '(ip ip6)', + description => 'Allow nameserver access', + rule => '&TCP_UDP_SERVICE(53)' + } + } + + @ferm::rule { 'dsa-bind-notrack': + domain => '(ip ip6)', + description => 'NOTRACK for nameserver traffic', + table => 'raw', + chain => 'PREROUTING', + rule => 'proto (tcp udp) dport 53 jump NOTRACK' + } + + @ferm::rule { 'dsa-bind-notrack-out': + domain => '(ip ip6)', + description => 'NOTRACK for nameserver traffic', + table => 'raw', + chain => 'OUTPUT', + rule => 'proto (tcp udp) sport 53 jump NOTRACK' + } + + file { '/var/log/bind9': + ensure => directory, + owner => bind, + group => bind, + mode => '0775', + } + + file { '/etc/bind/named.conf.puppet-shared-keys': + mode => '0640', + content => template('named/named.conf.puppet-shared-keys.erb'), + owner => root, + group => bind, + notify => Service['bind9'], + } +}