Projet

Général

Profil

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

root / REFERENCE.md @ 25b3f3f4

Historique | Voir | Annoter | Télécharger (61,1 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
* [`fwd_conntrack`](#-nftables--fwd_conntrack)
172
* [`firewalld_enable`](#-nftables--firewalld_enable)
173
* [`noflush_tables`](#-nftables--noflush_tables)
174
* [`rules`](#-nftables--rules)
175
* [`configuration_path`](#-nftables--configuration_path)
176
* [`nft_path`](#-nftables--nft_path)
177
* [`echo`](#-nftables--echo)
178
* [`default_config_mode`](#-nftables--default_config_mode)
179

    
180
##### <a name="-nftables--out_all"></a>`out_all`
181

    
182
Data type: `Boolean`
183

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

    
188
Default value: `false`
189

    
190
##### <a name="-nftables--out_ntp"></a>`out_ntp`
191

    
192
Data type: `Boolean`
193

    
194
Allow outbound to ntp servers.
195

    
196
Default value: `true`
197

    
198
##### <a name="-nftables--out_http"></a>`out_http`
199

    
200
Data type: `Boolean`
201

    
202
Allow outbound to http servers.
203

    
204
Default value: `true`
205

    
206
##### <a name="-nftables--out_dns"></a>`out_dns`
207

    
208
Data type: `Boolean`
209

    
210
Allow outbound to dns servers.
211

    
212
Default value: `true`
213

    
214
##### <a name="-nftables--out_https"></a>`out_https`
215

    
216
Data type: `Boolean`
217

    
218
Allow outbound to https servers.
219

    
220
Default value: `true`
221

    
222
##### <a name="-nftables--out_icmp"></a>`out_icmp`
223

    
224
Data type: `Boolean`
225

    
226
Allow outbound ICMPv4/v6 traffic.
227

    
228
Default value: `true`
229

    
230
##### <a name="-nftables--in_ssh"></a>`in_ssh`
231

    
232
Data type: `Boolean`
233

    
234
Allow inbound to ssh servers.
235

    
236
Default value: `true`
237

    
238
##### <a name="-nftables--in_icmp"></a>`in_icmp`
239

    
240
Data type: `Boolean`
241

    
242
Allow inbound ICMPv4/v6 traffic.
243

    
244
Default value: `true`
245

    
246
##### <a name="-nftables--inet_filter"></a>`inet_filter`
247

    
248
Data type: `Boolean`
249

    
250
Add default tables, chains and rules to process traffic.
251

    
252
Default value: `true`
253

    
254
##### <a name="-nftables--nat"></a>`nat`
255

    
256
Data type: `Boolean`
257

    
258
Add default tables and chains to process NAT traffic.
259

    
260
Default value: `true`
261

    
262
##### <a name="-nftables--nat_table_name"></a>`nat_table_name`
263

    
264
Data type: `String[1]`
265

    
266
The name of the 'nat' table.
267

    
268
Default value: `'nat'`
269

    
270
##### <a name="-nftables--sets"></a>`sets`
271

    
272
Data type: `Hash`
273

    
274
Allows sourcing set definitions directly from Hiera.
275

    
276
Default value: `{}`
277

    
278
##### <a name="-nftables--log_prefix"></a>`log_prefix`
279

    
280
Data type: `String`
281

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

    
287
Default value: `'[nftables] %<chain>s %<comment>s'`
288

    
289
##### <a name="-nftables--log_discarded"></a>`log_discarded`
290

    
291
Data type: `Boolean`
292

    
293
Allow to log discarded packets
294

    
295
Default value: `true`
296

    
297
##### <a name="-nftables--log_limit"></a>`log_limit`
298

    
299
Data type: `Variant[Boolean[false], String]`
300

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

    
305
Default value: `'3/minute burst 5 packets'`
306

    
307
##### <a name="-nftables--reject_with"></a>`reject_with`
308

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

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

    
316
Default value: `'icmpx type port-unreachable'`
317

    
318
##### <a name="-nftables--in_out_conntrack"></a>`in_out_conntrack`
319

    
320
Data type: `Boolean`
321

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

    
325
Default value: `true`
326

    
327
##### <a name="-nftables--fwd_conntrack"></a>`fwd_conntrack`
328

    
329
Data type: `Boolean`
330

    
331
Adds FORWARD rules to allow traffic that's part of an
332
established connection and also to drop invalid packets.
333

    
334
Default value: `false`
335

    
336
##### <a name="-nftables--firewalld_enable"></a>`firewalld_enable`
337

    
338
Data type: `Variant[Boolean[false], Enum['mask']]`
339

    
340
Configures how the firewalld systemd service unit is enabled. It might be
341
useful to set this to false if you're externaly removing firewalld from
342
the system completely.
343

    
344
Default value: `'mask'`
345

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

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

    
350
If specified only other existings tables will be flushed.
351
If left unset all tables will be flushed via a `flush ruleset`
352

    
353
Default value: `undef`
354

    
355
##### <a name="-nftables--rules"></a>`rules`
356

    
357
Data type: `Hash`
358

    
359
Specify hashes of `nftables::rule`s via hiera
360

    
361
Default value: `{}`
362

    
363
##### <a name="-nftables--configuration_path"></a>`configuration_path`
364

    
365
Data type: `Stdlib::Unixpath`
366

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

    
370
##### <a name="-nftables--nft_path"></a>`nft_path`
371

    
372
Data type: `Stdlib::Unixpath`
373

    
374
Path to the nft binary
375

    
376
##### <a name="-nftables--echo"></a>`echo`
377

    
378
Data type: `Stdlib::Unixpath`
379

    
380
Path to the echo binary
381

    
382
##### <a name="-nftables--default_config_mode"></a>`default_config_mode`
383

    
384
Data type: `Stdlib::Filemode`
385

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

    
389
### <a name="nftables--bridges"></a>`nftables::bridges`
390

    
391
allow forwarding traffic on bridges
392

    
393
#### Parameters
394

    
395
The following parameters are available in the `nftables::bridges` class:
396

    
397
* [`ensure`](#-nftables--bridges--ensure)
398
* [`bridgenames`](#-nftables--bridges--bridgenames)
399

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

    
402
Data type: `Enum['present','absent']`
403

    
404

    
405

    
406
Default value: `'present'`
407

    
408
##### <a name="-nftables--bridges--bridgenames"></a>`bridgenames`
409

    
410
Data type: `Regexp`
411

    
412

    
413

    
414
Default value: `/^br.+/`
415

    
416
### <a name="nftables--inet_filter"></a>`nftables::inet_filter`
417

    
418
manage basic chains in table inet filter
419

    
420
### <a name="nftables--inet_filter--fwd_conntrack"></a>`nftables::inet_filter::fwd_conntrack`
421

    
422
enable conntrack for fwd
423

    
424
### <a name="nftables--inet_filter--in_out_conntrack"></a>`nftables::inet_filter::in_out_conntrack`
425

    
426
manage input & output conntrack
427

    
428
### <a name="nftables--ip_nat"></a>`nftables::ip_nat`
429

    
430
manage basic chains in table ip nat
431

    
432
### <a name="nftables--rules--activemq"></a>`nftables::rules::activemq`
433

    
434
Provides input rules for Apache ActiveMQ
435

    
436
#### Parameters
437

    
438
The following parameters are available in the `nftables::rules::activemq` class:
439

    
440
* [`tcp`](#-nftables--rules--activemq--tcp)
441
* [`udp`](#-nftables--rules--activemq--udp)
442
* [`port`](#-nftables--rules--activemq--port)
443

    
444
##### <a name="-nftables--rules--activemq--tcp"></a>`tcp`
445

    
446
Data type: `Boolean`
447

    
448
Create the rule for TCP traffic.
449

    
450
Default value: `true`
451

    
452
##### <a name="-nftables--rules--activemq--udp"></a>`udp`
453

    
454
Data type: `Boolean`
455

    
456
Create the rule for UDP traffic.
457

    
458
Default value: `true`
459

    
460
##### <a name="-nftables--rules--activemq--port"></a>`port`
461

    
462
Data type: `Stdlib::Port`
463

    
464
The port number for the ActiveMQ daemon.
465

    
466
Default value: `61616`
467

    
468
### <a name="nftables--rules--afs3_callback"></a>`nftables::rules::afs3_callback`
469

    
470
Open call back port for AFS clients
471

    
472
#### Examples
473

    
474
##### allow call backs from particular hosts
475

    
476
```puppet
477
class{'nftables::rules::afs3_callback':
478
  saddr => ['192.168.0.0/16', '10.0.0.222']
479
}
480
```
481

    
482
#### Parameters
483

    
484
The following parameters are available in the `nftables::rules::afs3_callback` class:
485

    
486
* [`saddr`](#-nftables--rules--afs3_callback--saddr)
487

    
488
##### <a name="-nftables--rules--afs3_callback--saddr"></a>`saddr`
489

    
490
Data type: `Array[Stdlib::IP::Address::V4,1]`
491

    
492
list of source network ranges to a
493

    
494
Default value: `['0.0.0.0/0']`
495

    
496
### <a name="nftables--rules--ceph"></a>`nftables::rules::ceph`
497

    
498
Ceph is a distributed object store and file system.
499
Enable this to support Ceph's Object Storage Daemons (OSD),
500
Metadata Server Daemons (MDS), or Manager Daemons (MGR).
501

    
502
### <a name="nftables--rules--ceph_mon"></a>`nftables::rules::ceph_mon`
503

    
504
Ceph is a distributed object store and file system.
505
Enable this option to support Ceph's Monitor Daemon.
506

    
507
#### Parameters
508

    
509
The following parameters are available in the `nftables::rules::ceph_mon` class:
510

    
511
* [`ports`](#-nftables--rules--ceph_mon--ports)
512

    
513
##### <a name="-nftables--rules--ceph_mon--ports"></a>`ports`
514

    
515
Data type: `Array[Stdlib::Port,1]`
516

    
517
specify ports for ceph service
518

    
519
Default value: `[3300, 6789]`
520

    
521
### <a name="nftables--rules--dhcpv6_client"></a>`nftables::rules::dhcpv6_client`
522

    
523
allow DHCPv6 requests in to a host
524

    
525
### <a name="nftables--rules--dns"></a>`nftables::rules::dns`
526

    
527
manage in dns
528

    
529
#### Examples
530

    
531
##### Allow access to stub dns resolver from docker containers
532

    
533
```puppet
534
class { 'nftables::rules::dns':
535
  iifname => ['docker0'],
536
}
537
```
538

    
539
#### Parameters
540

    
541
The following parameters are available in the `nftables::rules::dns` class:
542

    
543
* [`ports`](#-nftables--rules--dns--ports)
544
* [`iifname`](#-nftables--rules--dns--iifname)
545

    
546
##### <a name="-nftables--rules--dns--ports"></a>`ports`
547

    
548
Data type: `Array[Stdlib::Port,1]`
549

    
550
Specify ports for dns.
551

    
552
Default value: `[53]`
553

    
554
##### <a name="-nftables--rules--dns--iifname"></a>`iifname`
555

    
556
Data type: `Optional[Array[String[1],1]]`
557

    
558
Specify input interface names.
559

    
560
Default value: `undef`
561

    
562
### <a name="nftables--rules--docker_ce"></a>`nftables::rules::docker_ce`
563

    
564
The configuration distributed in this class represents the default firewall
565
configuration done by docker-ce when the iptables integration is enabled.
566

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

    
570
When using this class 'docker::iptables: false' should be set.
571

    
572
#### Parameters
573

    
574
The following parameters are available in the `nftables::rules::docker_ce` class:
575

    
576
* [`docker_interface`](#-nftables--rules--docker_ce--docker_interface)
577
* [`docker_prefix`](#-nftables--rules--docker_ce--docker_prefix)
578
* [`manage_docker_chains`](#-nftables--rules--docker_ce--manage_docker_chains)
579
* [`manage_base_chains`](#-nftables--rules--docker_ce--manage_base_chains)
580

    
581
##### <a name="-nftables--rules--docker_ce--docker_interface"></a>`docker_interface`
582

    
583
Data type: `String[1]`
584

    
585
Interface name used by docker.
586

    
587
Default value: `'docker0'`
588

    
589
##### <a name="-nftables--rules--docker_ce--docker_prefix"></a>`docker_prefix`
590

    
591
Data type: `Stdlib::IP::Address::V4::CIDR`
592

    
593
The address space used by docker.
594

    
595
Default value: `'172.17.0.0/16'`
596

    
597
##### <a name="-nftables--rules--docker_ce--manage_docker_chains"></a>`manage_docker_chains`
598

    
599
Data type: `Boolean`
600

    
601
Flag to control whether the class should create the docker related chains.
602

    
603
Default value: `true`
604

    
605
##### <a name="-nftables--rules--docker_ce--manage_base_chains"></a>`manage_base_chains`
606

    
607
Data type: `Boolean`
608

    
609
Flag to control whether the class should create the base common chains.
610

    
611
Default value: `true`
612

    
613
### <a name="nftables--rules--ftp"></a>`nftables::rules::ftp`
614

    
615
manage in ftp (with conntrack helper)
616

    
617
#### Parameters
618

    
619
The following parameters are available in the `nftables::rules::ftp` class:
620

    
621
* [`enable_passive`](#-nftables--rules--ftp--enable_passive)
622
* [`passive_ports`](#-nftables--rules--ftp--passive_ports)
623

    
624
##### <a name="-nftables--rules--ftp--enable_passive"></a>`enable_passive`
625

    
626
Data type: `Boolean`
627

    
628
Enable FTP passive mode support
629

    
630
Default value: `true`
631

    
632
##### <a name="-nftables--rules--ftp--passive_ports"></a>`passive_ports`
633

    
634
Data type: `Nftables::Port::Range`
635

    
636
Set the FTP passive mode port range
637

    
638
Default value: `'10090-10100'`
639

    
640
### <a name="nftables--rules--http"></a>`nftables::rules::http`
641

    
642
manage in http
643

    
644
### <a name="nftables--rules--https"></a>`nftables::rules::https`
645

    
646
manage in https
647

    
648
### <a name="nftables--rules--icinga2"></a>`nftables::rules::icinga2`
649

    
650
manage in icinga2
651

    
652
#### Parameters
653

    
654
The following parameters are available in the `nftables::rules::icinga2` class:
655

    
656
* [`ports`](#-nftables--rules--icinga2--ports)
657

    
658
##### <a name="-nftables--rules--icinga2--ports"></a>`ports`
659

    
660
Data type: `Array[Stdlib::Port,1]`
661

    
662
Specify ports for icinga2
663

    
664
Default value: `[5665]`
665

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

    
668
The nftables::rules::icmp class.
669

    
670
#### Parameters
671

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

    
674
* [`v4_types`](#-nftables--rules--icmp--v4_types)
675
* [`v6_types`](#-nftables--rules--icmp--v6_types)
676
* [`order`](#-nftables--rules--icmp--order)
677

    
678
##### <a name="-nftables--rules--icmp--v4_types"></a>`v4_types`
679

    
680
Data type: `Optional[Array[String]]`
681

    
682

    
683

    
684
Default value: `undef`
685

    
686
##### <a name="-nftables--rules--icmp--v6_types"></a>`v6_types`
687

    
688
Data type: `Optional[Array[String]]`
689

    
690

    
691

    
692
Default value: `undef`
693

    
694
##### <a name="-nftables--rules--icmp--order"></a>`order`
695

    
696
Data type: `String`
697

    
698

    
699

    
700
Default value: `'10'`
701

    
702
### <a name="nftables--rules--igmp"></a>`nftables::rules::igmp`
703

    
704
allow incoming IGMP messages
705

    
706
### <a name="nftables--rules--ldap"></a>`nftables::rules::ldap`
707

    
708
manage in ldap
709

    
710
#### Parameters
711

    
712
The following parameters are available in the `nftables::rules::ldap` class:
713

    
714
* [`ports`](#-nftables--rules--ldap--ports)
715

    
716
##### <a name="-nftables--rules--ldap--ports"></a>`ports`
717

    
718
Data type: `Array[Integer,1]`
719

    
720
ldap server ports
721

    
722
Default value: `[389, 636]`
723

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

    
726
allow incoming Link-Local Multicast Name Resolution
727

    
728
* **See also**
729
  * https://datatracker.ietf.org/doc/html/rfc4795
730

    
731
#### Parameters
732

    
733
The following parameters are available in the `nftables::rules::llmnr` class:
734

    
735
* [`ipv4`](#-nftables--rules--llmnr--ipv4)
736
* [`ipv6`](#-nftables--rules--llmnr--ipv6)
737

    
738
##### <a name="-nftables--rules--llmnr--ipv4"></a>`ipv4`
739

    
740
Data type: `Boolean`
741

    
742
Allow LLMNR over IPv4
743

    
744
Default value: `true`
745

    
746
##### <a name="-nftables--rules--llmnr--ipv6"></a>`ipv6`
747

    
748
Data type: `Boolean`
749

    
750
Allow LLMNR over IPv6
751

    
752
Default value: `true`
753

    
754
### <a name="nftables--rules--mdns"></a>`nftables::rules::mdns`
755

    
756
allow incoming multicast DNS
757

    
758
#### Parameters
759

    
760
The following parameters are available in the `nftables::rules::mdns` class:
761

    
762
* [`ipv4`](#-nftables--rules--mdns--ipv4)
763
* [`ipv6`](#-nftables--rules--mdns--ipv6)
764

    
765
##### <a name="-nftables--rules--mdns--ipv4"></a>`ipv4`
766

    
767
Data type: `Boolean`
768

    
769
Allow mdns over IPv4
770

    
771
Default value: `true`
772

    
773
##### <a name="-nftables--rules--mdns--ipv6"></a>`ipv6`
774

    
775
Data type: `Boolean`
776

    
777
Allow mdns over IPv6
778

    
779
Default value: `true`
780

    
781
### <a name="nftables--rules--multicast"></a>`nftables::rules::multicast`
782

    
783
allow incoming multicast traffic
784

    
785
### <a name="nftables--rules--nfs"></a>`nftables::rules::nfs`
786

    
787
manage in nfs4
788

    
789
### <a name="nftables--rules--nfs3"></a>`nftables::rules::nfs3`
790

    
791
manage in nfs3
792

    
793
### <a name="nftables--rules--node_exporter"></a>`nftables::rules::node_exporter`
794

    
795
manage in node exporter
796

    
797
#### Parameters
798

    
799
The following parameters are available in the `nftables::rules::node_exporter` class:
800

    
801
* [`prometheus_server`](#-nftables--rules--node_exporter--prometheus_server)
802
* [`port`](#-nftables--rules--node_exporter--port)
803

    
804
##### <a name="-nftables--rules--node_exporter--prometheus_server"></a>`prometheus_server`
805

    
806
Data type: `Optional[Variant[String,Array[String,1]]]`
807

    
808
Specify server name
809

    
810
Default value: `undef`
811

    
812
##### <a name="-nftables--rules--node_exporter--port"></a>`port`
813

    
814
Data type: `Stdlib::Port`
815

    
816
Specify port to open
817

    
818
Default value: `9100`
819

    
820
### <a name="nftables--rules--ospf"></a>`nftables::rules::ospf`
821

    
822
manage in ospf
823

    
824
### <a name="nftables--rules--ospf3"></a>`nftables::rules::ospf3`
825

    
826
manage in ospf3
827

    
828
### <a name="nftables--rules--out--active_directory"></a>`nftables::rules::out::active_directory`
829

    
830
manage outgoing active diectory
831

    
832
#### Parameters
833

    
834
The following parameters are available in the `nftables::rules::out::active_directory` class:
835

    
836
* [`adserver`](#-nftables--rules--out--active_directory--adserver)
837
* [`adserver_ports`](#-nftables--rules--out--active_directory--adserver_ports)
838

    
839
##### <a name="-nftables--rules--out--active_directory--adserver"></a>`adserver`
840

    
841
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
842

    
843
adserver IPs
844

    
845
##### <a name="-nftables--rules--out--active_directory--adserver_ports"></a>`adserver_ports`
846

    
847
Data type: `Array[Stdlib::Port,1]`
848

    
849
adserver ports
850

    
851
Default value: `[389, 636, 3268, 3269]`
852

    
853
### <a name="nftables--rules--out--all"></a>`nftables::rules::out::all`
854

    
855
allow all outbound
856

    
857
### <a name="nftables--rules--out--ceph_client"></a>`nftables::rules::out::ceph_client`
858

    
859
Ceph is a distributed object store and file system.
860
Enable this to be a client of Ceph's Monitor (MON),
861
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
862
and Manager Daemons (MGR).
863

    
864
#### Parameters
865

    
866
The following parameters are available in the `nftables::rules::out::ceph_client` class:
867

    
868
* [`ports`](#-nftables--rules--out--ceph_client--ports)
869

    
870
##### <a name="-nftables--rules--out--ceph_client--ports"></a>`ports`
871

    
872
Data type: `Array[Stdlib::Port,1]`
873

    
874
Specify ports to open
875

    
876
Default value: `[3300, 6789]`
877

    
878
### <a name="nftables--rules--out--chrony"></a>`nftables::rules::out::chrony`
879

    
880
manage out chrony
881

    
882
#### Parameters
883

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

    
886
* [`servers`](#-nftables--rules--out--chrony--servers)
887

    
888
##### <a name="-nftables--rules--out--chrony--servers"></a>`servers`
889

    
890
Data type: `Array[Stdlib::IP::Address]`
891

    
892
single IP-Address or array of IP-addresses from NTP servers
893

    
894
Default value: `[]`
895

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

    
898
manage out dhcp
899

    
900
### <a name="nftables--rules--out--dhcpv6_client"></a>`nftables::rules::out::dhcpv6_client`
901

    
902
Allow DHCPv6 requests out of a host
903

    
904
### <a name="nftables--rules--out--dns"></a>`nftables::rules::out::dns`
905

    
906
manage out dns
907

    
908
#### Parameters
909

    
910
The following parameters are available in the `nftables::rules::out::dns` class:
911

    
912
* [`dns_server`](#-nftables--rules--out--dns--dns_server)
913

    
914
##### <a name="-nftables--rules--out--dns--dns_server"></a>`dns_server`
915

    
916
Data type: `Optional[Variant[String,Array[String,1]]]`
917

    
918
specify dns_server name
919

    
920
Default value: `undef`
921

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

    
924
allow outgoing hkp connections to gpg keyservers
925

    
926
### <a name="nftables--rules--out--http"></a>`nftables::rules::out::http`
927

    
928
manage out http
929

    
930
### <a name="nftables--rules--out--https"></a>`nftables::rules::out::https`
931

    
932
manage out https
933

    
934
### <a name="nftables--rules--out--icmp"></a>`nftables::rules::out::icmp`
935

    
936
control outbound icmp packages
937

    
938
#### Parameters
939

    
940
The following parameters are available in the `nftables::rules::out::icmp` class:
941

    
942
* [`v4_types`](#-nftables--rules--out--icmp--v4_types)
943
* [`v6_types`](#-nftables--rules--out--icmp--v6_types)
944
* [`order`](#-nftables--rules--out--icmp--order)
945

    
946
##### <a name="-nftables--rules--out--icmp--v4_types"></a>`v4_types`
947

    
948
Data type: `Optional[Array[String]]`
949

    
950

    
951

    
952
Default value: `undef`
953

    
954
##### <a name="-nftables--rules--out--icmp--v6_types"></a>`v6_types`
955

    
956
Data type: `Optional[Array[String]]`
957

    
958

    
959

    
960
Default value: `undef`
961

    
962
##### <a name="-nftables--rules--out--icmp--order"></a>`order`
963

    
964
Data type: `String`
965

    
966

    
967

    
968
Default value: `'10'`
969

    
970
### <a name="nftables--rules--out--igmp"></a>`nftables::rules::out::igmp`
971

    
972
allow outgoing IGMP messages
973

    
974
### <a name="nftables--rules--out--imap"></a>`nftables::rules::out::imap`
975

    
976
allow outgoing imap
977

    
978
### <a name="nftables--rules--out--kerberos"></a>`nftables::rules::out::kerberos`
979

    
980
allows outbound access for kerberos
981

    
982
### <a name="nftables--rules--out--ldap"></a>`nftables::rules::out::ldap`
983

    
984
manage outgoing ldap
985

    
986
#### Parameters
987

    
988
The following parameters are available in the `nftables::rules::out::ldap` class:
989

    
990
* [`ldapserver`](#-nftables--rules--out--ldap--ldapserver)
991
* [`ldapserver_ports`](#-nftables--rules--out--ldap--ldapserver_ports)
992

    
993
##### <a name="-nftables--rules--out--ldap--ldapserver"></a>`ldapserver`
994

    
995
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
996

    
997
ldapserver IPs
998

    
999
##### <a name="-nftables--rules--out--ldap--ldapserver_ports"></a>`ldapserver_ports`
1000

    
1001
Data type: `Array[Stdlib::Port,1]`
1002

    
1003
ldapserver ports
1004

    
1005
Default value: `[389, 636]`
1006

    
1007
### <a name="nftables--rules--out--mdns"></a>`nftables::rules::out::mdns`
1008

    
1009
allow outgoing multicast DNS
1010

    
1011
#### Parameters
1012

    
1013
The following parameters are available in the `nftables::rules::out::mdns` class:
1014

    
1015
* [`ipv4`](#-nftables--rules--out--mdns--ipv4)
1016
* [`ipv6`](#-nftables--rules--out--mdns--ipv6)
1017

    
1018
##### <a name="-nftables--rules--out--mdns--ipv4"></a>`ipv4`
1019

    
1020
Data type: `Boolean`
1021

    
1022
Allow mdns over IPv4
1023

    
1024
Default value: `true`
1025

    
1026
##### <a name="-nftables--rules--out--mdns--ipv6"></a>`ipv6`
1027

    
1028
Data type: `Boolean`
1029

    
1030
Allow mdns over IPv6
1031

    
1032
Default value: `true`
1033

    
1034
### <a name="nftables--rules--out--mldv2"></a>`nftables::rules::out::mldv2`
1035

    
1036
allow multicast listener requests
1037

    
1038
### <a name="nftables--rules--out--mysql"></a>`nftables::rules::out::mysql`
1039

    
1040
manage out mysql
1041

    
1042
### <a name="nftables--rules--out--nfs"></a>`nftables::rules::out::nfs`
1043

    
1044
manage out nfs
1045

    
1046
### <a name="nftables--rules--out--nfs3"></a>`nftables::rules::out::nfs3`
1047

    
1048
manage out nfs3
1049

    
1050
### <a name="nftables--rules--out--openafs_client"></a>`nftables::rules::out::openafs_client`
1051

    
1052
allows outbound access for afs clients
1053
7000 - afs3-fileserver
1054
7002 - afs3-ptserver
1055
7003 - vlserver
1056

    
1057
* **See also**
1058
  * https://wiki.openafs.org/devel/AFSServicePorts/
1059
    * AFS Service Ports
1060

    
1061
#### Parameters
1062

    
1063
The following parameters are available in the `nftables::rules::out::openafs_client` class:
1064

    
1065
* [`ports`](#-nftables--rules--out--openafs_client--ports)
1066

    
1067
##### <a name="-nftables--rules--out--openafs_client--ports"></a>`ports`
1068

    
1069
Data type: `Array[Stdlib::Port,1]`
1070

    
1071
port numbers to use
1072

    
1073
Default value: `[7000, 7002, 7003]`
1074

    
1075
### <a name="nftables--rules--out--ospf"></a>`nftables::rules::out::ospf`
1076

    
1077
manage out ospf
1078

    
1079
### <a name="nftables--rules--out--ospf3"></a>`nftables::rules::out::ospf3`
1080

    
1081
manage out ospf3
1082

    
1083
### <a name="nftables--rules--out--pop3"></a>`nftables::rules::out::pop3`
1084

    
1085
allow outgoing pop3
1086

    
1087
### <a name="nftables--rules--out--postgres"></a>`nftables::rules::out::postgres`
1088

    
1089
manage out postgres
1090

    
1091
### <a name="nftables--rules--out--puppet"></a>`nftables::rules::out::puppet`
1092

    
1093
manage outgoing puppet
1094

    
1095
#### Parameters
1096

    
1097
The following parameters are available in the `nftables::rules::out::puppet` class:
1098

    
1099
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1100
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1101

    
1102
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1103

    
1104
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1105

    
1106
puppetserver hostname
1107

    
1108
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1109

    
1110
Data type: `Stdlib::Port`
1111

    
1112
puppetserver port
1113

    
1114
Default value: `8140`
1115

    
1116
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1117

    
1118
manage outgoing pxp-agent
1119

    
1120
* **See also**
1121
  * also
1122
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1123

    
1124
#### Parameters
1125

    
1126
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1127

    
1128
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1129
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1130

    
1131
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1132

    
1133
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1134

    
1135
PXP broker IP(s)
1136

    
1137
##### <a name="-nftables--rules--out--pxp_agent--broker_port"></a>`broker_port`
1138

    
1139
Data type: `Stdlib::Port`
1140

    
1141
PXP broker port
1142

    
1143
Default value: `8142`
1144

    
1145
### <a name="nftables--rules--out--smtp"></a>`nftables::rules::out::smtp`
1146

    
1147
allow outgoing smtp
1148

    
1149
### <a name="nftables--rules--out--smtp_client"></a>`nftables::rules::out::smtp_client`
1150

    
1151
allow outgoing smtp client
1152

    
1153
### <a name="nftables--rules--out--ssdp"></a>`nftables::rules::out::ssdp`
1154

    
1155
allow outgoing SSDP
1156

    
1157
* **See also**
1158
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1159

    
1160
#### Parameters
1161

    
1162
The following parameters are available in the `nftables::rules::out::ssdp` class:
1163

    
1164
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1165
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1166

    
1167
##### <a name="-nftables--rules--out--ssdp--ipv4"></a>`ipv4`
1168

    
1169
Data type: `Boolean`
1170

    
1171
Allow SSDP over IPv4
1172

    
1173
Default value: `true`
1174

    
1175
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1176

    
1177
Data type: `Boolean`
1178

    
1179
Allow SSDP over IPv6
1180

    
1181
Default value: `true`
1182

    
1183
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1184

    
1185
manage out ssh
1186

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

    
1189
disable outgoing ssh
1190

    
1191
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1192

    
1193
manage out tor
1194

    
1195
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1196

    
1197
allow clients to query remote whois server
1198

    
1199
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1200

    
1201
manage out wireguard
1202

    
1203
#### Parameters
1204

    
1205
The following parameters are available in the `nftables::rules::out::wireguard` class:
1206

    
1207
* [`ports`](#-nftables--rules--out--wireguard--ports)
1208

    
1209
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1210

    
1211
Data type: `Array[Integer,1]`
1212

    
1213
specify wireguard ports
1214

    
1215
Default value: `[51820]`
1216

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

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

    
1225
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1226

    
1227
manage in puppet
1228

    
1229
#### Parameters
1230

    
1231
The following parameters are available in the `nftables::rules::puppet` class:
1232

    
1233
* [`ports`](#-nftables--rules--puppet--ports)
1234

    
1235
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1236

    
1237
Data type: `Array[Integer,1]`
1238

    
1239
puppet server ports
1240

    
1241
Default value: `[8140]`
1242

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

    
1245
manage in pxp-agent
1246

    
1247
#### Parameters
1248

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

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

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

    
1255
Data type: `Array[Stdlib::Port,1]`
1256

    
1257
pxp server ports
1258

    
1259
Default value: `[8142]`
1260

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

    
1263
This class configures the typical firewall setup that libvirt
1264
creates. Depending on your requirements you can switch on and off
1265
several aspects, for instance if you don't do DHCP to your guests
1266
you can disable the rules that accept DHCP traffic on the host or if
1267
you don't want your guests to talk to hosts outside you can disable
1268
forwarding and/or masquerading for IPv4 traffic.
1269

    
1270
#### Parameters
1271

    
1272
The following parameters are available in the `nftables::rules::qemu` class:
1273

    
1274
* [`interface`](#-nftables--rules--qemu--interface)
1275
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1276
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1277
* [`dns`](#-nftables--rules--qemu--dns)
1278
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1279
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1280
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1281
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1282

    
1283
##### <a name="-nftables--rules--qemu--interface"></a>`interface`
1284

    
1285
Data type: `String[1]`
1286

    
1287
Interface name used by the bridge.
1288

    
1289
Default value: `'virbr0'`
1290

    
1291
##### <a name="-nftables--rules--qemu--network_v4"></a>`network_v4`
1292

    
1293
Data type: `Stdlib::IP::Address::V4::CIDR`
1294

    
1295
The IPv4 network prefix used in the virtual network.
1296

    
1297
Default value: `'192.168.122.0/24'`
1298

    
1299
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1300

    
1301
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1302

    
1303
The IPv6 network prefix used in the virtual network.
1304

    
1305
Default value: `undef`
1306

    
1307
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1308

    
1309
Data type: `Boolean`
1310

    
1311
Allow DNS traffic from the guests to the host.
1312

    
1313
Default value: `true`
1314

    
1315
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1316

    
1317
Data type: `Boolean`
1318

    
1319
Allow DHCPv4 traffic from the guests to the host.
1320

    
1321
Default value: `true`
1322

    
1323
##### <a name="-nftables--rules--qemu--forward_traffic"></a>`forward_traffic`
1324

    
1325
Data type: `Boolean`
1326

    
1327
Allow forwarded traffic (out all, in related/established)
1328
generated by the virtual network.
1329

    
1330
Default value: `true`
1331

    
1332
##### <a name="-nftables--rules--qemu--internal_traffic"></a>`internal_traffic`
1333

    
1334
Data type: `Boolean`
1335

    
1336
Allow guests in the virtual network to talk to each other.
1337

    
1338
Default value: `true`
1339

    
1340
##### <a name="-nftables--rules--qemu--masquerade"></a>`masquerade`
1341

    
1342
Data type: `Boolean`
1343

    
1344
Do NAT masquerade on all IPv4 traffic generated by guests
1345
to external networks.
1346

    
1347
Default value: `true`
1348

    
1349
### <a name="nftables--rules--samba"></a>`nftables::rules::samba`
1350

    
1351
manage Samba, the suite to allow Windows file sharing on Linux resources.
1352

    
1353
#### Parameters
1354

    
1355
The following parameters are available in the `nftables::rules::samba` class:
1356

    
1357
* [`ctdb`](#-nftables--rules--samba--ctdb)
1358
* [`action`](#-nftables--rules--samba--action)
1359

    
1360
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1361

    
1362
Data type: `Boolean`
1363

    
1364
Enable ctdb-driven clustered Samba setups
1365

    
1366
Default value: `false`
1367

    
1368
##### <a name="-nftables--rules--samba--action"></a>`action`
1369

    
1370
Data type: `Enum['accept', 'drop']`
1371

    
1372
if the traffic should be allowed or dropped
1373

    
1374
Default value: `'accept'`
1375

    
1376
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1377

    
1378
manage in smtp
1379

    
1380
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1381

    
1382
manage in smtp submission
1383

    
1384
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1385

    
1386
manage in smtps
1387

    
1388
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1389

    
1390
allow incoming spotify
1391

    
1392
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1393

    
1394
allow incoming SSDP
1395

    
1396
* **See also**
1397
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1398

    
1399
#### Parameters
1400

    
1401
The following parameters are available in the `nftables::rules::ssdp` class:
1402

    
1403
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1404
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1405

    
1406
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1407

    
1408
Data type: `Boolean`
1409

    
1410
Allow SSDP over IPv4
1411

    
1412
Default value: `true`
1413

    
1414
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1415

    
1416
Data type: `Boolean`
1417

    
1418
Allow SSDP over IPv6
1419

    
1420
Default value: `true`
1421

    
1422
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1423

    
1424
manage in ssh
1425

    
1426
#### Parameters
1427

    
1428
The following parameters are available in the `nftables::rules::ssh` class:
1429

    
1430
* [`ports`](#-nftables--rules--ssh--ports)
1431

    
1432
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1433

    
1434
Data type: `Array[Stdlib::Port,1]`
1435

    
1436
ssh ports
1437

    
1438
Default value: `[22]`
1439

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

    
1442
manage in tor
1443

    
1444
#### Parameters
1445

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

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

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

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

    
1454
ports for tor
1455

    
1456
Default value: `[9001]`
1457

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

    
1460
manage in wireguard
1461

    
1462
#### Parameters
1463

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

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

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

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

    
1472
wiregueard port
1473

    
1474
Default value: `[51820]`
1475

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

    
1478
allow incoming webservice discovery
1479

    
1480
* **See also**
1481
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1482

    
1483
#### Parameters
1484

    
1485
The following parameters are available in the `nftables::rules::wsd` class:
1486

    
1487
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1488
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1489

    
1490
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1491

    
1492
Data type: `Boolean`
1493

    
1494
Allow ws-discovery over IPv4
1495

    
1496
Default value: `true`
1497

    
1498
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1499

    
1500
Data type: `Boolean`
1501

    
1502
Allow ws-discovery over IPv6
1503

    
1504
Default value: `true`
1505

    
1506
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1507

    
1508
Allow in and outbound traffic for DHCPv6 server
1509

    
1510
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1511

    
1512
Open inbound and outbound ports for an AFS client
1513

    
1514
## Defined types
1515

    
1516
### <a name="nftables--chain"></a>`nftables::chain`
1517

    
1518
manage a chain
1519

    
1520
#### Parameters
1521

    
1522
The following parameters are available in the `nftables::chain` defined type:
1523

    
1524
* [`table`](#-nftables--chain--table)
1525
* [`chain`](#-nftables--chain--chain)
1526
* [`inject`](#-nftables--chain--inject)
1527
* [`inject_iif`](#-nftables--chain--inject_iif)
1528
* [`inject_oif`](#-nftables--chain--inject_oif)
1529

    
1530
##### <a name="-nftables--chain--table"></a>`table`
1531

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

    
1534

    
1535

    
1536
Default value: `'inet-filter'`
1537

    
1538
##### <a name="-nftables--chain--chain"></a>`chain`
1539

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

    
1542

    
1543

    
1544
Default value: `$title`
1545

    
1546
##### <a name="-nftables--chain--inject"></a>`inject`
1547

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

    
1550

    
1551

    
1552
Default value: `undef`
1553

    
1554
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1555

    
1556
Data type: `Optional[String]`
1557

    
1558

    
1559

    
1560
Default value: `undef`
1561

    
1562
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1563

    
1564
Data type: `Optional[String]`
1565

    
1566

    
1567

    
1568
Default value: `undef`
1569

    
1570
### <a name="nftables--config"></a>`nftables::config`
1571

    
1572
manage a config snippet
1573

    
1574
#### Parameters
1575

    
1576
The following parameters are available in the `nftables::config` defined type:
1577

    
1578
* [`tablespec`](#-nftables--config--tablespec)
1579
* [`content`](#-nftables--config--content)
1580
* [`source`](#-nftables--config--source)
1581
* [`prefix`](#-nftables--config--prefix)
1582

    
1583
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1584

    
1585
Data type: `Pattern[/^\w+-\w+$/]`
1586

    
1587

    
1588

    
1589
Default value: `$title`
1590

    
1591
##### <a name="-nftables--config--content"></a>`content`
1592

    
1593
Data type: `Optional[String]`
1594

    
1595

    
1596

    
1597
Default value: `undef`
1598

    
1599
##### <a name="-nftables--config--source"></a>`source`
1600

    
1601
Data type: `Optional[Variant[String,Array[String,1]]]`
1602

    
1603

    
1604

    
1605
Default value: `undef`
1606

    
1607
##### <a name="-nftables--config--prefix"></a>`prefix`
1608

    
1609
Data type: `String`
1610

    
1611

    
1612

    
1613
Default value: `'custom-'`
1614

    
1615
### <a name="nftables--file"></a>`nftables::file`
1616

    
1617
Insert a file into the nftables configuration
1618

    
1619
#### Examples
1620

    
1621
##### Include a file that includes other files
1622

    
1623
```puppet
1624
nftables::file{'geoip':
1625
  content => @(EOT)
1626
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1627
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1628
    |EOT,
1629
}
1630
```
1631

    
1632
#### Parameters
1633

    
1634
The following parameters are available in the `nftables::file` defined type:
1635

    
1636
* [`label`](#-nftables--file--label)
1637
* [`content`](#-nftables--file--content)
1638
* [`source`](#-nftables--file--source)
1639
* [`prefix`](#-nftables--file--prefix)
1640

    
1641
##### <a name="-nftables--file--label"></a>`label`
1642

    
1643
Data type: `String[1]`
1644

    
1645
Unique name to include in filename.
1646

    
1647
Default value: `$title`
1648

    
1649
##### <a name="-nftables--file--content"></a>`content`
1650

    
1651
Data type: `Optional[String]`
1652

    
1653
The content to place in the file.
1654

    
1655
Default value: `undef`
1656

    
1657
##### <a name="-nftables--file--source"></a>`source`
1658

    
1659
Data type: `Optional[Variant[String,Array[String,1]]]`
1660

    
1661
A source to obtain the file content from.
1662

    
1663
Default value: `undef`
1664

    
1665
##### <a name="-nftables--file--prefix"></a>`prefix`
1666

    
1667
Data type: `String`
1668

    
1669
Prefix of file name to be created, if left as `file-` it will be
1670
auto included in the main nft configuration
1671

    
1672
Default value: `'file-'`
1673

    
1674
### <a name="nftables--helper"></a>`nftables::helper`
1675

    
1676
manage a conntrack helper
1677

    
1678
#### Examples
1679

    
1680
##### FTP helper
1681

    
1682
```puppet
1683
nftables::helper { 'ftp-standard':
1684
  content => 'type "ftp" protocol tcp;',
1685
}
1686
```
1687

    
1688
#### Parameters
1689

    
1690
The following parameters are available in the `nftables::helper` defined type:
1691

    
1692
* [`content`](#-nftables--helper--content)
1693
* [`table`](#-nftables--helper--table)
1694
* [`helper`](#-nftables--helper--helper)
1695

    
1696
##### <a name="-nftables--helper--content"></a>`content`
1697

    
1698
Data type: `String`
1699

    
1700
Conntrack helper definition.
1701

    
1702
##### <a name="-nftables--helper--table"></a>`table`
1703

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

    
1706
The name of the table to add this helper to.
1707

    
1708
Default value: `'inet-filter'`
1709

    
1710
##### <a name="-nftables--helper--helper"></a>`helper`
1711

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

    
1714
The symbolic name for the helper.
1715

    
1716
Default value: `$title`
1717

    
1718
### <a name="nftables--rule"></a>`nftables::rule`
1719

    
1720
Provides an interface to create a firewall rule
1721

    
1722
#### Examples
1723

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

    
1726
```puppet
1727
nftables::rule {
1728
  'default_in-myhttp':
1729
    content => 'tcp dport 80 accept',
1730
}
1731
```
1732

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

    
1735
```puppet
1736
nftables::rule {
1737
  'PREROUTING6-count':
1738
    content => 'counter',
1739
    table   => 'ip6-nat'
1740
}
1741
```
1742

    
1743
##### Redirect port 443 to port 8443
1744

    
1745
```puppet
1746
nftables::rule { 'PREROUTING-redirect':
1747
  content => 'tcp dport 443 redirect to :8443',
1748
  table   => 'ip-nat',
1749
}
1750
nftables::rule{'PREROUTING6-redirect':
1751
  content => 'tcp dport 443 redirect to :8443',
1752
  table   => 'ip6-nat',
1753
}
1754
```
1755

    
1756
#### Parameters
1757

    
1758
The following parameters are available in the `nftables::rule` defined type:
1759

    
1760
* [`ensure`](#-nftables--rule--ensure)
1761
* [`rulename`](#-nftables--rule--rulename)
1762
* [`order`](#-nftables--rule--order)
1763
* [`table`](#-nftables--rule--table)
1764
* [`content`](#-nftables--rule--content)
1765
* [`source`](#-nftables--rule--source)
1766

    
1767
##### <a name="-nftables--rule--ensure"></a>`ensure`
1768

    
1769
Data type: `Enum['present','absent']`
1770

    
1771
Should the rule be created.
1772

    
1773
Default value: `'present'`
1774

    
1775
##### <a name="-nftables--rule--rulename"></a>`rulename`
1776

    
1777
Data type: `Nftables::RuleName`
1778

    
1779
The symbolic name for the rule and to what chain to add it. The
1780
format is defined by the Nftables::RuleName type.
1781

    
1782
Default value: `$title`
1783

    
1784
##### <a name="-nftables--rule--order"></a>`order`
1785

    
1786
Data type: `Pattern[/^\d\d$/]`
1787

    
1788
A number representing the order of the rule.
1789

    
1790
Default value: `'50'`
1791

    
1792
##### <a name="-nftables--rule--table"></a>`table`
1793

    
1794
Data type: `String`
1795

    
1796
The name of the table to add this rule to.
1797

    
1798
Default value: `'inet-filter'`
1799

    
1800
##### <a name="-nftables--rule--content"></a>`content`
1801

    
1802
Data type: `Optional[String]`
1803

    
1804
The raw statements that compose the rule represented using the nftables
1805
language.
1806

    
1807
Default value: `undef`
1808

    
1809
##### <a name="-nftables--rule--source"></a>`source`
1810

    
1811
Data type: `Optional[Variant[String,Array[String,1]]]`
1812

    
1813
Same goal as content but sourcing the value from a file.
1814

    
1815
Default value: `undef`
1816

    
1817
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1818

    
1819
manage a ipv4 dnat rule
1820

    
1821
#### Parameters
1822

    
1823
The following parameters are available in the `nftables::rules::dnat4` defined type:
1824

    
1825
* [`daddr`](#-nftables--rules--dnat4--daddr)
1826
* [`port`](#-nftables--rules--dnat4--port)
1827
* [`rulename`](#-nftables--rules--dnat4--rulename)
1828
* [`order`](#-nftables--rules--dnat4--order)
1829
* [`chain`](#-nftables--rules--dnat4--chain)
1830
* [`iif`](#-nftables--rules--dnat4--iif)
1831
* [`proto`](#-nftables--rules--dnat4--proto)
1832
* [`dport`](#-nftables--rules--dnat4--dport)
1833
* [`ensure`](#-nftables--rules--dnat4--ensure)
1834

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

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

    
1839

    
1840

    
1841
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1842

    
1843
Data type: `Variant[String,Stdlib::Port]`
1844

    
1845

    
1846

    
1847
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1848

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

    
1851

    
1852

    
1853
Default value: `$title`
1854

    
1855
##### <a name="-nftables--rules--dnat4--order"></a>`order`
1856

    
1857
Data type: `Pattern[/^\d\d$/]`
1858

    
1859

    
1860

    
1861
Default value: `'50'`
1862

    
1863
##### <a name="-nftables--rules--dnat4--chain"></a>`chain`
1864

    
1865
Data type: `String[1]`
1866

    
1867

    
1868

    
1869
Default value: `'default_fwd'`
1870

    
1871
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1872

    
1873
Data type: `Optional[String[1]]`
1874

    
1875

    
1876

    
1877
Default value: `undef`
1878

    
1879
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1880

    
1881
Data type: `Enum['tcp','udp']`
1882

    
1883

    
1884

    
1885
Default value: `'tcp'`
1886

    
1887
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1888

    
1889
Data type: `Optional[Variant[String,Stdlib::Port]]`
1890

    
1891

    
1892

    
1893
Default value: `undef`
1894

    
1895
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1896

    
1897
Data type: `Enum['present','absent']`
1898

    
1899

    
1900

    
1901
Default value: `'present'`
1902

    
1903
### <a name="nftables--rules--masquerade"></a>`nftables::rules::masquerade`
1904

    
1905
masquerade all outgoing traffic
1906

    
1907
#### Parameters
1908

    
1909
The following parameters are available in the `nftables::rules::masquerade` defined type:
1910

    
1911
* [`rulename`](#-nftables--rules--masquerade--rulename)
1912
* [`order`](#-nftables--rules--masquerade--order)
1913
* [`chain`](#-nftables--rules--masquerade--chain)
1914
* [`oif`](#-nftables--rules--masquerade--oif)
1915
* [`saddr`](#-nftables--rules--masquerade--saddr)
1916
* [`daddr`](#-nftables--rules--masquerade--daddr)
1917
* [`proto`](#-nftables--rules--masquerade--proto)
1918
* [`dport`](#-nftables--rules--masquerade--dport)
1919
* [`ensure`](#-nftables--rules--masquerade--ensure)
1920

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

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

    
1925

    
1926

    
1927
Default value: `$title`
1928

    
1929
##### <a name="-nftables--rules--masquerade--order"></a>`order`
1930

    
1931
Data type: `Pattern[/^\d\d$/]`
1932

    
1933

    
1934

    
1935
Default value: `'70'`
1936

    
1937
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
1938

    
1939
Data type: `String[1]`
1940

    
1941

    
1942

    
1943
Default value: `'POSTROUTING'`
1944

    
1945
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
1946

    
1947
Data type: `Optional[String[1]]`
1948

    
1949

    
1950

    
1951
Default value: `undef`
1952

    
1953
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
1954

    
1955
Data type: `Optional[String[1]]`
1956

    
1957

    
1958

    
1959
Default value: `undef`
1960

    
1961
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
1962

    
1963
Data type: `Optional[String[1]]`
1964

    
1965

    
1966

    
1967
Default value: `undef`
1968

    
1969
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
1970

    
1971
Data type: `Optional[Enum['tcp','udp']]`
1972

    
1973

    
1974

    
1975
Default value: `undef`
1976

    
1977
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
1978

    
1979
Data type: `Optional[Variant[String,Stdlib::Port]]`
1980

    
1981

    
1982

    
1983
Default value: `undef`
1984

    
1985
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
1986

    
1987
Data type: `Enum['present','absent']`
1988

    
1989

    
1990

    
1991
Default value: `'present'`
1992

    
1993
### <a name="nftables--rules--snat4"></a>`nftables::rules::snat4`
1994

    
1995
manage a ipv4 snat rule
1996

    
1997
#### Parameters
1998

    
1999
The following parameters are available in the `nftables::rules::snat4` defined type:
2000

    
2001
* [`snat`](#-nftables--rules--snat4--snat)
2002
* [`rulename`](#-nftables--rules--snat4--rulename)
2003
* [`order`](#-nftables--rules--snat4--order)
2004
* [`chain`](#-nftables--rules--snat4--chain)
2005
* [`oif`](#-nftables--rules--snat4--oif)
2006
* [`saddr`](#-nftables--rules--snat4--saddr)
2007
* [`proto`](#-nftables--rules--snat4--proto)
2008
* [`dport`](#-nftables--rules--snat4--dport)
2009
* [`ensure`](#-nftables--rules--snat4--ensure)
2010

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

    
2013
Data type: `String[1]`
2014

    
2015

    
2016

    
2017
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
2018

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

    
2021

    
2022

    
2023
Default value: `$title`
2024

    
2025
##### <a name="-nftables--rules--snat4--order"></a>`order`
2026

    
2027
Data type: `Pattern[/^\d\d$/]`
2028

    
2029

    
2030

    
2031
Default value: `'70'`
2032

    
2033
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
2034

    
2035
Data type: `String[1]`
2036

    
2037

    
2038

    
2039
Default value: `'POSTROUTING'`
2040

    
2041
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
2042

    
2043
Data type: `Optional[String[1]]`
2044

    
2045

    
2046

    
2047
Default value: `undef`
2048

    
2049
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
2050

    
2051
Data type: `Optional[String[1]]`
2052

    
2053

    
2054

    
2055
Default value: `undef`
2056

    
2057
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
2058

    
2059
Data type: `Optional[Enum['tcp','udp']]`
2060

    
2061

    
2062

    
2063
Default value: `undef`
2064

    
2065
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
2066

    
2067
Data type: `Optional[Variant[String,Stdlib::Port]]`
2068

    
2069

    
2070

    
2071
Default value: `undef`
2072

    
2073
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
2074

    
2075
Data type: `Enum['present','absent']`
2076

    
2077

    
2078

    
2079
Default value: `'present'`
2080

    
2081
### <a name="nftables--set"></a>`nftables::set`
2082

    
2083
manage a named set
2084

    
2085
#### Examples
2086

    
2087
##### simple set
2088

    
2089
```puppet
2090
nftables::set{'my_set':
2091
  type       => 'ipv4_addr',
2092
  flags      => ['interval'],
2093
  elements   => ['192.168.0.1/24', '10.0.0.2'],
2094
  auto_merge => true,
2095
}
2096
```
2097

    
2098
#### Parameters
2099

    
2100
The following parameters are available in the `nftables::set` defined type:
2101

    
2102
* [`ensure`](#-nftables--set--ensure)
2103
* [`setname`](#-nftables--set--setname)
2104
* [`order`](#-nftables--set--order)
2105
* [`type`](#-nftables--set--type)
2106
* [`table`](#-nftables--set--table)
2107
* [`flags`](#-nftables--set--flags)
2108
* [`timeout`](#-nftables--set--timeout)
2109
* [`gc_interval`](#-nftables--set--gc_interval)
2110
* [`elements`](#-nftables--set--elements)
2111
* [`size`](#-nftables--set--size)
2112
* [`policy`](#-nftables--set--policy)
2113
* [`auto_merge`](#-nftables--set--auto_merge)
2114
* [`content`](#-nftables--set--content)
2115
* [`source`](#-nftables--set--source)
2116

    
2117
##### <a name="-nftables--set--ensure"></a>`ensure`
2118

    
2119
Data type: `Enum['present','absent']`
2120

    
2121
should the set be created.
2122

    
2123
Default value: `'present'`
2124

    
2125
##### <a name="-nftables--set--setname"></a>`setname`
2126

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

    
2129
name of set, equal to to title.
2130

    
2131
Default value: `$title`
2132

    
2133
##### <a name="-nftables--set--order"></a>`order`
2134

    
2135
Data type: `Pattern[/^\d\d$/]`
2136

    
2137
concat ordering.
2138

    
2139
Default value: `'10'`
2140

    
2141
##### <a name="-nftables--set--type"></a>`type`
2142

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

    
2145
type of set.
2146

    
2147
Default value: `undef`
2148

    
2149
##### <a name="-nftables--set--table"></a>`table`
2150

    
2151
Data type: `Variant[String, Array[String, 1]]`
2152

    
2153
table or array of tables to add the set to.
2154

    
2155
Default value: `'inet-filter'`
2156

    
2157
##### <a name="-nftables--set--flags"></a>`flags`
2158

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

    
2161
specify flags for set
2162

    
2163
Default value: `[]`
2164

    
2165
##### <a name="-nftables--set--timeout"></a>`timeout`
2166

    
2167
Data type: `Optional[Integer]`
2168

    
2169
timeout in seconds
2170

    
2171
Default value: `undef`
2172

    
2173
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2174

    
2175
Data type: `Optional[Integer]`
2176

    
2177
garbage collection interval.
2178

    
2179
Default value: `undef`
2180

    
2181
##### <a name="-nftables--set--elements"></a>`elements`
2182

    
2183
Data type: `Optional[Array[String]]`
2184

    
2185
initialize the set with some elements in it.
2186

    
2187
Default value: `undef`
2188

    
2189
##### <a name="-nftables--set--size"></a>`size`
2190

    
2191
Data type: `Optional[Integer]`
2192

    
2193
limits the maximum number of elements of the set.
2194

    
2195
Default value: `undef`
2196

    
2197
##### <a name="-nftables--set--policy"></a>`policy`
2198

    
2199
Data type: `Optional[Enum['performance', 'memory']]`
2200

    
2201
determines set selection policy.
2202

    
2203
Default value: `undef`
2204

    
2205
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2206

    
2207
Data type: `Boolean`
2208

    
2209
automatically merge adjacent/overlapping set elements (only valid for interval sets)
2210

    
2211
Default value: `false`
2212

    
2213
##### <a name="-nftables--set--content"></a>`content`
2214

    
2215
Data type: `Optional[String]`
2216

    
2217
specify content of set.
2218

    
2219
Default value: `undef`
2220

    
2221
##### <a name="-nftables--set--source"></a>`source`
2222

    
2223
Data type: `Optional[Variant[String,Array[String,1]]]`
2224

    
2225
specify source of set.
2226

    
2227
Default value: `undef`
2228

    
2229
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2230

    
2231
Provides a simplified interface to nftables::rule
2232

    
2233
#### Examples
2234

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

    
2237
```puppet
2238
nftables::simplerule{'my_service_in':
2239
  action  => 'accept',
2240
  comment => 'allow traffic to port 543',
2241
  counter => true,
2242
  proto   => 'tcp',
2243
  dport   => 543,
2244
  daddr   => '2001:1458::/32',
2245
  sport   => 541,
2246
}
2247
```
2248

    
2249
#### Parameters
2250

    
2251
The following parameters are available in the `nftables::simplerule` defined type:
2252

    
2253
* [`ensure`](#-nftables--simplerule--ensure)
2254
* [`rulename`](#-nftables--simplerule--rulename)
2255
* [`order`](#-nftables--simplerule--order)
2256
* [`chain`](#-nftables--simplerule--chain)
2257
* [`table`](#-nftables--simplerule--table)
2258
* [`action`](#-nftables--simplerule--action)
2259
* [`comment`](#-nftables--simplerule--comment)
2260
* [`dport`](#-nftables--simplerule--dport)
2261
* [`proto`](#-nftables--simplerule--proto)
2262
* [`daddr`](#-nftables--simplerule--daddr)
2263
* [`set_type`](#-nftables--simplerule--set_type)
2264
* [`sport`](#-nftables--simplerule--sport)
2265
* [`saddr`](#-nftables--simplerule--saddr)
2266
* [`counter`](#-nftables--simplerule--counter)
2267
* [`iifname`](#-nftables--simplerule--iifname)
2268

    
2269
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2270

    
2271
Data type: `Enum['present','absent']`
2272

    
2273
Should the rule be created.
2274

    
2275
Default value: `'present'`
2276

    
2277
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2278

    
2279
Data type: `Nftables::SimpleRuleName`
2280

    
2281
The symbolic name for the rule to add. Defaults to the resource's title.
2282

    
2283
Default value: `$title`
2284

    
2285
##### <a name="-nftables--simplerule--order"></a>`order`
2286

    
2287
Data type: `Pattern[/^\d\d$/]`
2288

    
2289
A number representing the order of the rule.
2290

    
2291
Default value: `'50'`
2292

    
2293
##### <a name="-nftables--simplerule--chain"></a>`chain`
2294

    
2295
Data type: `String`
2296

    
2297
The name of the chain to add this rule to.
2298

    
2299
Default value: `'default_in'`
2300

    
2301
##### <a name="-nftables--simplerule--table"></a>`table`
2302

    
2303
Data type: `String`
2304

    
2305
The name of the table to add this rule to.
2306

    
2307
Default value: `'inet-filter'`
2308

    
2309
##### <a name="-nftables--simplerule--action"></a>`action`
2310

    
2311
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2312

    
2313
The verdict for the matched traffic.
2314

    
2315
Default value: `'accept'`
2316

    
2317
##### <a name="-nftables--simplerule--comment"></a>`comment`
2318

    
2319
Data type: `Optional[String]`
2320

    
2321
A typically human-readable comment for the rule.
2322

    
2323
Default value: `undef`
2324

    
2325
##### <a name="-nftables--simplerule--dport"></a>`dport`
2326

    
2327
Data type: `Optional[Nftables::Port]`
2328

    
2329
The destination port, ports or port range.
2330

    
2331
Default value: `undef`
2332

    
2333
##### <a name="-nftables--simplerule--proto"></a>`proto`
2334

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

    
2337
The transport-layer protocol to match.
2338

    
2339
Default value: `undef`
2340

    
2341
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2342

    
2343
Data type: `Optional[Nftables::Addr]`
2344

    
2345
The destination address, CIDR or set to match.
2346

    
2347
Default value: `undef`
2348

    
2349
##### <a name="-nftables--simplerule--set_type"></a>`set_type`
2350

    
2351
Data type: `Enum['ip', 'ip6']`
2352

    
2353
When using sets as saddr or daddr, the type of the set.
2354
Use `ip` for sets of type `ipv4_addr`.
2355

    
2356
Default value: `'ip6'`
2357

    
2358
##### <a name="-nftables--simplerule--sport"></a>`sport`
2359

    
2360
Data type: `Optional[Nftables::Port]`
2361

    
2362
The source port, ports or port range.
2363

    
2364
Default value: `undef`
2365

    
2366
##### <a name="-nftables--simplerule--saddr"></a>`saddr`
2367

    
2368
Data type: `Optional[Nftables::Addr]`
2369

    
2370
The source address, CIDR or set to match.
2371

    
2372
Default value: `undef`
2373

    
2374
##### <a name="-nftables--simplerule--counter"></a>`counter`
2375

    
2376
Data type: `Boolean`
2377

    
2378
Enable traffic counters for the matched traffic.
2379

    
2380
Default value: `false`
2381

    
2382
##### <a name="-nftables--simplerule--iifname"></a>`iifname`
2383

    
2384
Data type: `Optional[String[1]]`
2385

    
2386
Optional filter for the incoming interface
2387

    
2388
Default value: `undef`
2389

    
2390
## Data types
2391

    
2392
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2393

    
2394
Represents an address expression to be used within a rule.
2395

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

    
2398
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2399

    
2400
Represents a set expression to be used within a rule.
2401

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

    
2404
### <a name="Nftables--Port"></a>`Nftables::Port`
2405

    
2406
Represents a port expression to be used within a rule.
2407

    
2408
Alias of `Variant[Array[Variant[Nftables::Port::Range, Stdlib::Port], 1], Stdlib::Port, Nftables::Port::Range]`
2409

    
2410
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2411

    
2412
Represents a port range expression to be used within a rule.
2413

    
2414
Alias of `Pattern[/^\d+-\d+$/]`
2415

    
2416
### <a name="Nftables--RuleName"></a>`Nftables::RuleName`
2417

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

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

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

    
2427
Represents a simple rule name to be used in a rule created via nftables::simplerule
2428

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