Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / manifests / rules / out / dns.pp @ 09b07e56

Historique | Voir | Annoter | Télécharger (1,09 ko)

1 9da28f8c tr
# manage out dns
2 d4de1bfe tr
class nftables::rules::out::dns (
3 31b17627 Steve Traylen
  Optional[Variant[String,Array[String,1]]] $dns_server = undef,
4 d4de1bfe tr
) {
5
  if $dns_server {
6
    any2array($dns_server).each |$index,$dns| {
7 11bf7237 Steve Traylen
      nftables::rule {
8 d4de1bfe tr
        "default_out-dnsudp-${index}":
9
      }
10
      if $dns =~ /:/ {
11 11bf7237 Steve Traylen
        Nftables::Rule["default_out-dnsudp-${index}"] {
12 d4de1bfe tr
          content => "ip6 daddr ${dns} udp dport 53 accept",
13
        }
14
      } else {
15 11bf7237 Steve Traylen
        Nftables::Rule["default_out-dnsudp-${index}"] {
16 d4de1bfe tr
          content => "ip daddr ${dns} udp dport 53 accept",
17
        }
18
      }
19
20 11bf7237 Steve Traylen
      nftables::rule {
21 d4de1bfe tr
        "default_out-dnstcp-${index}":
22
      }
23
      if $dns =~ /:/ {
24 11bf7237 Steve Traylen
        Nftables::Rule["default_out-dnstcp-${index}"] {
25 d4de1bfe tr
          content => "ip6 daddr ${dns} tcp dport 53 accept",
26
        }
27
      } else {
28 11bf7237 Steve Traylen
        Nftables::Rule["default_out-dnstcp-${index}"] {
29 d4de1bfe tr
          content => "ip daddr ${dns} tcp dport 53 accept",
30
        }
31
      }
32
    }
33
  } else {
34 11bf7237 Steve Traylen
    nftables::rule {
35 d4de1bfe tr
      'default_out-dnsudp':
36
        content => 'udp dport 53 accept';
37
      'default_out-dnstcp':
38
        content => 'tcp dport 53 accept';
39
    }
40 9da28f8c tr
  }
41
}