Projet

Général

Profil

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

root / REFERENCE.md @ 64404839

Historique | Voir | Annoter | Télécharger (57,5 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
* [`action`](#-nftables--rules--samba--action)
1289

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

    
1292
Data type: `Boolean`
1293

    
1294
Enable ctdb-driven clustered Samba setups
1295

    
1296
Default value: `false`
1297

    
1298
##### <a name="-nftables--rules--samba--action"></a>`action`
1299

    
1300
Data type: `Enum['accept', 'drop']`
1301

    
1302
if the traffic should be allowed or dropped
1303

    
1304
Default value: `'accept'`
1305

    
1306
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1307

    
1308
manage in smtp
1309

    
1310
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1311

    
1312
manage in smtp submission
1313

    
1314
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1315

    
1316
manage in smtps
1317

    
1318
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1319

    
1320
allow incoming spotify
1321

    
1322
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1323

    
1324
allow incoming SSDP
1325

    
1326
* **See also**
1327
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1328

    
1329
#### Parameters
1330

    
1331
The following parameters are available in the `nftables::rules::ssdp` class:
1332

    
1333
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1334
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1335

    
1336
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1337

    
1338
Data type: `Boolean`
1339

    
1340
Allow SSDP over IPv4
1341

    
1342
Default value: `true`
1343

    
1344
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1345

    
1346
Data type: `Boolean`
1347

    
1348
Allow SSDP over IPv6
1349

    
1350
Default value: `true`
1351

    
1352
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1353

    
1354
manage in ssh
1355

    
1356
#### Parameters
1357

    
1358
The following parameters are available in the `nftables::rules::ssh` class:
1359

    
1360
* [`ports`](#-nftables--rules--ssh--ports)
1361

    
1362
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1363

    
1364
Data type: `Array[Stdlib::Port,1]`
1365

    
1366
ssh ports
1367

    
1368
Default value: `[22]`
1369

    
1370
### <a name="nftables--rules--tor"></a>`nftables::rules::tor`
1371

    
1372
manage in tor
1373

    
1374
#### Parameters
1375

    
1376
The following parameters are available in the `nftables::rules::tor` class:
1377

    
1378
* [`ports`](#-nftables--rules--tor--ports)
1379

    
1380
##### <a name="-nftables--rules--tor--ports"></a>`ports`
1381

    
1382
Data type: `Array[Stdlib::Port,1]`
1383

    
1384
ports for tor
1385

    
1386
Default value: `[9001]`
1387

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

    
1390
manage in wireguard
1391

    
1392
#### Parameters
1393

    
1394
The following parameters are available in the `nftables::rules::wireguard` class:
1395

    
1396
* [`ports`](#-nftables--rules--wireguard--ports)
1397

    
1398
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1399

    
1400
Data type: `Array[Stdlib::Port,1]`
1401

    
1402
wiregueard port
1403

    
1404
Default value: `[51820]`
1405

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

    
1408
allow incoming webservice discovery
1409

    
1410
* **See also**
1411
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1412

    
1413
#### Parameters
1414

    
1415
The following parameters are available in the `nftables::rules::wsd` class:
1416

    
1417
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1418
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1419

    
1420
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1421

    
1422
Data type: `Boolean`
1423

    
1424
Allow ws-discovery over IPv4
1425

    
1426
Default value: `true`
1427

    
1428
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1429

    
1430
Data type: `Boolean`
1431

    
1432
Allow ws-discovery over IPv6
1433

    
1434
Default value: `true`
1435

    
1436
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1437

    
1438
Allow in and outbound traffic for DHCPv6 server
1439

    
1440
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1441

    
1442
Open inbound and outbound ports for an AFS client
1443

    
1444
## Defined types
1445

    
1446
### <a name="nftables--chain"></a>`nftables::chain`
1447

    
1448
manage a chain
1449

    
1450
#### Parameters
1451

    
1452
The following parameters are available in the `nftables::chain` defined type:
1453

    
1454
* [`table`](#-nftables--chain--table)
1455
* [`chain`](#-nftables--chain--chain)
1456
* [`inject`](#-nftables--chain--inject)
1457
* [`inject_iif`](#-nftables--chain--inject_iif)
1458
* [`inject_oif`](#-nftables--chain--inject_oif)
1459

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

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

    
1464

    
1465

    
1466
Default value: `'inet-filter'`
1467

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

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

    
1472

    
1473

    
1474
Default value: `$title`
1475

    
1476
##### <a name="-nftables--chain--inject"></a>`inject`
1477

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

    
1480

    
1481

    
1482
Default value: `undef`
1483

    
1484
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1485

    
1486
Data type: `Optional[String]`
1487

    
1488

    
1489

    
1490
Default value: `undef`
1491

    
1492
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1493

    
1494
Data type: `Optional[String]`
1495

    
1496

    
1497

    
1498
Default value: `undef`
1499

    
1500
### <a name="nftables--config"></a>`nftables::config`
1501

    
1502
manage a config snippet
1503

    
1504
#### Parameters
1505

    
1506
The following parameters are available in the `nftables::config` defined type:
1507

    
1508
* [`tablespec`](#-nftables--config--tablespec)
1509
* [`content`](#-nftables--config--content)
1510
* [`source`](#-nftables--config--source)
1511
* [`prefix`](#-nftables--config--prefix)
1512

    
1513
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1514

    
1515
Data type: `Pattern[/^\w+-\w+$/]`
1516

    
1517

    
1518

    
1519
Default value: `$title`
1520

    
1521
##### <a name="-nftables--config--content"></a>`content`
1522

    
1523
Data type: `Optional[String]`
1524

    
1525

    
1526

    
1527
Default value: `undef`
1528

    
1529
##### <a name="-nftables--config--source"></a>`source`
1530

    
1531
Data type: `Optional[Variant[String,Array[String,1]]]`
1532

    
1533

    
1534

    
1535
Default value: `undef`
1536

    
1537
##### <a name="-nftables--config--prefix"></a>`prefix`
1538

    
1539
Data type: `String`
1540

    
1541

    
1542

    
1543
Default value: `'custom-'`
1544

    
1545
### <a name="nftables--file"></a>`nftables::file`
1546

    
1547
Insert a file into the nftables configuration
1548

    
1549
#### Examples
1550

    
1551
##### Include a file that includes other files
1552

    
1553
```puppet
1554
nftables::file{'geoip':
1555
  content => @(EOT)
1556
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1557
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1558
    |EOT,
1559
}
1560
```
1561

    
1562
#### Parameters
1563

    
1564
The following parameters are available in the `nftables::file` defined type:
1565

    
1566
* [`label`](#-nftables--file--label)
1567
* [`content`](#-nftables--file--content)
1568
* [`source`](#-nftables--file--source)
1569
* [`prefix`](#-nftables--file--prefix)
1570

    
1571
##### <a name="-nftables--file--label"></a>`label`
1572

    
1573
Data type: `String[1]`
1574

    
1575
Unique name to include in filename.
1576

    
1577
Default value: `$title`
1578

    
1579
##### <a name="-nftables--file--content"></a>`content`
1580

    
1581
Data type: `Optional[String]`
1582

    
1583
The content to place in the file.
1584

    
1585
Default value: `undef`
1586

    
1587
##### <a name="-nftables--file--source"></a>`source`
1588

    
1589
Data type: `Optional[Variant[String,Array[String,1]]]`
1590

    
1591
A source to obtain the file content from.
1592

    
1593
Default value: `undef`
1594

    
1595
##### <a name="-nftables--file--prefix"></a>`prefix`
1596

    
1597
Data type: `String`
1598

    
1599
Prefix of file name to be created, if left as `file-` it will be
1600
auto included in the main nft configuration
1601

    
1602
Default value: `'file-'`
1603

    
1604
### <a name="nftables--rule"></a>`nftables::rule`
1605

    
1606
Provides an interface to create a firewall rule
1607

    
1608
#### Examples
1609

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

    
1612
```puppet
1613
nftables::rule {
1614
  'default_in-myhttp':
1615
    content => 'tcp dport 80 accept',
1616
}
1617
```
1618

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

    
1621
```puppet
1622
nftables::rule {
1623
  'PREROUTING6-count':
1624
    content => 'counter',
1625
    table   => 'ip6-nat'
1626
}
1627
```
1628

    
1629
#### Parameters
1630

    
1631
The following parameters are available in the `nftables::rule` defined type:
1632

    
1633
* [`ensure`](#-nftables--rule--ensure)
1634
* [`rulename`](#-nftables--rule--rulename)
1635
* [`order`](#-nftables--rule--order)
1636
* [`table`](#-nftables--rule--table)
1637
* [`content`](#-nftables--rule--content)
1638
* [`source`](#-nftables--rule--source)
1639

    
1640
##### <a name="-nftables--rule--ensure"></a>`ensure`
1641

    
1642
Data type: `Enum['present','absent']`
1643

    
1644
Should the rule be created.
1645

    
1646
Default value: `'present'`
1647

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

    
1650
Data type: `Nftables::RuleName`
1651

    
1652
The symbolic name for the rule and to what chain to add it. The
1653
format is defined by the Nftables::RuleName type.
1654

    
1655
Default value: `$title`
1656

    
1657
##### <a name="-nftables--rule--order"></a>`order`
1658

    
1659
Data type: `Pattern[/^\d\d$/]`
1660

    
1661
A number representing the order of the rule.
1662

    
1663
Default value: `'50'`
1664

    
1665
##### <a name="-nftables--rule--table"></a>`table`
1666

    
1667
Data type: `String`
1668

    
1669
The name of the table to add this rule to.
1670

    
1671
Default value: `'inet-filter'`
1672

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

    
1675
Data type: `Optional[String]`
1676

    
1677
The raw statements that compose the rule represented using the nftables
1678
language.
1679

    
1680
Default value: `undef`
1681

    
1682
##### <a name="-nftables--rule--source"></a>`source`
1683

    
1684
Data type: `Optional[Variant[String,Array[String,1]]]`
1685

    
1686
Same goal as content but sourcing the value from a file.
1687

    
1688
Default value: `undef`
1689

    
1690
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1691

    
1692
manage a ipv4 dnat rule
1693

    
1694
#### Parameters
1695

    
1696
The following parameters are available in the `nftables::rules::dnat4` defined type:
1697

    
1698
* [`daddr`](#-nftables--rules--dnat4--daddr)
1699
* [`port`](#-nftables--rules--dnat4--port)
1700
* [`rulename`](#-nftables--rules--dnat4--rulename)
1701
* [`order`](#-nftables--rules--dnat4--order)
1702
* [`chain`](#-nftables--rules--dnat4--chain)
1703
* [`iif`](#-nftables--rules--dnat4--iif)
1704
* [`proto`](#-nftables--rules--dnat4--proto)
1705
* [`dport`](#-nftables--rules--dnat4--dport)
1706
* [`ensure`](#-nftables--rules--dnat4--ensure)
1707

    
1708
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1709

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

    
1712

    
1713

    
1714
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1715

    
1716
Data type: `Variant[String,Stdlib::Port]`
1717

    
1718

    
1719

    
1720
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1721

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

    
1724

    
1725

    
1726
Default value: `$title`
1727

    
1728
##### <a name="-nftables--rules--dnat4--order"></a>`order`
1729

    
1730
Data type: `Pattern[/^\d\d$/]`
1731

    
1732

    
1733

    
1734
Default value: `'50'`
1735

    
1736
##### <a name="-nftables--rules--dnat4--chain"></a>`chain`
1737

    
1738
Data type: `String[1]`
1739

    
1740

    
1741

    
1742
Default value: `'default_fwd'`
1743

    
1744
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1745

    
1746
Data type: `Optional[String[1]]`
1747

    
1748

    
1749

    
1750
Default value: `undef`
1751

    
1752
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1753

    
1754
Data type: `Enum['tcp','udp']`
1755

    
1756

    
1757

    
1758
Default value: `'tcp'`
1759

    
1760
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1761

    
1762
Data type: `Optional[Variant[String,Stdlib::Port]]`
1763

    
1764

    
1765

    
1766
Default value: `undef`
1767

    
1768
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1769

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

    
1772

    
1773

    
1774
Default value: `'present'`
1775

    
1776
### <a name="nftables--rules--masquerade"></a>`nftables::rules::masquerade`
1777

    
1778
masquerade all outgoing traffic
1779

    
1780
#### Parameters
1781

    
1782
The following parameters are available in the `nftables::rules::masquerade` defined type:
1783

    
1784
* [`rulename`](#-nftables--rules--masquerade--rulename)
1785
* [`order`](#-nftables--rules--masquerade--order)
1786
* [`chain`](#-nftables--rules--masquerade--chain)
1787
* [`oif`](#-nftables--rules--masquerade--oif)
1788
* [`saddr`](#-nftables--rules--masquerade--saddr)
1789
* [`daddr`](#-nftables--rules--masquerade--daddr)
1790
* [`proto`](#-nftables--rules--masquerade--proto)
1791
* [`dport`](#-nftables--rules--masquerade--dport)
1792
* [`ensure`](#-nftables--rules--masquerade--ensure)
1793

    
1794
##### <a name="-nftables--rules--masquerade--rulename"></a>`rulename`
1795

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

    
1798

    
1799

    
1800
Default value: `$title`
1801

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

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

    
1806

    
1807

    
1808
Default value: `'70'`
1809

    
1810
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
1811

    
1812
Data type: `String[1]`
1813

    
1814

    
1815

    
1816
Default value: `'POSTROUTING'`
1817

    
1818
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
1819

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

    
1822

    
1823

    
1824
Default value: `undef`
1825

    
1826
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
1827

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

    
1830

    
1831

    
1832
Default value: `undef`
1833

    
1834
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
1835

    
1836
Data type: `Optional[String[1]]`
1837

    
1838

    
1839

    
1840
Default value: `undef`
1841

    
1842
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
1843

    
1844
Data type: `Optional[Enum['tcp','udp']]`
1845

    
1846

    
1847

    
1848
Default value: `undef`
1849

    
1850
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
1851

    
1852
Data type: `Optional[Variant[String,Stdlib::Port]]`
1853

    
1854

    
1855

    
1856
Default value: `undef`
1857

    
1858
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
1859

    
1860
Data type: `Enum['present','absent']`
1861

    
1862

    
1863

    
1864
Default value: `'present'`
1865

    
1866
### <a name="nftables--rules--snat4"></a>`nftables::rules::snat4`
1867

    
1868
manage a ipv4 snat rule
1869

    
1870
#### Parameters
1871

    
1872
The following parameters are available in the `nftables::rules::snat4` defined type:
1873

    
1874
* [`snat`](#-nftables--rules--snat4--snat)
1875
* [`rulename`](#-nftables--rules--snat4--rulename)
1876
* [`order`](#-nftables--rules--snat4--order)
1877
* [`chain`](#-nftables--rules--snat4--chain)
1878
* [`oif`](#-nftables--rules--snat4--oif)
1879
* [`saddr`](#-nftables--rules--snat4--saddr)
1880
* [`proto`](#-nftables--rules--snat4--proto)
1881
* [`dport`](#-nftables--rules--snat4--dport)
1882
* [`ensure`](#-nftables--rules--snat4--ensure)
1883

    
1884
##### <a name="-nftables--rules--snat4--snat"></a>`snat`
1885

    
1886
Data type: `String[1]`
1887

    
1888

    
1889

    
1890
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
1891

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

    
1894

    
1895

    
1896
Default value: `$title`
1897

    
1898
##### <a name="-nftables--rules--snat4--order"></a>`order`
1899

    
1900
Data type: `Pattern[/^\d\d$/]`
1901

    
1902

    
1903

    
1904
Default value: `'70'`
1905

    
1906
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
1907

    
1908
Data type: `String[1]`
1909

    
1910

    
1911

    
1912
Default value: `'POSTROUTING'`
1913

    
1914
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
1915

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

    
1918

    
1919

    
1920
Default value: `undef`
1921

    
1922
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
1923

    
1924
Data type: `Optional[String[1]]`
1925

    
1926

    
1927

    
1928
Default value: `undef`
1929

    
1930
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
1931

    
1932
Data type: `Optional[Enum['tcp','udp']]`
1933

    
1934

    
1935

    
1936
Default value: `undef`
1937

    
1938
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
1939

    
1940
Data type: `Optional[Variant[String,Stdlib::Port]]`
1941

    
1942

    
1943

    
1944
Default value: `undef`
1945

    
1946
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
1947

    
1948
Data type: `Enum['present','absent']`
1949

    
1950

    
1951

    
1952
Default value: `'present'`
1953

    
1954
### <a name="nftables--set"></a>`nftables::set`
1955

    
1956
manage a named set
1957

    
1958
#### Examples
1959

    
1960
##### simple set
1961

    
1962
```puppet
1963
nftables::set{'my_set':
1964
  type       => 'ipv4_addr',
1965
  flags      => ['interval'],
1966
  elements   => ['192.168.0.1/24', '10.0.0.2'],
1967
  auto_merge => true,
1968
}
1969
```
1970

    
1971
#### Parameters
1972

    
1973
The following parameters are available in the `nftables::set` defined type:
1974

    
1975
* [`ensure`](#-nftables--set--ensure)
1976
* [`setname`](#-nftables--set--setname)
1977
* [`order`](#-nftables--set--order)
1978
* [`type`](#-nftables--set--type)
1979
* [`table`](#-nftables--set--table)
1980
* [`flags`](#-nftables--set--flags)
1981
* [`timeout`](#-nftables--set--timeout)
1982
* [`gc_interval`](#-nftables--set--gc_interval)
1983
* [`elements`](#-nftables--set--elements)
1984
* [`size`](#-nftables--set--size)
1985
* [`policy`](#-nftables--set--policy)
1986
* [`auto_merge`](#-nftables--set--auto_merge)
1987
* [`content`](#-nftables--set--content)
1988
* [`source`](#-nftables--set--source)
1989

    
1990
##### <a name="-nftables--set--ensure"></a>`ensure`
1991

    
1992
Data type: `Enum['present','absent']`
1993

    
1994
should the set be created.
1995

    
1996
Default value: `'present'`
1997

    
1998
##### <a name="-nftables--set--setname"></a>`setname`
1999

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

    
2002
name of set, equal to to title.
2003

    
2004
Default value: `$title`
2005

    
2006
##### <a name="-nftables--set--order"></a>`order`
2007

    
2008
Data type: `Pattern[/^\d\d$/]`
2009

    
2010
concat ordering.
2011

    
2012
Default value: `'10'`
2013

    
2014
##### <a name="-nftables--set--type"></a>`type`
2015

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

    
2018
type of set.
2019

    
2020
Default value: `undef`
2021

    
2022
##### <a name="-nftables--set--table"></a>`table`
2023

    
2024
Data type: `Variant[String, Array[String, 1]]`
2025

    
2026
table or array of tables to add the set to.
2027

    
2028
Default value: `'inet-filter'`
2029

    
2030
##### <a name="-nftables--set--flags"></a>`flags`
2031

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

    
2034
specify flags for set
2035

    
2036
Default value: `[]`
2037

    
2038
##### <a name="-nftables--set--timeout"></a>`timeout`
2039

    
2040
Data type: `Optional[Integer]`
2041

    
2042
timeout in seconds
2043

    
2044
Default value: `undef`
2045

    
2046
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2047

    
2048
Data type: `Optional[Integer]`
2049

    
2050
garbage collection interval.
2051

    
2052
Default value: `undef`
2053

    
2054
##### <a name="-nftables--set--elements"></a>`elements`
2055

    
2056
Data type: `Optional[Array[String]]`
2057

    
2058
initialize the set with some elements in it.
2059

    
2060
Default value: `undef`
2061

    
2062
##### <a name="-nftables--set--size"></a>`size`
2063

    
2064
Data type: `Optional[Integer]`
2065

    
2066
limits the maximum number of elements of the set.
2067

    
2068
Default value: `undef`
2069

    
2070
##### <a name="-nftables--set--policy"></a>`policy`
2071

    
2072
Data type: `Optional[Enum['performance', 'memory']]`
2073

    
2074
determines set selection policy.
2075

    
2076
Default value: `undef`
2077

    
2078
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2079

    
2080
Data type: `Boolean`
2081

    
2082
?
2083

    
2084
Default value: `false`
2085

    
2086
##### <a name="-nftables--set--content"></a>`content`
2087

    
2088
Data type: `Optional[String]`
2089

    
2090
specify content of set.
2091

    
2092
Default value: `undef`
2093

    
2094
##### <a name="-nftables--set--source"></a>`source`
2095

    
2096
Data type: `Optional[Variant[String,Array[String,1]]]`
2097

    
2098
specify source of set.
2099

    
2100
Default value: `undef`
2101

    
2102
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2103

    
2104
Provides a simplified interface to nftables::rule
2105

    
2106
#### Examples
2107

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

    
2110
```puppet
2111
nftables::simplerule{'my_service_in':
2112
  action  => 'accept',
2113
  comment => 'allow traffic to port 543',
2114
  counter => true,
2115
  proto   => 'tcp',
2116
  dport   => 543,
2117
  daddr   => '2001:1458::/32',
2118
  sport   => 541,
2119
}
2120
```
2121

    
2122
#### Parameters
2123

    
2124
The following parameters are available in the `nftables::simplerule` defined type:
2125

    
2126
* [`ensure`](#-nftables--simplerule--ensure)
2127
* [`rulename`](#-nftables--simplerule--rulename)
2128
* [`order`](#-nftables--simplerule--order)
2129
* [`chain`](#-nftables--simplerule--chain)
2130
* [`table`](#-nftables--simplerule--table)
2131
* [`action`](#-nftables--simplerule--action)
2132
* [`comment`](#-nftables--simplerule--comment)
2133
* [`dport`](#-nftables--simplerule--dport)
2134
* [`proto`](#-nftables--simplerule--proto)
2135
* [`daddr`](#-nftables--simplerule--daddr)
2136
* [`set_type`](#-nftables--simplerule--set_type)
2137
* [`sport`](#-nftables--simplerule--sport)
2138
* [`saddr`](#-nftables--simplerule--saddr)
2139
* [`counter`](#-nftables--simplerule--counter)
2140

    
2141
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2142

    
2143
Data type: `Enum['present','absent']`
2144

    
2145
Should the rule be created.
2146

    
2147
Default value: `'present'`
2148

    
2149
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2150

    
2151
Data type: `Nftables::SimpleRuleName`
2152

    
2153
The symbolic name for the rule to add. Defaults to the resource's title.
2154

    
2155
Default value: `$title`
2156

    
2157
##### <a name="-nftables--simplerule--order"></a>`order`
2158

    
2159
Data type: `Pattern[/^\d\d$/]`
2160

    
2161
A number representing the order of the rule.
2162

    
2163
Default value: `'50'`
2164

    
2165
##### <a name="-nftables--simplerule--chain"></a>`chain`
2166

    
2167
Data type: `String`
2168

    
2169
The name of the chain to add this rule to.
2170

    
2171
Default value: `'default_in'`
2172

    
2173
##### <a name="-nftables--simplerule--table"></a>`table`
2174

    
2175
Data type: `String`
2176

    
2177
The name of the table to add this rule to.
2178

    
2179
Default value: `'inet-filter'`
2180

    
2181
##### <a name="-nftables--simplerule--action"></a>`action`
2182

    
2183
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2184

    
2185
The verdict for the matched traffic.
2186

    
2187
Default value: `'accept'`
2188

    
2189
##### <a name="-nftables--simplerule--comment"></a>`comment`
2190

    
2191
Data type: `Optional[String]`
2192

    
2193
A typically human-readable comment for the rule.
2194

    
2195
Default value: `undef`
2196

    
2197
##### <a name="-nftables--simplerule--dport"></a>`dport`
2198

    
2199
Data type: `Optional[Nftables::Port]`
2200

    
2201
The destination port, ports or port range.
2202

    
2203
Default value: `undef`
2204

    
2205
##### <a name="-nftables--simplerule--proto"></a>`proto`
2206

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

    
2209
The transport-layer protocol to match.
2210

    
2211
Default value: `undef`
2212

    
2213
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2214

    
2215
Data type: `Optional[Nftables::Addr]`
2216

    
2217
The destination address, CIDR or set to match.
2218

    
2219
Default value: `undef`
2220

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

    
2223
Data type: `Enum['ip', 'ip6']`
2224

    
2225
When using sets as saddr or daddr, the type of the set.
2226
Use `ip` for sets of type `ipv4_addr`.
2227

    
2228
Default value: `'ip6'`
2229

    
2230
##### <a name="-nftables--simplerule--sport"></a>`sport`
2231

    
2232
Data type: `Optional[Nftables::Port]`
2233

    
2234
The source port, ports or port range.
2235

    
2236
Default value: `undef`
2237

    
2238
##### <a name="-nftables--simplerule--saddr"></a>`saddr`
2239

    
2240
Data type: `Optional[Nftables::Addr]`
2241

    
2242
The source address, CIDR or set to match.
2243

    
2244
Default value: `undef`
2245

    
2246
##### <a name="-nftables--simplerule--counter"></a>`counter`
2247

    
2248
Data type: `Boolean`
2249

    
2250
Enable traffic counters for the matched traffic.
2251

    
2252
Default value: `false`
2253

    
2254
## Data types
2255

    
2256
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2257

    
2258
Represents an address expression to be used within a rule.
2259

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

    
2262
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2263

    
2264
Represents a set expression to be used within a rule.
2265

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

    
2268
### <a name="Nftables--Port"></a>`Nftables::Port`
2269

    
2270
Represents a port expression to be used within a rule.
2271

    
2272
Alias of `Variant[Array[Stdlib::Port, 1], Stdlib::Port, Nftables::Port::Range]`
2273

    
2274
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2275

    
2276
Represents a port range expression to be used within a rule.
2277

    
2278
Alias of `Pattern[/^\d+-\d+$/]`
2279

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

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

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

    
2289
### <a name="Nftables--SimpleRuleName"></a>`Nftables::SimpleRuleName`
2290

    
2291
Represents a simple rule name to be used in a rule created via nftables::simplerule
2292

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