X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fnamed%2Fmanifests%2Finit.pp;h=3a2563691888d8404c7c22e97268263817b19575;hb=a68ac2a388955f929b49474adfc31c2bf985258b;hp=83647911b5d671358e2eb1e8787c9fa679ad2701;hpb=d41d2fce811cc8a465d274fd29ace8c065f99703;p=mirror%2Fdsa-puppet.git diff --git a/modules/named/manifests/init.pp b/modules/named/manifests/init.pp index 83647911b..3a2563691 100644 --- a/modules/named/manifests/init.pp +++ b/modules/named/manifests/init.pp @@ -1,7 +1,12 @@ class named { - munin::check { 'bind': } + site::aptrepo { 'bind-ratelimit': + url => 'http://db.debian.org/debian-admin', + suite => 'bind-ratelimit', + components => 'main', + } + package { 'bind9': ensure => installed } @@ -10,10 +15,29 @@ class named { ensure => running, } - @ferm::rule { 'dsa-bind': + @ferm::rule { '00-dsa-bind-no-ddos-any': domain => '(ip ip6)', description => 'Allow nameserver access', - rule => '&TCP_UDP_SERVICE(53)' + rule => 'proto udp dport 53 mod string from 32 to 64 algo bm hex-string \'|0000ff0001|\' jump DROP' + } + + 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_SECONDARY_V4 $HOST_NAGIOS_V4 $HOST_EASYDNS_V4 ) )', + } + @ferm::rule { '01-dsa-bind-6': + domain => '(ip6)', + description => 'Allow nameserver access', + rule => '&TCP_UDP_SERVICE_RANGE(53, ( $HOST_DNS_SECONDARY_V6 $HOST_NAGIOS_V6 ) )', + } + } else { + @ferm::rule { '01-dsa-bind': + domain => '(ip ip6)', + description => 'Allow nameserver access', + rule => '&TCP_UDP_SERVICE(53)' + } } @ferm::rule { 'dsa-bind-notrack': @@ -24,6 +48,14 @@ class named { 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,