root / manifests / simplerule.pp @ d43ced4d
Historique | Voir | Annoter | Télécharger (1,49 ko)
1 |
# This class is meant to be useful to ease the migration from the Firewall type |
---|---|
2 |
# for simple use cases. The coverage of all the casuistry is rather low so for |
3 |
# any case not covered by nftables::simplerule please just use nftables::rule. |
4 |
define nftables::simplerule( |
5 |
Enum['present','absent'] |
6 |
$ensure = 'present', |
7 |
Pattern[/^[-a-zA-Z0-9_]+$/] |
8 |
$rulename = $title, |
9 |
Pattern[/^\d\d$/] |
10 |
$order = '50', |
11 |
String |
12 |
$chain = 'default_in', |
13 |
Optional[String] |
14 |
$table = 'inet-filter', |
15 |
Enum['accept', 'drop'] |
16 |
$action = 'accept', |
17 |
Optional[String] |
18 |
$comment = undef, |
19 |
Optional[Variant[Array[Stdlib::Port, 1], Stdlib::Port, Pattern[/\d+-\d+/]]] |
20 |
$dport = undef, |
21 |
Optional[Enum['tcp', 'tcp4', 'tcp6', 'udp', 'udp4', 'udp6']] |
22 |
$proto = undef, |
23 |
Optional[Variant[Stdlib::IP::Address::V6, Stdlib::IP::Address::V4, Pattern[/^@[-a-zA-Z0-9_]+$/]]] |
24 |
$daddr = undef, |
25 |
Enum['ip', 'ip6'] |
26 |
$set_type = 'ip6', |
27 |
Boolean |
28 |
$counter = false, |
29 |
){ |
30 |
|
31 |
if $dport and !$proto { |
32 |
fail('Specifying a transport protocol via $proto is mandatory when passing a port') |
33 |
} |
34 |
|
35 |
if $ensure == 'present' { |
36 |
nftables::rule{"${chain}-${rulename}": |
37 |
content => epp('nftables/simplerule.epp', |
38 |
{ |
39 |
'action' => $action, |
40 |
'comment' => $comment, |
41 |
'counter' => $counter, |
42 |
'dport' => $dport, |
43 |
'proto' => $proto, |
44 |
'daddr' => $daddr, |
45 |
'set_type' => $set_type, |
46 |
} |
47 |
), |
48 |
order => $order, |
49 |
table => $table, |
50 |
} |
51 |
} |
52 |
} |