Projet

Général

Profil

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

root / REFERENCE.md @ ffc8b86f

Historique | Voir | Annoter | Télécharger (57,3 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::http`](#nftables--rules--http): manage in http
24
* [`nftables::rules::https`](#nftables--rules--https): manage in https
25
* [`nftables::rules::icinga2`](#nftables--rules--icinga2): manage in icinga2
26
* [`nftables::rules::icmp`](#nftables--rules--icmp)
27
* [`nftables::rules::igmp`](#nftables--rules--igmp): allow incoming IGMP messages
28
* [`nftables::rules::ldap`](#nftables--rules--ldap): manage in ldap
29
* [`nftables::rules::llmnr`](#nftables--rules--llmnr): allow incoming Link-Local Multicast Name Resolution
30
* [`nftables::rules::mdns`](#nftables--rules--mdns): allow incoming multicast DNS
31
* [`nftables::rules::multicast`](#nftables--rules--multicast): allow incoming multicast traffic
32
* [`nftables::rules::nfs`](#nftables--rules--nfs): manage in nfs4
33
* [`nftables::rules::nfs3`](#nftables--rules--nfs3): manage in nfs3
34
* [`nftables::rules::node_exporter`](#nftables--rules--node_exporter): manage in node exporter
35
* [`nftables::rules::ospf`](#nftables--rules--ospf): manage in ospf
36
* [`nftables::rules::ospf3`](#nftables--rules--ospf3): manage in ospf3
37
* [`nftables::rules::out::active_directory`](#nftables--rules--out--active_directory): manage outgoing active diectory
38
* [`nftables::rules::out::all`](#nftables--rules--out--all): allow all outbound
39
* [`nftables::rules::out::ceph_client`](#nftables--rules--out--ceph_client): Ceph is a distributed object store and file system.
40
Enable this to be a client of Ceph's Monitor (MON),
41
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
42
and Manager Daemons (MGR).
43
* [`nftables::rules::out::chrony`](#nftables--rules--out--chrony): manage out chrony
44
* [`nftables::rules::out::dhcp`](#nftables--rules--out--dhcp): manage out dhcp
45
* [`nftables::rules::out::dhcpv6_client`](#nftables--rules--out--dhcpv6_client): Allow DHCPv6 requests out of a host
46
* [`nftables::rules::out::dns`](#nftables--rules--out--dns): manage out dns
47
* [`nftables::rules::out::hkp`](#nftables--rules--out--hkp): allow outgoing hkp connections to gpg keyservers
48
* [`nftables::rules::out::http`](#nftables--rules--out--http): manage out http
49
* [`nftables::rules::out::https`](#nftables--rules--out--https): manage out https
50
* [`nftables::rules::out::icmp`](#nftables--rules--out--icmp): control outbound icmp packages
51
* [`nftables::rules::out::igmp`](#nftables--rules--out--igmp): allow outgoing IGMP messages
52
* [`nftables::rules::out::imap`](#nftables--rules--out--imap): allow outgoing imap
53
* [`nftables::rules::out::kerberos`](#nftables--rules--out--kerberos): allows outbound access for kerberos
54
* [`nftables::rules::out::ldap`](#nftables--rules--out--ldap): manage outgoing ldap
55
* [`nftables::rules::out::mdns`](#nftables--rules--out--mdns): allow outgoing multicast DNS
56
* [`nftables::rules::out::mldv2`](#nftables--rules--out--mldv2): allow multicast listener requests
57
* [`nftables::rules::out::mysql`](#nftables--rules--out--mysql): manage out mysql
58
* [`nftables::rules::out::nfs`](#nftables--rules--out--nfs): manage out nfs
59
* [`nftables::rules::out::nfs3`](#nftables--rules--out--nfs3): manage out nfs3
60
* [`nftables::rules::out::openafs_client`](#nftables--rules--out--openafs_client): allows outbound access for afs clients
61
7000 - afs3-fileserver
62
7002 - afs3-ptserver
63
7003 - vlserver
64
* [`nftables::rules::out::ospf`](#nftables--rules--out--ospf): manage out ospf
65
* [`nftables::rules::out::ospf3`](#nftables--rules--out--ospf3): manage out ospf3
66
* [`nftables::rules::out::pop3`](#nftables--rules--out--pop3): allow outgoing pop3
67
* [`nftables::rules::out::postgres`](#nftables--rules--out--postgres): manage out postgres
68
* [`nftables::rules::out::puppet`](#nftables--rules--out--puppet): manage outgoing puppet
69
* [`nftables::rules::out::pxp_agent`](#nftables--rules--out--pxp_agent): manage outgoing pxp-agent
70
* [`nftables::rules::out::smtp`](#nftables--rules--out--smtp): allow outgoing smtp
71
* [`nftables::rules::out::smtp_client`](#nftables--rules--out--smtp_client): allow outgoing smtp client
72
* [`nftables::rules::out::ssdp`](#nftables--rules--out--ssdp): allow outgoing SSDP
73
* [`nftables::rules::out::ssh`](#nftables--rules--out--ssh): manage out ssh
74
* [`nftables::rules::out::ssh::remove`](#nftables--rules--out--ssh--remove): disable outgoing ssh
75
* [`nftables::rules::out::tor`](#nftables--rules--out--tor): manage out tor
76
* [`nftables::rules::out::whois`](#nftables--rules--out--whois): allow clients to query remote whois server
77
* [`nftables::rules::out::wireguard`](#nftables--rules--out--wireguard): manage out wireguard
78
* [`nftables::rules::puppet`](#nftables--rules--puppet): manage in puppet
79
* [`nftables::rules::pxp_agent`](#nftables--rules--pxp_agent): manage in pxp-agent
80
* [`nftables::rules::qemu`](#nftables--rules--qemu): Bridged network configuration for qemu/libvirt
81
* [`nftables::rules::samba`](#nftables--rules--samba): manage Samba, the suite to allow Windows file sharing on Linux resources.
82
* [`nftables::rules::smtp`](#nftables--rules--smtp): manage in smtp
83
* [`nftables::rules::smtp_submission`](#nftables--rules--smtp_submission): manage in smtp submission
84
* [`nftables::rules::smtps`](#nftables--rules--smtps): manage in smtps
85
* [`nftables::rules::spotify`](#nftables--rules--spotify): allow incoming spotify
86
* [`nftables::rules::ssdp`](#nftables--rules--ssdp): allow incoming SSDP
87
* [`nftables::rules::ssh`](#nftables--rules--ssh): manage in ssh
88
* [`nftables::rules::tor`](#nftables--rules--tor): manage in tor
89
* [`nftables::rules::wireguard`](#nftables--rules--wireguard): manage in wireguard
90
* [`nftables::rules::wsd`](#nftables--rules--wsd): allow incoming webservice discovery
91
* [`nftables::services::dhcpv6_client`](#nftables--services--dhcpv6_client): Allow in and outbound traffic for DHCPv6 server
92
* [`nftables::services::openafs_client`](#nftables--services--openafs_client): Open inbound and outbound ports for an AFS client
93

    
94
### Defined types
95

    
96
* [`nftables::chain`](#nftables--chain): manage a chain
97
* [`nftables::config`](#nftables--config): manage a config snippet
98
* [`nftables::file`](#nftables--file): Insert a file into the nftables configuration
99
* [`nftables::rule`](#nftables--rule): Provides an interface to create a firewall rule
100
* [`nftables::rules::dnat4`](#nftables--rules--dnat4): manage a ipv4 dnat rule
101
* [`nftables::rules::masquerade`](#nftables--rules--masquerade): masquerade all outgoing traffic
102
* [`nftables::rules::snat4`](#nftables--rules--snat4): manage a ipv4 snat rule
103
* [`nftables::set`](#nftables--set): manage a named set
104
* [`nftables::simplerule`](#nftables--simplerule): Provides a simplified interface to nftables::rule
105

    
106
### Data types
107

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

    
118
## Classes
119

    
120
### <a name="nftables"></a>`nftables`
121

    
122
Configure nftables
123

    
124
#### Examples
125

    
126
##### allow dns out and do not allow ntp out
127

    
128
```puppet
129
class{ 'nftables':
130
  out_ntp => false,
131
  out_dns => true,
132
}
133
```
134

    
135
##### do not flush particular tables, fail2ban in this case
136

    
137
```puppet
138
class{ 'nftables':
139
  noflush_tables => ['inet-f2b-table'],
140
}
141
```
142

    
143
#### Parameters
144

    
145
The following parameters are available in the `nftables` class:
146

    
147
* [`out_all`](#-nftables--out_all)
148
* [`out_ntp`](#-nftables--out_ntp)
149
* [`out_http`](#-nftables--out_http)
150
* [`out_dns`](#-nftables--out_dns)
151
* [`out_https`](#-nftables--out_https)
152
* [`out_icmp`](#-nftables--out_icmp)
153
* [`in_ssh`](#-nftables--in_ssh)
154
* [`in_icmp`](#-nftables--in_icmp)
155
* [`inet_filter`](#-nftables--inet_filter)
156
* [`nat`](#-nftables--nat)
157
* [`nat_table_name`](#-nftables--nat_table_name)
158
* [`sets`](#-nftables--sets)
159
* [`log_prefix`](#-nftables--log_prefix)
160
* [`log_limit`](#-nftables--log_limit)
161
* [`reject_with`](#-nftables--reject_with)
162
* [`in_out_conntrack`](#-nftables--in_out_conntrack)
163
* [`fwd_conntrack`](#-nftables--fwd_conntrack)
164
* [`firewalld_enable`](#-nftables--firewalld_enable)
165
* [`noflush_tables`](#-nftables--noflush_tables)
166
* [`rules`](#-nftables--rules)
167
* [`configuration_path`](#-nftables--configuration_path)
168
* [`nft_path`](#-nftables--nft_path)
169
* [`echo`](#-nftables--echo)
170
* [`default_config_mode`](#-nftables--default_config_mode)
171

    
172
##### <a name="-nftables--out_all"></a>`out_all`
173

    
174
Data type: `Boolean`
175

    
176
Allow all outbound connections. If `true` then all other
177
out parameters `out_ntp`, `out_dns`, ... will be assuemed
178
false.
179

    
180
Default value: `false`
181

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

    
184
Data type: `Boolean`
185

    
186
Allow outbound to ntp servers.
187

    
188
Default value: `true`
189

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

    
192
Data type: `Boolean`
193

    
194
Allow outbound to http servers.
195

    
196
Default value: `true`
197

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

    
200
Data type: `Boolean`
201

    
202
Allow outbound to dns servers.
203

    
204
Default value: `true`
205

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

    
208
Data type: `Boolean`
209

    
210
Allow outbound to https servers.
211

    
212
Default value: `true`
213

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

    
216
Data type: `Boolean`
217

    
218
Allow outbound ICMPv4/v6 traffic.
219

    
220
Default value: `true`
221

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

    
224
Data type: `Boolean`
225

    
226
Allow inbound to ssh servers.
227

    
228
Default value: `true`
229

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

    
232
Data type: `Boolean`
233

    
234
Allow inbound ICMPv4/v6 traffic.
235

    
236
Default value: `true`
237

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

    
240
Data type: `Boolean`
241

    
242
Add default tables, chains and rules to process traffic.
243

    
244
Default value: `true`
245

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

    
248
Data type: `Boolean`
249

    
250
Add default tables and chains to process NAT traffic.
251

    
252
Default value: `true`
253

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

    
256
Data type: `String[1]`
257

    
258
The name of the 'nat' table.
259

    
260
Default value: `'nat'`
261

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

    
264
Data type: `Hash`
265

    
266
Allows sourcing set definitions directly from Hiera.
267

    
268
Default value: `{}`
269

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

    
272
Data type: `String`
273

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

    
279
Default value: `'[nftables] %<chain>s %<comment>s'`
280

    
281
##### <a name="-nftables--log_limit"></a>`log_limit`
282

    
283
Data type: `Variant[Boolean[false], String]`
284

    
285
String with the content of a limit statement to be applied
286
to the rules that log discarded traffic. Set to false to
287
disable rate limiting.
288

    
289
Default value: `'3/minute burst 5 packets'`
290

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

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

    
295
How to discard packets not matching any rule. If `false`, the
296
fate of the packet will be defined by the chain policy (normally
297
drop), otherwise the packet will be rejected with the REJECT_WITH
298
policy indicated by the value of this parameter.
299

    
300
Default value: `'icmpx type port-unreachable'`
301

    
302
##### <a name="-nftables--in_out_conntrack"></a>`in_out_conntrack`
303

    
304
Data type: `Boolean`
305

    
306
Adds INPUT and OUTPUT rules to allow traffic that's part of an
307
established connection and also to drop invalid packets.
308

    
309
Default value: `true`
310

    
311
##### <a name="-nftables--fwd_conntrack"></a>`fwd_conntrack`
312

    
313
Data type: `Boolean`
314

    
315
Adds FORWARD rules to allow traffic that's part of an
316
established connection and also to drop invalid packets.
317

    
318
Default value: `false`
319

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

    
322
Data type: `Variant[Boolean[false], Enum['mask']]`
323

    
324
Configures how the firewalld systemd service unit is enabled. It might be
325
useful to set this to false if you're externaly removing firewalld from
326
the system completely.
327

    
328
Default value: `'mask'`
329

    
330
##### <a name="-nftables--noflush_tables"></a>`noflush_tables`
331

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

    
334
If specified only other existings tables will be flushed.
335
If left unset all tables will be flushed via a `flush ruleset`
336

    
337
Default value: `undef`
338

    
339
##### <a name="-nftables--rules"></a>`rules`
340

    
341
Data type: `Hash`
342

    
343
Specify hashes of `nftables::rule`s via hiera
344

    
345
Default value: `{}`
346

    
347
##### <a name="-nftables--configuration_path"></a>`configuration_path`
348

    
349
Data type: `Stdlib::Unixpath`
350

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

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

    
356
Data type: `Stdlib::Unixpath`
357

    
358
Path to the nft binary
359

    
360
##### <a name="-nftables--echo"></a>`echo`
361

    
362
Data type: `Stdlib::Unixpath`
363

    
364
Path to the echo binary
365

    
366
##### <a name="-nftables--default_config_mode"></a>`default_config_mode`
367

    
368
Data type: `Stdlib::Filemode`
369

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

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

    
375
allow forwarding traffic on bridges
376

    
377
#### Parameters
378

    
379
The following parameters are available in the `nftables::bridges` class:
380

    
381
* [`ensure`](#-nftables--bridges--ensure)
382
* [`bridgenames`](#-nftables--bridges--bridgenames)
383

    
384
##### <a name="-nftables--bridges--ensure"></a>`ensure`
385

    
386
Data type: `Enum['present','absent']`
387

    
388

    
389

    
390
Default value: `'present'`
391

    
392
##### <a name="-nftables--bridges--bridgenames"></a>`bridgenames`
393

    
394
Data type: `Regexp`
395

    
396

    
397

    
398
Default value: `/^br.+/`
399

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

    
402
manage basic chains in table inet filter
403

    
404
### <a name="nftables--inet_filter--fwd_conntrack"></a>`nftables::inet_filter::fwd_conntrack`
405

    
406
enable conntrack for fwd
407

    
408
### <a name="nftables--inet_filter--in_out_conntrack"></a>`nftables::inet_filter::in_out_conntrack`
409

    
410
manage input & output conntrack
411

    
412
### <a name="nftables--ip_nat"></a>`nftables::ip_nat`
413

    
414
manage basic chains in table ip nat
415

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

    
418
Provides input rules for Apache ActiveMQ
419

    
420
#### Parameters
421

    
422
The following parameters are available in the `nftables::rules::activemq` class:
423

    
424
* [`tcp`](#-nftables--rules--activemq--tcp)
425
* [`udp`](#-nftables--rules--activemq--udp)
426
* [`port`](#-nftables--rules--activemq--port)
427

    
428
##### <a name="-nftables--rules--activemq--tcp"></a>`tcp`
429

    
430
Data type: `Boolean`
431

    
432
Create the rule for TCP traffic.
433

    
434
Default value: `true`
435

    
436
##### <a name="-nftables--rules--activemq--udp"></a>`udp`
437

    
438
Data type: `Boolean`
439

    
440
Create the rule for UDP traffic.
441

    
442
Default value: `true`
443

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

    
446
Data type: `Stdlib::Port`
447

    
448
The port number for the ActiveMQ daemon.
449

    
450
Default value: `61616`
451

    
452
### <a name="nftables--rules--afs3_callback"></a>`nftables::rules::afs3_callback`
453

    
454
Open call back port for AFS clients
455

    
456
#### Examples
457

    
458
##### allow call backs from particular hosts
459

    
460
```puppet
461
class{'nftables::rules::afs3_callback':
462
  saddr => ['192.168.0.0/16', '10.0.0.222']
463
}
464
```
465

    
466
#### Parameters
467

    
468
The following parameters are available in the `nftables::rules::afs3_callback` class:
469

    
470
* [`saddr`](#-nftables--rules--afs3_callback--saddr)
471

    
472
##### <a name="-nftables--rules--afs3_callback--saddr"></a>`saddr`
473

    
474
Data type: `Array[Stdlib::IP::Address::V4,1]`
475

    
476
list of source network ranges to a
477

    
478
Default value: `['0.0.0.0/0']`
479

    
480
### <a name="nftables--rules--ceph"></a>`nftables::rules::ceph`
481

    
482
Ceph is a distributed object store and file system.
483
Enable this to support Ceph's Object Storage Daemons (OSD),
484
Metadata Server Daemons (MDS), or Manager Daemons (MGR).
485

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

    
488
Ceph is a distributed object store and file system.
489
Enable this option to support Ceph's Monitor Daemon.
490

    
491
#### Parameters
492

    
493
The following parameters are available in the `nftables::rules::ceph_mon` class:
494

    
495
* [`ports`](#-nftables--rules--ceph_mon--ports)
496

    
497
##### <a name="-nftables--rules--ceph_mon--ports"></a>`ports`
498

    
499
Data type: `Array[Stdlib::Port,1]`
500

    
501
specify ports for ceph service
502

    
503
Default value: `[3300, 6789]`
504

    
505
### <a name="nftables--rules--dhcpv6_client"></a>`nftables::rules::dhcpv6_client`
506

    
507
allow DHCPv6 requests in to a host
508

    
509
### <a name="nftables--rules--dns"></a>`nftables::rules::dns`
510

    
511
manage in dns
512

    
513
#### Parameters
514

    
515
The following parameters are available in the `nftables::rules::dns` class:
516

    
517
* [`ports`](#-nftables--rules--dns--ports)
518

    
519
##### <a name="-nftables--rules--dns--ports"></a>`ports`
520

    
521
Data type: `Array[Stdlib::Port,1]`
522

    
523
Specify ports for dns.
524

    
525
Default value: `[53]`
526

    
527
### <a name="nftables--rules--docker_ce"></a>`nftables::rules::docker_ce`
528

    
529
The configuration distributed in this class represents the default firewall
530
configuration done by docker-ce when the iptables integration is enabled.
531

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

    
535
When using this class 'docker::iptables: false' should be set.
536

    
537
#### Parameters
538

    
539
The following parameters are available in the `nftables::rules::docker_ce` class:
540

    
541
* [`docker_interface`](#-nftables--rules--docker_ce--docker_interface)
542
* [`docker_prefix`](#-nftables--rules--docker_ce--docker_prefix)
543
* [`manage_docker_chains`](#-nftables--rules--docker_ce--manage_docker_chains)
544
* [`manage_base_chains`](#-nftables--rules--docker_ce--manage_base_chains)
545

    
546
##### <a name="-nftables--rules--docker_ce--docker_interface"></a>`docker_interface`
547

    
548
Data type: `String[1]`
549

    
550
Interface name used by docker.
551

    
552
Default value: `'docker0'`
553

    
554
##### <a name="-nftables--rules--docker_ce--docker_prefix"></a>`docker_prefix`
555

    
556
Data type: `Stdlib::IP::Address::V4::CIDR`
557

    
558
The address space used by docker.
559

    
560
Default value: `'172.17.0.0/16'`
561

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

    
564
Data type: `Boolean`
565

    
566
Flag to control whether the class should create the docker related chains.
567

    
568
Default value: `true`
569

    
570
##### <a name="-nftables--rules--docker_ce--manage_base_chains"></a>`manage_base_chains`
571

    
572
Data type: `Boolean`
573

    
574
Flag to control whether the class should create the base common chains.
575

    
576
Default value: `true`
577

    
578
### <a name="nftables--rules--http"></a>`nftables::rules::http`
579

    
580
manage in http
581

    
582
### <a name="nftables--rules--https"></a>`nftables::rules::https`
583

    
584
manage in https
585

    
586
### <a name="nftables--rules--icinga2"></a>`nftables::rules::icinga2`
587

    
588
manage in icinga2
589

    
590
#### Parameters
591

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

    
594
* [`ports`](#-nftables--rules--icinga2--ports)
595

    
596
##### <a name="-nftables--rules--icinga2--ports"></a>`ports`
597

    
598
Data type: `Array[Stdlib::Port,1]`
599

    
600
Specify ports for icinga2
601

    
602
Default value: `[5665]`
603

    
604
### <a name="nftables--rules--icmp"></a>`nftables::rules::icmp`
605

    
606
The nftables::rules::icmp class.
607

    
608
#### Parameters
609

    
610
The following parameters are available in the `nftables::rules::icmp` class:
611

    
612
* [`v4_types`](#-nftables--rules--icmp--v4_types)
613
* [`v6_types`](#-nftables--rules--icmp--v6_types)
614
* [`order`](#-nftables--rules--icmp--order)
615

    
616
##### <a name="-nftables--rules--icmp--v4_types"></a>`v4_types`
617

    
618
Data type: `Optional[Array[String]]`
619

    
620

    
621

    
622
Default value: `undef`
623

    
624
##### <a name="-nftables--rules--icmp--v6_types"></a>`v6_types`
625

    
626
Data type: `Optional[Array[String]]`
627

    
628

    
629

    
630
Default value: `undef`
631

    
632
##### <a name="-nftables--rules--icmp--order"></a>`order`
633

    
634
Data type: `String`
635

    
636

    
637

    
638
Default value: `'10'`
639

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

    
642
allow incoming IGMP messages
643

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

    
646
manage in ldap
647

    
648
#### Parameters
649

    
650
The following parameters are available in the `nftables::rules::ldap` class:
651

    
652
* [`ports`](#-nftables--rules--ldap--ports)
653

    
654
##### <a name="-nftables--rules--ldap--ports"></a>`ports`
655

    
656
Data type: `Array[Integer,1]`
657

    
658
ldap server ports
659

    
660
Default value: `[389, 636]`
661

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

    
664
allow incoming Link-Local Multicast Name Resolution
665

    
666
* **See also**
667
  * https://datatracker.ietf.org/doc/html/rfc4795
668

    
669
#### Parameters
670

    
671
The following parameters are available in the `nftables::rules::llmnr` class:
672

    
673
* [`ipv4`](#-nftables--rules--llmnr--ipv4)
674
* [`ipv6`](#-nftables--rules--llmnr--ipv6)
675

    
676
##### <a name="-nftables--rules--llmnr--ipv4"></a>`ipv4`
677

    
678
Data type: `Boolean`
679

    
680
Allow LLMNR over IPv4
681

    
682
Default value: `true`
683

    
684
##### <a name="-nftables--rules--llmnr--ipv6"></a>`ipv6`
685

    
686
Data type: `Boolean`
687

    
688
Allow LLMNR over IPv6
689

    
690
Default value: `true`
691

    
692
### <a name="nftables--rules--mdns"></a>`nftables::rules::mdns`
693

    
694
allow incoming multicast DNS
695

    
696
#### Parameters
697

    
698
The following parameters are available in the `nftables::rules::mdns` class:
699

    
700
* [`ipv4`](#-nftables--rules--mdns--ipv4)
701
* [`ipv6`](#-nftables--rules--mdns--ipv6)
702

    
703
##### <a name="-nftables--rules--mdns--ipv4"></a>`ipv4`
704

    
705
Data type: `Boolean`
706

    
707
Allow mdns over IPv4
708

    
709
Default value: `true`
710

    
711
##### <a name="-nftables--rules--mdns--ipv6"></a>`ipv6`
712

    
713
Data type: `Boolean`
714

    
715
Allow mdns over IPv6
716

    
717
Default value: `true`
718

    
719
### <a name="nftables--rules--multicast"></a>`nftables::rules::multicast`
720

    
721
allow incoming multicast traffic
722

    
723
### <a name="nftables--rules--nfs"></a>`nftables::rules::nfs`
724

    
725
manage in nfs4
726

    
727
### <a name="nftables--rules--nfs3"></a>`nftables::rules::nfs3`
728

    
729
manage in nfs3
730

    
731
### <a name="nftables--rules--node_exporter"></a>`nftables::rules::node_exporter`
732

    
733
manage in node exporter
734

    
735
#### Parameters
736

    
737
The following parameters are available in the `nftables::rules::node_exporter` class:
738

    
739
* [`prometheus_server`](#-nftables--rules--node_exporter--prometheus_server)
740
* [`port`](#-nftables--rules--node_exporter--port)
741

    
742
##### <a name="-nftables--rules--node_exporter--prometheus_server"></a>`prometheus_server`
743

    
744
Data type: `Optional[Variant[String,Array[String,1]]]`
745

    
746
Specify server name
747

    
748
Default value: `undef`
749

    
750
##### <a name="-nftables--rules--node_exporter--port"></a>`port`
751

    
752
Data type: `Stdlib::Port`
753

    
754
Specify port to open
755

    
756
Default value: `9100`
757

    
758
### <a name="nftables--rules--ospf"></a>`nftables::rules::ospf`
759

    
760
manage in ospf
761

    
762
### <a name="nftables--rules--ospf3"></a>`nftables::rules::ospf3`
763

    
764
manage in ospf3
765

    
766
### <a name="nftables--rules--out--active_directory"></a>`nftables::rules::out::active_directory`
767

    
768
manage outgoing active diectory
769

    
770
#### Parameters
771

    
772
The following parameters are available in the `nftables::rules::out::active_directory` class:
773

    
774
* [`adserver`](#-nftables--rules--out--active_directory--adserver)
775
* [`adserver_ports`](#-nftables--rules--out--active_directory--adserver_ports)
776

    
777
##### <a name="-nftables--rules--out--active_directory--adserver"></a>`adserver`
778

    
779
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
780

    
781
adserver IPs
782

    
783
##### <a name="-nftables--rules--out--active_directory--adserver_ports"></a>`adserver_ports`
784

    
785
Data type: `Array[Stdlib::Port,1]`
786

    
787
adserver ports
788

    
789
Default value: `[389, 636, 3268, 3269]`
790

    
791
### <a name="nftables--rules--out--all"></a>`nftables::rules::out::all`
792

    
793
allow all outbound
794

    
795
### <a name="nftables--rules--out--ceph_client"></a>`nftables::rules::out::ceph_client`
796

    
797
Ceph is a distributed object store and file system.
798
Enable this to be a client of Ceph's Monitor (MON),
799
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
800
and Manager Daemons (MGR).
801

    
802
#### Parameters
803

    
804
The following parameters are available in the `nftables::rules::out::ceph_client` class:
805

    
806
* [`ports`](#-nftables--rules--out--ceph_client--ports)
807

    
808
##### <a name="-nftables--rules--out--ceph_client--ports"></a>`ports`
809

    
810
Data type: `Array[Stdlib::Port,1]`
811

    
812
Specify ports to open
813

    
814
Default value: `[3300, 6789]`
815

    
816
### <a name="nftables--rules--out--chrony"></a>`nftables::rules::out::chrony`
817

    
818
manage out chrony
819

    
820
#### Parameters
821

    
822
The following parameters are available in the `nftables::rules::out::chrony` class:
823

    
824
* [`servers`](#-nftables--rules--out--chrony--servers)
825

    
826
##### <a name="-nftables--rules--out--chrony--servers"></a>`servers`
827

    
828
Data type: `Array[Stdlib::IP::Address]`
829

    
830
single IP-Address or array of IP-addresses from NTP servers
831

    
832
Default value: `[]`
833

    
834
### <a name="nftables--rules--out--dhcp"></a>`nftables::rules::out::dhcp`
835

    
836
manage out dhcp
837

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

    
840
Allow DHCPv6 requests out of a host
841

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

    
844
manage out dns
845

    
846
#### Parameters
847

    
848
The following parameters are available in the `nftables::rules::out::dns` class:
849

    
850
* [`dns_server`](#-nftables--rules--out--dns--dns_server)
851

    
852
##### <a name="-nftables--rules--out--dns--dns_server"></a>`dns_server`
853

    
854
Data type: `Optional[Variant[String,Array[String,1]]]`
855

    
856
specify dns_server name
857

    
858
Default value: `undef`
859

    
860
### <a name="nftables--rules--out--hkp"></a>`nftables::rules::out::hkp`
861

    
862
allow outgoing hkp connections to gpg keyservers
863

    
864
### <a name="nftables--rules--out--http"></a>`nftables::rules::out::http`
865

    
866
manage out http
867

    
868
### <a name="nftables--rules--out--https"></a>`nftables::rules::out::https`
869

    
870
manage out https
871

    
872
### <a name="nftables--rules--out--icmp"></a>`nftables::rules::out::icmp`
873

    
874
control outbound icmp packages
875

    
876
#### Parameters
877

    
878
The following parameters are available in the `nftables::rules::out::icmp` class:
879

    
880
* [`v4_types`](#-nftables--rules--out--icmp--v4_types)
881
* [`v6_types`](#-nftables--rules--out--icmp--v6_types)
882
* [`order`](#-nftables--rules--out--icmp--order)
883

    
884
##### <a name="-nftables--rules--out--icmp--v4_types"></a>`v4_types`
885

    
886
Data type: `Optional[Array[String]]`
887

    
888

    
889

    
890
Default value: `undef`
891

    
892
##### <a name="-nftables--rules--out--icmp--v6_types"></a>`v6_types`
893

    
894
Data type: `Optional[Array[String]]`
895

    
896

    
897

    
898
Default value: `undef`
899

    
900
##### <a name="-nftables--rules--out--icmp--order"></a>`order`
901

    
902
Data type: `String`
903

    
904

    
905

    
906
Default value: `'10'`
907

    
908
### <a name="nftables--rules--out--igmp"></a>`nftables::rules::out::igmp`
909

    
910
allow outgoing IGMP messages
911

    
912
### <a name="nftables--rules--out--imap"></a>`nftables::rules::out::imap`
913

    
914
allow outgoing imap
915

    
916
### <a name="nftables--rules--out--kerberos"></a>`nftables::rules::out::kerberos`
917

    
918
allows outbound access for kerberos
919

    
920
### <a name="nftables--rules--out--ldap"></a>`nftables::rules::out::ldap`
921

    
922
manage outgoing ldap
923

    
924
#### Parameters
925

    
926
The following parameters are available in the `nftables::rules::out::ldap` class:
927

    
928
* [`ldapserver`](#-nftables--rules--out--ldap--ldapserver)
929
* [`ldapserver_ports`](#-nftables--rules--out--ldap--ldapserver_ports)
930

    
931
##### <a name="-nftables--rules--out--ldap--ldapserver"></a>`ldapserver`
932

    
933
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
934

    
935
ldapserver IPs
936

    
937
##### <a name="-nftables--rules--out--ldap--ldapserver_ports"></a>`ldapserver_ports`
938

    
939
Data type: `Array[Stdlib::Port,1]`
940

    
941
ldapserver ports
942

    
943
Default value: `[389, 636]`
944

    
945
### <a name="nftables--rules--out--mdns"></a>`nftables::rules::out::mdns`
946

    
947
allow outgoing multicast DNS
948

    
949
#### Parameters
950

    
951
The following parameters are available in the `nftables::rules::out::mdns` class:
952

    
953
* [`ipv4`](#-nftables--rules--out--mdns--ipv4)
954
* [`ipv6`](#-nftables--rules--out--mdns--ipv6)
955

    
956
##### <a name="-nftables--rules--out--mdns--ipv4"></a>`ipv4`
957

    
958
Data type: `Boolean`
959

    
960
Allow mdns over IPv4
961

    
962
Default value: `true`
963

    
964
##### <a name="-nftables--rules--out--mdns--ipv6"></a>`ipv6`
965

    
966
Data type: `Boolean`
967

    
968
Allow mdns over IPv6
969

    
970
Default value: `true`
971

    
972
### <a name="nftables--rules--out--mldv2"></a>`nftables::rules::out::mldv2`
973

    
974
allow multicast listener requests
975

    
976
### <a name="nftables--rules--out--mysql"></a>`nftables::rules::out::mysql`
977

    
978
manage out mysql
979

    
980
### <a name="nftables--rules--out--nfs"></a>`nftables::rules::out::nfs`
981

    
982
manage out nfs
983

    
984
### <a name="nftables--rules--out--nfs3"></a>`nftables::rules::out::nfs3`
985

    
986
manage out nfs3
987

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

    
990
allows outbound access for afs clients
991
7000 - afs3-fileserver
992
7002 - afs3-ptserver
993
7003 - vlserver
994

    
995
* **See also**
996
  * https://wiki.openafs.org/devel/AFSServicePorts/
997
    * AFS Service Ports
998

    
999
#### Parameters
1000

    
1001
The following parameters are available in the `nftables::rules::out::openafs_client` class:
1002

    
1003
* [`ports`](#-nftables--rules--out--openafs_client--ports)
1004

    
1005
##### <a name="-nftables--rules--out--openafs_client--ports"></a>`ports`
1006

    
1007
Data type: `Array[Stdlib::Port,1]`
1008

    
1009
port numbers to use
1010

    
1011
Default value: `[7000, 7002, 7003]`
1012

    
1013
### <a name="nftables--rules--out--ospf"></a>`nftables::rules::out::ospf`
1014

    
1015
manage out ospf
1016

    
1017
### <a name="nftables--rules--out--ospf3"></a>`nftables::rules::out::ospf3`
1018

    
1019
manage out ospf3
1020

    
1021
### <a name="nftables--rules--out--pop3"></a>`nftables::rules::out::pop3`
1022

    
1023
allow outgoing pop3
1024

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

    
1027
manage out postgres
1028

    
1029
### <a name="nftables--rules--out--puppet"></a>`nftables::rules::out::puppet`
1030

    
1031
manage outgoing puppet
1032

    
1033
#### Parameters
1034

    
1035
The following parameters are available in the `nftables::rules::out::puppet` class:
1036

    
1037
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1038
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1039

    
1040
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1041

    
1042
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1043

    
1044
puppetserver hostname
1045

    
1046
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1047

    
1048
Data type: `Stdlib::Port`
1049

    
1050
puppetserver port
1051

    
1052
Default value: `8140`
1053

    
1054
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1055

    
1056
manage outgoing pxp-agent
1057

    
1058
* **See also**
1059
  * also
1060
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1061

    
1062
#### Parameters
1063

    
1064
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1065

    
1066
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1067
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1068

    
1069
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1070

    
1071
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1072

    
1073
PXP broker IP(s)
1074

    
1075
##### <a name="-nftables--rules--out--pxp_agent--broker_port"></a>`broker_port`
1076

    
1077
Data type: `Stdlib::Port`
1078

    
1079
PXP broker port
1080

    
1081
Default value: `8142`
1082

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

    
1085
allow outgoing smtp
1086

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

    
1089
allow outgoing smtp client
1090

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

    
1093
allow outgoing SSDP
1094

    
1095
* **See also**
1096
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1097

    
1098
#### Parameters
1099

    
1100
The following parameters are available in the `nftables::rules::out::ssdp` class:
1101

    
1102
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1103
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1104

    
1105
##### <a name="-nftables--rules--out--ssdp--ipv4"></a>`ipv4`
1106

    
1107
Data type: `Boolean`
1108

    
1109
Allow SSDP over IPv4
1110

    
1111
Default value: `true`
1112

    
1113
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1114

    
1115
Data type: `Boolean`
1116

    
1117
Allow SSDP over IPv6
1118

    
1119
Default value: `true`
1120

    
1121
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1122

    
1123
manage out ssh
1124

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

    
1127
disable outgoing ssh
1128

    
1129
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1130

    
1131
manage out tor
1132

    
1133
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1134

    
1135
allow clients to query remote whois server
1136

    
1137
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1138

    
1139
manage out wireguard
1140

    
1141
#### Parameters
1142

    
1143
The following parameters are available in the `nftables::rules::out::wireguard` class:
1144

    
1145
* [`ports`](#-nftables--rules--out--wireguard--ports)
1146

    
1147
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1148

    
1149
Data type: `Array[Integer,1]`
1150

    
1151
specify wireguard ports
1152

    
1153
Default value: `[51820]`
1154

    
1155
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1156

    
1157
manage in puppet
1158

    
1159
#### Parameters
1160

    
1161
The following parameters are available in the `nftables::rules::puppet` class:
1162

    
1163
* [`ports`](#-nftables--rules--puppet--ports)
1164

    
1165
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1166

    
1167
Data type: `Array[Integer,1]`
1168

    
1169
puppet server ports
1170

    
1171
Default value: `[8140]`
1172

    
1173
### <a name="nftables--rules--pxp_agent"></a>`nftables::rules::pxp_agent`
1174

    
1175
manage in pxp-agent
1176

    
1177
#### Parameters
1178

    
1179
The following parameters are available in the `nftables::rules::pxp_agent` class:
1180

    
1181
* [`ports`](#-nftables--rules--pxp_agent--ports)
1182

    
1183
##### <a name="-nftables--rules--pxp_agent--ports"></a>`ports`
1184

    
1185
Data type: `Array[Stdlib::Port,1]`
1186

    
1187
pxp server ports
1188

    
1189
Default value: `[8142]`
1190

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

    
1193
This class configures the typical firewall setup that libvirt
1194
creates. Depending on your requirements you can switch on and off
1195
several aspects, for instance if you don't do DHCP to your guests
1196
you can disable the rules that accept DHCP traffic on the host or if
1197
you don't want your guests to talk to hosts outside you can disable
1198
forwarding and/or masquerading for IPv4 traffic.
1199

    
1200
#### Parameters
1201

    
1202
The following parameters are available in the `nftables::rules::qemu` class:
1203

    
1204
* [`interface`](#-nftables--rules--qemu--interface)
1205
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1206
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1207
* [`dns`](#-nftables--rules--qemu--dns)
1208
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1209
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1210
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1211
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1212

    
1213
##### <a name="-nftables--rules--qemu--interface"></a>`interface`
1214

    
1215
Data type: `String[1]`
1216

    
1217
Interface name used by the bridge.
1218

    
1219
Default value: `'virbr0'`
1220

    
1221
##### <a name="-nftables--rules--qemu--network_v4"></a>`network_v4`
1222

    
1223
Data type: `Stdlib::IP::Address::V4::CIDR`
1224

    
1225
The IPv4 network prefix used in the virtual network.
1226

    
1227
Default value: `'192.168.122.0/24'`
1228

    
1229
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1230

    
1231
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1232

    
1233
The IPv6 network prefix used in the virtual network.
1234

    
1235
Default value: `undef`
1236

    
1237
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1238

    
1239
Data type: `Boolean`
1240

    
1241
Allow DNS traffic from the guests to the host.
1242

    
1243
Default value: `true`
1244

    
1245
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1246

    
1247
Data type: `Boolean`
1248

    
1249
Allow DHCPv4 traffic from the guests to the host.
1250

    
1251
Default value: `true`
1252

    
1253
##### <a name="-nftables--rules--qemu--forward_traffic"></a>`forward_traffic`
1254

    
1255
Data type: `Boolean`
1256

    
1257
Allow forwarded traffic (out all, in related/established)
1258
generated by the virtual network.
1259

    
1260
Default value: `true`
1261

    
1262
##### <a name="-nftables--rules--qemu--internal_traffic"></a>`internal_traffic`
1263

    
1264
Data type: `Boolean`
1265

    
1266
Allow guests in the virtual network to talk to each other.
1267

    
1268
Default value: `true`
1269

    
1270
##### <a name="-nftables--rules--qemu--masquerade"></a>`masquerade`
1271

    
1272
Data type: `Boolean`
1273

    
1274
Do NAT masquerade on all IPv4 traffic generated by guests
1275
to external networks.
1276

    
1277
Default value: `true`
1278

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

    
1281
manage Samba, the suite to allow Windows file sharing on Linux resources.
1282

    
1283
#### Parameters
1284

    
1285
The following parameters are available in the `nftables::rules::samba` class:
1286

    
1287
* [`ctdb`](#-nftables--rules--samba--ctdb)
1288

    
1289
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1290

    
1291
Data type: `Boolean`
1292

    
1293
Enable ctdb-driven clustered Samba setups.
1294

    
1295
Default value: `false`
1296

    
1297
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1298

    
1299
manage in smtp
1300

    
1301
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1302

    
1303
manage in smtp submission
1304

    
1305
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1306

    
1307
manage in smtps
1308

    
1309
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1310

    
1311
allow incoming spotify
1312

    
1313
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1314

    
1315
allow incoming SSDP
1316

    
1317
* **See also**
1318
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1319

    
1320
#### Parameters
1321

    
1322
The following parameters are available in the `nftables::rules::ssdp` class:
1323

    
1324
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1325
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1326

    
1327
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1328

    
1329
Data type: `Boolean`
1330

    
1331
Allow SSDP over IPv4
1332

    
1333
Default value: `true`
1334

    
1335
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1336

    
1337
Data type: `Boolean`
1338

    
1339
Allow SSDP over IPv6
1340

    
1341
Default value: `true`
1342

    
1343
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1344

    
1345
manage in ssh
1346

    
1347
#### Parameters
1348

    
1349
The following parameters are available in the `nftables::rules::ssh` class:
1350

    
1351
* [`ports`](#-nftables--rules--ssh--ports)
1352

    
1353
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1354

    
1355
Data type: `Array[Stdlib::Port,1]`
1356

    
1357
ssh ports
1358

    
1359
Default value: `[22]`
1360

    
1361
### <a name="nftables--rules--tor"></a>`nftables::rules::tor`
1362

    
1363
manage in tor
1364

    
1365
#### Parameters
1366

    
1367
The following parameters are available in the `nftables::rules::tor` class:
1368

    
1369
* [`ports`](#-nftables--rules--tor--ports)
1370

    
1371
##### <a name="-nftables--rules--tor--ports"></a>`ports`
1372

    
1373
Data type: `Array[Stdlib::Port,1]`
1374

    
1375
ports for tor
1376

    
1377
Default value: `[9001]`
1378

    
1379
### <a name="nftables--rules--wireguard"></a>`nftables::rules::wireguard`
1380

    
1381
manage in wireguard
1382

    
1383
#### Parameters
1384

    
1385
The following parameters are available in the `nftables::rules::wireguard` class:
1386

    
1387
* [`ports`](#-nftables--rules--wireguard--ports)
1388

    
1389
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1390

    
1391
Data type: `Array[Stdlib::Port,1]`
1392

    
1393
wiregueard port
1394

    
1395
Default value: `[51820]`
1396

    
1397
### <a name="nftables--rules--wsd"></a>`nftables::rules::wsd`
1398

    
1399
allow incoming webservice discovery
1400

    
1401
* **See also**
1402
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1403

    
1404
#### Parameters
1405

    
1406
The following parameters are available in the `nftables::rules::wsd` class:
1407

    
1408
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1409
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1410

    
1411
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1412

    
1413
Data type: `Boolean`
1414

    
1415
Allow ws-discovery over IPv4
1416

    
1417
Default value: `true`
1418

    
1419
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1420

    
1421
Data type: `Boolean`
1422

    
1423
Allow ws-discovery over IPv6
1424

    
1425
Default value: `true`
1426

    
1427
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1428

    
1429
Allow in and outbound traffic for DHCPv6 server
1430

    
1431
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1432

    
1433
Open inbound and outbound ports for an AFS client
1434

    
1435
## Defined types
1436

    
1437
### <a name="nftables--chain"></a>`nftables::chain`
1438

    
1439
manage a chain
1440

    
1441
#### Parameters
1442

    
1443
The following parameters are available in the `nftables::chain` defined type:
1444

    
1445
* [`table`](#-nftables--chain--table)
1446
* [`chain`](#-nftables--chain--chain)
1447
* [`inject`](#-nftables--chain--inject)
1448
* [`inject_iif`](#-nftables--chain--inject_iif)
1449
* [`inject_oif`](#-nftables--chain--inject_oif)
1450

    
1451
##### <a name="-nftables--chain--table"></a>`table`
1452

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

    
1455

    
1456

    
1457
Default value: `'inet-filter'`
1458

    
1459
##### <a name="-nftables--chain--chain"></a>`chain`
1460

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

    
1463

    
1464

    
1465
Default value: `$title`
1466

    
1467
##### <a name="-nftables--chain--inject"></a>`inject`
1468

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

    
1471

    
1472

    
1473
Default value: `undef`
1474

    
1475
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1476

    
1477
Data type: `Optional[String]`
1478

    
1479

    
1480

    
1481
Default value: `undef`
1482

    
1483
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1484

    
1485
Data type: `Optional[String]`
1486

    
1487

    
1488

    
1489
Default value: `undef`
1490

    
1491
### <a name="nftables--config"></a>`nftables::config`
1492

    
1493
manage a config snippet
1494

    
1495
#### Parameters
1496

    
1497
The following parameters are available in the `nftables::config` defined type:
1498

    
1499
* [`tablespec`](#-nftables--config--tablespec)
1500
* [`content`](#-nftables--config--content)
1501
* [`source`](#-nftables--config--source)
1502
* [`prefix`](#-nftables--config--prefix)
1503

    
1504
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1505

    
1506
Data type: `Pattern[/^\w+-\w+$/]`
1507

    
1508

    
1509

    
1510
Default value: `$title`
1511

    
1512
##### <a name="-nftables--config--content"></a>`content`
1513

    
1514
Data type: `Optional[String]`
1515

    
1516

    
1517

    
1518
Default value: `undef`
1519

    
1520
##### <a name="-nftables--config--source"></a>`source`
1521

    
1522
Data type: `Optional[Variant[String,Array[String,1]]]`
1523

    
1524

    
1525

    
1526
Default value: `undef`
1527

    
1528
##### <a name="-nftables--config--prefix"></a>`prefix`
1529

    
1530
Data type: `String`
1531

    
1532

    
1533

    
1534
Default value: `'custom-'`
1535

    
1536
### <a name="nftables--file"></a>`nftables::file`
1537

    
1538
Insert a file into the nftables configuration
1539

    
1540
#### Examples
1541

    
1542
##### Include a file that includes other files
1543

    
1544
```puppet
1545
nftables::file{'geoip':
1546
  content => @(EOT)
1547
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1548
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1549
    |EOT,
1550
}
1551
```
1552

    
1553
#### Parameters
1554

    
1555
The following parameters are available in the `nftables::file` defined type:
1556

    
1557
* [`label`](#-nftables--file--label)
1558
* [`content`](#-nftables--file--content)
1559
* [`source`](#-nftables--file--source)
1560
* [`prefix`](#-nftables--file--prefix)
1561

    
1562
##### <a name="-nftables--file--label"></a>`label`
1563

    
1564
Data type: `String[1]`
1565

    
1566
Unique name to include in filename.
1567

    
1568
Default value: `$title`
1569

    
1570
##### <a name="-nftables--file--content"></a>`content`
1571

    
1572
Data type: `Optional[String]`
1573

    
1574
The content to place in the file.
1575

    
1576
Default value: `undef`
1577

    
1578
##### <a name="-nftables--file--source"></a>`source`
1579

    
1580
Data type: `Optional[Variant[String,Array[String,1]]]`
1581

    
1582
A source to obtain the file content from.
1583

    
1584
Default value: `undef`
1585

    
1586
##### <a name="-nftables--file--prefix"></a>`prefix`
1587

    
1588
Data type: `String`
1589

    
1590
Prefix of file name to be created, if left as `file-` it will be
1591
auto included in the main nft configuration
1592

    
1593
Default value: `'file-'`
1594

    
1595
### <a name="nftables--rule"></a>`nftables::rule`
1596

    
1597
Provides an interface to create a firewall rule
1598

    
1599
#### Examples
1600

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

    
1603
```puppet
1604
nftables::rule {
1605
  'default_in-myhttp':
1606
    content => 'tcp dport 80 accept',
1607
}
1608
```
1609

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

    
1612
```puppet
1613
nftables::rule {
1614
  'PREROUTING6-count':
1615
    content => 'counter',
1616
    table   => 'ip6-nat'
1617
}
1618
```
1619

    
1620
#### Parameters
1621

    
1622
The following parameters are available in the `nftables::rule` defined type:
1623

    
1624
* [`ensure`](#-nftables--rule--ensure)
1625
* [`rulename`](#-nftables--rule--rulename)
1626
* [`order`](#-nftables--rule--order)
1627
* [`table`](#-nftables--rule--table)
1628
* [`content`](#-nftables--rule--content)
1629
* [`source`](#-nftables--rule--source)
1630

    
1631
##### <a name="-nftables--rule--ensure"></a>`ensure`
1632

    
1633
Data type: `Enum['present','absent']`
1634

    
1635
Should the rule be created.
1636

    
1637
Default value: `'present'`
1638

    
1639
##### <a name="-nftables--rule--rulename"></a>`rulename`
1640

    
1641
Data type: `Nftables::RuleName`
1642

    
1643
The symbolic name for the rule and to what chain to add it. The
1644
format is defined by the Nftables::RuleName type.
1645

    
1646
Default value: `$title`
1647

    
1648
##### <a name="-nftables--rule--order"></a>`order`
1649

    
1650
Data type: `Pattern[/^\d\d$/]`
1651

    
1652
A number representing the order of the rule.
1653

    
1654
Default value: `'50'`
1655

    
1656
##### <a name="-nftables--rule--table"></a>`table`
1657

    
1658
Data type: `String`
1659

    
1660
The name of the table to add this rule to.
1661

    
1662
Default value: `'inet-filter'`
1663

    
1664
##### <a name="-nftables--rule--content"></a>`content`
1665

    
1666
Data type: `Optional[String]`
1667

    
1668
The raw statements that compose the rule represented using the nftables
1669
language.
1670

    
1671
Default value: `undef`
1672

    
1673
##### <a name="-nftables--rule--source"></a>`source`
1674

    
1675
Data type: `Optional[Variant[String,Array[String,1]]]`
1676

    
1677
Same goal as content but sourcing the value from a file.
1678

    
1679
Default value: `undef`
1680

    
1681
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1682

    
1683
manage a ipv4 dnat rule
1684

    
1685
#### Parameters
1686

    
1687
The following parameters are available in the `nftables::rules::dnat4` defined type:
1688

    
1689
* [`daddr`](#-nftables--rules--dnat4--daddr)
1690
* [`port`](#-nftables--rules--dnat4--port)
1691
* [`rulename`](#-nftables--rules--dnat4--rulename)
1692
* [`order`](#-nftables--rules--dnat4--order)
1693
* [`chain`](#-nftables--rules--dnat4--chain)
1694
* [`iif`](#-nftables--rules--dnat4--iif)
1695
* [`proto`](#-nftables--rules--dnat4--proto)
1696
* [`dport`](#-nftables--rules--dnat4--dport)
1697
* [`ensure`](#-nftables--rules--dnat4--ensure)
1698

    
1699
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1700

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

    
1703

    
1704

    
1705
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1706

    
1707
Data type: `Variant[String,Stdlib::Port]`
1708

    
1709

    
1710

    
1711
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1712

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

    
1715

    
1716

    
1717
Default value: `$title`
1718

    
1719
##### <a name="-nftables--rules--dnat4--order"></a>`order`
1720

    
1721
Data type: `Pattern[/^\d\d$/]`
1722

    
1723

    
1724

    
1725
Default value: `'50'`
1726

    
1727
##### <a name="-nftables--rules--dnat4--chain"></a>`chain`
1728

    
1729
Data type: `String[1]`
1730

    
1731

    
1732

    
1733
Default value: `'default_fwd'`
1734

    
1735
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1736

    
1737
Data type: `Optional[String[1]]`
1738

    
1739

    
1740

    
1741
Default value: `undef`
1742

    
1743
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1744

    
1745
Data type: `Enum['tcp','udp']`
1746

    
1747

    
1748

    
1749
Default value: `'tcp'`
1750

    
1751
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1752

    
1753
Data type: `Optional[Variant[String,Stdlib::Port]]`
1754

    
1755

    
1756

    
1757
Default value: `undef`
1758

    
1759
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1760

    
1761
Data type: `Enum['present','absent']`
1762

    
1763

    
1764

    
1765
Default value: `'present'`
1766

    
1767
### <a name="nftables--rules--masquerade"></a>`nftables::rules::masquerade`
1768

    
1769
masquerade all outgoing traffic
1770

    
1771
#### Parameters
1772

    
1773
The following parameters are available in the `nftables::rules::masquerade` defined type:
1774

    
1775
* [`rulename`](#-nftables--rules--masquerade--rulename)
1776
* [`order`](#-nftables--rules--masquerade--order)
1777
* [`chain`](#-nftables--rules--masquerade--chain)
1778
* [`oif`](#-nftables--rules--masquerade--oif)
1779
* [`saddr`](#-nftables--rules--masquerade--saddr)
1780
* [`daddr`](#-nftables--rules--masquerade--daddr)
1781
* [`proto`](#-nftables--rules--masquerade--proto)
1782
* [`dport`](#-nftables--rules--masquerade--dport)
1783
* [`ensure`](#-nftables--rules--masquerade--ensure)
1784

    
1785
##### <a name="-nftables--rules--masquerade--rulename"></a>`rulename`
1786

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

    
1789

    
1790

    
1791
Default value: `$title`
1792

    
1793
##### <a name="-nftables--rules--masquerade--order"></a>`order`
1794

    
1795
Data type: `Pattern[/^\d\d$/]`
1796

    
1797

    
1798

    
1799
Default value: `'70'`
1800

    
1801
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
1802

    
1803
Data type: `String[1]`
1804

    
1805

    
1806

    
1807
Default value: `'POSTROUTING'`
1808

    
1809
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
1810

    
1811
Data type: `Optional[String[1]]`
1812

    
1813

    
1814

    
1815
Default value: `undef`
1816

    
1817
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
1818

    
1819
Data type: `Optional[String[1]]`
1820

    
1821

    
1822

    
1823
Default value: `undef`
1824

    
1825
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
1826

    
1827
Data type: `Optional[String[1]]`
1828

    
1829

    
1830

    
1831
Default value: `undef`
1832

    
1833
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
1834

    
1835
Data type: `Optional[Enum['tcp','udp']]`
1836

    
1837

    
1838

    
1839
Default value: `undef`
1840

    
1841
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
1842

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

    
1845

    
1846

    
1847
Default value: `undef`
1848

    
1849
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
1850

    
1851
Data type: `Enum['present','absent']`
1852

    
1853

    
1854

    
1855
Default value: `'present'`
1856

    
1857
### <a name="nftables--rules--snat4"></a>`nftables::rules::snat4`
1858

    
1859
manage a ipv4 snat rule
1860

    
1861
#### Parameters
1862

    
1863
The following parameters are available in the `nftables::rules::snat4` defined type:
1864

    
1865
* [`snat`](#-nftables--rules--snat4--snat)
1866
* [`rulename`](#-nftables--rules--snat4--rulename)
1867
* [`order`](#-nftables--rules--snat4--order)
1868
* [`chain`](#-nftables--rules--snat4--chain)
1869
* [`oif`](#-nftables--rules--snat4--oif)
1870
* [`saddr`](#-nftables--rules--snat4--saddr)
1871
* [`proto`](#-nftables--rules--snat4--proto)
1872
* [`dport`](#-nftables--rules--snat4--dport)
1873
* [`ensure`](#-nftables--rules--snat4--ensure)
1874

    
1875
##### <a name="-nftables--rules--snat4--snat"></a>`snat`
1876

    
1877
Data type: `String[1]`
1878

    
1879

    
1880

    
1881
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
1882

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

    
1885

    
1886

    
1887
Default value: `$title`
1888

    
1889
##### <a name="-nftables--rules--snat4--order"></a>`order`
1890

    
1891
Data type: `Pattern[/^\d\d$/]`
1892

    
1893

    
1894

    
1895
Default value: `'70'`
1896

    
1897
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
1898

    
1899
Data type: `String[1]`
1900

    
1901

    
1902

    
1903
Default value: `'POSTROUTING'`
1904

    
1905
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
1906

    
1907
Data type: `Optional[String[1]]`
1908

    
1909

    
1910

    
1911
Default value: `undef`
1912

    
1913
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
1914

    
1915
Data type: `Optional[String[1]]`
1916

    
1917

    
1918

    
1919
Default value: `undef`
1920

    
1921
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
1922

    
1923
Data type: `Optional[Enum['tcp','udp']]`
1924

    
1925

    
1926

    
1927
Default value: `undef`
1928

    
1929
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
1930

    
1931
Data type: `Optional[Variant[String,Stdlib::Port]]`
1932

    
1933

    
1934

    
1935
Default value: `undef`
1936

    
1937
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
1938

    
1939
Data type: `Enum['present','absent']`
1940

    
1941

    
1942

    
1943
Default value: `'present'`
1944

    
1945
### <a name="nftables--set"></a>`nftables::set`
1946

    
1947
manage a named set
1948

    
1949
#### Examples
1950

    
1951
##### simple set
1952

    
1953
```puppet
1954
nftables::set{'my_set':
1955
  type       => 'ipv4_addr',
1956
  flags      => ['interval'],
1957
  elements   => ['192.168.0.1/24', '10.0.0.2'],
1958
  auto_merge => true,
1959
}
1960
```
1961

    
1962
#### Parameters
1963

    
1964
The following parameters are available in the `nftables::set` defined type:
1965

    
1966
* [`ensure`](#-nftables--set--ensure)
1967
* [`setname`](#-nftables--set--setname)
1968
* [`order`](#-nftables--set--order)
1969
* [`type`](#-nftables--set--type)
1970
* [`table`](#-nftables--set--table)
1971
* [`flags`](#-nftables--set--flags)
1972
* [`timeout`](#-nftables--set--timeout)
1973
* [`gc_interval`](#-nftables--set--gc_interval)
1974
* [`elements`](#-nftables--set--elements)
1975
* [`size`](#-nftables--set--size)
1976
* [`policy`](#-nftables--set--policy)
1977
* [`auto_merge`](#-nftables--set--auto_merge)
1978
* [`content`](#-nftables--set--content)
1979
* [`source`](#-nftables--set--source)
1980

    
1981
##### <a name="-nftables--set--ensure"></a>`ensure`
1982

    
1983
Data type: `Enum['present','absent']`
1984

    
1985
should the set be created.
1986

    
1987
Default value: `'present'`
1988

    
1989
##### <a name="-nftables--set--setname"></a>`setname`
1990

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

    
1993
name of set, equal to to title.
1994

    
1995
Default value: `$title`
1996

    
1997
##### <a name="-nftables--set--order"></a>`order`
1998

    
1999
Data type: `Pattern[/^\d\d$/]`
2000

    
2001
concat ordering.
2002

    
2003
Default value: `'10'`
2004

    
2005
##### <a name="-nftables--set--type"></a>`type`
2006

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

    
2009
type of set.
2010

    
2011
Default value: `undef`
2012

    
2013
##### <a name="-nftables--set--table"></a>`table`
2014

    
2015
Data type: `Variant[String, Array[String, 1]]`
2016

    
2017
table or array of tables to add the set to.
2018

    
2019
Default value: `'inet-filter'`
2020

    
2021
##### <a name="-nftables--set--flags"></a>`flags`
2022

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

    
2025
specify flags for set
2026

    
2027
Default value: `[]`
2028

    
2029
##### <a name="-nftables--set--timeout"></a>`timeout`
2030

    
2031
Data type: `Optional[Integer]`
2032

    
2033
timeout in seconds
2034

    
2035
Default value: `undef`
2036

    
2037
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2038

    
2039
Data type: `Optional[Integer]`
2040

    
2041
garbage collection interval.
2042

    
2043
Default value: `undef`
2044

    
2045
##### <a name="-nftables--set--elements"></a>`elements`
2046

    
2047
Data type: `Optional[Array[String]]`
2048

    
2049
initialize the set with some elements in it.
2050

    
2051
Default value: `undef`
2052

    
2053
##### <a name="-nftables--set--size"></a>`size`
2054

    
2055
Data type: `Optional[Integer]`
2056

    
2057
limits the maximum number of elements of the set.
2058

    
2059
Default value: `undef`
2060

    
2061
##### <a name="-nftables--set--policy"></a>`policy`
2062

    
2063
Data type: `Optional[Enum['performance', 'memory']]`
2064

    
2065
determines set selection policy.
2066

    
2067
Default value: `undef`
2068

    
2069
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2070

    
2071
Data type: `Boolean`
2072

    
2073
?
2074

    
2075
Default value: `false`
2076

    
2077
##### <a name="-nftables--set--content"></a>`content`
2078

    
2079
Data type: `Optional[String]`
2080

    
2081
specify content of set.
2082

    
2083
Default value: `undef`
2084

    
2085
##### <a name="-nftables--set--source"></a>`source`
2086

    
2087
Data type: `Optional[Variant[String,Array[String,1]]]`
2088

    
2089
specify source of set.
2090

    
2091
Default value: `undef`
2092

    
2093
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2094

    
2095
Provides a simplified interface to nftables::rule
2096

    
2097
#### Examples
2098

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

    
2101
```puppet
2102
nftables::simplerule{'my_service_in':
2103
  action  => 'accept',
2104
  comment => 'allow traffic to port 543',
2105
  counter => true,
2106
  proto   => 'tcp',
2107
  dport   => 543,
2108
  daddr   => '2001:1458::/32',
2109
  sport   => 541,
2110
}
2111
```
2112

    
2113
#### Parameters
2114

    
2115
The following parameters are available in the `nftables::simplerule` defined type:
2116

    
2117
* [`ensure`](#-nftables--simplerule--ensure)
2118
* [`rulename`](#-nftables--simplerule--rulename)
2119
* [`order`](#-nftables--simplerule--order)
2120
* [`chain`](#-nftables--simplerule--chain)
2121
* [`table`](#-nftables--simplerule--table)
2122
* [`action`](#-nftables--simplerule--action)
2123
* [`comment`](#-nftables--simplerule--comment)
2124
* [`dport`](#-nftables--simplerule--dport)
2125
* [`proto`](#-nftables--simplerule--proto)
2126
* [`daddr`](#-nftables--simplerule--daddr)
2127
* [`set_type`](#-nftables--simplerule--set_type)
2128
* [`sport`](#-nftables--simplerule--sport)
2129
* [`saddr`](#-nftables--simplerule--saddr)
2130
* [`counter`](#-nftables--simplerule--counter)
2131

    
2132
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2133

    
2134
Data type: `Enum['present','absent']`
2135

    
2136
Should the rule be created.
2137

    
2138
Default value: `'present'`
2139

    
2140
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2141

    
2142
Data type: `Nftables::SimpleRuleName`
2143

    
2144
The symbolic name for the rule to add. Defaults to the resource's title.
2145

    
2146
Default value: `$title`
2147

    
2148
##### <a name="-nftables--simplerule--order"></a>`order`
2149

    
2150
Data type: `Pattern[/^\d\d$/]`
2151

    
2152
A number representing the order of the rule.
2153

    
2154
Default value: `'50'`
2155

    
2156
##### <a name="-nftables--simplerule--chain"></a>`chain`
2157

    
2158
Data type: `String`
2159

    
2160
The name of the chain to add this rule to.
2161

    
2162
Default value: `'default_in'`
2163

    
2164
##### <a name="-nftables--simplerule--table"></a>`table`
2165

    
2166
Data type: `String`
2167

    
2168
The name of the table to add this rule to.
2169

    
2170
Default value: `'inet-filter'`
2171

    
2172
##### <a name="-nftables--simplerule--action"></a>`action`
2173

    
2174
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2175

    
2176
The verdict for the matched traffic.
2177

    
2178
Default value: `'accept'`
2179

    
2180
##### <a name="-nftables--simplerule--comment"></a>`comment`
2181

    
2182
Data type: `Optional[String]`
2183

    
2184
A typically human-readable comment for the rule.
2185

    
2186
Default value: `undef`
2187

    
2188
##### <a name="-nftables--simplerule--dport"></a>`dport`
2189

    
2190
Data type: `Optional[Nftables::Port]`
2191

    
2192
The destination port, ports or port range.
2193

    
2194
Default value: `undef`
2195

    
2196
##### <a name="-nftables--simplerule--proto"></a>`proto`
2197

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

    
2200
The transport-layer protocol to match.
2201

    
2202
Default value: `undef`
2203

    
2204
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2205

    
2206
Data type: `Optional[Nftables::Addr]`
2207

    
2208
The destination address, CIDR or set to match.
2209

    
2210
Default value: `undef`
2211

    
2212
##### <a name="-nftables--simplerule--set_type"></a>`set_type`
2213

    
2214
Data type: `Enum['ip', 'ip6']`
2215

    
2216
When using sets as saddr or daddr, the type of the set.
2217
Use `ip` for sets of type `ipv4_addr`.
2218

    
2219
Default value: `'ip6'`
2220

    
2221
##### <a name="-nftables--simplerule--sport"></a>`sport`
2222

    
2223
Data type: `Optional[Nftables::Port]`
2224

    
2225
The source port, ports or port range.
2226

    
2227
Default value: `undef`
2228

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

    
2231
Data type: `Optional[Nftables::Addr]`
2232

    
2233
The source address, CIDR or set to match.
2234

    
2235
Default value: `undef`
2236

    
2237
##### <a name="-nftables--simplerule--counter"></a>`counter`
2238

    
2239
Data type: `Boolean`
2240

    
2241
Enable traffic counters for the matched traffic.
2242

    
2243
Default value: `false`
2244

    
2245
## Data types
2246

    
2247
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2248

    
2249
Represents an address expression to be used within a rule.
2250

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

    
2253
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2254

    
2255
Represents a set expression to be used within a rule.
2256

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

    
2259
### <a name="Nftables--Port"></a>`Nftables::Port`
2260

    
2261
Represents a port expression to be used within a rule.
2262

    
2263
Alias of `Variant[Array[Stdlib::Port, 1], Stdlib::Port, Nftables::Port::Range]`
2264

    
2265
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2266

    
2267
Represents a port range expression to be used within a rule.
2268

    
2269
Alias of `Pattern[/^\d+-\d+$/]`
2270

    
2271
### <a name="Nftables--RuleName"></a>`Nftables::RuleName`
2272

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

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

    
2280
### <a name="Nftables--SimpleRuleName"></a>`Nftables::SimpleRuleName`
2281

    
2282
Represents a simple rule name to be used in a rule created via nftables::simplerule
2283

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