Projet

Général

Profil

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

root / REFERENCE.md @ eac19d14

Historique | Voir | Annoter | Télécharger (61,7 ko)

1
# Reference
2

    
3
<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
4

    
5
## Table of Contents
6

    
7
### Classes
8

    
9
* [`nftables`](#nftables): Configure nftables
10
* [`nftables::bridges`](#nftables--bridges): allow forwarding traffic on bridges
11
* [`nftables::inet_filter`](#nftables--inet_filter): manage basic chains in table inet filter
12
* [`nftables::inet_filter::fwd_conntrack`](#nftables--inet_filter--fwd_conntrack): enable conntrack for fwd
13
* [`nftables::inet_filter::in_out_conntrack`](#nftables--inet_filter--in_out_conntrack): manage input & output conntrack
14
* [`nftables::ip_nat`](#nftables--ip_nat): manage basic chains in table ip nat
15
* [`nftables::rules::activemq`](#nftables--rules--activemq): Provides input rules for Apache ActiveMQ
16
* [`nftables::rules::afs3_callback`](#nftables--rules--afs3_callback): Open call back port for AFS clients
17
* [`nftables::rules::ceph`](#nftables--rules--ceph): Ceph is a distributed object store and file system. Enable this to support Ceph's Object Storage Daemons (OSD), Metadata Server Daemons (MDS)
18
* [`nftables::rules::ceph_mon`](#nftables--rules--ceph_mon): Ceph is a distributed object store and file system.
19
Enable this option to support Ceph's Monitor Daemon.
20
* [`nftables::rules::dhcpv6_client`](#nftables--rules--dhcpv6_client): allow DHCPv6 requests in to a host
21
* [`nftables::rules::dns`](#nftables--rules--dns): manage in dns
22
* [`nftables::rules::docker_ce`](#nftables--rules--docker_ce): Default firewall configuration for Docker-CE
23
* [`nftables::rules::ftp`](#nftables--rules--ftp): manage in ftp (with conntrack helper)
24
* [`nftables::rules::http`](#nftables--rules--http): manage in http
25
* [`nftables::rules::https`](#nftables--rules--https): manage in https
26
* [`nftables::rules::icinga2`](#nftables--rules--icinga2): manage in icinga2
27
* [`nftables::rules::icmp`](#nftables--rules--icmp)
28
* [`nftables::rules::igmp`](#nftables--rules--igmp): allow incoming IGMP messages
29
* [`nftables::rules::ldap`](#nftables--rules--ldap): manage in ldap
30
* [`nftables::rules::llmnr`](#nftables--rules--llmnr): allow incoming Link-Local Multicast Name Resolution
31
* [`nftables::rules::mdns`](#nftables--rules--mdns): allow incoming multicast DNS
32
* [`nftables::rules::multicast`](#nftables--rules--multicast): allow incoming multicast traffic
33
* [`nftables::rules::nfs`](#nftables--rules--nfs): manage in nfs4
34
* [`nftables::rules::nfs3`](#nftables--rules--nfs3): manage in nfs3
35
* [`nftables::rules::node_exporter`](#nftables--rules--node_exporter): manage in node exporter
36
* [`nftables::rules::ospf`](#nftables--rules--ospf): manage in ospf
37
* [`nftables::rules::ospf3`](#nftables--rules--ospf3): manage in ospf3
38
* [`nftables::rules::out::active_directory`](#nftables--rules--out--active_directory): manage outgoing active diectory
39
* [`nftables::rules::out::all`](#nftables--rules--out--all): allow all outbound
40
* [`nftables::rules::out::ceph_client`](#nftables--rules--out--ceph_client): Ceph is a distributed object store and file system.
41
Enable this to be a client of Ceph's Monitor (MON),
42
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
43
and Manager Daemons (MGR).
44
* [`nftables::rules::out::chrony`](#nftables--rules--out--chrony): manage out chrony
45
* [`nftables::rules::out::dhcp`](#nftables--rules--out--dhcp): manage out dhcp
46
* [`nftables::rules::out::dhcpv6_client`](#nftables--rules--out--dhcpv6_client): Allow DHCPv6 requests out of a host
47
* [`nftables::rules::out::dns`](#nftables--rules--out--dns): manage out dns
48
* [`nftables::rules::out::hkp`](#nftables--rules--out--hkp): allow outgoing hkp connections to gpg keyservers
49
* [`nftables::rules::out::http`](#nftables--rules--out--http): manage out http
50
* [`nftables::rules::out::https`](#nftables--rules--out--https): manage out https
51
* [`nftables::rules::out::icmp`](#nftables--rules--out--icmp): control outbound icmp packages
52
* [`nftables::rules::out::igmp`](#nftables--rules--out--igmp): allow outgoing IGMP messages
53
* [`nftables::rules::out::imap`](#nftables--rules--out--imap): allow outgoing imap
54
* [`nftables::rules::out::kerberos`](#nftables--rules--out--kerberos): allows outbound access for kerberos
55
* [`nftables::rules::out::ldap`](#nftables--rules--out--ldap): manage outgoing ldap
56
* [`nftables::rules::out::mdns`](#nftables--rules--out--mdns): allow outgoing multicast DNS
57
* [`nftables::rules::out::mldv2`](#nftables--rules--out--mldv2): allow multicast listener requests
58
* [`nftables::rules::out::mysql`](#nftables--rules--out--mysql): manage out mysql
59
* [`nftables::rules::out::nfs`](#nftables--rules--out--nfs): manage out nfs
60
* [`nftables::rules::out::nfs3`](#nftables--rules--out--nfs3): manage out nfs3
61
* [`nftables::rules::out::openafs_client`](#nftables--rules--out--openafs_client): allows outbound access for afs clients
62
7000 - afs3-fileserver
63
7002 - afs3-ptserver
64
7003 - vlserver
65
* [`nftables::rules::out::ospf`](#nftables--rules--out--ospf): manage out ospf
66
* [`nftables::rules::out::ospf3`](#nftables--rules--out--ospf3): manage out ospf3
67
* [`nftables::rules::out::pop3`](#nftables--rules--out--pop3): allow outgoing pop3
68
* [`nftables::rules::out::postgres`](#nftables--rules--out--postgres): manage out postgres
69
* [`nftables::rules::out::puppet`](#nftables--rules--out--puppet): manage outgoing puppet
70
* [`nftables::rules::out::pxp_agent`](#nftables--rules--out--pxp_agent): manage outgoing pxp-agent
71
* [`nftables::rules::out::smtp`](#nftables--rules--out--smtp): allow outgoing smtp
72
* [`nftables::rules::out::smtp_client`](#nftables--rules--out--smtp_client): allow outgoing smtp client
73
* [`nftables::rules::out::ssdp`](#nftables--rules--out--ssdp): allow outgoing SSDP
74
* [`nftables::rules::out::ssh`](#nftables--rules--out--ssh): manage out ssh
75
* [`nftables::rules::out::ssh::remove`](#nftables--rules--out--ssh--remove): disable outgoing ssh
76
* [`nftables::rules::out::tor`](#nftables--rules--out--tor): manage out tor
77
* [`nftables::rules::out::whois`](#nftables--rules--out--whois): allow clients to query remote whois server
78
* [`nftables::rules::out::wireguard`](#nftables--rules--out--wireguard): manage out wireguard
79
* [`nftables::rules::podman`](#nftables--rules--podman): Rules for Podman, a tool for managing OCI containers and pods.
80
This class defines additional forwarding rules to let root containers
81
reach external networks when using Netavark (since v4.0) or CNI (deprecated).
82
At the time of writing, Podman supports automatic configuration
83
of firewall rules with iptables and firewalld only.
84
* [`nftables::rules::puppet`](#nftables--rules--puppet): manage in puppet
85
* [`nftables::rules::pxp_agent`](#nftables--rules--pxp_agent): manage in pxp-agent
86
* [`nftables::rules::qemu`](#nftables--rules--qemu): Bridged network configuration for qemu/libvirt
87
* [`nftables::rules::samba`](#nftables--rules--samba): manage Samba, the suite to allow Windows file sharing on Linux resources.
88
* [`nftables::rules::smtp`](#nftables--rules--smtp): manage in smtp
89
* [`nftables::rules::smtp_submission`](#nftables--rules--smtp_submission): manage in smtp submission
90
* [`nftables::rules::smtps`](#nftables--rules--smtps): manage in smtps
91
* [`nftables::rules::spotify`](#nftables--rules--spotify): allow incoming spotify
92
* [`nftables::rules::ssdp`](#nftables--rules--ssdp): allow incoming SSDP
93
* [`nftables::rules::ssh`](#nftables--rules--ssh): manage in ssh
94
* [`nftables::rules::tor`](#nftables--rules--tor): manage in tor
95
* [`nftables::rules::wireguard`](#nftables--rules--wireguard): manage in wireguard
96
* [`nftables::rules::wsd`](#nftables--rules--wsd): allow incoming webservice discovery
97
* [`nftables::services::dhcpv6_client`](#nftables--services--dhcpv6_client): Allow in and outbound traffic for DHCPv6 server
98
* [`nftables::services::openafs_client`](#nftables--services--openafs_client): Open inbound and outbound ports for an AFS client
99

    
100
### Defined types
101

    
102
* [`nftables::chain`](#nftables--chain): manage a chain
103
* [`nftables::config`](#nftables--config): manage a config snippet
104
* [`nftables::file`](#nftables--file): Insert a file into the nftables configuration
105
* [`nftables::helper`](#nftables--helper): manage a conntrack helper
106
* [`nftables::rule`](#nftables--rule): Provides an interface to create a firewall rule
107
* [`nftables::rules::dnat4`](#nftables--rules--dnat4): manage a ipv4 dnat rule
108
* [`nftables::rules::masquerade`](#nftables--rules--masquerade): masquerade all outgoing traffic
109
* [`nftables::rules::snat4`](#nftables--rules--snat4): manage a ipv4 snat rule
110
* [`nftables::set`](#nftables--set): manage a named set
111
* [`nftables::simplerule`](#nftables--simplerule): Provides a simplified interface to nftables::rule
112

    
113
### Data types
114

    
115
* [`Nftables::Addr`](#Nftables--Addr): Represents an address expression to be used within a rule.
116
* [`Nftables::Addr::Set`](#Nftables--Addr--Set): Represents a set expression to be used within a rule.
117
* [`Nftables::Port`](#Nftables--Port): Represents a port expression to be used within a rule.
118
* [`Nftables::Port::Range`](#Nftables--Port--Range): Represents a port range expression to be used within a rule.
119
* [`Nftables::RuleName`](#Nftables--RuleName): Represents a rule name to be used in a raw rule created via nftables::rule.
120
It's a dash separated string. The first component describes the chain to
121
add the rule to, the second the rule name and the (optional) third a number.
122
Ex: 'default_in-sshd', 'default_out-my_service-2'.
123
* [`Nftables::SimpleRuleName`](#Nftables--SimpleRuleName): Represents a simple rule name to be used in a rule created via nftables::simplerule
124

    
125
## Classes
126

    
127
### <a name="nftables"></a>`nftables`
128

    
129
Configure nftables
130

    
131
#### Examples
132

    
133
##### allow dns out and do not allow ntp out
134

    
135
```puppet
136
class{ 'nftables':
137
  out_ntp => false,
138
  out_dns => true,
139
}
140
```
141

    
142
##### do not flush particular tables, fail2ban in this case
143

    
144
```puppet
145
class{ 'nftables':
146
  noflush_tables => ['inet-f2b-table'],
147
}
148
```
149

    
150
#### Parameters
151

    
152
The following parameters are available in the `nftables` class:
153

    
154
* [`out_all`](#-nftables--out_all)
155
* [`out_ntp`](#-nftables--out_ntp)
156
* [`out_http`](#-nftables--out_http)
157
* [`out_dns`](#-nftables--out_dns)
158
* [`out_https`](#-nftables--out_https)
159
* [`out_icmp`](#-nftables--out_icmp)
160
* [`in_ssh`](#-nftables--in_ssh)
161
* [`in_icmp`](#-nftables--in_icmp)
162
* [`inet_filter`](#-nftables--inet_filter)
163
* [`nat`](#-nftables--nat)
164
* [`nat_table_name`](#-nftables--nat_table_name)
165
* [`sets`](#-nftables--sets)
166
* [`log_prefix`](#-nftables--log_prefix)
167
* [`log_discarded`](#-nftables--log_discarded)
168
* [`log_limit`](#-nftables--log_limit)
169
* [`reject_with`](#-nftables--reject_with)
170
* [`in_out_conntrack`](#-nftables--in_out_conntrack)
171
* [`in_out_drop_invalid`](#-nftables--in_out_drop_invalid)
172
* [`fwd_conntrack`](#-nftables--fwd_conntrack)
173
* [`fwd_drop_invalid`](#-nftables--fwd_drop_invalid)
174
* [`firewalld_enable`](#-nftables--firewalld_enable)
175
* [`noflush_tables`](#-nftables--noflush_tables)
176
* [`rules`](#-nftables--rules)
177
* [`configuration_path`](#-nftables--configuration_path)
178
* [`nft_path`](#-nftables--nft_path)
179
* [`echo`](#-nftables--echo)
180
* [`default_config_mode`](#-nftables--default_config_mode)
181

    
182
##### <a name="-nftables--out_all"></a>`out_all`
183

    
184
Data type: `Boolean`
185

    
186
Allow all outbound connections. If `true` then all other
187
out parameters `out_ntp`, `out_dns`, ... will be assuemed
188
false.
189

    
190
Default value: `false`
191

    
192
##### <a name="-nftables--out_ntp"></a>`out_ntp`
193

    
194
Data type: `Boolean`
195

    
196
Allow outbound to ntp servers.
197

    
198
Default value: `true`
199

    
200
##### <a name="-nftables--out_http"></a>`out_http`
201

    
202
Data type: `Boolean`
203

    
204
Allow outbound to http servers.
205

    
206
Default value: `true`
207

    
208
##### <a name="-nftables--out_dns"></a>`out_dns`
209

    
210
Data type: `Boolean`
211

    
212
Allow outbound to dns servers.
213

    
214
Default value: `true`
215

    
216
##### <a name="-nftables--out_https"></a>`out_https`
217

    
218
Data type: `Boolean`
219

    
220
Allow outbound to https servers.
221

    
222
Default value: `true`
223

    
224
##### <a name="-nftables--out_icmp"></a>`out_icmp`
225

    
226
Data type: `Boolean`
227

    
228
Allow outbound ICMPv4/v6 traffic.
229

    
230
Default value: `true`
231

    
232
##### <a name="-nftables--in_ssh"></a>`in_ssh`
233

    
234
Data type: `Boolean`
235

    
236
Allow inbound to ssh servers.
237

    
238
Default value: `true`
239

    
240
##### <a name="-nftables--in_icmp"></a>`in_icmp`
241

    
242
Data type: `Boolean`
243

    
244
Allow inbound ICMPv4/v6 traffic.
245

    
246
Default value: `true`
247

    
248
##### <a name="-nftables--inet_filter"></a>`inet_filter`
249

    
250
Data type: `Boolean`
251

    
252
Add default tables, chains and rules to process traffic.
253

    
254
Default value: `true`
255

    
256
##### <a name="-nftables--nat"></a>`nat`
257

    
258
Data type: `Boolean`
259

    
260
Add default tables and chains to process NAT traffic.
261

    
262
Default value: `true`
263

    
264
##### <a name="-nftables--nat_table_name"></a>`nat_table_name`
265

    
266
Data type: `String[1]`
267

    
268
The name of the 'nat' table.
269

    
270
Default value: `'nat'`
271

    
272
##### <a name="-nftables--sets"></a>`sets`
273

    
274
Data type: `Hash`
275

    
276
Allows sourcing set definitions directly from Hiera.
277

    
278
Default value: `{}`
279

    
280
##### <a name="-nftables--log_prefix"></a>`log_prefix`
281

    
282
Data type: `String`
283

    
284
String that will be used as prefix when logging packets. It can contain
285
two variables using standard sprintf() string-formatting:
286
 * chain: Will be replaced by the name of the chain.
287
 * comment: Allows chains to add extra comments.
288

    
289
Default value: `'[nftables] %<chain>s %<comment>s'`
290

    
291
##### <a name="-nftables--log_discarded"></a>`log_discarded`
292

    
293
Data type: `Boolean`
294

    
295
Allow to log discarded packets
296

    
297
Default value: `true`
298

    
299
##### <a name="-nftables--log_limit"></a>`log_limit`
300

    
301
Data type: `Variant[Boolean[false], String]`
302

    
303
String with the content of a limit statement to be applied
304
to the rules that log discarded traffic. Set to false to
305
disable rate limiting.
306

    
307
Default value: `'3/minute burst 5 packets'`
308

    
309
##### <a name="-nftables--reject_with"></a>`reject_with`
310

    
311
Data type: `Variant[Boolean[false], Pattern[/icmp(v6|x)? type .+|tcp reset/]]`
312

    
313
How to discard packets not matching any rule. If `false`, the
314
fate of the packet will be defined by the chain policy (normally
315
drop), otherwise the packet will be rejected with the REJECT_WITH
316
policy indicated by the value of this parameter.
317

    
318
Default value: `'icmpx type port-unreachable'`
319

    
320
##### <a name="-nftables--in_out_conntrack"></a>`in_out_conntrack`
321

    
322
Data type: `Boolean`
323

    
324
Adds INPUT and OUTPUT rules to allow traffic that's part of an
325
established connection and also to drop invalid packets.
326

    
327
Default value: `true`
328

    
329
##### <a name="-nftables--in_out_drop_invalid"></a>`in_out_drop_invalid`
330

    
331
Data type: `Boolean`
332

    
333
Drops invalid packets in INPUT and OUTPUT
334

    
335
Default value: `$in_out_conntrack`
336

    
337
##### <a name="-nftables--fwd_conntrack"></a>`fwd_conntrack`
338

    
339
Data type: `Boolean`
340

    
341
Adds FORWARD rules to allow traffic that's part of an
342
established connection and also to drop invalid packets.
343

    
344
Default value: `false`
345

    
346
##### <a name="-nftables--fwd_drop_invalid"></a>`fwd_drop_invalid`
347

    
348
Data type: `Boolean`
349

    
350
Drops invalid packets in FORWARD
351

    
352
Default value: `$fwd_conntrack`
353

    
354
##### <a name="-nftables--firewalld_enable"></a>`firewalld_enable`
355

    
356
Data type: `Variant[Boolean[false], Enum['mask']]`
357

    
358
Configures how the firewalld systemd service unit is enabled. It might be
359
useful to set this to false if you're externaly removing firewalld from
360
the system completely.
361

    
362
Default value: `'mask'`
363

    
364
##### <a name="-nftables--noflush_tables"></a>`noflush_tables`
365

    
366
Data type: `Optional[Array[Pattern[/^(ip|ip6|inet|arp|bridge|netdev)-[-a-zA-Z0-9_]+$/],1]]`
367

    
368
If specified only other existings tables will be flushed.
369
If left unset all tables will be flushed via a `flush ruleset`
370

    
371
Default value: `undef`
372

    
373
##### <a name="-nftables--rules"></a>`rules`
374

    
375
Data type: `Hash`
376

    
377
Specify hashes of `nftables::rule`s via hiera
378

    
379
Default value: `{}`
380

    
381
##### <a name="-nftables--configuration_path"></a>`configuration_path`
382

    
383
Data type: `Stdlib::Unixpath`
384

    
385
The absolute path to the principal nftables configuration file. The default
386
varies depending on the system, and is set in the module's data.
387

    
388
##### <a name="-nftables--nft_path"></a>`nft_path`
389

    
390
Data type: `Stdlib::Unixpath`
391

    
392
Path to the nft binary
393

    
394
##### <a name="-nftables--echo"></a>`echo`
395

    
396
Data type: `Stdlib::Unixpath`
397

    
398
Path to the echo binary
399

    
400
##### <a name="-nftables--default_config_mode"></a>`default_config_mode`
401

    
402
Data type: `Stdlib::Filemode`
403

    
404
The default file & dir mode for configuration files and directories. The
405
default varies depending on the system, and is set in the module's data.
406

    
407
### <a name="nftables--bridges"></a>`nftables::bridges`
408

    
409
allow forwarding traffic on bridges
410

    
411
#### Parameters
412

    
413
The following parameters are available in the `nftables::bridges` class:
414

    
415
* [`ensure`](#-nftables--bridges--ensure)
416
* [`bridgenames`](#-nftables--bridges--bridgenames)
417

    
418
##### <a name="-nftables--bridges--ensure"></a>`ensure`
419

    
420
Data type: `Enum['present','absent']`
421

    
422

    
423

    
424
Default value: `'present'`
425

    
426
##### <a name="-nftables--bridges--bridgenames"></a>`bridgenames`
427

    
428
Data type: `Regexp`
429

    
430

    
431

    
432
Default value: `/^br.+/`
433

    
434
### <a name="nftables--inet_filter"></a>`nftables::inet_filter`
435

    
436
manage basic chains in table inet filter
437

    
438
### <a name="nftables--inet_filter--fwd_conntrack"></a>`nftables::inet_filter::fwd_conntrack`
439

    
440
enable conntrack for fwd
441

    
442
### <a name="nftables--inet_filter--in_out_conntrack"></a>`nftables::inet_filter::in_out_conntrack`
443

    
444
manage input & output conntrack
445

    
446
### <a name="nftables--ip_nat"></a>`nftables::ip_nat`
447

    
448
manage basic chains in table ip nat
449

    
450
### <a name="nftables--rules--activemq"></a>`nftables::rules::activemq`
451

    
452
Provides input rules for Apache ActiveMQ
453

    
454
#### Parameters
455

    
456
The following parameters are available in the `nftables::rules::activemq` class:
457

    
458
* [`tcp`](#-nftables--rules--activemq--tcp)
459
* [`udp`](#-nftables--rules--activemq--udp)
460
* [`port`](#-nftables--rules--activemq--port)
461

    
462
##### <a name="-nftables--rules--activemq--tcp"></a>`tcp`
463

    
464
Data type: `Boolean`
465

    
466
Create the rule for TCP traffic.
467

    
468
Default value: `true`
469

    
470
##### <a name="-nftables--rules--activemq--udp"></a>`udp`
471

    
472
Data type: `Boolean`
473

    
474
Create the rule for UDP traffic.
475

    
476
Default value: `true`
477

    
478
##### <a name="-nftables--rules--activemq--port"></a>`port`
479

    
480
Data type: `Stdlib::Port`
481

    
482
The port number for the ActiveMQ daemon.
483

    
484
Default value: `61616`
485

    
486
### <a name="nftables--rules--afs3_callback"></a>`nftables::rules::afs3_callback`
487

    
488
Open call back port for AFS clients
489

    
490
#### Examples
491

    
492
##### allow call backs from particular hosts
493

    
494
```puppet
495
class{'nftables::rules::afs3_callback':
496
  saddr => ['192.168.0.0/16', '10.0.0.222']
497
}
498
```
499

    
500
#### Parameters
501

    
502
The following parameters are available in the `nftables::rules::afs3_callback` class:
503

    
504
* [`saddr`](#-nftables--rules--afs3_callback--saddr)
505

    
506
##### <a name="-nftables--rules--afs3_callback--saddr"></a>`saddr`
507

    
508
Data type: `Array[Stdlib::IP::Address::V4,1]`
509

    
510
list of source network ranges to a
511

    
512
Default value: `['0.0.0.0/0']`
513

    
514
### <a name="nftables--rules--ceph"></a>`nftables::rules::ceph`
515

    
516
Ceph is a distributed object store and file system.
517
Enable this to support Ceph's Object Storage Daemons (OSD),
518
Metadata Server Daemons (MDS), or Manager Daemons (MGR).
519

    
520
### <a name="nftables--rules--ceph_mon"></a>`nftables::rules::ceph_mon`
521

    
522
Ceph is a distributed object store and file system.
523
Enable this option to support Ceph's Monitor Daemon.
524

    
525
#### Parameters
526

    
527
The following parameters are available in the `nftables::rules::ceph_mon` class:
528

    
529
* [`ports`](#-nftables--rules--ceph_mon--ports)
530

    
531
##### <a name="-nftables--rules--ceph_mon--ports"></a>`ports`
532

    
533
Data type: `Array[Stdlib::Port,1]`
534

    
535
specify ports for ceph service
536

    
537
Default value: `[3300, 6789]`
538

    
539
### <a name="nftables--rules--dhcpv6_client"></a>`nftables::rules::dhcpv6_client`
540

    
541
allow DHCPv6 requests in to a host
542

    
543
### <a name="nftables--rules--dns"></a>`nftables::rules::dns`
544

    
545
manage in dns
546

    
547
#### Examples
548

    
549
##### Allow access to stub dns resolver from docker containers
550

    
551
```puppet
552
class { 'nftables::rules::dns':
553
  iifname => ['docker0'],
554
}
555
```
556

    
557
#### Parameters
558

    
559
The following parameters are available in the `nftables::rules::dns` class:
560

    
561
* [`ports`](#-nftables--rules--dns--ports)
562
* [`iifname`](#-nftables--rules--dns--iifname)
563

    
564
##### <a name="-nftables--rules--dns--ports"></a>`ports`
565

    
566
Data type: `Array[Stdlib::Port,1]`
567

    
568
Specify ports for dns.
569

    
570
Default value: `[53]`
571

    
572
##### <a name="-nftables--rules--dns--iifname"></a>`iifname`
573

    
574
Data type: `Optional[Array[String[1],1]]`
575

    
576
Specify input interface names.
577

    
578
Default value: `undef`
579

    
580
### <a name="nftables--rules--docker_ce"></a>`nftables::rules::docker_ce`
581

    
582
The configuration distributed in this class represents the default firewall
583
configuration done by docker-ce when the iptables integration is enabled.
584

    
585
This class is needed as the default docker-ce rules added to ip-filter conflict
586
with the inet-filter forward rules set by default in this module.
587

    
588
When using this class 'docker::iptables: false' should be set.
589

    
590
#### Parameters
591

    
592
The following parameters are available in the `nftables::rules::docker_ce` class:
593

    
594
* [`docker_interface`](#-nftables--rules--docker_ce--docker_interface)
595
* [`docker_prefix`](#-nftables--rules--docker_ce--docker_prefix)
596
* [`manage_docker_chains`](#-nftables--rules--docker_ce--manage_docker_chains)
597
* [`manage_base_chains`](#-nftables--rules--docker_ce--manage_base_chains)
598

    
599
##### <a name="-nftables--rules--docker_ce--docker_interface"></a>`docker_interface`
600

    
601
Data type: `String[1]`
602

    
603
Interface name used by docker.
604

    
605
Default value: `'docker0'`
606

    
607
##### <a name="-nftables--rules--docker_ce--docker_prefix"></a>`docker_prefix`
608

    
609
Data type: `Stdlib::IP::Address::V4::CIDR`
610

    
611
The address space used by docker.
612

    
613
Default value: `'172.17.0.0/16'`
614

    
615
##### <a name="-nftables--rules--docker_ce--manage_docker_chains"></a>`manage_docker_chains`
616

    
617
Data type: `Boolean`
618

    
619
Flag to control whether the class should create the docker related chains.
620

    
621
Default value: `true`
622

    
623
##### <a name="-nftables--rules--docker_ce--manage_base_chains"></a>`manage_base_chains`
624

    
625
Data type: `Boolean`
626

    
627
Flag to control whether the class should create the base common chains.
628

    
629
Default value: `true`
630

    
631
### <a name="nftables--rules--ftp"></a>`nftables::rules::ftp`
632

    
633
manage in ftp (with conntrack helper)
634

    
635
#### Parameters
636

    
637
The following parameters are available in the `nftables::rules::ftp` class:
638

    
639
* [`enable_passive`](#-nftables--rules--ftp--enable_passive)
640
* [`passive_ports`](#-nftables--rules--ftp--passive_ports)
641

    
642
##### <a name="-nftables--rules--ftp--enable_passive"></a>`enable_passive`
643

    
644
Data type: `Boolean`
645

    
646
Enable FTP passive mode support
647

    
648
Default value: `true`
649

    
650
##### <a name="-nftables--rules--ftp--passive_ports"></a>`passive_ports`
651

    
652
Data type: `Nftables::Port::Range`
653

    
654
Set the FTP passive mode port range
655

    
656
Default value: `'10090-10100'`
657

    
658
### <a name="nftables--rules--http"></a>`nftables::rules::http`
659

    
660
manage in http
661

    
662
### <a name="nftables--rules--https"></a>`nftables::rules::https`
663

    
664
manage in https
665

    
666
### <a name="nftables--rules--icinga2"></a>`nftables::rules::icinga2`
667

    
668
manage in icinga2
669

    
670
#### Parameters
671

    
672
The following parameters are available in the `nftables::rules::icinga2` class:
673

    
674
* [`ports`](#-nftables--rules--icinga2--ports)
675

    
676
##### <a name="-nftables--rules--icinga2--ports"></a>`ports`
677

    
678
Data type: `Array[Stdlib::Port,1]`
679

    
680
Specify ports for icinga2
681

    
682
Default value: `[5665]`
683

    
684
### <a name="nftables--rules--icmp"></a>`nftables::rules::icmp`
685

    
686
The nftables::rules::icmp class.
687

    
688
#### Parameters
689

    
690
The following parameters are available in the `nftables::rules::icmp` class:
691

    
692
* [`v4_types`](#-nftables--rules--icmp--v4_types)
693
* [`v6_types`](#-nftables--rules--icmp--v6_types)
694
* [`order`](#-nftables--rules--icmp--order)
695

    
696
##### <a name="-nftables--rules--icmp--v4_types"></a>`v4_types`
697

    
698
Data type: `Optional[Array[String]]`
699

    
700

    
701

    
702
Default value: `undef`
703

    
704
##### <a name="-nftables--rules--icmp--v6_types"></a>`v6_types`
705

    
706
Data type: `Optional[Array[String]]`
707

    
708

    
709

    
710
Default value: `undef`
711

    
712
##### <a name="-nftables--rules--icmp--order"></a>`order`
713

    
714
Data type: `String`
715

    
716

    
717

    
718
Default value: `'10'`
719

    
720
### <a name="nftables--rules--igmp"></a>`nftables::rules::igmp`
721

    
722
allow incoming IGMP messages
723

    
724
### <a name="nftables--rules--ldap"></a>`nftables::rules::ldap`
725

    
726
manage in ldap
727

    
728
#### Parameters
729

    
730
The following parameters are available in the `nftables::rules::ldap` class:
731

    
732
* [`ports`](#-nftables--rules--ldap--ports)
733

    
734
##### <a name="-nftables--rules--ldap--ports"></a>`ports`
735

    
736
Data type: `Array[Integer,1]`
737

    
738
ldap server ports
739

    
740
Default value: `[389, 636]`
741

    
742
### <a name="nftables--rules--llmnr"></a>`nftables::rules::llmnr`
743

    
744
allow incoming Link-Local Multicast Name Resolution
745

    
746
* **See also**
747
  * https://datatracker.ietf.org/doc/html/rfc4795
748

    
749
#### Parameters
750

    
751
The following parameters are available in the `nftables::rules::llmnr` class:
752

    
753
* [`ipv4`](#-nftables--rules--llmnr--ipv4)
754
* [`ipv6`](#-nftables--rules--llmnr--ipv6)
755

    
756
##### <a name="-nftables--rules--llmnr--ipv4"></a>`ipv4`
757

    
758
Data type: `Boolean`
759

    
760
Allow LLMNR over IPv4
761

    
762
Default value: `true`
763

    
764
##### <a name="-nftables--rules--llmnr--ipv6"></a>`ipv6`
765

    
766
Data type: `Boolean`
767

    
768
Allow LLMNR over IPv6
769

    
770
Default value: `true`
771

    
772
### <a name="nftables--rules--mdns"></a>`nftables::rules::mdns`
773

    
774
allow incoming multicast DNS
775

    
776
#### Parameters
777

    
778
The following parameters are available in the `nftables::rules::mdns` class:
779

    
780
* [`ipv4`](#-nftables--rules--mdns--ipv4)
781
* [`ipv6`](#-nftables--rules--mdns--ipv6)
782

    
783
##### <a name="-nftables--rules--mdns--ipv4"></a>`ipv4`
784

    
785
Data type: `Boolean`
786

    
787
Allow mdns over IPv4
788

    
789
Default value: `true`
790

    
791
##### <a name="-nftables--rules--mdns--ipv6"></a>`ipv6`
792

    
793
Data type: `Boolean`
794

    
795
Allow mdns over IPv6
796

    
797
Default value: `true`
798

    
799
### <a name="nftables--rules--multicast"></a>`nftables::rules::multicast`
800

    
801
allow incoming multicast traffic
802

    
803
### <a name="nftables--rules--nfs"></a>`nftables::rules::nfs`
804

    
805
manage in nfs4
806

    
807
### <a name="nftables--rules--nfs3"></a>`nftables::rules::nfs3`
808

    
809
manage in nfs3
810

    
811
### <a name="nftables--rules--node_exporter"></a>`nftables::rules::node_exporter`
812

    
813
manage in node exporter
814

    
815
#### Parameters
816

    
817
The following parameters are available in the `nftables::rules::node_exporter` class:
818

    
819
* [`prometheus_server`](#-nftables--rules--node_exporter--prometheus_server)
820
* [`port`](#-nftables--rules--node_exporter--port)
821

    
822
##### <a name="-nftables--rules--node_exporter--prometheus_server"></a>`prometheus_server`
823

    
824
Data type: `Optional[Variant[String,Array[String,1]]]`
825

    
826
Specify server name
827

    
828
Default value: `undef`
829

    
830
##### <a name="-nftables--rules--node_exporter--port"></a>`port`
831

    
832
Data type: `Stdlib::Port`
833

    
834
Specify port to open
835

    
836
Default value: `9100`
837

    
838
### <a name="nftables--rules--ospf"></a>`nftables::rules::ospf`
839

    
840
manage in ospf
841

    
842
### <a name="nftables--rules--ospf3"></a>`nftables::rules::ospf3`
843

    
844
manage in ospf3
845

    
846
### <a name="nftables--rules--out--active_directory"></a>`nftables::rules::out::active_directory`
847

    
848
manage outgoing active diectory
849

    
850
#### Parameters
851

    
852
The following parameters are available in the `nftables::rules::out::active_directory` class:
853

    
854
* [`adserver`](#-nftables--rules--out--active_directory--adserver)
855
* [`adserver_ports`](#-nftables--rules--out--active_directory--adserver_ports)
856

    
857
##### <a name="-nftables--rules--out--active_directory--adserver"></a>`adserver`
858

    
859
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
860

    
861
adserver IPs
862

    
863
##### <a name="-nftables--rules--out--active_directory--adserver_ports"></a>`adserver_ports`
864

    
865
Data type: `Array[Stdlib::Port,1]`
866

    
867
adserver ports
868

    
869
Default value: `[389, 636, 3268, 3269]`
870

    
871
### <a name="nftables--rules--out--all"></a>`nftables::rules::out::all`
872

    
873
allow all outbound
874

    
875
### <a name="nftables--rules--out--ceph_client"></a>`nftables::rules::out::ceph_client`
876

    
877
Ceph is a distributed object store and file system.
878
Enable this to be a client of Ceph's Monitor (MON),
879
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
880
and Manager Daemons (MGR).
881

    
882
#### Parameters
883

    
884
The following parameters are available in the `nftables::rules::out::ceph_client` class:
885

    
886
* [`ports`](#-nftables--rules--out--ceph_client--ports)
887

    
888
##### <a name="-nftables--rules--out--ceph_client--ports"></a>`ports`
889

    
890
Data type: `Array[Stdlib::Port,1]`
891

    
892
Specify ports to open
893

    
894
Default value: `[3300, 6789]`
895

    
896
### <a name="nftables--rules--out--chrony"></a>`nftables::rules::out::chrony`
897

    
898
manage out chrony
899

    
900
#### Parameters
901

    
902
The following parameters are available in the `nftables::rules::out::chrony` class:
903

    
904
* [`servers`](#-nftables--rules--out--chrony--servers)
905

    
906
##### <a name="-nftables--rules--out--chrony--servers"></a>`servers`
907

    
908
Data type: `Array[Stdlib::IP::Address]`
909

    
910
single IP-Address or array of IP-addresses from NTP servers
911

    
912
Default value: `[]`
913

    
914
### <a name="nftables--rules--out--dhcp"></a>`nftables::rules::out::dhcp`
915

    
916
manage out dhcp
917

    
918
### <a name="nftables--rules--out--dhcpv6_client"></a>`nftables::rules::out::dhcpv6_client`
919

    
920
Allow DHCPv6 requests out of a host
921

    
922
### <a name="nftables--rules--out--dns"></a>`nftables::rules::out::dns`
923

    
924
manage out dns
925

    
926
#### Parameters
927

    
928
The following parameters are available in the `nftables::rules::out::dns` class:
929

    
930
* [`dns_server`](#-nftables--rules--out--dns--dns_server)
931

    
932
##### <a name="-nftables--rules--out--dns--dns_server"></a>`dns_server`
933

    
934
Data type: `Array[Stdlib::IP::Address]`
935

    
936
specify dns_server name
937

    
938
Default value: `[]`
939

    
940
### <a name="nftables--rules--out--hkp"></a>`nftables::rules::out::hkp`
941

    
942
allow outgoing hkp connections to gpg keyservers
943

    
944
### <a name="nftables--rules--out--http"></a>`nftables::rules::out::http`
945

    
946
manage out http
947

    
948
### <a name="nftables--rules--out--https"></a>`nftables::rules::out::https`
949

    
950
manage out https
951

    
952
### <a name="nftables--rules--out--icmp"></a>`nftables::rules::out::icmp`
953

    
954
control outbound icmp packages
955

    
956
#### Parameters
957

    
958
The following parameters are available in the `nftables::rules::out::icmp` class:
959

    
960
* [`v4_types`](#-nftables--rules--out--icmp--v4_types)
961
* [`v6_types`](#-nftables--rules--out--icmp--v6_types)
962
* [`order`](#-nftables--rules--out--icmp--order)
963

    
964
##### <a name="-nftables--rules--out--icmp--v4_types"></a>`v4_types`
965

    
966
Data type: `Optional[Array[String]]`
967

    
968

    
969

    
970
Default value: `undef`
971

    
972
##### <a name="-nftables--rules--out--icmp--v6_types"></a>`v6_types`
973

    
974
Data type: `Optional[Array[String]]`
975

    
976

    
977

    
978
Default value: `undef`
979

    
980
##### <a name="-nftables--rules--out--icmp--order"></a>`order`
981

    
982
Data type: `String`
983

    
984

    
985

    
986
Default value: `'10'`
987

    
988
### <a name="nftables--rules--out--igmp"></a>`nftables::rules::out::igmp`
989

    
990
allow outgoing IGMP messages
991

    
992
### <a name="nftables--rules--out--imap"></a>`nftables::rules::out::imap`
993

    
994
allow outgoing imap
995

    
996
### <a name="nftables--rules--out--kerberos"></a>`nftables::rules::out::kerberos`
997

    
998
allows outbound access for kerberos
999

    
1000
### <a name="nftables--rules--out--ldap"></a>`nftables::rules::out::ldap`
1001

    
1002
manage outgoing ldap
1003

    
1004
#### Parameters
1005

    
1006
The following parameters are available in the `nftables::rules::out::ldap` class:
1007

    
1008
* [`ldapserver`](#-nftables--rules--out--ldap--ldapserver)
1009
* [`ldapserver_ports`](#-nftables--rules--out--ldap--ldapserver_ports)
1010

    
1011
##### <a name="-nftables--rules--out--ldap--ldapserver"></a>`ldapserver`
1012

    
1013
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1014

    
1015
ldapserver IPs
1016

    
1017
##### <a name="-nftables--rules--out--ldap--ldapserver_ports"></a>`ldapserver_ports`
1018

    
1019
Data type: `Array[Stdlib::Port,1]`
1020

    
1021
ldapserver ports
1022

    
1023
Default value: `[389, 636]`
1024

    
1025
### <a name="nftables--rules--out--mdns"></a>`nftables::rules::out::mdns`
1026

    
1027
allow outgoing multicast DNS
1028

    
1029
#### Parameters
1030

    
1031
The following parameters are available in the `nftables::rules::out::mdns` class:
1032

    
1033
* [`ipv4`](#-nftables--rules--out--mdns--ipv4)
1034
* [`ipv6`](#-nftables--rules--out--mdns--ipv6)
1035

    
1036
##### <a name="-nftables--rules--out--mdns--ipv4"></a>`ipv4`
1037

    
1038
Data type: `Boolean`
1039

    
1040
Allow mdns over IPv4
1041

    
1042
Default value: `true`
1043

    
1044
##### <a name="-nftables--rules--out--mdns--ipv6"></a>`ipv6`
1045

    
1046
Data type: `Boolean`
1047

    
1048
Allow mdns over IPv6
1049

    
1050
Default value: `true`
1051

    
1052
### <a name="nftables--rules--out--mldv2"></a>`nftables::rules::out::mldv2`
1053

    
1054
allow multicast listener requests
1055

    
1056
### <a name="nftables--rules--out--mysql"></a>`nftables::rules::out::mysql`
1057

    
1058
manage out mysql
1059

    
1060
### <a name="nftables--rules--out--nfs"></a>`nftables::rules::out::nfs`
1061

    
1062
manage out nfs
1063

    
1064
### <a name="nftables--rules--out--nfs3"></a>`nftables::rules::out::nfs3`
1065

    
1066
manage out nfs3
1067

    
1068
### <a name="nftables--rules--out--openafs_client"></a>`nftables::rules::out::openafs_client`
1069

    
1070
allows outbound access for afs clients
1071
7000 - afs3-fileserver
1072
7002 - afs3-ptserver
1073
7003 - vlserver
1074

    
1075
* **See also**
1076
  * https://wiki.openafs.org/devel/AFSServicePorts/
1077
    * AFS Service Ports
1078

    
1079
#### Parameters
1080

    
1081
The following parameters are available in the `nftables::rules::out::openafs_client` class:
1082

    
1083
* [`ports`](#-nftables--rules--out--openafs_client--ports)
1084

    
1085
##### <a name="-nftables--rules--out--openafs_client--ports"></a>`ports`
1086

    
1087
Data type: `Array[Stdlib::Port,1]`
1088

    
1089
port numbers to use
1090

    
1091
Default value: `[7000, 7002, 7003]`
1092

    
1093
### <a name="nftables--rules--out--ospf"></a>`nftables::rules::out::ospf`
1094

    
1095
manage out ospf
1096

    
1097
### <a name="nftables--rules--out--ospf3"></a>`nftables::rules::out::ospf3`
1098

    
1099
manage out ospf3
1100

    
1101
### <a name="nftables--rules--out--pop3"></a>`nftables::rules::out::pop3`
1102

    
1103
allow outgoing pop3
1104

    
1105
### <a name="nftables--rules--out--postgres"></a>`nftables::rules::out::postgres`
1106

    
1107
manage out postgres
1108

    
1109
### <a name="nftables--rules--out--puppet"></a>`nftables::rules::out::puppet`
1110

    
1111
manage outgoing puppet
1112

    
1113
#### Parameters
1114

    
1115
The following parameters are available in the `nftables::rules::out::puppet` class:
1116

    
1117
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1118
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1119

    
1120
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1121

    
1122
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1123

    
1124
puppetserver hostname
1125

    
1126
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1127

    
1128
Data type: `Stdlib::Port`
1129

    
1130
puppetserver port
1131

    
1132
Default value: `8140`
1133

    
1134
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1135

    
1136
manage outgoing pxp-agent
1137

    
1138
* **See also**
1139
  * also
1140
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1141

    
1142
#### Parameters
1143

    
1144
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1145

    
1146
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1147
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1148

    
1149
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1150

    
1151
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1152

    
1153
PXP broker IP(s)
1154

    
1155
##### <a name="-nftables--rules--out--pxp_agent--broker_port"></a>`broker_port`
1156

    
1157
Data type: `Stdlib::Port`
1158

    
1159
PXP broker port
1160

    
1161
Default value: `8142`
1162

    
1163
### <a name="nftables--rules--out--smtp"></a>`nftables::rules::out::smtp`
1164

    
1165
allow outgoing smtp
1166

    
1167
### <a name="nftables--rules--out--smtp_client"></a>`nftables::rules::out::smtp_client`
1168

    
1169
allow outgoing smtp client
1170

    
1171
### <a name="nftables--rules--out--ssdp"></a>`nftables::rules::out::ssdp`
1172

    
1173
allow outgoing SSDP
1174

    
1175
* **See also**
1176
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1177

    
1178
#### Parameters
1179

    
1180
The following parameters are available in the `nftables::rules::out::ssdp` class:
1181

    
1182
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1183
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1184

    
1185
##### <a name="-nftables--rules--out--ssdp--ipv4"></a>`ipv4`
1186

    
1187
Data type: `Boolean`
1188

    
1189
Allow SSDP over IPv4
1190

    
1191
Default value: `true`
1192

    
1193
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1194

    
1195
Data type: `Boolean`
1196

    
1197
Allow SSDP over IPv6
1198

    
1199
Default value: `true`
1200

    
1201
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1202

    
1203
manage out ssh
1204

    
1205
### <a name="nftables--rules--out--ssh--remove"></a>`nftables::rules::out::ssh::remove`
1206

    
1207
disable outgoing ssh
1208

    
1209
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1210

    
1211
manage out tor
1212

    
1213
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1214

    
1215
allow clients to query remote whois server
1216

    
1217
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1218

    
1219
manage out wireguard
1220

    
1221
#### Parameters
1222

    
1223
The following parameters are available in the `nftables::rules::out::wireguard` class:
1224

    
1225
* [`ports`](#-nftables--rules--out--wireguard--ports)
1226

    
1227
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1228

    
1229
Data type: `Array[Integer,1]`
1230

    
1231
specify wireguard ports
1232

    
1233
Default value: `[51820]`
1234

    
1235
### <a name="nftables--rules--podman"></a>`nftables::rules::podman`
1236

    
1237
Rules for Podman, a tool for managing OCI containers and pods.
1238
This class defines additional forwarding rules to let root containers
1239
reach external networks when using Netavark (since v4.0) or CNI (deprecated).
1240
At the time of writing, Podman supports automatic configuration
1241
of firewall rules with iptables and firewalld only.
1242

    
1243
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1244

    
1245
manage in puppet
1246

    
1247
#### Parameters
1248

    
1249
The following parameters are available in the `nftables::rules::puppet` class:
1250

    
1251
* [`ports`](#-nftables--rules--puppet--ports)
1252

    
1253
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1254

    
1255
Data type: `Array[Integer,1]`
1256

    
1257
puppet server ports
1258

    
1259
Default value: `[8140]`
1260

    
1261
### <a name="nftables--rules--pxp_agent"></a>`nftables::rules::pxp_agent`
1262

    
1263
manage in pxp-agent
1264

    
1265
#### Parameters
1266

    
1267
The following parameters are available in the `nftables::rules::pxp_agent` class:
1268

    
1269
* [`ports`](#-nftables--rules--pxp_agent--ports)
1270

    
1271
##### <a name="-nftables--rules--pxp_agent--ports"></a>`ports`
1272

    
1273
Data type: `Array[Stdlib::Port,1]`
1274

    
1275
pxp server ports
1276

    
1277
Default value: `[8142]`
1278

    
1279
### <a name="nftables--rules--qemu"></a>`nftables::rules::qemu`
1280

    
1281
This class configures the typical firewall setup that libvirt
1282
creates. Depending on your requirements you can switch on and off
1283
several aspects, for instance if you don't do DHCP to your guests
1284
you can disable the rules that accept DHCP traffic on the host or if
1285
you don't want your guests to talk to hosts outside you can disable
1286
forwarding and/or masquerading for IPv4 traffic.
1287

    
1288
#### Parameters
1289

    
1290
The following parameters are available in the `nftables::rules::qemu` class:
1291

    
1292
* [`interface`](#-nftables--rules--qemu--interface)
1293
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1294
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1295
* [`dns`](#-nftables--rules--qemu--dns)
1296
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1297
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1298
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1299
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1300

    
1301
##### <a name="-nftables--rules--qemu--interface"></a>`interface`
1302

    
1303
Data type: `String[1]`
1304

    
1305
Interface name used by the bridge.
1306

    
1307
Default value: `'virbr0'`
1308

    
1309
##### <a name="-nftables--rules--qemu--network_v4"></a>`network_v4`
1310

    
1311
Data type: `Stdlib::IP::Address::V4::CIDR`
1312

    
1313
The IPv4 network prefix used in the virtual network.
1314

    
1315
Default value: `'192.168.122.0/24'`
1316

    
1317
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1318

    
1319
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1320

    
1321
The IPv6 network prefix used in the virtual network.
1322

    
1323
Default value: `undef`
1324

    
1325
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1326

    
1327
Data type: `Boolean`
1328

    
1329
Allow DNS traffic from the guests to the host.
1330

    
1331
Default value: `true`
1332

    
1333
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1334

    
1335
Data type: `Boolean`
1336

    
1337
Allow DHCPv4 traffic from the guests to the host.
1338

    
1339
Default value: `true`
1340

    
1341
##### <a name="-nftables--rules--qemu--forward_traffic"></a>`forward_traffic`
1342

    
1343
Data type: `Boolean`
1344

    
1345
Allow forwarded traffic (out all, in related/established)
1346
generated by the virtual network.
1347

    
1348
Default value: `true`
1349

    
1350
##### <a name="-nftables--rules--qemu--internal_traffic"></a>`internal_traffic`
1351

    
1352
Data type: `Boolean`
1353

    
1354
Allow guests in the virtual network to talk to each other.
1355

    
1356
Default value: `true`
1357

    
1358
##### <a name="-nftables--rules--qemu--masquerade"></a>`masquerade`
1359

    
1360
Data type: `Boolean`
1361

    
1362
Do NAT masquerade on all IPv4 traffic generated by guests
1363
to external networks.
1364

    
1365
Default value: `true`
1366

    
1367
### <a name="nftables--rules--samba"></a>`nftables::rules::samba`
1368

    
1369
manage Samba, the suite to allow Windows file sharing on Linux resources.
1370

    
1371
#### Parameters
1372

    
1373
The following parameters are available in the `nftables::rules::samba` class:
1374

    
1375
* [`ctdb`](#-nftables--rules--samba--ctdb)
1376
* [`action`](#-nftables--rules--samba--action)
1377

    
1378
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1379

    
1380
Data type: `Boolean`
1381

    
1382
Enable ctdb-driven clustered Samba setups
1383

    
1384
Default value: `false`
1385

    
1386
##### <a name="-nftables--rules--samba--action"></a>`action`
1387

    
1388
Data type: `Enum['accept', 'drop']`
1389

    
1390
if the traffic should be allowed or dropped
1391

    
1392
Default value: `'accept'`
1393

    
1394
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1395

    
1396
manage in smtp
1397

    
1398
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1399

    
1400
manage in smtp submission
1401

    
1402
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1403

    
1404
manage in smtps
1405

    
1406
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1407

    
1408
allow incoming spotify
1409

    
1410
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1411

    
1412
allow incoming SSDP
1413

    
1414
* **See also**
1415
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1416

    
1417
#### Parameters
1418

    
1419
The following parameters are available in the `nftables::rules::ssdp` class:
1420

    
1421
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1422
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1423

    
1424
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1425

    
1426
Data type: `Boolean`
1427

    
1428
Allow SSDP over IPv4
1429

    
1430
Default value: `true`
1431

    
1432
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1433

    
1434
Data type: `Boolean`
1435

    
1436
Allow SSDP over IPv6
1437

    
1438
Default value: `true`
1439

    
1440
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1441

    
1442
manage in ssh
1443

    
1444
#### Parameters
1445

    
1446
The following parameters are available in the `nftables::rules::ssh` class:
1447

    
1448
* [`ports`](#-nftables--rules--ssh--ports)
1449

    
1450
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1451

    
1452
Data type: `Array[Stdlib::Port,1]`
1453

    
1454
ssh ports
1455

    
1456
Default value: `[22]`
1457

    
1458
### <a name="nftables--rules--tor"></a>`nftables::rules::tor`
1459

    
1460
manage in tor
1461

    
1462
#### Parameters
1463

    
1464
The following parameters are available in the `nftables::rules::tor` class:
1465

    
1466
* [`ports`](#-nftables--rules--tor--ports)
1467

    
1468
##### <a name="-nftables--rules--tor--ports"></a>`ports`
1469

    
1470
Data type: `Array[Stdlib::Port,1]`
1471

    
1472
ports for tor
1473

    
1474
Default value: `[9001]`
1475

    
1476
### <a name="nftables--rules--wireguard"></a>`nftables::rules::wireguard`
1477

    
1478
manage in wireguard
1479

    
1480
#### Parameters
1481

    
1482
The following parameters are available in the `nftables::rules::wireguard` class:
1483

    
1484
* [`ports`](#-nftables--rules--wireguard--ports)
1485

    
1486
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1487

    
1488
Data type: `Array[Stdlib::Port,1]`
1489

    
1490
wiregueard port
1491

    
1492
Default value: `[51820]`
1493

    
1494
### <a name="nftables--rules--wsd"></a>`nftables::rules::wsd`
1495

    
1496
allow incoming webservice discovery
1497

    
1498
* **See also**
1499
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1500

    
1501
#### Parameters
1502

    
1503
The following parameters are available in the `nftables::rules::wsd` class:
1504

    
1505
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1506
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1507

    
1508
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1509

    
1510
Data type: `Boolean`
1511

    
1512
Allow ws-discovery over IPv4
1513

    
1514
Default value: `true`
1515

    
1516
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1517

    
1518
Data type: `Boolean`
1519

    
1520
Allow ws-discovery over IPv6
1521

    
1522
Default value: `true`
1523

    
1524
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1525

    
1526
Allow in and outbound traffic for DHCPv6 server
1527

    
1528
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1529

    
1530
Open inbound and outbound ports for an AFS client
1531

    
1532
## Defined types
1533

    
1534
### <a name="nftables--chain"></a>`nftables::chain`
1535

    
1536
manage a chain
1537

    
1538
#### Parameters
1539

    
1540
The following parameters are available in the `nftables::chain` defined type:
1541

    
1542
* [`table`](#-nftables--chain--table)
1543
* [`chain`](#-nftables--chain--chain)
1544
* [`inject`](#-nftables--chain--inject)
1545
* [`inject_iif`](#-nftables--chain--inject_iif)
1546
* [`inject_oif`](#-nftables--chain--inject_oif)
1547

    
1548
##### <a name="-nftables--chain--table"></a>`table`
1549

    
1550
Data type: `Pattern[/^(ip|ip6|inet|netdev|bridge)-[a-zA-Z0-9_]+$/]`
1551

    
1552

    
1553

    
1554
Default value: `'inet-filter'`
1555

    
1556
##### <a name="-nftables--chain--chain"></a>`chain`
1557

    
1558
Data type: `Pattern[/^[a-zA-Z0-9_]+$/]`
1559

    
1560

    
1561

    
1562
Default value: `$title`
1563

    
1564
##### <a name="-nftables--chain--inject"></a>`inject`
1565

    
1566
Data type: `Optional[Pattern[/^\d\d-[a-zA-Z0-9_]+$/]]`
1567

    
1568

    
1569

    
1570
Default value: `undef`
1571

    
1572
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1573

    
1574
Data type: `Optional[String]`
1575

    
1576

    
1577

    
1578
Default value: `undef`
1579

    
1580
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1581

    
1582
Data type: `Optional[String]`
1583

    
1584

    
1585

    
1586
Default value: `undef`
1587

    
1588
### <a name="nftables--config"></a>`nftables::config`
1589

    
1590
manage a config snippet
1591

    
1592
#### Parameters
1593

    
1594
The following parameters are available in the `nftables::config` defined type:
1595

    
1596
* [`tablespec`](#-nftables--config--tablespec)
1597
* [`content`](#-nftables--config--content)
1598
* [`source`](#-nftables--config--source)
1599
* [`prefix`](#-nftables--config--prefix)
1600

    
1601
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1602

    
1603
Data type: `Pattern[/^\w+-\w+$/]`
1604

    
1605

    
1606

    
1607
Default value: `$title`
1608

    
1609
##### <a name="-nftables--config--content"></a>`content`
1610

    
1611
Data type: `Optional[String]`
1612

    
1613

    
1614

    
1615
Default value: `undef`
1616

    
1617
##### <a name="-nftables--config--source"></a>`source`
1618

    
1619
Data type: `Optional[Variant[String,Array[String,1]]]`
1620

    
1621

    
1622

    
1623
Default value: `undef`
1624

    
1625
##### <a name="-nftables--config--prefix"></a>`prefix`
1626

    
1627
Data type: `String`
1628

    
1629

    
1630

    
1631
Default value: `'custom-'`
1632

    
1633
### <a name="nftables--file"></a>`nftables::file`
1634

    
1635
Insert a file into the nftables configuration
1636

    
1637
#### Examples
1638

    
1639
##### Include a file that includes other files
1640

    
1641
```puppet
1642
nftables::file{'geoip':
1643
  content => @(EOT)
1644
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1645
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1646
    |EOT,
1647
}
1648
```
1649

    
1650
#### Parameters
1651

    
1652
The following parameters are available in the `nftables::file` defined type:
1653

    
1654
* [`label`](#-nftables--file--label)
1655
* [`content`](#-nftables--file--content)
1656
* [`source`](#-nftables--file--source)
1657
* [`prefix`](#-nftables--file--prefix)
1658

    
1659
##### <a name="-nftables--file--label"></a>`label`
1660

    
1661
Data type: `String[1]`
1662

    
1663
Unique name to include in filename.
1664

    
1665
Default value: `$title`
1666

    
1667
##### <a name="-nftables--file--content"></a>`content`
1668

    
1669
Data type: `Optional[String]`
1670

    
1671
The content to place in the file.
1672

    
1673
Default value: `undef`
1674

    
1675
##### <a name="-nftables--file--source"></a>`source`
1676

    
1677
Data type: `Optional[Variant[String,Array[String,1]]]`
1678

    
1679
A source to obtain the file content from.
1680

    
1681
Default value: `undef`
1682

    
1683
##### <a name="-nftables--file--prefix"></a>`prefix`
1684

    
1685
Data type: `String`
1686

    
1687
Prefix of file name to be created, if left as `file-` it will be
1688
auto included in the main nft configuration
1689

    
1690
Default value: `'file-'`
1691

    
1692
### <a name="nftables--helper"></a>`nftables::helper`
1693

    
1694
manage a conntrack helper
1695

    
1696
#### Examples
1697

    
1698
##### FTP helper
1699

    
1700
```puppet
1701
nftables::helper { 'ftp-standard':
1702
  content => 'type "ftp" protocol tcp;',
1703
}
1704
```
1705

    
1706
#### Parameters
1707

    
1708
The following parameters are available in the `nftables::helper` defined type:
1709

    
1710
* [`content`](#-nftables--helper--content)
1711
* [`table`](#-nftables--helper--table)
1712
* [`helper`](#-nftables--helper--helper)
1713

    
1714
##### <a name="-nftables--helper--content"></a>`content`
1715

    
1716
Data type: `String`
1717

    
1718
Conntrack helper definition.
1719

    
1720
##### <a name="-nftables--helper--table"></a>`table`
1721

    
1722
Data type: `Pattern[/^(ip|ip6|inet)-[a-zA-Z0-9_]+$/]`
1723

    
1724
The name of the table to add this helper to.
1725

    
1726
Default value: `'inet-filter'`
1727

    
1728
##### <a name="-nftables--helper--helper"></a>`helper`
1729

    
1730
Data type: `Pattern[/^[a-zA-Z0-9_][A-z0-9_-]*$/]`
1731

    
1732
The symbolic name for the helper.
1733

    
1734
Default value: `$title`
1735

    
1736
### <a name="nftables--rule"></a>`nftables::rule`
1737

    
1738
Provides an interface to create a firewall rule
1739

    
1740
#### Examples
1741

    
1742
##### add a rule named 'myhttp' to the 'default_in' chain to allow incoming traffic to TCP port 80
1743

    
1744
```puppet
1745
nftables::rule {
1746
  'default_in-myhttp':
1747
    content => 'tcp dport 80 accept',
1748
}
1749
```
1750

    
1751
##### add a rule named 'count' to the 'PREROUTING6' chain in table 'ip6 nat' to count traffic
1752

    
1753
```puppet
1754
nftables::rule {
1755
  'PREROUTING6-count':
1756
    content => 'counter',
1757
    table   => 'ip6-nat'
1758
}
1759
```
1760

    
1761
##### Redirect port 443 to port 8443
1762

    
1763
```puppet
1764
nftables::rule { 'PREROUTING-redirect':
1765
  content => 'tcp dport 443 redirect to :8443',
1766
  table   => 'ip-nat',
1767
}
1768
nftables::rule{'PREROUTING6-redirect':
1769
  content => 'tcp dport 443 redirect to :8443',
1770
  table   => 'ip6-nat',
1771
}
1772
```
1773

    
1774
#### Parameters
1775

    
1776
The following parameters are available in the `nftables::rule` defined type:
1777

    
1778
* [`ensure`](#-nftables--rule--ensure)
1779
* [`rulename`](#-nftables--rule--rulename)
1780
* [`order`](#-nftables--rule--order)
1781
* [`table`](#-nftables--rule--table)
1782
* [`content`](#-nftables--rule--content)
1783
* [`source`](#-nftables--rule--source)
1784

    
1785
##### <a name="-nftables--rule--ensure"></a>`ensure`
1786

    
1787
Data type: `Enum['present','absent']`
1788

    
1789
Should the rule be created.
1790

    
1791
Default value: `'present'`
1792

    
1793
##### <a name="-nftables--rule--rulename"></a>`rulename`
1794

    
1795
Data type: `Nftables::RuleName`
1796

    
1797
The symbolic name for the rule and to what chain to add it. The
1798
format is defined by the Nftables::RuleName type.
1799

    
1800
Default value: `$title`
1801

    
1802
##### <a name="-nftables--rule--order"></a>`order`
1803

    
1804
Data type: `Pattern[/^\d\d$/]`
1805

    
1806
A number representing the order of the rule.
1807

    
1808
Default value: `'50'`
1809

    
1810
##### <a name="-nftables--rule--table"></a>`table`
1811

    
1812
Data type: `String`
1813

    
1814
The name of the table to add this rule to.
1815

    
1816
Default value: `'inet-filter'`
1817

    
1818
##### <a name="-nftables--rule--content"></a>`content`
1819

    
1820
Data type: `Optional[String]`
1821

    
1822
The raw statements that compose the rule represented using the nftables
1823
language.
1824

    
1825
Default value: `undef`
1826

    
1827
##### <a name="-nftables--rule--source"></a>`source`
1828

    
1829
Data type: `Optional[Variant[String,Array[String,1]]]`
1830

    
1831
Same goal as content but sourcing the value from a file.
1832

    
1833
Default value: `undef`
1834

    
1835
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1836

    
1837
manage a ipv4 dnat rule
1838

    
1839
#### Parameters
1840

    
1841
The following parameters are available in the `nftables::rules::dnat4` defined type:
1842

    
1843
* [`daddr`](#-nftables--rules--dnat4--daddr)
1844
* [`port`](#-nftables--rules--dnat4--port)
1845
* [`rulename`](#-nftables--rules--dnat4--rulename)
1846
* [`order`](#-nftables--rules--dnat4--order)
1847
* [`chain`](#-nftables--rules--dnat4--chain)
1848
* [`iif`](#-nftables--rules--dnat4--iif)
1849
* [`proto`](#-nftables--rules--dnat4--proto)
1850
* [`dport`](#-nftables--rules--dnat4--dport)
1851
* [`ensure`](#-nftables--rules--dnat4--ensure)
1852

    
1853
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1854

    
1855
Data type: `Pattern[/^[12]?\d{1,2}\.[12]?\d{1,2}\.[12]?\d{1,2}\.[12]?\d{1,2}$/]`
1856

    
1857

    
1858

    
1859
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1860

    
1861
Data type: `Variant[String,Stdlib::Port]`
1862

    
1863

    
1864

    
1865
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1866

    
1867
Data type: `Pattern[/^[a-zA-Z0-9_]+$/]`
1868

    
1869

    
1870

    
1871
Default value: `$title`
1872

    
1873
##### <a name="-nftables--rules--dnat4--order"></a>`order`
1874

    
1875
Data type: `Pattern[/^\d\d$/]`
1876

    
1877

    
1878

    
1879
Default value: `'50'`
1880

    
1881
##### <a name="-nftables--rules--dnat4--chain"></a>`chain`
1882

    
1883
Data type: `String[1]`
1884

    
1885

    
1886

    
1887
Default value: `'default_fwd'`
1888

    
1889
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1890

    
1891
Data type: `Optional[String[1]]`
1892

    
1893

    
1894

    
1895
Default value: `undef`
1896

    
1897
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1898

    
1899
Data type: `Enum['tcp','udp']`
1900

    
1901

    
1902

    
1903
Default value: `'tcp'`
1904

    
1905
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1906

    
1907
Data type: `Optional[Variant[String,Stdlib::Port]]`
1908

    
1909

    
1910

    
1911
Default value: `undef`
1912

    
1913
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1914

    
1915
Data type: `Enum['present','absent']`
1916

    
1917

    
1918

    
1919
Default value: `'present'`
1920

    
1921
### <a name="nftables--rules--masquerade"></a>`nftables::rules::masquerade`
1922

    
1923
masquerade all outgoing traffic
1924

    
1925
#### Parameters
1926

    
1927
The following parameters are available in the `nftables::rules::masquerade` defined type:
1928

    
1929
* [`rulename`](#-nftables--rules--masquerade--rulename)
1930
* [`order`](#-nftables--rules--masquerade--order)
1931
* [`chain`](#-nftables--rules--masquerade--chain)
1932
* [`oif`](#-nftables--rules--masquerade--oif)
1933
* [`saddr`](#-nftables--rules--masquerade--saddr)
1934
* [`daddr`](#-nftables--rules--masquerade--daddr)
1935
* [`proto`](#-nftables--rules--masquerade--proto)
1936
* [`dport`](#-nftables--rules--masquerade--dport)
1937
* [`ensure`](#-nftables--rules--masquerade--ensure)
1938

    
1939
##### <a name="-nftables--rules--masquerade--rulename"></a>`rulename`
1940

    
1941
Data type: `Pattern[/^[a-zA-Z0-9_]+$/]`
1942

    
1943

    
1944

    
1945
Default value: `$title`
1946

    
1947
##### <a name="-nftables--rules--masquerade--order"></a>`order`
1948

    
1949
Data type: `Pattern[/^\d\d$/]`
1950

    
1951

    
1952

    
1953
Default value: `'70'`
1954

    
1955
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
1956

    
1957
Data type: `String[1]`
1958

    
1959

    
1960

    
1961
Default value: `'POSTROUTING'`
1962

    
1963
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
1964

    
1965
Data type: `Optional[String[1]]`
1966

    
1967

    
1968

    
1969
Default value: `undef`
1970

    
1971
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
1972

    
1973
Data type: `Optional[String[1]]`
1974

    
1975

    
1976

    
1977
Default value: `undef`
1978

    
1979
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
1980

    
1981
Data type: `Optional[String[1]]`
1982

    
1983

    
1984

    
1985
Default value: `undef`
1986

    
1987
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
1988

    
1989
Data type: `Optional[Enum['tcp','udp']]`
1990

    
1991

    
1992

    
1993
Default value: `undef`
1994

    
1995
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
1996

    
1997
Data type: `Optional[Variant[String,Stdlib::Port]]`
1998

    
1999

    
2000

    
2001
Default value: `undef`
2002

    
2003
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
2004

    
2005
Data type: `Enum['present','absent']`
2006

    
2007

    
2008

    
2009
Default value: `'present'`
2010

    
2011
### <a name="nftables--rules--snat4"></a>`nftables::rules::snat4`
2012

    
2013
manage a ipv4 snat rule
2014

    
2015
#### Parameters
2016

    
2017
The following parameters are available in the `nftables::rules::snat4` defined type:
2018

    
2019
* [`snat`](#-nftables--rules--snat4--snat)
2020
* [`rulename`](#-nftables--rules--snat4--rulename)
2021
* [`order`](#-nftables--rules--snat4--order)
2022
* [`chain`](#-nftables--rules--snat4--chain)
2023
* [`oif`](#-nftables--rules--snat4--oif)
2024
* [`saddr`](#-nftables--rules--snat4--saddr)
2025
* [`proto`](#-nftables--rules--snat4--proto)
2026
* [`dport`](#-nftables--rules--snat4--dport)
2027
* [`ensure`](#-nftables--rules--snat4--ensure)
2028

    
2029
##### <a name="-nftables--rules--snat4--snat"></a>`snat`
2030

    
2031
Data type: `String[1]`
2032

    
2033

    
2034

    
2035
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
2036

    
2037
Data type: `Pattern[/^[a-zA-Z0-9_]+$/]`
2038

    
2039

    
2040

    
2041
Default value: `$title`
2042

    
2043
##### <a name="-nftables--rules--snat4--order"></a>`order`
2044

    
2045
Data type: `Pattern[/^\d\d$/]`
2046

    
2047

    
2048

    
2049
Default value: `'70'`
2050

    
2051
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
2052

    
2053
Data type: `String[1]`
2054

    
2055

    
2056

    
2057
Default value: `'POSTROUTING'`
2058

    
2059
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
2060

    
2061
Data type: `Optional[String[1]]`
2062

    
2063

    
2064

    
2065
Default value: `undef`
2066

    
2067
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
2068

    
2069
Data type: `Optional[String[1]]`
2070

    
2071

    
2072

    
2073
Default value: `undef`
2074

    
2075
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
2076

    
2077
Data type: `Optional[Enum['tcp','udp']]`
2078

    
2079

    
2080

    
2081
Default value: `undef`
2082

    
2083
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
2084

    
2085
Data type: `Optional[Variant[String,Stdlib::Port]]`
2086

    
2087

    
2088

    
2089
Default value: `undef`
2090

    
2091
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
2092

    
2093
Data type: `Enum['present','absent']`
2094

    
2095

    
2096

    
2097
Default value: `'present'`
2098

    
2099
### <a name="nftables--set"></a>`nftables::set`
2100

    
2101
manage a named set
2102

    
2103
#### Examples
2104

    
2105
##### simple set
2106

    
2107
```puppet
2108
nftables::set{'my_set':
2109
  type       => 'ipv4_addr',
2110
  flags      => ['interval'],
2111
  elements   => ['192.168.0.1/24', '10.0.0.2'],
2112
  auto_merge => true,
2113
}
2114
```
2115

    
2116
#### Parameters
2117

    
2118
The following parameters are available in the `nftables::set` defined type:
2119

    
2120
* [`ensure`](#-nftables--set--ensure)
2121
* [`setname`](#-nftables--set--setname)
2122
* [`order`](#-nftables--set--order)
2123
* [`type`](#-nftables--set--type)
2124
* [`table`](#-nftables--set--table)
2125
* [`flags`](#-nftables--set--flags)
2126
* [`timeout`](#-nftables--set--timeout)
2127
* [`gc_interval`](#-nftables--set--gc_interval)
2128
* [`elements`](#-nftables--set--elements)
2129
* [`size`](#-nftables--set--size)
2130
* [`policy`](#-nftables--set--policy)
2131
* [`auto_merge`](#-nftables--set--auto_merge)
2132
* [`content`](#-nftables--set--content)
2133
* [`source`](#-nftables--set--source)
2134

    
2135
##### <a name="-nftables--set--ensure"></a>`ensure`
2136

    
2137
Data type: `Enum['present','absent']`
2138

    
2139
should the set be created.
2140

    
2141
Default value: `'present'`
2142

    
2143
##### <a name="-nftables--set--setname"></a>`setname`
2144

    
2145
Data type: `Pattern[/^[-a-zA-Z0-9_]+$/]`
2146

    
2147
name of set, equal to to title.
2148

    
2149
Default value: `$title`
2150

    
2151
##### <a name="-nftables--set--order"></a>`order`
2152

    
2153
Data type: `Pattern[/^\d\d$/]`
2154

    
2155
concat ordering.
2156

    
2157
Default value: `'10'`
2158

    
2159
##### <a name="-nftables--set--type"></a>`type`
2160

    
2161
Data type: `Optional[Enum['ipv4_addr', 'ipv6_addr', 'ether_addr', 'inet_proto', 'inet_service', 'mark']]`
2162

    
2163
type of set.
2164

    
2165
Default value: `undef`
2166

    
2167
##### <a name="-nftables--set--table"></a>`table`
2168

    
2169
Data type: `Variant[String, Array[String, 1]]`
2170

    
2171
table or array of tables to add the set to.
2172

    
2173
Default value: `'inet-filter'`
2174

    
2175
##### <a name="-nftables--set--flags"></a>`flags`
2176

    
2177
Data type: `Array[Enum['constant', 'dynamic', 'interval', 'timeout'], 0, 4]`
2178

    
2179
specify flags for set
2180

    
2181
Default value: `[]`
2182

    
2183
##### <a name="-nftables--set--timeout"></a>`timeout`
2184

    
2185
Data type: `Optional[Integer]`
2186

    
2187
timeout in seconds
2188

    
2189
Default value: `undef`
2190

    
2191
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2192

    
2193
Data type: `Optional[Integer]`
2194

    
2195
garbage collection interval.
2196

    
2197
Default value: `undef`
2198

    
2199
##### <a name="-nftables--set--elements"></a>`elements`
2200

    
2201
Data type: `Optional[Array[String]]`
2202

    
2203
initialize the set with some elements in it.
2204

    
2205
Default value: `undef`
2206

    
2207
##### <a name="-nftables--set--size"></a>`size`
2208

    
2209
Data type: `Optional[Integer]`
2210

    
2211
limits the maximum number of elements of the set.
2212

    
2213
Default value: `undef`
2214

    
2215
##### <a name="-nftables--set--policy"></a>`policy`
2216

    
2217
Data type: `Optional[Enum['performance', 'memory']]`
2218

    
2219
determines set selection policy.
2220

    
2221
Default value: `undef`
2222

    
2223
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2224

    
2225
Data type: `Boolean`
2226

    
2227
automatically merge adjacent/overlapping set elements (only valid for interval sets)
2228

    
2229
Default value: `false`
2230

    
2231
##### <a name="-nftables--set--content"></a>`content`
2232

    
2233
Data type: `Optional[String]`
2234

    
2235
specify content of set.
2236

    
2237
Default value: `undef`
2238

    
2239
##### <a name="-nftables--set--source"></a>`source`
2240

    
2241
Data type: `Optional[Variant[String,Array[String,1]]]`
2242

    
2243
specify source of set.
2244

    
2245
Default value: `undef`
2246

    
2247
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2248

    
2249
Provides a simplified interface to nftables::rule
2250

    
2251
#### Examples
2252

    
2253
##### allow incoming traffic from port 541 on port 543 TCP to a given IP range and count packets
2254

    
2255
```puppet
2256
nftables::simplerule{'my_service_in':
2257
  action  => 'accept',
2258
  comment => 'allow traffic to port 543',
2259
  counter => true,
2260
  proto   => 'tcp',
2261
  dport   => 543,
2262
  daddr   => '2001:1458::/32',
2263
  sport   => 541,
2264
}
2265
```
2266

    
2267
#### Parameters
2268

    
2269
The following parameters are available in the `nftables::simplerule` defined type:
2270

    
2271
* [`ensure`](#-nftables--simplerule--ensure)
2272
* [`rulename`](#-nftables--simplerule--rulename)
2273
* [`order`](#-nftables--simplerule--order)
2274
* [`chain`](#-nftables--simplerule--chain)
2275
* [`table`](#-nftables--simplerule--table)
2276
* [`action`](#-nftables--simplerule--action)
2277
* [`comment`](#-nftables--simplerule--comment)
2278
* [`dport`](#-nftables--simplerule--dport)
2279
* [`proto`](#-nftables--simplerule--proto)
2280
* [`daddr`](#-nftables--simplerule--daddr)
2281
* [`set_type`](#-nftables--simplerule--set_type)
2282
* [`sport`](#-nftables--simplerule--sport)
2283
* [`saddr`](#-nftables--simplerule--saddr)
2284
* [`counter`](#-nftables--simplerule--counter)
2285
* [`iifname`](#-nftables--simplerule--iifname)
2286
* [`oifname`](#-nftables--simplerule--oifname)
2287

    
2288
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2289

    
2290
Data type: `Enum['present','absent']`
2291

    
2292
Should the rule be created.
2293

    
2294
Default value: `'present'`
2295

    
2296
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2297

    
2298
Data type: `Nftables::SimpleRuleName`
2299

    
2300
The symbolic name for the rule to add. Defaults to the resource's title.
2301

    
2302
Default value: `$title`
2303

    
2304
##### <a name="-nftables--simplerule--order"></a>`order`
2305

    
2306
Data type: `Pattern[/^\d\d$/]`
2307

    
2308
A number representing the order of the rule.
2309

    
2310
Default value: `'50'`
2311

    
2312
##### <a name="-nftables--simplerule--chain"></a>`chain`
2313

    
2314
Data type: `String`
2315

    
2316
The name of the chain to add this rule to.
2317

    
2318
Default value: `'default_in'`
2319

    
2320
##### <a name="-nftables--simplerule--table"></a>`table`
2321

    
2322
Data type: `String`
2323

    
2324
The name of the table to add this rule to.
2325

    
2326
Default value: `'inet-filter'`
2327

    
2328
##### <a name="-nftables--simplerule--action"></a>`action`
2329

    
2330
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2331

    
2332
The verdict for the matched traffic.
2333

    
2334
Default value: `'accept'`
2335

    
2336
##### <a name="-nftables--simplerule--comment"></a>`comment`
2337

    
2338
Data type: `Optional[String]`
2339

    
2340
A typically human-readable comment for the rule.
2341

    
2342
Default value: `undef`
2343

    
2344
##### <a name="-nftables--simplerule--dport"></a>`dport`
2345

    
2346
Data type: `Optional[Nftables::Port]`
2347

    
2348
The destination port, ports or port range.
2349

    
2350
Default value: `undef`
2351

    
2352
##### <a name="-nftables--simplerule--proto"></a>`proto`
2353

    
2354
Data type: `Optional[Enum['tcp', 'tcp4', 'tcp6', 'udp', 'udp4', 'udp6']]`
2355

    
2356
The transport-layer protocol to match.
2357

    
2358
Default value: `undef`
2359

    
2360
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2361

    
2362
Data type: `Optional[Nftables::Addr]`
2363

    
2364
The destination address, CIDR or set to match.
2365

    
2366
Default value: `undef`
2367

    
2368
##### <a name="-nftables--simplerule--set_type"></a>`set_type`
2369

    
2370
Data type: `Enum['ip', 'ip6']`
2371

    
2372
When using sets as saddr or daddr, the type of the set.
2373
Use `ip` for sets of type `ipv4_addr`.
2374

    
2375
Default value: `'ip6'`
2376

    
2377
##### <a name="-nftables--simplerule--sport"></a>`sport`
2378

    
2379
Data type: `Optional[Nftables::Port]`
2380

    
2381
The source port, ports or port range.
2382

    
2383
Default value: `undef`
2384

    
2385
##### <a name="-nftables--simplerule--saddr"></a>`saddr`
2386

    
2387
Data type: `Optional[Nftables::Addr]`
2388

    
2389
The source address, CIDR or set to match.
2390

    
2391
Default value: `undef`
2392

    
2393
##### <a name="-nftables--simplerule--counter"></a>`counter`
2394

    
2395
Data type: `Boolean`
2396

    
2397
Enable traffic counters for the matched traffic.
2398

    
2399
Default value: `false`
2400

    
2401
##### <a name="-nftables--simplerule--iifname"></a>`iifname`
2402

    
2403
Data type: `Optional[String[1]]`
2404

    
2405
Optional filter for the incoming interface
2406

    
2407
Default value: `undef`
2408

    
2409
##### <a name="-nftables--simplerule--oifname"></a>`oifname`
2410

    
2411
Data type: `Optional[String[1]]`
2412

    
2413
Optional filter for the outgoing interface
2414

    
2415
Default value: `undef`
2416

    
2417
## Data types
2418

    
2419
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2420

    
2421
Represents an address expression to be used within a rule.
2422

    
2423
Alias of `Variant[Stdlib::IP::Address::V6, Stdlib::IP::Address::V4, Nftables::Addr::Set]`
2424

    
2425
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2426

    
2427
Represents a set expression to be used within a rule.
2428

    
2429
Alias of `Pattern[/^@[-a-zA-Z0-9_]+$/]`
2430

    
2431
### <a name="Nftables--Port"></a>`Nftables::Port`
2432

    
2433
Represents a port expression to be used within a rule.
2434

    
2435
Alias of `Variant[Array[Variant[Nftables::Port::Range, Stdlib::Port], 1], Stdlib::Port, Nftables::Port::Range]`
2436

    
2437
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2438

    
2439
Represents a port range expression to be used within a rule.
2440

    
2441
Alias of `Pattern[/^\d+-\d+$/]`
2442

    
2443
### <a name="Nftables--RuleName"></a>`Nftables::RuleName`
2444

    
2445
Represents a rule name to be used in a raw rule created via nftables::rule.
2446
It's a dash separated string. The first component describes the chain to
2447
add the rule to, the second the rule name and the (optional) third a number.
2448
Ex: 'default_in-sshd', 'default_out-my_service-2'.
2449

    
2450
Alias of `Pattern[/^[a-zA-Z0-9_]+-[a-zA-Z0-9_]+(-\d+)?$/]`
2451

    
2452
### <a name="Nftables--SimpleRuleName"></a>`Nftables::SimpleRuleName`
2453

    
2454
Represents a simple rule name to be used in a rule created via nftables::simplerule
2455

    
2456
Alias of `Pattern[/^[a-zA-Z0-9_]+(-\d+)?$/]`
2457