Projet

Général

Profil

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

root / REFERENCE.md @ 825f4eb1

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

1
# Reference
2

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

    
5
## Table of Contents
6

    
7
### Classes
8

    
9
* [`nftables`](#nftables): Configure nftables
10
* [`nftables::bridges`](#nftables--bridges): allow forwarding traffic on bridges
11
* [`nftables::inet_filter`](#nftables--inet_filter): manage basic chains in table inet filter
12
* [`nftables::inet_filter::fwd_conntrack`](#nftables--inet_filter--fwd_conntrack): enable conntrack for fwd
13
* [`nftables::inet_filter::in_out_conntrack`](#nftables--inet_filter--in_out_conntrack): manage input & output conntrack
14
* [`nftables::ip_nat`](#nftables--ip_nat): manage basic chains in table ip nat
15
* [`nftables::rules::activemq`](#nftables--rules--activemq): Provides input rules for Apache ActiveMQ
16
* [`nftables::rules::afs3_callback`](#nftables--rules--afs3_callback): Open call back port for AFS clients
17
* [`nftables::rules::ceph`](#nftables--rules--ceph): Ceph is a distributed object store and file system. Enable this to support Ceph's Object Storage Daemons (OSD), Metadata Server Daemons (MDS)
18
* [`nftables::rules::ceph_mon`](#nftables--rules--ceph_mon): Ceph is a distributed object store and file system.
19
Enable this option to support Ceph's Monitor Daemon.
20
* [`nftables::rules::dhcpv6_client`](#nftables--rules--dhcpv6_client): allow DHCPv6 requests in to a host
21
* [`nftables::rules::dns`](#nftables--rules--dns): manage in dns
22
* [`nftables::rules::docker_ce`](#nftables--rules--docker_ce): Default firewall configuration for Docker-CE
23
* [`nftables::rules::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_discarded`](#-nftables--log_discarded)
161
* [`log_limit`](#-nftables--log_limit)
162
* [`reject_with`](#-nftables--reject_with)
163
* [`in_out_conntrack`](#-nftables--in_out_conntrack)
164
* [`fwd_conntrack`](#-nftables--fwd_conntrack)
165
* [`firewalld_enable`](#-nftables--firewalld_enable)
166
* [`noflush_tables`](#-nftables--noflush_tables)
167
* [`rules`](#-nftables--rules)
168
* [`configuration_path`](#-nftables--configuration_path)
169
* [`nft_path`](#-nftables--nft_path)
170
* [`echo`](#-nftables--echo)
171
* [`default_config_mode`](#-nftables--default_config_mode)
172

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

    
175
Data type: `Boolean`
176

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

    
181
Default value: `false`
182

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

    
185
Data type: `Boolean`
186

    
187
Allow outbound to ntp servers.
188

    
189
Default value: `true`
190

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

    
193
Data type: `Boolean`
194

    
195
Allow outbound to http servers.
196

    
197
Default value: `true`
198

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

    
201
Data type: `Boolean`
202

    
203
Allow outbound to dns servers.
204

    
205
Default value: `true`
206

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

    
209
Data type: `Boolean`
210

    
211
Allow outbound to https servers.
212

    
213
Default value: `true`
214

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

    
217
Data type: `Boolean`
218

    
219
Allow outbound ICMPv4/v6 traffic.
220

    
221
Default value: `true`
222

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

    
225
Data type: `Boolean`
226

    
227
Allow inbound to ssh servers.
228

    
229
Default value: `true`
230

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

    
233
Data type: `Boolean`
234

    
235
Allow inbound ICMPv4/v6 traffic.
236

    
237
Default value: `true`
238

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

    
241
Data type: `Boolean`
242

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

    
245
Default value: `true`
246

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

    
249
Data type: `Boolean`
250

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

    
253
Default value: `true`
254

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

    
257
Data type: `String[1]`
258

    
259
The name of the 'nat' table.
260

    
261
Default value: `'nat'`
262

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

    
265
Data type: `Hash`
266

    
267
Allows sourcing set definitions directly from Hiera.
268

    
269
Default value: `{}`
270

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

    
273
Data type: `String`
274

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

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

    
282
##### <a name="-nftables--log_discarded"></a>`log_discarded`
283

    
284
Data type: `Boolean`
285

    
286
Allow to log discarded packets
287

    
288
Default value: `true`
289

    
290
##### <a name="-nftables--log_limit"></a>`log_limit`
291

    
292
Data type: `Variant[Boolean[false], String]`
293

    
294
String with the content of a limit statement to be applied
295
to the rules that log discarded traffic. Set to false to
296
disable rate limiting.
297

    
298
Default value: `'3/minute burst 5 packets'`
299

    
300
##### <a name="-nftables--reject_with"></a>`reject_with`
301

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

    
304
How to discard packets not matching any rule. If `false`, the
305
fate of the packet will be defined by the chain policy (normally
306
drop), otherwise the packet will be rejected with the REJECT_WITH
307
policy indicated by the value of this parameter.
308

    
309
Default value: `'icmpx type port-unreachable'`
310

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

    
313
Data type: `Boolean`
314

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

    
318
Default value: `true`
319

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

    
322
Data type: `Boolean`
323

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

    
327
Default value: `false`
328

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

    
331
Data type: `Variant[Boolean[false], Enum['mask']]`
332

    
333
Configures how the firewalld systemd service unit is enabled. It might be
334
useful to set this to false if you're externaly removing firewalld from
335
the system completely.
336

    
337
Default value: `'mask'`
338

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

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

    
343
If specified only other existings tables will be flushed.
344
If left unset all tables will be flushed via a `flush ruleset`
345

    
346
Default value: `undef`
347

    
348
##### <a name="-nftables--rules"></a>`rules`
349

    
350
Data type: `Hash`
351

    
352
Specify hashes of `nftables::rule`s via hiera
353

    
354
Default value: `{}`
355

    
356
##### <a name="-nftables--configuration_path"></a>`configuration_path`
357

    
358
Data type: `Stdlib::Unixpath`
359

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

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

    
365
Data type: `Stdlib::Unixpath`
366

    
367
Path to the nft binary
368

    
369
##### <a name="-nftables--echo"></a>`echo`
370

    
371
Data type: `Stdlib::Unixpath`
372

    
373
Path to the echo binary
374

    
375
##### <a name="-nftables--default_config_mode"></a>`default_config_mode`
376

    
377
Data type: `Stdlib::Filemode`
378

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

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

    
384
allow forwarding traffic on bridges
385

    
386
#### Parameters
387

    
388
The following parameters are available in the `nftables::bridges` class:
389

    
390
* [`ensure`](#-nftables--bridges--ensure)
391
* [`bridgenames`](#-nftables--bridges--bridgenames)
392

    
393
##### <a name="-nftables--bridges--ensure"></a>`ensure`
394

    
395
Data type: `Enum['present','absent']`
396

    
397

    
398

    
399
Default value: `'present'`
400

    
401
##### <a name="-nftables--bridges--bridgenames"></a>`bridgenames`
402

    
403
Data type: `Regexp`
404

    
405

    
406

    
407
Default value: `/^br.+/`
408

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

    
411
manage basic chains in table inet filter
412

    
413
### <a name="nftables--inet_filter--fwd_conntrack"></a>`nftables::inet_filter::fwd_conntrack`
414

    
415
enable conntrack for fwd
416

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

    
419
manage input & output conntrack
420

    
421
### <a name="nftables--ip_nat"></a>`nftables::ip_nat`
422

    
423
manage basic chains in table ip nat
424

    
425
### <a name="nftables--rules--activemq"></a>`nftables::rules::activemq`
426

    
427
Provides input rules for Apache ActiveMQ
428

    
429
#### Parameters
430

    
431
The following parameters are available in the `nftables::rules::activemq` class:
432

    
433
* [`tcp`](#-nftables--rules--activemq--tcp)
434
* [`udp`](#-nftables--rules--activemq--udp)
435
* [`port`](#-nftables--rules--activemq--port)
436

    
437
##### <a name="-nftables--rules--activemq--tcp"></a>`tcp`
438

    
439
Data type: `Boolean`
440

    
441
Create the rule for TCP traffic.
442

    
443
Default value: `true`
444

    
445
##### <a name="-nftables--rules--activemq--udp"></a>`udp`
446

    
447
Data type: `Boolean`
448

    
449
Create the rule for UDP traffic.
450

    
451
Default value: `true`
452

    
453
##### <a name="-nftables--rules--activemq--port"></a>`port`
454

    
455
Data type: `Stdlib::Port`
456

    
457
The port number for the ActiveMQ daemon.
458

    
459
Default value: `61616`
460

    
461
### <a name="nftables--rules--afs3_callback"></a>`nftables::rules::afs3_callback`
462

    
463
Open call back port for AFS clients
464

    
465
#### Examples
466

    
467
##### allow call backs from particular hosts
468

    
469
```puppet
470
class{'nftables::rules::afs3_callback':
471
  saddr => ['192.168.0.0/16', '10.0.0.222']
472
}
473
```
474

    
475
#### Parameters
476

    
477
The following parameters are available in the `nftables::rules::afs3_callback` class:
478

    
479
* [`saddr`](#-nftables--rules--afs3_callback--saddr)
480

    
481
##### <a name="-nftables--rules--afs3_callback--saddr"></a>`saddr`
482

    
483
Data type: `Array[Stdlib::IP::Address::V4,1]`
484

    
485
list of source network ranges to a
486

    
487
Default value: `['0.0.0.0/0']`
488

    
489
### <a name="nftables--rules--ceph"></a>`nftables::rules::ceph`
490

    
491
Ceph is a distributed object store and file system.
492
Enable this to support Ceph's Object Storage Daemons (OSD),
493
Metadata Server Daemons (MDS), or Manager Daemons (MGR).
494

    
495
### <a name="nftables--rules--ceph_mon"></a>`nftables::rules::ceph_mon`
496

    
497
Ceph is a distributed object store and file system.
498
Enable this option to support Ceph's Monitor Daemon.
499

    
500
#### Parameters
501

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

    
504
* [`ports`](#-nftables--rules--ceph_mon--ports)
505

    
506
##### <a name="-nftables--rules--ceph_mon--ports"></a>`ports`
507

    
508
Data type: `Array[Stdlib::Port,1]`
509

    
510
specify ports for ceph service
511

    
512
Default value: `[3300, 6789]`
513

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

    
516
allow DHCPv6 requests in to a host
517

    
518
### <a name="nftables--rules--dns"></a>`nftables::rules::dns`
519

    
520
manage in dns
521

    
522
#### Parameters
523

    
524
The following parameters are available in the `nftables::rules::dns` class:
525

    
526
* [`ports`](#-nftables--rules--dns--ports)
527

    
528
##### <a name="-nftables--rules--dns--ports"></a>`ports`
529

    
530
Data type: `Array[Stdlib::Port,1]`
531

    
532
Specify ports for dns.
533

    
534
Default value: `[53]`
535

    
536
### <a name="nftables--rules--docker_ce"></a>`nftables::rules::docker_ce`
537

    
538
The configuration distributed in this class represents the default firewall
539
configuration done by docker-ce when the iptables integration is enabled.
540

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

    
544
When using this class 'docker::iptables: false' should be set.
545

    
546
#### Parameters
547

    
548
The following parameters are available in the `nftables::rules::docker_ce` class:
549

    
550
* [`docker_interface`](#-nftables--rules--docker_ce--docker_interface)
551
* [`docker_prefix`](#-nftables--rules--docker_ce--docker_prefix)
552
* [`manage_docker_chains`](#-nftables--rules--docker_ce--manage_docker_chains)
553
* [`manage_base_chains`](#-nftables--rules--docker_ce--manage_base_chains)
554

    
555
##### <a name="-nftables--rules--docker_ce--docker_interface"></a>`docker_interface`
556

    
557
Data type: `String[1]`
558

    
559
Interface name used by docker.
560

    
561
Default value: `'docker0'`
562

    
563
##### <a name="-nftables--rules--docker_ce--docker_prefix"></a>`docker_prefix`
564

    
565
Data type: `Stdlib::IP::Address::V4::CIDR`
566

    
567
The address space used by docker.
568

    
569
Default value: `'172.17.0.0/16'`
570

    
571
##### <a name="-nftables--rules--docker_ce--manage_docker_chains"></a>`manage_docker_chains`
572

    
573
Data type: `Boolean`
574

    
575
Flag to control whether the class should create the docker related chains.
576

    
577
Default value: `true`
578

    
579
##### <a name="-nftables--rules--docker_ce--manage_base_chains"></a>`manage_base_chains`
580

    
581
Data type: `Boolean`
582

    
583
Flag to control whether the class should create the base common chains.
584

    
585
Default value: `true`
586

    
587
### <a name="nftables--rules--http"></a>`nftables::rules::http`
588

    
589
manage in http
590

    
591
### <a name="nftables--rules--https"></a>`nftables::rules::https`
592

    
593
manage in https
594

    
595
### <a name="nftables--rules--icinga2"></a>`nftables::rules::icinga2`
596

    
597
manage in icinga2
598

    
599
#### Parameters
600

    
601
The following parameters are available in the `nftables::rules::icinga2` class:
602

    
603
* [`ports`](#-nftables--rules--icinga2--ports)
604

    
605
##### <a name="-nftables--rules--icinga2--ports"></a>`ports`
606

    
607
Data type: `Array[Stdlib::Port,1]`
608

    
609
Specify ports for icinga2
610

    
611
Default value: `[5665]`
612

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

    
615
The nftables::rules::icmp class.
616

    
617
#### Parameters
618

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

    
621
* [`v4_types`](#-nftables--rules--icmp--v4_types)
622
* [`v6_types`](#-nftables--rules--icmp--v6_types)
623
* [`order`](#-nftables--rules--icmp--order)
624

    
625
##### <a name="-nftables--rules--icmp--v4_types"></a>`v4_types`
626

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

    
629

    
630

    
631
Default value: `undef`
632

    
633
##### <a name="-nftables--rules--icmp--v6_types"></a>`v6_types`
634

    
635
Data type: `Optional[Array[String]]`
636

    
637

    
638

    
639
Default value: `undef`
640

    
641
##### <a name="-nftables--rules--icmp--order"></a>`order`
642

    
643
Data type: `String`
644

    
645

    
646

    
647
Default value: `'10'`
648

    
649
### <a name="nftables--rules--igmp"></a>`nftables::rules::igmp`
650

    
651
allow incoming IGMP messages
652

    
653
### <a name="nftables--rules--ldap"></a>`nftables::rules::ldap`
654

    
655
manage in ldap
656

    
657
#### Parameters
658

    
659
The following parameters are available in the `nftables::rules::ldap` class:
660

    
661
* [`ports`](#-nftables--rules--ldap--ports)
662

    
663
##### <a name="-nftables--rules--ldap--ports"></a>`ports`
664

    
665
Data type: `Array[Integer,1]`
666

    
667
ldap server ports
668

    
669
Default value: `[389, 636]`
670

    
671
### <a name="nftables--rules--llmnr"></a>`nftables::rules::llmnr`
672

    
673
allow incoming Link-Local Multicast Name Resolution
674

    
675
* **See also**
676
  * https://datatracker.ietf.org/doc/html/rfc4795
677

    
678
#### Parameters
679

    
680
The following parameters are available in the `nftables::rules::llmnr` class:
681

    
682
* [`ipv4`](#-nftables--rules--llmnr--ipv4)
683
* [`ipv6`](#-nftables--rules--llmnr--ipv6)
684

    
685
##### <a name="-nftables--rules--llmnr--ipv4"></a>`ipv4`
686

    
687
Data type: `Boolean`
688

    
689
Allow LLMNR over IPv4
690

    
691
Default value: `true`
692

    
693
##### <a name="-nftables--rules--llmnr--ipv6"></a>`ipv6`
694

    
695
Data type: `Boolean`
696

    
697
Allow LLMNR over IPv6
698

    
699
Default value: `true`
700

    
701
### <a name="nftables--rules--mdns"></a>`nftables::rules::mdns`
702

    
703
allow incoming multicast DNS
704

    
705
#### Parameters
706

    
707
The following parameters are available in the `nftables::rules::mdns` class:
708

    
709
* [`ipv4`](#-nftables--rules--mdns--ipv4)
710
* [`ipv6`](#-nftables--rules--mdns--ipv6)
711

    
712
##### <a name="-nftables--rules--mdns--ipv4"></a>`ipv4`
713

    
714
Data type: `Boolean`
715

    
716
Allow mdns over IPv4
717

    
718
Default value: `true`
719

    
720
##### <a name="-nftables--rules--mdns--ipv6"></a>`ipv6`
721

    
722
Data type: `Boolean`
723

    
724
Allow mdns over IPv6
725

    
726
Default value: `true`
727

    
728
### <a name="nftables--rules--multicast"></a>`nftables::rules::multicast`
729

    
730
allow incoming multicast traffic
731

    
732
### <a name="nftables--rules--nfs"></a>`nftables::rules::nfs`
733

    
734
manage in nfs4
735

    
736
### <a name="nftables--rules--nfs3"></a>`nftables::rules::nfs3`
737

    
738
manage in nfs3
739

    
740
### <a name="nftables--rules--node_exporter"></a>`nftables::rules::node_exporter`
741

    
742
manage in node exporter
743

    
744
#### Parameters
745

    
746
The following parameters are available in the `nftables::rules::node_exporter` class:
747

    
748
* [`prometheus_server`](#-nftables--rules--node_exporter--prometheus_server)
749
* [`port`](#-nftables--rules--node_exporter--port)
750

    
751
##### <a name="-nftables--rules--node_exporter--prometheus_server"></a>`prometheus_server`
752

    
753
Data type: `Optional[Variant[String,Array[String,1]]]`
754

    
755
Specify server name
756

    
757
Default value: `undef`
758

    
759
##### <a name="-nftables--rules--node_exporter--port"></a>`port`
760

    
761
Data type: `Stdlib::Port`
762

    
763
Specify port to open
764

    
765
Default value: `9100`
766

    
767
### <a name="nftables--rules--ospf"></a>`nftables::rules::ospf`
768

    
769
manage in ospf
770

    
771
### <a name="nftables--rules--ospf3"></a>`nftables::rules::ospf3`
772

    
773
manage in ospf3
774

    
775
### <a name="nftables--rules--out--active_directory"></a>`nftables::rules::out::active_directory`
776

    
777
manage outgoing active diectory
778

    
779
#### Parameters
780

    
781
The following parameters are available in the `nftables::rules::out::active_directory` class:
782

    
783
* [`adserver`](#-nftables--rules--out--active_directory--adserver)
784
* [`adserver_ports`](#-nftables--rules--out--active_directory--adserver_ports)
785

    
786
##### <a name="-nftables--rules--out--active_directory--adserver"></a>`adserver`
787

    
788
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
789

    
790
adserver IPs
791

    
792
##### <a name="-nftables--rules--out--active_directory--adserver_ports"></a>`adserver_ports`
793

    
794
Data type: `Array[Stdlib::Port,1]`
795

    
796
adserver ports
797

    
798
Default value: `[389, 636, 3268, 3269]`
799

    
800
### <a name="nftables--rules--out--all"></a>`nftables::rules::out::all`
801

    
802
allow all outbound
803

    
804
### <a name="nftables--rules--out--ceph_client"></a>`nftables::rules::out::ceph_client`
805

    
806
Ceph is a distributed object store and file system.
807
Enable this to be a client of Ceph's Monitor (MON),
808
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
809
and Manager Daemons (MGR).
810

    
811
#### Parameters
812

    
813
The following parameters are available in the `nftables::rules::out::ceph_client` class:
814

    
815
* [`ports`](#-nftables--rules--out--ceph_client--ports)
816

    
817
##### <a name="-nftables--rules--out--ceph_client--ports"></a>`ports`
818

    
819
Data type: `Array[Stdlib::Port,1]`
820

    
821
Specify ports to open
822

    
823
Default value: `[3300, 6789]`
824

    
825
### <a name="nftables--rules--out--chrony"></a>`nftables::rules::out::chrony`
826

    
827
manage out chrony
828

    
829
#### Parameters
830

    
831
The following parameters are available in the `nftables::rules::out::chrony` class:
832

    
833
* [`servers`](#-nftables--rules--out--chrony--servers)
834

    
835
##### <a name="-nftables--rules--out--chrony--servers"></a>`servers`
836

    
837
Data type: `Array[Stdlib::IP::Address]`
838

    
839
single IP-Address or array of IP-addresses from NTP servers
840

    
841
Default value: `[]`
842

    
843
### <a name="nftables--rules--out--dhcp"></a>`nftables::rules::out::dhcp`
844

    
845
manage out dhcp
846

    
847
### <a name="nftables--rules--out--dhcpv6_client"></a>`nftables::rules::out::dhcpv6_client`
848

    
849
Allow DHCPv6 requests out of a host
850

    
851
### <a name="nftables--rules--out--dns"></a>`nftables::rules::out::dns`
852

    
853
manage out dns
854

    
855
#### Parameters
856

    
857
The following parameters are available in the `nftables::rules::out::dns` class:
858

    
859
* [`dns_server`](#-nftables--rules--out--dns--dns_server)
860

    
861
##### <a name="-nftables--rules--out--dns--dns_server"></a>`dns_server`
862

    
863
Data type: `Optional[Variant[String,Array[String,1]]]`
864

    
865
specify dns_server name
866

    
867
Default value: `undef`
868

    
869
### <a name="nftables--rules--out--hkp"></a>`nftables::rules::out::hkp`
870

    
871
allow outgoing hkp connections to gpg keyservers
872

    
873
### <a name="nftables--rules--out--http"></a>`nftables::rules::out::http`
874

    
875
manage out http
876

    
877
### <a name="nftables--rules--out--https"></a>`nftables::rules::out::https`
878

    
879
manage out https
880

    
881
### <a name="nftables--rules--out--icmp"></a>`nftables::rules::out::icmp`
882

    
883
control outbound icmp packages
884

    
885
#### Parameters
886

    
887
The following parameters are available in the `nftables::rules::out::icmp` class:
888

    
889
* [`v4_types`](#-nftables--rules--out--icmp--v4_types)
890
* [`v6_types`](#-nftables--rules--out--icmp--v6_types)
891
* [`order`](#-nftables--rules--out--icmp--order)
892

    
893
##### <a name="-nftables--rules--out--icmp--v4_types"></a>`v4_types`
894

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

    
897

    
898

    
899
Default value: `undef`
900

    
901
##### <a name="-nftables--rules--out--icmp--v6_types"></a>`v6_types`
902

    
903
Data type: `Optional[Array[String]]`
904

    
905

    
906

    
907
Default value: `undef`
908

    
909
##### <a name="-nftables--rules--out--icmp--order"></a>`order`
910

    
911
Data type: `String`
912

    
913

    
914

    
915
Default value: `'10'`
916

    
917
### <a name="nftables--rules--out--igmp"></a>`nftables::rules::out::igmp`
918

    
919
allow outgoing IGMP messages
920

    
921
### <a name="nftables--rules--out--imap"></a>`nftables::rules::out::imap`
922

    
923
allow outgoing imap
924

    
925
### <a name="nftables--rules--out--kerberos"></a>`nftables::rules::out::kerberos`
926

    
927
allows outbound access for kerberos
928

    
929
### <a name="nftables--rules--out--ldap"></a>`nftables::rules::out::ldap`
930

    
931
manage outgoing ldap
932

    
933
#### Parameters
934

    
935
The following parameters are available in the `nftables::rules::out::ldap` class:
936

    
937
* [`ldapserver`](#-nftables--rules--out--ldap--ldapserver)
938
* [`ldapserver_ports`](#-nftables--rules--out--ldap--ldapserver_ports)
939

    
940
##### <a name="-nftables--rules--out--ldap--ldapserver"></a>`ldapserver`
941

    
942
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
943

    
944
ldapserver IPs
945

    
946
##### <a name="-nftables--rules--out--ldap--ldapserver_ports"></a>`ldapserver_ports`
947

    
948
Data type: `Array[Stdlib::Port,1]`
949

    
950
ldapserver ports
951

    
952
Default value: `[389, 636]`
953

    
954
### <a name="nftables--rules--out--mdns"></a>`nftables::rules::out::mdns`
955

    
956
allow outgoing multicast DNS
957

    
958
#### Parameters
959

    
960
The following parameters are available in the `nftables::rules::out::mdns` class:
961

    
962
* [`ipv4`](#-nftables--rules--out--mdns--ipv4)
963
* [`ipv6`](#-nftables--rules--out--mdns--ipv6)
964

    
965
##### <a name="-nftables--rules--out--mdns--ipv4"></a>`ipv4`
966

    
967
Data type: `Boolean`
968

    
969
Allow mdns over IPv4
970

    
971
Default value: `true`
972

    
973
##### <a name="-nftables--rules--out--mdns--ipv6"></a>`ipv6`
974

    
975
Data type: `Boolean`
976

    
977
Allow mdns over IPv6
978

    
979
Default value: `true`
980

    
981
### <a name="nftables--rules--out--mldv2"></a>`nftables::rules::out::mldv2`
982

    
983
allow multicast listener requests
984

    
985
### <a name="nftables--rules--out--mysql"></a>`nftables::rules::out::mysql`
986

    
987
manage out mysql
988

    
989
### <a name="nftables--rules--out--nfs"></a>`nftables::rules::out::nfs`
990

    
991
manage out nfs
992

    
993
### <a name="nftables--rules--out--nfs3"></a>`nftables::rules::out::nfs3`
994

    
995
manage out nfs3
996

    
997
### <a name="nftables--rules--out--openafs_client"></a>`nftables::rules::out::openafs_client`
998

    
999
allows outbound access for afs clients
1000
7000 - afs3-fileserver
1001
7002 - afs3-ptserver
1002
7003 - vlserver
1003

    
1004
* **See also**
1005
  * https://wiki.openafs.org/devel/AFSServicePorts/
1006
    * AFS Service Ports
1007

    
1008
#### Parameters
1009

    
1010
The following parameters are available in the `nftables::rules::out::openafs_client` class:
1011

    
1012
* [`ports`](#-nftables--rules--out--openafs_client--ports)
1013

    
1014
##### <a name="-nftables--rules--out--openafs_client--ports"></a>`ports`
1015

    
1016
Data type: `Array[Stdlib::Port,1]`
1017

    
1018
port numbers to use
1019

    
1020
Default value: `[7000, 7002, 7003]`
1021

    
1022
### <a name="nftables--rules--out--ospf"></a>`nftables::rules::out::ospf`
1023

    
1024
manage out ospf
1025

    
1026
### <a name="nftables--rules--out--ospf3"></a>`nftables::rules::out::ospf3`
1027

    
1028
manage out ospf3
1029

    
1030
### <a name="nftables--rules--out--pop3"></a>`nftables::rules::out::pop3`
1031

    
1032
allow outgoing pop3
1033

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

    
1036
manage out postgres
1037

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

    
1040
manage outgoing puppet
1041

    
1042
#### Parameters
1043

    
1044
The following parameters are available in the `nftables::rules::out::puppet` class:
1045

    
1046
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1047
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1048

    
1049
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1050

    
1051
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1052

    
1053
puppetserver hostname
1054

    
1055
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1056

    
1057
Data type: `Stdlib::Port`
1058

    
1059
puppetserver port
1060

    
1061
Default value: `8140`
1062

    
1063
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1064

    
1065
manage outgoing pxp-agent
1066

    
1067
* **See also**
1068
  * also
1069
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1070

    
1071
#### Parameters
1072

    
1073
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1074

    
1075
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1076
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1077

    
1078
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1079

    
1080
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1081

    
1082
PXP broker IP(s)
1083

    
1084
##### <a name="-nftables--rules--out--pxp_agent--broker_port"></a>`broker_port`
1085

    
1086
Data type: `Stdlib::Port`
1087

    
1088
PXP broker port
1089

    
1090
Default value: `8142`
1091

    
1092
### <a name="nftables--rules--out--smtp"></a>`nftables::rules::out::smtp`
1093

    
1094
allow outgoing smtp
1095

    
1096
### <a name="nftables--rules--out--smtp_client"></a>`nftables::rules::out::smtp_client`
1097

    
1098
allow outgoing smtp client
1099

    
1100
### <a name="nftables--rules--out--ssdp"></a>`nftables::rules::out::ssdp`
1101

    
1102
allow outgoing SSDP
1103

    
1104
* **See also**
1105
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1106

    
1107
#### Parameters
1108

    
1109
The following parameters are available in the `nftables::rules::out::ssdp` class:
1110

    
1111
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1112
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1113

    
1114
##### <a name="-nftables--rules--out--ssdp--ipv4"></a>`ipv4`
1115

    
1116
Data type: `Boolean`
1117

    
1118
Allow SSDP over IPv4
1119

    
1120
Default value: `true`
1121

    
1122
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1123

    
1124
Data type: `Boolean`
1125

    
1126
Allow SSDP over IPv6
1127

    
1128
Default value: `true`
1129

    
1130
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1131

    
1132
manage out ssh
1133

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

    
1136
disable outgoing ssh
1137

    
1138
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1139

    
1140
manage out tor
1141

    
1142
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1143

    
1144
allow clients to query remote whois server
1145

    
1146
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1147

    
1148
manage out wireguard
1149

    
1150
#### Parameters
1151

    
1152
The following parameters are available in the `nftables::rules::out::wireguard` class:
1153

    
1154
* [`ports`](#-nftables--rules--out--wireguard--ports)
1155

    
1156
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1157

    
1158
Data type: `Array[Integer,1]`
1159

    
1160
specify wireguard ports
1161

    
1162
Default value: `[51820]`
1163

    
1164
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1165

    
1166
manage in puppet
1167

    
1168
#### Parameters
1169

    
1170
The following parameters are available in the `nftables::rules::puppet` class:
1171

    
1172
* [`ports`](#-nftables--rules--puppet--ports)
1173

    
1174
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1175

    
1176
Data type: `Array[Integer,1]`
1177

    
1178
puppet server ports
1179

    
1180
Default value: `[8140]`
1181

    
1182
### <a name="nftables--rules--pxp_agent"></a>`nftables::rules::pxp_agent`
1183

    
1184
manage in pxp-agent
1185

    
1186
#### Parameters
1187

    
1188
The following parameters are available in the `nftables::rules::pxp_agent` class:
1189

    
1190
* [`ports`](#-nftables--rules--pxp_agent--ports)
1191

    
1192
##### <a name="-nftables--rules--pxp_agent--ports"></a>`ports`
1193

    
1194
Data type: `Array[Stdlib::Port,1]`
1195

    
1196
pxp server ports
1197

    
1198
Default value: `[8142]`
1199

    
1200
### <a name="nftables--rules--qemu"></a>`nftables::rules::qemu`
1201

    
1202
This class configures the typical firewall setup that libvirt
1203
creates. Depending on your requirements you can switch on and off
1204
several aspects, for instance if you don't do DHCP to your guests
1205
you can disable the rules that accept DHCP traffic on the host or if
1206
you don't want your guests to talk to hosts outside you can disable
1207
forwarding and/or masquerading for IPv4 traffic.
1208

    
1209
#### Parameters
1210

    
1211
The following parameters are available in the `nftables::rules::qemu` class:
1212

    
1213
* [`interface`](#-nftables--rules--qemu--interface)
1214
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1215
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1216
* [`dns`](#-nftables--rules--qemu--dns)
1217
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1218
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1219
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1220
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1221

    
1222
##### <a name="-nftables--rules--qemu--interface"></a>`interface`
1223

    
1224
Data type: `String[1]`
1225

    
1226
Interface name used by the bridge.
1227

    
1228
Default value: `'virbr0'`
1229

    
1230
##### <a name="-nftables--rules--qemu--network_v4"></a>`network_v4`
1231

    
1232
Data type: `Stdlib::IP::Address::V4::CIDR`
1233

    
1234
The IPv4 network prefix used in the virtual network.
1235

    
1236
Default value: `'192.168.122.0/24'`
1237

    
1238
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1239

    
1240
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1241

    
1242
The IPv6 network prefix used in the virtual network.
1243

    
1244
Default value: `undef`
1245

    
1246
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1247

    
1248
Data type: `Boolean`
1249

    
1250
Allow DNS traffic from the guests to the host.
1251

    
1252
Default value: `true`
1253

    
1254
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1255

    
1256
Data type: `Boolean`
1257

    
1258
Allow DHCPv4 traffic from the guests to the host.
1259

    
1260
Default value: `true`
1261

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

    
1264
Data type: `Boolean`
1265

    
1266
Allow forwarded traffic (out all, in related/established)
1267
generated by the virtual network.
1268

    
1269
Default value: `true`
1270

    
1271
##### <a name="-nftables--rules--qemu--internal_traffic"></a>`internal_traffic`
1272

    
1273
Data type: `Boolean`
1274

    
1275
Allow guests in the virtual network to talk to each other.
1276

    
1277
Default value: `true`
1278

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

    
1281
Data type: `Boolean`
1282

    
1283
Do NAT masquerade on all IPv4 traffic generated by guests
1284
to external networks.
1285

    
1286
Default value: `true`
1287

    
1288
### <a name="nftables--rules--samba"></a>`nftables::rules::samba`
1289

    
1290
manage Samba, the suite to allow Windows file sharing on Linux resources.
1291

    
1292
#### Parameters
1293

    
1294
The following parameters are available in the `nftables::rules::samba` class:
1295

    
1296
* [`ctdb`](#-nftables--rules--samba--ctdb)
1297
* [`action`](#-nftables--rules--samba--action)
1298

    
1299
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1300

    
1301
Data type: `Boolean`
1302

    
1303
Enable ctdb-driven clustered Samba setups
1304

    
1305
Default value: `false`
1306

    
1307
##### <a name="-nftables--rules--samba--action"></a>`action`
1308

    
1309
Data type: `Enum['accept', 'drop']`
1310

    
1311
if the traffic should be allowed or dropped
1312

    
1313
Default value: `'accept'`
1314

    
1315
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1316

    
1317
manage in smtp
1318

    
1319
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1320

    
1321
manage in smtp submission
1322

    
1323
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1324

    
1325
manage in smtps
1326

    
1327
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1328

    
1329
allow incoming spotify
1330

    
1331
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1332

    
1333
allow incoming SSDP
1334

    
1335
* **See also**
1336
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1337

    
1338
#### Parameters
1339

    
1340
The following parameters are available in the `nftables::rules::ssdp` class:
1341

    
1342
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1343
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1344

    
1345
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1346

    
1347
Data type: `Boolean`
1348

    
1349
Allow SSDP over IPv4
1350

    
1351
Default value: `true`
1352

    
1353
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1354

    
1355
Data type: `Boolean`
1356

    
1357
Allow SSDP over IPv6
1358

    
1359
Default value: `true`
1360

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

    
1363
manage in ssh
1364

    
1365
#### Parameters
1366

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

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

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

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

    
1375
ssh ports
1376

    
1377
Default value: `[22]`
1378

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

    
1381
manage in tor
1382

    
1383
#### Parameters
1384

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

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

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

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

    
1393
ports for tor
1394

    
1395
Default value: `[9001]`
1396

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

    
1399
manage in wireguard
1400

    
1401
#### Parameters
1402

    
1403
The following parameters are available in the `nftables::rules::wireguard` class:
1404

    
1405
* [`ports`](#-nftables--rules--wireguard--ports)
1406

    
1407
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1408

    
1409
Data type: `Array[Stdlib::Port,1]`
1410

    
1411
wiregueard port
1412

    
1413
Default value: `[51820]`
1414

    
1415
### <a name="nftables--rules--wsd"></a>`nftables::rules::wsd`
1416

    
1417
allow incoming webservice discovery
1418

    
1419
* **See also**
1420
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1421

    
1422
#### Parameters
1423

    
1424
The following parameters are available in the `nftables::rules::wsd` class:
1425

    
1426
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1427
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1428

    
1429
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1430

    
1431
Data type: `Boolean`
1432

    
1433
Allow ws-discovery over IPv4
1434

    
1435
Default value: `true`
1436

    
1437
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1438

    
1439
Data type: `Boolean`
1440

    
1441
Allow ws-discovery over IPv6
1442

    
1443
Default value: `true`
1444

    
1445
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1446

    
1447
Allow in and outbound traffic for DHCPv6 server
1448

    
1449
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1450

    
1451
Open inbound and outbound ports for an AFS client
1452

    
1453
## Defined types
1454

    
1455
### <a name="nftables--chain"></a>`nftables::chain`
1456

    
1457
manage a chain
1458

    
1459
#### Parameters
1460

    
1461
The following parameters are available in the `nftables::chain` defined type:
1462

    
1463
* [`table`](#-nftables--chain--table)
1464
* [`chain`](#-nftables--chain--chain)
1465
* [`inject`](#-nftables--chain--inject)
1466
* [`inject_iif`](#-nftables--chain--inject_iif)
1467
* [`inject_oif`](#-nftables--chain--inject_oif)
1468

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

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

    
1473

    
1474

    
1475
Default value: `'inet-filter'`
1476

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

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

    
1481

    
1482

    
1483
Default value: `$title`
1484

    
1485
##### <a name="-nftables--chain--inject"></a>`inject`
1486

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

    
1489

    
1490

    
1491
Default value: `undef`
1492

    
1493
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1494

    
1495
Data type: `Optional[String]`
1496

    
1497

    
1498

    
1499
Default value: `undef`
1500

    
1501
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1502

    
1503
Data type: `Optional[String]`
1504

    
1505

    
1506

    
1507
Default value: `undef`
1508

    
1509
### <a name="nftables--config"></a>`nftables::config`
1510

    
1511
manage a config snippet
1512

    
1513
#### Parameters
1514

    
1515
The following parameters are available in the `nftables::config` defined type:
1516

    
1517
* [`tablespec`](#-nftables--config--tablespec)
1518
* [`content`](#-nftables--config--content)
1519
* [`source`](#-nftables--config--source)
1520
* [`prefix`](#-nftables--config--prefix)
1521

    
1522
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1523

    
1524
Data type: `Pattern[/^\w+-\w+$/]`
1525

    
1526

    
1527

    
1528
Default value: `$title`
1529

    
1530
##### <a name="-nftables--config--content"></a>`content`
1531

    
1532
Data type: `Optional[String]`
1533

    
1534

    
1535

    
1536
Default value: `undef`
1537

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

    
1540
Data type: `Optional[Variant[String,Array[String,1]]]`
1541

    
1542

    
1543

    
1544
Default value: `undef`
1545

    
1546
##### <a name="-nftables--config--prefix"></a>`prefix`
1547

    
1548
Data type: `String`
1549

    
1550

    
1551

    
1552
Default value: `'custom-'`
1553

    
1554
### <a name="nftables--file"></a>`nftables::file`
1555

    
1556
Insert a file into the nftables configuration
1557

    
1558
#### Examples
1559

    
1560
##### Include a file that includes other files
1561

    
1562
```puppet
1563
nftables::file{'geoip':
1564
  content => @(EOT)
1565
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1566
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1567
    |EOT,
1568
}
1569
```
1570

    
1571
#### Parameters
1572

    
1573
The following parameters are available in the `nftables::file` defined type:
1574

    
1575
* [`label`](#-nftables--file--label)
1576
* [`content`](#-nftables--file--content)
1577
* [`source`](#-nftables--file--source)
1578
* [`prefix`](#-nftables--file--prefix)
1579

    
1580
##### <a name="-nftables--file--label"></a>`label`
1581

    
1582
Data type: `String[1]`
1583

    
1584
Unique name to include in filename.
1585

    
1586
Default value: `$title`
1587

    
1588
##### <a name="-nftables--file--content"></a>`content`
1589

    
1590
Data type: `Optional[String]`
1591

    
1592
The content to place in the file.
1593

    
1594
Default value: `undef`
1595

    
1596
##### <a name="-nftables--file--source"></a>`source`
1597

    
1598
Data type: `Optional[Variant[String,Array[String,1]]]`
1599

    
1600
A source to obtain the file content from.
1601

    
1602
Default value: `undef`
1603

    
1604
##### <a name="-nftables--file--prefix"></a>`prefix`
1605

    
1606
Data type: `String`
1607

    
1608
Prefix of file name to be created, if left as `file-` it will be
1609
auto included in the main nft configuration
1610

    
1611
Default value: `'file-'`
1612

    
1613
### <a name="nftables--rule"></a>`nftables::rule`
1614

    
1615
Provides an interface to create a firewall rule
1616

    
1617
#### Examples
1618

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

    
1621
```puppet
1622
nftables::rule {
1623
  'default_in-myhttp':
1624
    content => 'tcp dport 80 accept',
1625
}
1626
```
1627

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

    
1630
```puppet
1631
nftables::rule {
1632
  'PREROUTING6-count':
1633
    content => 'counter',
1634
    table   => 'ip6-nat'
1635
}
1636
```
1637

    
1638
#### Parameters
1639

    
1640
The following parameters are available in the `nftables::rule` defined type:
1641

    
1642
* [`ensure`](#-nftables--rule--ensure)
1643
* [`rulename`](#-nftables--rule--rulename)
1644
* [`order`](#-nftables--rule--order)
1645
* [`table`](#-nftables--rule--table)
1646
* [`content`](#-nftables--rule--content)
1647
* [`source`](#-nftables--rule--source)
1648

    
1649
##### <a name="-nftables--rule--ensure"></a>`ensure`
1650

    
1651
Data type: `Enum['present','absent']`
1652

    
1653
Should the rule be created.
1654

    
1655
Default value: `'present'`
1656

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

    
1659
Data type: `Nftables::RuleName`
1660

    
1661
The symbolic name for the rule and to what chain to add it. The
1662
format is defined by the Nftables::RuleName type.
1663

    
1664
Default value: `$title`
1665

    
1666
##### <a name="-nftables--rule--order"></a>`order`
1667

    
1668
Data type: `Pattern[/^\d\d$/]`
1669

    
1670
A number representing the order of the rule.
1671

    
1672
Default value: `'50'`
1673

    
1674
##### <a name="-nftables--rule--table"></a>`table`
1675

    
1676
Data type: `String`
1677

    
1678
The name of the table to add this rule to.
1679

    
1680
Default value: `'inet-filter'`
1681

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

    
1684
Data type: `Optional[String]`
1685

    
1686
The raw statements that compose the rule represented using the nftables
1687
language.
1688

    
1689
Default value: `undef`
1690

    
1691
##### <a name="-nftables--rule--source"></a>`source`
1692

    
1693
Data type: `Optional[Variant[String,Array[String,1]]]`
1694

    
1695
Same goal as content but sourcing the value from a file.
1696

    
1697
Default value: `undef`
1698

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

    
1701
manage a ipv4 dnat rule
1702

    
1703
#### Parameters
1704

    
1705
The following parameters are available in the `nftables::rules::dnat4` defined type:
1706

    
1707
* [`daddr`](#-nftables--rules--dnat4--daddr)
1708
* [`port`](#-nftables--rules--dnat4--port)
1709
* [`rulename`](#-nftables--rules--dnat4--rulename)
1710
* [`order`](#-nftables--rules--dnat4--order)
1711
* [`chain`](#-nftables--rules--dnat4--chain)
1712
* [`iif`](#-nftables--rules--dnat4--iif)
1713
* [`proto`](#-nftables--rules--dnat4--proto)
1714
* [`dport`](#-nftables--rules--dnat4--dport)
1715
* [`ensure`](#-nftables--rules--dnat4--ensure)
1716

    
1717
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1718

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

    
1721

    
1722

    
1723
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1724

    
1725
Data type: `Variant[String,Stdlib::Port]`
1726

    
1727

    
1728

    
1729
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1730

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

    
1733

    
1734

    
1735
Default value: `$title`
1736

    
1737
##### <a name="-nftables--rules--dnat4--order"></a>`order`
1738

    
1739
Data type: `Pattern[/^\d\d$/]`
1740

    
1741

    
1742

    
1743
Default value: `'50'`
1744

    
1745
##### <a name="-nftables--rules--dnat4--chain"></a>`chain`
1746

    
1747
Data type: `String[1]`
1748

    
1749

    
1750

    
1751
Default value: `'default_fwd'`
1752

    
1753
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1754

    
1755
Data type: `Optional[String[1]]`
1756

    
1757

    
1758

    
1759
Default value: `undef`
1760

    
1761
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1762

    
1763
Data type: `Enum['tcp','udp']`
1764

    
1765

    
1766

    
1767
Default value: `'tcp'`
1768

    
1769
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1770

    
1771
Data type: `Optional[Variant[String,Stdlib::Port]]`
1772

    
1773

    
1774

    
1775
Default value: `undef`
1776

    
1777
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1778

    
1779
Data type: `Enum['present','absent']`
1780

    
1781

    
1782

    
1783
Default value: `'present'`
1784

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

    
1787
masquerade all outgoing traffic
1788

    
1789
#### Parameters
1790

    
1791
The following parameters are available in the `nftables::rules::masquerade` defined type:
1792

    
1793
* [`rulename`](#-nftables--rules--masquerade--rulename)
1794
* [`order`](#-nftables--rules--masquerade--order)
1795
* [`chain`](#-nftables--rules--masquerade--chain)
1796
* [`oif`](#-nftables--rules--masquerade--oif)
1797
* [`saddr`](#-nftables--rules--masquerade--saddr)
1798
* [`daddr`](#-nftables--rules--masquerade--daddr)
1799
* [`proto`](#-nftables--rules--masquerade--proto)
1800
* [`dport`](#-nftables--rules--masquerade--dport)
1801
* [`ensure`](#-nftables--rules--masquerade--ensure)
1802

    
1803
##### <a name="-nftables--rules--masquerade--rulename"></a>`rulename`
1804

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

    
1807

    
1808

    
1809
Default value: `$title`
1810

    
1811
##### <a name="-nftables--rules--masquerade--order"></a>`order`
1812

    
1813
Data type: `Pattern[/^\d\d$/]`
1814

    
1815

    
1816

    
1817
Default value: `'70'`
1818

    
1819
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
1820

    
1821
Data type: `String[1]`
1822

    
1823

    
1824

    
1825
Default value: `'POSTROUTING'`
1826

    
1827
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
1828

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

    
1831

    
1832

    
1833
Default value: `undef`
1834

    
1835
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
1836

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

    
1839

    
1840

    
1841
Default value: `undef`
1842

    
1843
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
1844

    
1845
Data type: `Optional[String[1]]`
1846

    
1847

    
1848

    
1849
Default value: `undef`
1850

    
1851
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
1852

    
1853
Data type: `Optional[Enum['tcp','udp']]`
1854

    
1855

    
1856

    
1857
Default value: `undef`
1858

    
1859
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
1860

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

    
1863

    
1864

    
1865
Default value: `undef`
1866

    
1867
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
1868

    
1869
Data type: `Enum['present','absent']`
1870

    
1871

    
1872

    
1873
Default value: `'present'`
1874

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

    
1877
manage a ipv4 snat rule
1878

    
1879
#### Parameters
1880

    
1881
The following parameters are available in the `nftables::rules::snat4` defined type:
1882

    
1883
* [`snat`](#-nftables--rules--snat4--snat)
1884
* [`rulename`](#-nftables--rules--snat4--rulename)
1885
* [`order`](#-nftables--rules--snat4--order)
1886
* [`chain`](#-nftables--rules--snat4--chain)
1887
* [`oif`](#-nftables--rules--snat4--oif)
1888
* [`saddr`](#-nftables--rules--snat4--saddr)
1889
* [`proto`](#-nftables--rules--snat4--proto)
1890
* [`dport`](#-nftables--rules--snat4--dport)
1891
* [`ensure`](#-nftables--rules--snat4--ensure)
1892

    
1893
##### <a name="-nftables--rules--snat4--snat"></a>`snat`
1894

    
1895
Data type: `String[1]`
1896

    
1897

    
1898

    
1899
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
1900

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

    
1903

    
1904

    
1905
Default value: `$title`
1906

    
1907
##### <a name="-nftables--rules--snat4--order"></a>`order`
1908

    
1909
Data type: `Pattern[/^\d\d$/]`
1910

    
1911

    
1912

    
1913
Default value: `'70'`
1914

    
1915
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
1916

    
1917
Data type: `String[1]`
1918

    
1919

    
1920

    
1921
Default value: `'POSTROUTING'`
1922

    
1923
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
1924

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

    
1927

    
1928

    
1929
Default value: `undef`
1930

    
1931
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
1932

    
1933
Data type: `Optional[String[1]]`
1934

    
1935

    
1936

    
1937
Default value: `undef`
1938

    
1939
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
1940

    
1941
Data type: `Optional[Enum['tcp','udp']]`
1942

    
1943

    
1944

    
1945
Default value: `undef`
1946

    
1947
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
1948

    
1949
Data type: `Optional[Variant[String,Stdlib::Port]]`
1950

    
1951

    
1952

    
1953
Default value: `undef`
1954

    
1955
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
1956

    
1957
Data type: `Enum['present','absent']`
1958

    
1959

    
1960

    
1961
Default value: `'present'`
1962

    
1963
### <a name="nftables--set"></a>`nftables::set`
1964

    
1965
manage a named set
1966

    
1967
#### Examples
1968

    
1969
##### simple set
1970

    
1971
```puppet
1972
nftables::set{'my_set':
1973
  type       => 'ipv4_addr',
1974
  flags      => ['interval'],
1975
  elements   => ['192.168.0.1/24', '10.0.0.2'],
1976
  auto_merge => true,
1977
}
1978
```
1979

    
1980
#### Parameters
1981

    
1982
The following parameters are available in the `nftables::set` defined type:
1983

    
1984
* [`ensure`](#-nftables--set--ensure)
1985
* [`setname`](#-nftables--set--setname)
1986
* [`order`](#-nftables--set--order)
1987
* [`type`](#-nftables--set--type)
1988
* [`table`](#-nftables--set--table)
1989
* [`flags`](#-nftables--set--flags)
1990
* [`timeout`](#-nftables--set--timeout)
1991
* [`gc_interval`](#-nftables--set--gc_interval)
1992
* [`elements`](#-nftables--set--elements)
1993
* [`size`](#-nftables--set--size)
1994
* [`policy`](#-nftables--set--policy)
1995
* [`auto_merge`](#-nftables--set--auto_merge)
1996
* [`content`](#-nftables--set--content)
1997
* [`source`](#-nftables--set--source)
1998

    
1999
##### <a name="-nftables--set--ensure"></a>`ensure`
2000

    
2001
Data type: `Enum['present','absent']`
2002

    
2003
should the set be created.
2004

    
2005
Default value: `'present'`
2006

    
2007
##### <a name="-nftables--set--setname"></a>`setname`
2008

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

    
2011
name of set, equal to to title.
2012

    
2013
Default value: `$title`
2014

    
2015
##### <a name="-nftables--set--order"></a>`order`
2016

    
2017
Data type: `Pattern[/^\d\d$/]`
2018

    
2019
concat ordering.
2020

    
2021
Default value: `'10'`
2022

    
2023
##### <a name="-nftables--set--type"></a>`type`
2024

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

    
2027
type of set.
2028

    
2029
Default value: `undef`
2030

    
2031
##### <a name="-nftables--set--table"></a>`table`
2032

    
2033
Data type: `Variant[String, Array[String, 1]]`
2034

    
2035
table or array of tables to add the set to.
2036

    
2037
Default value: `'inet-filter'`
2038

    
2039
##### <a name="-nftables--set--flags"></a>`flags`
2040

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

    
2043
specify flags for set
2044

    
2045
Default value: `[]`
2046

    
2047
##### <a name="-nftables--set--timeout"></a>`timeout`
2048

    
2049
Data type: `Optional[Integer]`
2050

    
2051
timeout in seconds
2052

    
2053
Default value: `undef`
2054

    
2055
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2056

    
2057
Data type: `Optional[Integer]`
2058

    
2059
garbage collection interval.
2060

    
2061
Default value: `undef`
2062

    
2063
##### <a name="-nftables--set--elements"></a>`elements`
2064

    
2065
Data type: `Optional[Array[String]]`
2066

    
2067
initialize the set with some elements in it.
2068

    
2069
Default value: `undef`
2070

    
2071
##### <a name="-nftables--set--size"></a>`size`
2072

    
2073
Data type: `Optional[Integer]`
2074

    
2075
limits the maximum number of elements of the set.
2076

    
2077
Default value: `undef`
2078

    
2079
##### <a name="-nftables--set--policy"></a>`policy`
2080

    
2081
Data type: `Optional[Enum['performance', 'memory']]`
2082

    
2083
determines set selection policy.
2084

    
2085
Default value: `undef`
2086

    
2087
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2088

    
2089
Data type: `Boolean`
2090

    
2091
?
2092

    
2093
Default value: `false`
2094

    
2095
##### <a name="-nftables--set--content"></a>`content`
2096

    
2097
Data type: `Optional[String]`
2098

    
2099
specify content of set.
2100

    
2101
Default value: `undef`
2102

    
2103
##### <a name="-nftables--set--source"></a>`source`
2104

    
2105
Data type: `Optional[Variant[String,Array[String,1]]]`
2106

    
2107
specify source of set.
2108

    
2109
Default value: `undef`
2110

    
2111
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2112

    
2113
Provides a simplified interface to nftables::rule
2114

    
2115
#### Examples
2116

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

    
2119
```puppet
2120
nftables::simplerule{'my_service_in':
2121
  action  => 'accept',
2122
  comment => 'allow traffic to port 543',
2123
  counter => true,
2124
  proto   => 'tcp',
2125
  dport   => 543,
2126
  daddr   => '2001:1458::/32',
2127
  sport   => 541,
2128
}
2129
```
2130

    
2131
#### Parameters
2132

    
2133
The following parameters are available in the `nftables::simplerule` defined type:
2134

    
2135
* [`ensure`](#-nftables--simplerule--ensure)
2136
* [`rulename`](#-nftables--simplerule--rulename)
2137
* [`order`](#-nftables--simplerule--order)
2138
* [`chain`](#-nftables--simplerule--chain)
2139
* [`table`](#-nftables--simplerule--table)
2140
* [`action`](#-nftables--simplerule--action)
2141
* [`comment`](#-nftables--simplerule--comment)
2142
* [`dport`](#-nftables--simplerule--dport)
2143
* [`proto`](#-nftables--simplerule--proto)
2144
* [`daddr`](#-nftables--simplerule--daddr)
2145
* [`set_type`](#-nftables--simplerule--set_type)
2146
* [`sport`](#-nftables--simplerule--sport)
2147
* [`saddr`](#-nftables--simplerule--saddr)
2148
* [`counter`](#-nftables--simplerule--counter)
2149

    
2150
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2151

    
2152
Data type: `Enum['present','absent']`
2153

    
2154
Should the rule be created.
2155

    
2156
Default value: `'present'`
2157

    
2158
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2159

    
2160
Data type: `Nftables::SimpleRuleName`
2161

    
2162
The symbolic name for the rule to add. Defaults to the resource's title.
2163

    
2164
Default value: `$title`
2165

    
2166
##### <a name="-nftables--simplerule--order"></a>`order`
2167

    
2168
Data type: `Pattern[/^\d\d$/]`
2169

    
2170
A number representing the order of the rule.
2171

    
2172
Default value: `'50'`
2173

    
2174
##### <a name="-nftables--simplerule--chain"></a>`chain`
2175

    
2176
Data type: `String`
2177

    
2178
The name of the chain to add this rule to.
2179

    
2180
Default value: `'default_in'`
2181

    
2182
##### <a name="-nftables--simplerule--table"></a>`table`
2183

    
2184
Data type: `String`
2185

    
2186
The name of the table to add this rule to.
2187

    
2188
Default value: `'inet-filter'`
2189

    
2190
##### <a name="-nftables--simplerule--action"></a>`action`
2191

    
2192
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2193

    
2194
The verdict for the matched traffic.
2195

    
2196
Default value: `'accept'`
2197

    
2198
##### <a name="-nftables--simplerule--comment"></a>`comment`
2199

    
2200
Data type: `Optional[String]`
2201

    
2202
A typically human-readable comment for the rule.
2203

    
2204
Default value: `undef`
2205

    
2206
##### <a name="-nftables--simplerule--dport"></a>`dport`
2207

    
2208
Data type: `Optional[Nftables::Port]`
2209

    
2210
The destination port, ports or port range.
2211

    
2212
Default value: `undef`
2213

    
2214
##### <a name="-nftables--simplerule--proto"></a>`proto`
2215

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

    
2218
The transport-layer protocol to match.
2219

    
2220
Default value: `undef`
2221

    
2222
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2223

    
2224
Data type: `Optional[Nftables::Addr]`
2225

    
2226
The destination address, CIDR or set to match.
2227

    
2228
Default value: `undef`
2229

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

    
2232
Data type: `Enum['ip', 'ip6']`
2233

    
2234
When using sets as saddr or daddr, the type of the set.
2235
Use `ip` for sets of type `ipv4_addr`.
2236

    
2237
Default value: `'ip6'`
2238

    
2239
##### <a name="-nftables--simplerule--sport"></a>`sport`
2240

    
2241
Data type: `Optional[Nftables::Port]`
2242

    
2243
The source port, ports or port range.
2244

    
2245
Default value: `undef`
2246

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

    
2249
Data type: `Optional[Nftables::Addr]`
2250

    
2251
The source address, CIDR or set to match.
2252

    
2253
Default value: `undef`
2254

    
2255
##### <a name="-nftables--simplerule--counter"></a>`counter`
2256

    
2257
Data type: `Boolean`
2258

    
2259
Enable traffic counters for the matched traffic.
2260

    
2261
Default value: `false`
2262

    
2263
## Data types
2264

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

    
2267
Represents an address expression to be used within a rule.
2268

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

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

    
2273
Represents a set expression to be used within a rule.
2274

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

    
2277
### <a name="Nftables--Port"></a>`Nftables::Port`
2278

    
2279
Represents a port expression to be used within a rule.
2280

    
2281
Alias of `Variant[Array[Variant[Nftables::Port::Range, Stdlib::Port], 1], Stdlib::Port, Nftables::Port::Range]`
2282

    
2283
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2284

    
2285
Represents a port range expression to be used within a rule.
2286

    
2287
Alias of `Pattern[/^\d+-\d+$/]`
2288

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

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

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

    
2298
### <a name="Nftables--SimpleRuleName"></a>`Nftables::SimpleRuleName`
2299

    
2300
Represents a simple rule name to be used in a rule created via nftables::simplerule
2301

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