]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/named/manifests/init.pp
do not run an authority on draghi
[dsa-puppet.git] / modules / named / manifests / init.pp
index 9c4b82b1a71717522df53841a5a50eb77a80485f..9f1c7f908faee7a6a6a200863eaae1d693f390ea 100644 (file)
@@ -1,35 +1,53 @@
 class named {
-        include munin-node::bind
-
-        package {
-                bind9: ensure => installed;
-        }
-
-        exec {
-                "bind9 restart":
-                        path        => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
-                        refreshonly => true,
-                        ;
-        }
-        exec {
-                "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            => "proto (udp tcp) mod state state (NEW) dport (53) ACCEPT"
-        }
-}
 
-# vim: set fdm=marker ts=8 sw=8 et:
+       munin::check { 'bind': }
+
+       site::aptrepo { 'bind-ratelimit':
+               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'
+       }
+
+       @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',
+       }
+}