Projet

Général

Profil

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

root / REFERENCE.md @ 925c358d

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

1
# Reference
2

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

    
5
## Table of Contents
6

    
7
### Classes
8

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

    
100
### Defined types
101

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

    
113
### Data types
114

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

    
125
## Classes
126

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

    
129
Configure nftables
130

    
131
#### Examples
132

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

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

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

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

    
150
#### Parameters
151

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

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

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

    
184
Data type: `Boolean`
185

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

    
190
Default value: `false`
191

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

    
194
Data type: `Boolean`
195

    
196
Allow outbound to ntp servers.
197

    
198
Default value: `true`
199

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

    
202
Data type: `Boolean`
203

    
204
Allow outbound to http servers.
205

    
206
Default value: `true`
207

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

    
210
Data type: `Boolean`
211

    
212
Allow outbound to dns servers.
213

    
214
Default value: `true`
215

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

    
218
Data type: `Boolean`
219

    
220
Allow outbound to https servers.
221

    
222
Default value: `true`
223

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

    
226
Data type: `Boolean`
227

    
228
Allow outbound ICMPv4/v6 traffic.
229

    
230
Default value: `true`
231

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

    
234
Data type: `Boolean`
235

    
236
Allow inbound to ssh servers.
237

    
238
Default value: `true`
239

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

    
242
Data type: `Boolean`
243

    
244
Allow inbound ICMPv4/v6 traffic.
245

    
246
Default value: `true`
247

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

    
250
Data type: `Boolean`
251

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

    
254
Default value: `true`
255

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

    
258
Data type: `Boolean`
259

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

    
262
Default value: `true`
263

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

    
266
Data type: `String[1]`
267

    
268
The name of the 'nat' table.
269

    
270
Default value: `'nat'`
271

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

    
274
Data type: `Hash`
275

    
276
Allows sourcing set definitions directly from Hiera.
277

    
278
Default value: `{}`
279

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

    
282
Data type: `String`
283

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

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

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

    
293
Data type: `Boolean`
294

    
295
Allow to log discarded packets
296

    
297
Default value: `true`
298

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

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

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

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

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

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

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

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

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

    
322
Data type: `Boolean`
323

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

    
327
Default value: `true`
328

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

    
331
Data type: `Boolean`
332

    
333
Drops invalid packets in INPUT and OUTPUT
334

    
335
Default value: `$in_out_conntrack`
336

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

    
339
Data type: `Boolean`
340

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

    
344
Default value: `false`
345

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

    
348
Data type: `Boolean`
349

    
350
Drops invalid packets in FORWARD
351

    
352
Default value: `$fwd_conntrack`
353

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

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

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

    
362
Default value: `'mask'`
363

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

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

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

    
371
Default value: `undef`
372

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

    
375
Data type: `Hash`
376

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

    
379
Default value: `{}`
380

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

    
383
Data type: `Stdlib::Unixpath`
384

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

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

    
390
Data type: `Stdlib::Unixpath`
391

    
392
Path to the nft binary
393

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

    
396
Data type: `Stdlib::Unixpath`
397

    
398
Path to the echo binary
399

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

    
402
Data type: `Stdlib::Filemode`
403

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

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

    
409
allow forwarding traffic on bridges
410

    
411
#### Parameters
412

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

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

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

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

    
422

    
423

    
424
Default value: `'present'`
425

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

    
428
Data type: `Regexp`
429

    
430

    
431

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

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

    
436
manage basic chains in table inet filter
437

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

    
440
enable conntrack for fwd
441

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

    
444
manage input & output conntrack
445

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

    
448
manage basic chains in table ip nat
449

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

    
452
Provides input rules for Apache ActiveMQ
453

    
454
#### Parameters
455

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

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

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

    
464
Data type: `Boolean`
465

    
466
Create the rule for TCP traffic.
467

    
468
Default value: `true`
469

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

    
472
Data type: `Boolean`
473

    
474
Create the rule for UDP traffic.
475

    
476
Default value: `true`
477

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

    
480
Data type: `Stdlib::Port`
481

    
482
The port number for the ActiveMQ daemon.
483

    
484
Default value: `61616`
485

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

    
488
Open call back port for AFS clients
489

    
490
#### Examples
491

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

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

    
500
#### Parameters
501

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

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

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

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

    
510
list of source network ranges to a
511

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

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

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

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

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

    
525
#### Parameters
526

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

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

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

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

    
535
specify ports for ceph service
536

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

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

    
541
allow DHCPv6 requests in to a host
542

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

    
545
manage in dns
546

    
547
#### Examples
548

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

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

    
557
#### Parameters
558

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

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

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

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

    
568
Specify ports for dns.
569

    
570
Default value: `[53]`
571

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

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

    
576
Specify input interface names.
577

    
578
Default value: `undef`
579

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

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

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

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

    
590
#### Parameters
591

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

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

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

    
601
Data type: `String[1]`
602

    
603
Interface name used by docker.
604

    
605
Default value: `'docker0'`
606

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

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

    
611
The address space used by docker.
612

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

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

    
617
Data type: `Boolean`
618

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

    
621
Default value: `true`
622

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

    
625
Data type: `Boolean`
626

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

    
629
Default value: `true`
630

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

    
633
manage in ftp (with conntrack helper)
634

    
635
#### Parameters
636

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

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

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

    
644
Data type: `Boolean`
645

    
646
Enable FTP passive mode support
647

    
648
Default value: `true`
649

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

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

    
654
Set the FTP passive mode port range
655

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

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

    
660
manage in http
661

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

    
664
manage in https
665

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

    
668
manage in icinga2
669

    
670
#### Parameters
671

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

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

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

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

    
680
Specify ports for icinga2
681

    
682
Default value: `[5665]`
683

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

    
686
allows incoming ICMP
687

    
688
#### Parameters
689

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

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

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

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

    
700
ICMP v4 types that should be allowed
701

    
702
Default value: `undef`
703

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

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

    
708
ICMP v6 types that should be allowed
709

    
710
Default value: `undef`
711

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

    
714
Data type: `String`
715

    
716
the ordering of the rules
717

    
718
Default value: `'10'`
719

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

    
722
allow incoming IGMP messages
723

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

    
726
manage in ldap
727

    
728
#### Parameters
729

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

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

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

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

    
738
ldap server ports
739

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

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

    
744
allow incoming Link-Local Multicast Name Resolution
745

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

    
749
#### Parameters
750

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

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

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

    
758
Data type: `Boolean`
759

    
760
Allow LLMNR over IPv4
761

    
762
Default value: `true`
763

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

    
766
Data type: `Boolean`
767

    
768
Allow LLMNR over IPv6
769

    
770
Default value: `true`
771

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

    
774
allow incoming multicast DNS
775

    
776
#### Parameters
777

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

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

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

    
786
Data type: `Boolean`
787

    
788
Allow mdns over IPv4
789

    
790
Default value: `true`
791

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

    
794
Data type: `Boolean`
795

    
796
Allow mdns over IPv6
797

    
798
Default value: `true`
799

    
800
##### <a name="-nftables--rules--mdns--iifname"></a>`iifname`
801

    
802
Data type: `Array[String[1]]`
803

    
804
name for incoming interfaces to filter
805

    
806
Default value: `[]`
807

    
808
### <a name="nftables--rules--multicast"></a>`nftables::rules::multicast`
809

    
810
allow incoming multicast traffic
811

    
812
### <a name="nftables--rules--nfs"></a>`nftables::rules::nfs`
813

    
814
manage in nfs4
815

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

    
818
manage in nfs3
819

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

    
822
manage in node exporter
823

    
824
#### Parameters
825

    
826
The following parameters are available in the `nftables::rules::node_exporter` class:
827

    
828
* [`prometheus_server`](#-nftables--rules--node_exporter--prometheus_server)
829
* [`port`](#-nftables--rules--node_exporter--port)
830

    
831
##### <a name="-nftables--rules--node_exporter--prometheus_server"></a>`prometheus_server`
832

    
833
Data type: `Optional[Variant[String,Array[String,1]]]`
834

    
835
Specify server name
836

    
837
Default value: `undef`
838

    
839
##### <a name="-nftables--rules--node_exporter--port"></a>`port`
840

    
841
Data type: `Stdlib::Port`
842

    
843
Specify port to open
844

    
845
Default value: `9100`
846

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

    
849
manage in ospf
850

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

    
853
manage in ospf3
854

    
855
### <a name="nftables--rules--out--active_directory"></a>`nftables::rules::out::active_directory`
856

    
857
manage outgoing active diectory
858

    
859
#### Parameters
860

    
861
The following parameters are available in the `nftables::rules::out::active_directory` class:
862

    
863
* [`adserver`](#-nftables--rules--out--active_directory--adserver)
864
* [`adserver_ports`](#-nftables--rules--out--active_directory--adserver_ports)
865

    
866
##### <a name="-nftables--rules--out--active_directory--adserver"></a>`adserver`
867

    
868
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
869

    
870
adserver IPs
871

    
872
##### <a name="-nftables--rules--out--active_directory--adserver_ports"></a>`adserver_ports`
873

    
874
Data type: `Array[Stdlib::Port,1]`
875

    
876
adserver ports
877

    
878
Default value: `[389, 636, 3268, 3269]`
879

    
880
### <a name="nftables--rules--out--all"></a>`nftables::rules::out::all`
881

    
882
allow all outbound
883

    
884
### <a name="nftables--rules--out--ceph_client"></a>`nftables::rules::out::ceph_client`
885

    
886
Ceph is a distributed object store and file system.
887
Enable this to be a client of Ceph's Monitor (MON),
888
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
889
and Manager Daemons (MGR).
890

    
891
#### Parameters
892

    
893
The following parameters are available in the `nftables::rules::out::ceph_client` class:
894

    
895
* [`ports`](#-nftables--rules--out--ceph_client--ports)
896

    
897
##### <a name="-nftables--rules--out--ceph_client--ports"></a>`ports`
898

    
899
Data type: `Array[Stdlib::Port,1]`
900

    
901
Specify ports to open
902

    
903
Default value: `[3300, 6789]`
904

    
905
### <a name="nftables--rules--out--chrony"></a>`nftables::rules::out::chrony`
906

    
907
manage out chrony
908

    
909
#### Parameters
910

    
911
The following parameters are available in the `nftables::rules::out::chrony` class:
912

    
913
* [`servers`](#-nftables--rules--out--chrony--servers)
914

    
915
##### <a name="-nftables--rules--out--chrony--servers"></a>`servers`
916

    
917
Data type: `Array[Stdlib::IP::Address]`
918

    
919
single IP-Address or array of IP-addresses from NTP servers
920

    
921
Default value: `[]`
922

    
923
### <a name="nftables--rules--out--dhcp"></a>`nftables::rules::out::dhcp`
924

    
925
manage out dhcp
926

    
927
### <a name="nftables--rules--out--dhcpv6_client"></a>`nftables::rules::out::dhcpv6_client`
928

    
929
Allow DHCPv6 requests out of a host
930

    
931
### <a name="nftables--rules--out--dns"></a>`nftables::rules::out::dns`
932

    
933
manage out dns
934

    
935
#### Parameters
936

    
937
The following parameters are available in the `nftables::rules::out::dns` class:
938

    
939
* [`dns_server`](#-nftables--rules--out--dns--dns_server)
940

    
941
##### <a name="-nftables--rules--out--dns--dns_server"></a>`dns_server`
942

    
943
Data type: `Array[Stdlib::IP::Address]`
944

    
945
specify dns_server name
946

    
947
Default value: `[]`
948

    
949
### <a name="nftables--rules--out--hkp"></a>`nftables::rules::out::hkp`
950

    
951
allow outgoing hkp connections to gpg keyservers
952

    
953
### <a name="nftables--rules--out--http"></a>`nftables::rules::out::http`
954

    
955
manage out http
956

    
957
### <a name="nftables--rules--out--https"></a>`nftables::rules::out::https`
958

    
959
manage out https
960

    
961
### <a name="nftables--rules--out--icmp"></a>`nftables::rules::out::icmp`
962

    
963
control outbound icmp packages
964

    
965
#### Parameters
966

    
967
The following parameters are available in the `nftables::rules::out::icmp` class:
968

    
969
* [`v4_types`](#-nftables--rules--out--icmp--v4_types)
970
* [`v6_types`](#-nftables--rules--out--icmp--v6_types)
971
* [`order`](#-nftables--rules--out--icmp--order)
972

    
973
##### <a name="-nftables--rules--out--icmp--v4_types"></a>`v4_types`
974

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

    
977
ICMP v4 types that should be allowed
978

    
979
Default value: `undef`
980

    
981
##### <a name="-nftables--rules--out--icmp--v6_types"></a>`v6_types`
982

    
983
Data type: `Optional[Array[String]]`
984

    
985
ICMP v6 types that should be allowed
986

    
987
Default value: `undef`
988

    
989
##### <a name="-nftables--rules--out--icmp--order"></a>`order`
990

    
991
Data type: `String`
992

    
993
the ordering of the rules
994

    
995
Default value: `'10'`
996

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

    
999
allow outgoing IGMP messages
1000

    
1001
### <a name="nftables--rules--out--imap"></a>`nftables::rules::out::imap`
1002

    
1003
allow outgoing imap
1004

    
1005
### <a name="nftables--rules--out--kerberos"></a>`nftables::rules::out::kerberos`
1006

    
1007
allows outbound access for kerberos
1008

    
1009
### <a name="nftables--rules--out--ldap"></a>`nftables::rules::out::ldap`
1010

    
1011
manage outgoing ldap
1012

    
1013
#### Parameters
1014

    
1015
The following parameters are available in the `nftables::rules::out::ldap` class:
1016

    
1017
* [`ldapserver`](#-nftables--rules--out--ldap--ldapserver)
1018
* [`ldapserver_ports`](#-nftables--rules--out--ldap--ldapserver_ports)
1019

    
1020
##### <a name="-nftables--rules--out--ldap--ldapserver"></a>`ldapserver`
1021

    
1022
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1023

    
1024
ldapserver IPs
1025

    
1026
##### <a name="-nftables--rules--out--ldap--ldapserver_ports"></a>`ldapserver_ports`
1027

    
1028
Data type: `Array[Stdlib::Port,1]`
1029

    
1030
ldapserver ports
1031

    
1032
Default value: `[389, 636]`
1033

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

    
1036
allow outgoing multicast DNS
1037

    
1038
#### Parameters
1039

    
1040
The following parameters are available in the `nftables::rules::out::mdns` class:
1041

    
1042
* [`ipv4`](#-nftables--rules--out--mdns--ipv4)
1043
* [`ipv6`](#-nftables--rules--out--mdns--ipv6)
1044
* [`oifname`](#-nftables--rules--out--mdns--oifname)
1045

    
1046
##### <a name="-nftables--rules--out--mdns--ipv4"></a>`ipv4`
1047

    
1048
Data type: `Boolean`
1049

    
1050
Allow mdns over IPv4
1051

    
1052
Default value: `true`
1053

    
1054
##### <a name="-nftables--rules--out--mdns--ipv6"></a>`ipv6`
1055

    
1056
Data type: `Boolean`
1057

    
1058
Allow mdns over IPv6
1059

    
1060
Default value: `true`
1061

    
1062
##### <a name="-nftables--rules--out--mdns--oifname"></a>`oifname`
1063

    
1064
Data type: `Array[String[1]]`
1065

    
1066
optional name for outgoing interfaces
1067

    
1068
Default value: `[]`
1069

    
1070
### <a name="nftables--rules--out--mldv2"></a>`nftables::rules::out::mldv2`
1071

    
1072
allow multicast listener requests
1073

    
1074
### <a name="nftables--rules--out--mysql"></a>`nftables::rules::out::mysql`
1075

    
1076
manage out mysql
1077

    
1078
### <a name="nftables--rules--out--nfs"></a>`nftables::rules::out::nfs`
1079

    
1080
manage out nfs
1081

    
1082
### <a name="nftables--rules--out--nfs3"></a>`nftables::rules::out::nfs3`
1083

    
1084
manage out nfs3
1085

    
1086
### <a name="nftables--rules--out--openafs_client"></a>`nftables::rules::out::openafs_client`
1087

    
1088
allows outbound access for afs clients
1089
7000 - afs3-fileserver
1090
7002 - afs3-ptserver
1091
7003 - vlserver
1092

    
1093
* **See also**
1094
  * https://wiki.openafs.org/devel/AFSServicePorts/
1095
    * AFS Service Ports
1096

    
1097
#### Parameters
1098

    
1099
The following parameters are available in the `nftables::rules::out::openafs_client` class:
1100

    
1101
* [`ports`](#-nftables--rules--out--openafs_client--ports)
1102

    
1103
##### <a name="-nftables--rules--out--openafs_client--ports"></a>`ports`
1104

    
1105
Data type: `Array[Stdlib::Port,1]`
1106

    
1107
port numbers to use
1108

    
1109
Default value: `[7000, 7002, 7003]`
1110

    
1111
### <a name="nftables--rules--out--ospf"></a>`nftables::rules::out::ospf`
1112

    
1113
manage out ospf
1114

    
1115
### <a name="nftables--rules--out--ospf3"></a>`nftables::rules::out::ospf3`
1116

    
1117
manage out ospf3
1118

    
1119
#### Parameters
1120

    
1121
The following parameters are available in the `nftables::rules::out::ospf3` class:
1122

    
1123
* [`oifname`](#-nftables--rules--out--ospf3--oifname)
1124

    
1125
##### <a name="-nftables--rules--out--ospf3--oifname"></a>`oifname`
1126

    
1127
Data type: `Array[String[1]]`
1128

    
1129
optional list of outgoing interfaces to filter on
1130

    
1131
Default value: `[]`
1132

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

    
1135
allow outgoing pop3
1136

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

    
1139
manage out postgres
1140

    
1141
### <a name="nftables--rules--out--puppet"></a>`nftables::rules::out::puppet`
1142

    
1143
manage outgoing puppet
1144

    
1145
#### Parameters
1146

    
1147
The following parameters are available in the `nftables::rules::out::puppet` class:
1148

    
1149
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1150
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1151

    
1152
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1153

    
1154
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1155

    
1156
puppetserver hostname
1157

    
1158
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1159

    
1160
Data type: `Stdlib::Port`
1161

    
1162
puppetserver port
1163

    
1164
Default value: `8140`
1165

    
1166
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1167

    
1168
manage outgoing pxp-agent
1169

    
1170
* **See also**
1171
  * also
1172
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1173

    
1174
#### Parameters
1175

    
1176
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1177

    
1178
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1179
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1180

    
1181
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1182

    
1183
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1184

    
1185
PXP broker IP(s)
1186

    
1187
##### <a name="-nftables--rules--out--pxp_agent--broker_port"></a>`broker_port`
1188

    
1189
Data type: `Stdlib::Port`
1190

    
1191
PXP broker port
1192

    
1193
Default value: `8142`
1194

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

    
1197
allow outgoing smtp
1198

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

    
1201
allow outgoing smtp client
1202

    
1203
### <a name="nftables--rules--out--ssdp"></a>`nftables::rules::out::ssdp`
1204

    
1205
allow outgoing SSDP
1206

    
1207
* **See also**
1208
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1209

    
1210
#### Parameters
1211

    
1212
The following parameters are available in the `nftables::rules::out::ssdp` class:
1213

    
1214
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1215
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1216

    
1217
##### <a name="-nftables--rules--out--ssdp--ipv4"></a>`ipv4`
1218

    
1219
Data type: `Boolean`
1220

    
1221
Allow SSDP over IPv4
1222

    
1223
Default value: `true`
1224

    
1225
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1226

    
1227
Data type: `Boolean`
1228

    
1229
Allow SSDP over IPv6
1230

    
1231
Default value: `true`
1232

    
1233
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1234

    
1235
manage out ssh
1236

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

    
1239
disable outgoing ssh
1240

    
1241
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1242

    
1243
manage out tor
1244

    
1245
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1246

    
1247
allow clients to query remote whois server
1248

    
1249
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1250

    
1251
manage out wireguard
1252

    
1253
#### Parameters
1254

    
1255
The following parameters are available in the `nftables::rules::out::wireguard` class:
1256

    
1257
* [`ports`](#-nftables--rules--out--wireguard--ports)
1258

    
1259
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1260

    
1261
Data type: `Array[Integer,1]`
1262

    
1263
specify wireguard ports
1264

    
1265
Default value: `[51820]`
1266

    
1267
### <a name="nftables--rules--podman"></a>`nftables::rules::podman`
1268

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

    
1275
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1276

    
1277
manage in puppet
1278

    
1279
#### Parameters
1280

    
1281
The following parameters are available in the `nftables::rules::puppet` class:
1282

    
1283
* [`ports`](#-nftables--rules--puppet--ports)
1284

    
1285
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1286

    
1287
Data type: `Array[Integer,1]`
1288

    
1289
puppet server ports
1290

    
1291
Default value: `[8140]`
1292

    
1293
### <a name="nftables--rules--pxp_agent"></a>`nftables::rules::pxp_agent`
1294

    
1295
manage in pxp-agent
1296

    
1297
#### Parameters
1298

    
1299
The following parameters are available in the `nftables::rules::pxp_agent` class:
1300

    
1301
* [`ports`](#-nftables--rules--pxp_agent--ports)
1302

    
1303
##### <a name="-nftables--rules--pxp_agent--ports"></a>`ports`
1304

    
1305
Data type: `Array[Stdlib::Port,1]`
1306

    
1307
pxp server ports
1308

    
1309
Default value: `[8142]`
1310

    
1311
### <a name="nftables--rules--qemu"></a>`nftables::rules::qemu`
1312

    
1313
This class configures the typical firewall setup that libvirt
1314
creates. Depending on your requirements you can switch on and off
1315
several aspects, for instance if you don't do DHCP to your guests
1316
you can disable the rules that accept DHCP traffic on the host or if
1317
you don't want your guests to talk to hosts outside you can disable
1318
forwarding and/or masquerading for IPv4 traffic.
1319

    
1320
#### Parameters
1321

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

    
1324
* [`interface`](#-nftables--rules--qemu--interface)
1325
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1326
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1327
* [`dns`](#-nftables--rules--qemu--dns)
1328
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1329
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1330
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1331
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1332

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

    
1335
Data type: `String[1]`
1336

    
1337
Interface name used by the bridge.
1338

    
1339
Default value: `'virbr0'`
1340

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

    
1343
Data type: `Stdlib::IP::Address::V4::CIDR`
1344

    
1345
The IPv4 network prefix used in the virtual network.
1346

    
1347
Default value: `'192.168.122.0/24'`
1348

    
1349
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1350

    
1351
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1352

    
1353
The IPv6 network prefix used in the virtual network.
1354

    
1355
Default value: `undef`
1356

    
1357
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1358

    
1359
Data type: `Boolean`
1360

    
1361
Allow DNS traffic from the guests to the host.
1362

    
1363
Default value: `true`
1364

    
1365
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1366

    
1367
Data type: `Boolean`
1368

    
1369
Allow DHCPv4 traffic from the guests to the host.
1370

    
1371
Default value: `true`
1372

    
1373
##### <a name="-nftables--rules--qemu--forward_traffic"></a>`forward_traffic`
1374

    
1375
Data type: `Boolean`
1376

    
1377
Allow forwarded traffic (out all, in related/established)
1378
generated by the virtual network.
1379

    
1380
Default value: `true`
1381

    
1382
##### <a name="-nftables--rules--qemu--internal_traffic"></a>`internal_traffic`
1383

    
1384
Data type: `Boolean`
1385

    
1386
Allow guests in the virtual network to talk to each other.
1387

    
1388
Default value: `true`
1389

    
1390
##### <a name="-nftables--rules--qemu--masquerade"></a>`masquerade`
1391

    
1392
Data type: `Boolean`
1393

    
1394
Do NAT masquerade on all IPv4 traffic generated by guests
1395
to external networks.
1396

    
1397
Default value: `true`
1398

    
1399
### <a name="nftables--rules--samba"></a>`nftables::rules::samba`
1400

    
1401
manage Samba, the suite to allow Windows file sharing on Linux resources.
1402

    
1403
#### Parameters
1404

    
1405
The following parameters are available in the `nftables::rules::samba` class:
1406

    
1407
* [`ctdb`](#-nftables--rules--samba--ctdb)
1408
* [`action`](#-nftables--rules--samba--action)
1409

    
1410
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1411

    
1412
Data type: `Boolean`
1413

    
1414
Enable ctdb-driven clustered Samba setups
1415

    
1416
Default value: `false`
1417

    
1418
##### <a name="-nftables--rules--samba--action"></a>`action`
1419

    
1420
Data type: `Enum['accept', 'drop']`
1421

    
1422
if the traffic should be allowed or dropped
1423

    
1424
Default value: `'accept'`
1425

    
1426
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1427

    
1428
manage in smtp
1429

    
1430
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1431

    
1432
manage in smtp submission
1433

    
1434
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1435

    
1436
manage in smtps
1437

    
1438
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1439

    
1440
allow incoming spotify
1441

    
1442
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1443

    
1444
allow incoming SSDP
1445

    
1446
* **See also**
1447
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1448

    
1449
#### Parameters
1450

    
1451
The following parameters are available in the `nftables::rules::ssdp` class:
1452

    
1453
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1454
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1455

    
1456
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1457

    
1458
Data type: `Boolean`
1459

    
1460
Allow SSDP over IPv4
1461

    
1462
Default value: `true`
1463

    
1464
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1465

    
1466
Data type: `Boolean`
1467

    
1468
Allow SSDP over IPv6
1469

    
1470
Default value: `true`
1471

    
1472
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1473

    
1474
manage in ssh
1475

    
1476
#### Parameters
1477

    
1478
The following parameters are available in the `nftables::rules::ssh` class:
1479

    
1480
* [`ports`](#-nftables--rules--ssh--ports)
1481

    
1482
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1483

    
1484
Data type: `Array[Stdlib::Port,1]`
1485

    
1486
ssh ports
1487

    
1488
Default value: `[22]`
1489

    
1490
### <a name="nftables--rules--tor"></a>`nftables::rules::tor`
1491

    
1492
manage in tor
1493

    
1494
#### Parameters
1495

    
1496
The following parameters are available in the `nftables::rules::tor` class:
1497

    
1498
* [`ports`](#-nftables--rules--tor--ports)
1499

    
1500
##### <a name="-nftables--rules--tor--ports"></a>`ports`
1501

    
1502
Data type: `Array[Stdlib::Port,1]`
1503

    
1504
ports for tor
1505

    
1506
Default value: `[9001]`
1507

    
1508
### <a name="nftables--rules--wireguard"></a>`nftables::rules::wireguard`
1509

    
1510
manage in wireguard
1511

    
1512
#### Parameters
1513

    
1514
The following parameters are available in the `nftables::rules::wireguard` class:
1515

    
1516
* [`ports`](#-nftables--rules--wireguard--ports)
1517

    
1518
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1519

    
1520
Data type: `Array[Stdlib::Port,1]`
1521

    
1522
wiregueard port
1523

    
1524
Default value: `[51820]`
1525

    
1526
### <a name="nftables--rules--wsd"></a>`nftables::rules::wsd`
1527

    
1528
allow incoming webservice discovery
1529

    
1530
* **See also**
1531
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1532

    
1533
#### Parameters
1534

    
1535
The following parameters are available in the `nftables::rules::wsd` class:
1536

    
1537
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1538
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1539

    
1540
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1541

    
1542
Data type: `Boolean`
1543

    
1544
Allow ws-discovery over IPv4
1545

    
1546
Default value: `true`
1547

    
1548
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1549

    
1550
Data type: `Boolean`
1551

    
1552
Allow ws-discovery over IPv6
1553

    
1554
Default value: `true`
1555

    
1556
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1557

    
1558
Allow in and outbound traffic for DHCPv6 server
1559

    
1560
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1561

    
1562
Open inbound and outbound ports for an AFS client
1563

    
1564
## Defined types
1565

    
1566
### <a name="nftables--chain"></a>`nftables::chain`
1567

    
1568
manage a chain
1569

    
1570
#### Parameters
1571

    
1572
The following parameters are available in the `nftables::chain` defined type:
1573

    
1574
* [`table`](#-nftables--chain--table)
1575
* [`chain`](#-nftables--chain--chain)
1576
* [`inject`](#-nftables--chain--inject)
1577
* [`inject_iif`](#-nftables--chain--inject_iif)
1578
* [`inject_oif`](#-nftables--chain--inject_oif)
1579

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

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

    
1584

    
1585

    
1586
Default value: `'inet-filter'`
1587

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

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

    
1592

    
1593

    
1594
Default value: `$title`
1595

    
1596
##### <a name="-nftables--chain--inject"></a>`inject`
1597

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

    
1600

    
1601

    
1602
Default value: `undef`
1603

    
1604
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1605

    
1606
Data type: `Optional[String]`
1607

    
1608

    
1609

    
1610
Default value: `undef`
1611

    
1612
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1613

    
1614
Data type: `Optional[String]`
1615

    
1616

    
1617

    
1618
Default value: `undef`
1619

    
1620
### <a name="nftables--config"></a>`nftables::config`
1621

    
1622
manage a config snippet
1623

    
1624
#### Parameters
1625

    
1626
The following parameters are available in the `nftables::config` defined type:
1627

    
1628
* [`tablespec`](#-nftables--config--tablespec)
1629
* [`content`](#-nftables--config--content)
1630
* [`source`](#-nftables--config--source)
1631
* [`prefix`](#-nftables--config--prefix)
1632

    
1633
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1634

    
1635
Data type: `Pattern[/^\w+-\w+$/]`
1636

    
1637

    
1638

    
1639
Default value: `$title`
1640

    
1641
##### <a name="-nftables--config--content"></a>`content`
1642

    
1643
Data type: `Optional[String]`
1644

    
1645

    
1646

    
1647
Default value: `undef`
1648

    
1649
##### <a name="-nftables--config--source"></a>`source`
1650

    
1651
Data type: `Optional[Variant[String,Array[String,1]]]`
1652

    
1653

    
1654

    
1655
Default value: `undef`
1656

    
1657
##### <a name="-nftables--config--prefix"></a>`prefix`
1658

    
1659
Data type: `String`
1660

    
1661

    
1662

    
1663
Default value: `'custom-'`
1664

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

    
1667
Insert a file into the nftables configuration
1668

    
1669
#### Examples
1670

    
1671
##### Include a file that includes other files
1672

    
1673
```puppet
1674
nftables::file{'geoip':
1675
  content => @(EOT)
1676
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1677
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1678
    |EOT,
1679
}
1680
```
1681

    
1682
#### Parameters
1683

    
1684
The following parameters are available in the `nftables::file` defined type:
1685

    
1686
* [`label`](#-nftables--file--label)
1687
* [`content`](#-nftables--file--content)
1688
* [`source`](#-nftables--file--source)
1689
* [`prefix`](#-nftables--file--prefix)
1690

    
1691
##### <a name="-nftables--file--label"></a>`label`
1692

    
1693
Data type: `String[1]`
1694

    
1695
Unique name to include in filename.
1696

    
1697
Default value: `$title`
1698

    
1699
##### <a name="-nftables--file--content"></a>`content`
1700

    
1701
Data type: `Optional[String]`
1702

    
1703
The content to place in the file.
1704

    
1705
Default value: `undef`
1706

    
1707
##### <a name="-nftables--file--source"></a>`source`
1708

    
1709
Data type: `Optional[Variant[String,Array[String,1]]]`
1710

    
1711
A source to obtain the file content from.
1712

    
1713
Default value: `undef`
1714

    
1715
##### <a name="-nftables--file--prefix"></a>`prefix`
1716

    
1717
Data type: `String`
1718

    
1719
Prefix of file name to be created, if left as `file-` it will be
1720
auto included in the main nft configuration
1721

    
1722
Default value: `'file-'`
1723

    
1724
### <a name="nftables--helper"></a>`nftables::helper`
1725

    
1726
manage a conntrack helper
1727

    
1728
#### Examples
1729

    
1730
##### FTP helper
1731

    
1732
```puppet
1733
nftables::helper { 'ftp-standard':
1734
  content => 'type "ftp" protocol tcp;',
1735
}
1736
```
1737

    
1738
#### Parameters
1739

    
1740
The following parameters are available in the `nftables::helper` defined type:
1741

    
1742
* [`content`](#-nftables--helper--content)
1743
* [`table`](#-nftables--helper--table)
1744
* [`helper`](#-nftables--helper--helper)
1745

    
1746
##### <a name="-nftables--helper--content"></a>`content`
1747

    
1748
Data type: `String`
1749

    
1750
Conntrack helper definition.
1751

    
1752
##### <a name="-nftables--helper--table"></a>`table`
1753

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

    
1756
The name of the table to add this helper to.
1757

    
1758
Default value: `'inet-filter'`
1759

    
1760
##### <a name="-nftables--helper--helper"></a>`helper`
1761

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

    
1764
The symbolic name for the helper.
1765

    
1766
Default value: `$title`
1767

    
1768
### <a name="nftables--rule"></a>`nftables::rule`
1769

    
1770
Provides an interface to create a firewall rule
1771

    
1772
#### Examples
1773

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

    
1776
```puppet
1777
nftables::rule {
1778
  'default_in-myhttp':
1779
    content => 'tcp dport 80 accept',
1780
}
1781
```
1782

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

    
1785
```puppet
1786
nftables::rule {
1787
  'PREROUTING6-count':
1788
    content => 'counter',
1789
    table   => 'ip6-nat'
1790
}
1791
```
1792

    
1793
##### Redirect port 443 to port 8443
1794

    
1795
```puppet
1796
nftables::rule { 'PREROUTING-redirect':
1797
  content => 'tcp dport 443 redirect to :8443',
1798
  table   => 'ip-nat',
1799
}
1800
nftables::rule{'PREROUTING6-redirect':
1801
  content => 'tcp dport 443 redirect to :8443',
1802
  table   => 'ip6-nat',
1803
}
1804
```
1805

    
1806
#### Parameters
1807

    
1808
The following parameters are available in the `nftables::rule` defined type:
1809

    
1810
* [`ensure`](#-nftables--rule--ensure)
1811
* [`rulename`](#-nftables--rule--rulename)
1812
* [`order`](#-nftables--rule--order)
1813
* [`table`](#-nftables--rule--table)
1814
* [`content`](#-nftables--rule--content)
1815
* [`source`](#-nftables--rule--source)
1816

    
1817
##### <a name="-nftables--rule--ensure"></a>`ensure`
1818

    
1819
Data type: `Enum['present','absent']`
1820

    
1821
Should the rule be created.
1822

    
1823
Default value: `'present'`
1824

    
1825
##### <a name="-nftables--rule--rulename"></a>`rulename`
1826

    
1827
Data type: `Nftables::RuleName`
1828

    
1829
The symbolic name for the rule and to what chain to add it. The
1830
format is defined by the Nftables::RuleName type.
1831

    
1832
Default value: `$title`
1833

    
1834
##### <a name="-nftables--rule--order"></a>`order`
1835

    
1836
Data type: `Pattern[/^\d\d$/]`
1837

    
1838
A number representing the order of the rule.
1839

    
1840
Default value: `'50'`
1841

    
1842
##### <a name="-nftables--rule--table"></a>`table`
1843

    
1844
Data type: `String`
1845

    
1846
The name of the table to add this rule to.
1847

    
1848
Default value: `'inet-filter'`
1849

    
1850
##### <a name="-nftables--rule--content"></a>`content`
1851

    
1852
Data type: `Optional[String]`
1853

    
1854
The raw statements that compose the rule represented using the nftables
1855
language.
1856

    
1857
Default value: `undef`
1858

    
1859
##### <a name="-nftables--rule--source"></a>`source`
1860

    
1861
Data type: `Optional[Variant[String,Array[String,1]]]`
1862

    
1863
Same goal as content but sourcing the value from a file.
1864

    
1865
Default value: `undef`
1866

    
1867
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1868

    
1869
manage a ipv4 dnat rule
1870

    
1871
#### Parameters
1872

    
1873
The following parameters are available in the `nftables::rules::dnat4` defined type:
1874

    
1875
* [`daddr`](#-nftables--rules--dnat4--daddr)
1876
* [`port`](#-nftables--rules--dnat4--port)
1877
* [`rulename`](#-nftables--rules--dnat4--rulename)
1878
* [`order`](#-nftables--rules--dnat4--order)
1879
* [`chain`](#-nftables--rules--dnat4--chain)
1880
* [`iif`](#-nftables--rules--dnat4--iif)
1881
* [`proto`](#-nftables--rules--dnat4--proto)
1882
* [`dport`](#-nftables--rules--dnat4--dport)
1883
* [`ensure`](#-nftables--rules--dnat4--ensure)
1884

    
1885
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1886

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

    
1889

    
1890

    
1891
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1892

    
1893
Data type: `Variant[String,Stdlib::Port]`
1894

    
1895

    
1896

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

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

    
1901

    
1902

    
1903
Default value: `$title`
1904

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

    
1907
Data type: `Pattern[/^\d\d$/]`
1908

    
1909

    
1910

    
1911
Default value: `'50'`
1912

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

    
1915
Data type: `String[1]`
1916

    
1917

    
1918

    
1919
Default value: `'default_fwd'`
1920

    
1921
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1922

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

    
1925

    
1926

    
1927
Default value: `undef`
1928

    
1929
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1930

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

    
1933

    
1934

    
1935
Default value: `'tcp'`
1936

    
1937
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1938

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

    
1941

    
1942

    
1943
Default value: `undef`
1944

    
1945
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1946

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

    
1949

    
1950

    
1951
Default value: `'present'`
1952

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

    
1955
masquerade all outgoing traffic
1956

    
1957
#### Parameters
1958

    
1959
The following parameters are available in the `nftables::rules::masquerade` defined type:
1960

    
1961
* [`rulename`](#-nftables--rules--masquerade--rulename)
1962
* [`order`](#-nftables--rules--masquerade--order)
1963
* [`chain`](#-nftables--rules--masquerade--chain)
1964
* [`oif`](#-nftables--rules--masquerade--oif)
1965
* [`saddr`](#-nftables--rules--masquerade--saddr)
1966
* [`daddr`](#-nftables--rules--masquerade--daddr)
1967
* [`proto`](#-nftables--rules--masquerade--proto)
1968
* [`dport`](#-nftables--rules--masquerade--dport)
1969
* [`ensure`](#-nftables--rules--masquerade--ensure)
1970

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

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

    
1975

    
1976

    
1977
Default value: `$title`
1978

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

    
1981
Data type: `Pattern[/^\d\d$/]`
1982

    
1983

    
1984

    
1985
Default value: `'70'`
1986

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

    
1989
Data type: `String[1]`
1990

    
1991

    
1992

    
1993
Default value: `'POSTROUTING'`
1994

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

    
1997
Data type: `Optional[String[1]]`
1998

    
1999

    
2000

    
2001
Default value: `undef`
2002

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

    
2005
Data type: `Optional[String[1]]`
2006

    
2007

    
2008

    
2009
Default value: `undef`
2010

    
2011
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
2012

    
2013
Data type: `Optional[String[1]]`
2014

    
2015

    
2016

    
2017
Default value: `undef`
2018

    
2019
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
2020

    
2021
Data type: `Optional[Enum['tcp','udp']]`
2022

    
2023

    
2024

    
2025
Default value: `undef`
2026

    
2027
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
2028

    
2029
Data type: `Optional[Variant[String,Stdlib::Port]]`
2030

    
2031

    
2032

    
2033
Default value: `undef`
2034

    
2035
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
2036

    
2037
Data type: `Enum['present','absent']`
2038

    
2039

    
2040

    
2041
Default value: `'present'`
2042

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

    
2045
manage a ipv4 snat rule
2046

    
2047
#### Parameters
2048

    
2049
The following parameters are available in the `nftables::rules::snat4` defined type:
2050

    
2051
* [`snat`](#-nftables--rules--snat4--snat)
2052
* [`rulename`](#-nftables--rules--snat4--rulename)
2053
* [`order`](#-nftables--rules--snat4--order)
2054
* [`chain`](#-nftables--rules--snat4--chain)
2055
* [`oif`](#-nftables--rules--snat4--oif)
2056
* [`saddr`](#-nftables--rules--snat4--saddr)
2057
* [`proto`](#-nftables--rules--snat4--proto)
2058
* [`dport`](#-nftables--rules--snat4--dport)
2059
* [`ensure`](#-nftables--rules--snat4--ensure)
2060

    
2061
##### <a name="-nftables--rules--snat4--snat"></a>`snat`
2062

    
2063
Data type: `String[1]`
2064

    
2065

    
2066

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

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

    
2071

    
2072

    
2073
Default value: `$title`
2074

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

    
2077
Data type: `Pattern[/^\d\d$/]`
2078

    
2079

    
2080

    
2081
Default value: `'70'`
2082

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

    
2085
Data type: `String[1]`
2086

    
2087

    
2088

    
2089
Default value: `'POSTROUTING'`
2090

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

    
2093
Data type: `Optional[String[1]]`
2094

    
2095

    
2096

    
2097
Default value: `undef`
2098

    
2099
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
2100

    
2101
Data type: `Optional[String[1]]`
2102

    
2103

    
2104

    
2105
Default value: `undef`
2106

    
2107
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
2108

    
2109
Data type: `Optional[Enum['tcp','udp']]`
2110

    
2111

    
2112

    
2113
Default value: `undef`
2114

    
2115
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
2116

    
2117
Data type: `Optional[Variant[String,Stdlib::Port]]`
2118

    
2119

    
2120

    
2121
Default value: `undef`
2122

    
2123
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
2124

    
2125
Data type: `Enum['present','absent']`
2126

    
2127

    
2128

    
2129
Default value: `'present'`
2130

    
2131
### <a name="nftables--set"></a>`nftables::set`
2132

    
2133
manage a named set
2134

    
2135
#### Examples
2136

    
2137
##### simple set
2138

    
2139
```puppet
2140
nftables::set{'my_set':
2141
  type       => 'ipv4_addr',
2142
  flags      => ['interval'],
2143
  elements   => ['192.168.0.1/24', '10.0.0.2'],
2144
  auto_merge => true,
2145
}
2146
```
2147

    
2148
#### Parameters
2149

    
2150
The following parameters are available in the `nftables::set` defined type:
2151

    
2152
* [`ensure`](#-nftables--set--ensure)
2153
* [`setname`](#-nftables--set--setname)
2154
* [`order`](#-nftables--set--order)
2155
* [`type`](#-nftables--set--type)
2156
* [`table`](#-nftables--set--table)
2157
* [`flags`](#-nftables--set--flags)
2158
* [`timeout`](#-nftables--set--timeout)
2159
* [`gc_interval`](#-nftables--set--gc_interval)
2160
* [`elements`](#-nftables--set--elements)
2161
* [`size`](#-nftables--set--size)
2162
* [`policy`](#-nftables--set--policy)
2163
* [`auto_merge`](#-nftables--set--auto_merge)
2164
* [`content`](#-nftables--set--content)
2165
* [`source`](#-nftables--set--source)
2166

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

    
2169
Data type: `Enum['present','absent']`
2170

    
2171
should the set be created.
2172

    
2173
Default value: `'present'`
2174

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

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

    
2179
name of set, equal to to title.
2180

    
2181
Default value: `$title`
2182

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

    
2185
Data type: `Pattern[/^\d\d$/]`
2186

    
2187
concat ordering.
2188

    
2189
Default value: `'10'`
2190

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

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

    
2195
type of set.
2196

    
2197
Default value: `undef`
2198

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

    
2201
Data type: `Variant[String, Array[String, 1]]`
2202

    
2203
table or array of tables to add the set to.
2204

    
2205
Default value: `'inet-filter'`
2206

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

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

    
2211
specify flags for set
2212

    
2213
Default value: `[]`
2214

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

    
2217
Data type: `Optional[Integer]`
2218

    
2219
timeout in seconds
2220

    
2221
Default value: `undef`
2222

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

    
2225
Data type: `Optional[Integer]`
2226

    
2227
garbage collection interval.
2228

    
2229
Default value: `undef`
2230

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

    
2233
Data type: `Optional[Array[String]]`
2234

    
2235
initialize the set with some elements in it.
2236

    
2237
Default value: `undef`
2238

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

    
2241
Data type: `Optional[Integer]`
2242

    
2243
limits the maximum number of elements of the set.
2244

    
2245
Default value: `undef`
2246

    
2247
##### <a name="-nftables--set--policy"></a>`policy`
2248

    
2249
Data type: `Optional[Enum['performance', 'memory']]`
2250

    
2251
determines set selection policy.
2252

    
2253
Default value: `undef`
2254

    
2255
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2256

    
2257
Data type: `Boolean`
2258

    
2259
automatically merge adjacent/overlapping set elements (only valid for interval sets)
2260

    
2261
Default value: `false`
2262

    
2263
##### <a name="-nftables--set--content"></a>`content`
2264

    
2265
Data type: `Optional[String]`
2266

    
2267
specify content of set.
2268

    
2269
Default value: `undef`
2270

    
2271
##### <a name="-nftables--set--source"></a>`source`
2272

    
2273
Data type: `Optional[Variant[String,Array[String,1]]]`
2274

    
2275
specify source of set.
2276

    
2277
Default value: `undef`
2278

    
2279
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2280

    
2281
Provides a simplified interface to nftables::rule
2282

    
2283
#### Examples
2284

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

    
2287
```puppet
2288
nftables::simplerule{'my_service_in':
2289
  action  => 'accept',
2290
  comment => 'allow traffic to port 543',
2291
  counter => true,
2292
  proto   => 'tcp',
2293
  dport   => 543,
2294
  daddr   => '2001:1458::/32',
2295
  sport   => 541,
2296
}
2297
```
2298

    
2299
#### Parameters
2300

    
2301
The following parameters are available in the `nftables::simplerule` defined type:
2302

    
2303
* [`ensure`](#-nftables--simplerule--ensure)
2304
* [`rulename`](#-nftables--simplerule--rulename)
2305
* [`order`](#-nftables--simplerule--order)
2306
* [`chain`](#-nftables--simplerule--chain)
2307
* [`table`](#-nftables--simplerule--table)
2308
* [`action`](#-nftables--simplerule--action)
2309
* [`comment`](#-nftables--simplerule--comment)
2310
* [`dport`](#-nftables--simplerule--dport)
2311
* [`proto`](#-nftables--simplerule--proto)
2312
* [`daddr`](#-nftables--simplerule--daddr)
2313
* [`set_type`](#-nftables--simplerule--set_type)
2314
* [`sport`](#-nftables--simplerule--sport)
2315
* [`saddr`](#-nftables--simplerule--saddr)
2316
* [`counter`](#-nftables--simplerule--counter)
2317
* [`iifname`](#-nftables--simplerule--iifname)
2318
* [`oifname`](#-nftables--simplerule--oifname)
2319

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

    
2322
Data type: `Enum['present','absent']`
2323

    
2324
Should the rule be created.
2325

    
2326
Default value: `'present'`
2327

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

    
2330
Data type: `Nftables::SimpleRuleName`
2331

    
2332
The symbolic name for the rule to add. Defaults to the resource's title.
2333

    
2334
Default value: `$title`
2335

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

    
2338
Data type: `Pattern[/^\d\d$/]`
2339

    
2340
A number representing the order of the rule.
2341

    
2342
Default value: `'50'`
2343

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

    
2346
Data type: `String`
2347

    
2348
The name of the chain to add this rule to.
2349

    
2350
Default value: `'default_in'`
2351

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

    
2354
Data type: `String`
2355

    
2356
The name of the table to add this rule to.
2357

    
2358
Default value: `'inet-filter'`
2359

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

    
2362
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2363

    
2364
The verdict for the matched traffic.
2365

    
2366
Default value: `'accept'`
2367

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

    
2370
Data type: `Optional[String]`
2371

    
2372
A typically human-readable comment for the rule.
2373

    
2374
Default value: `undef`
2375

    
2376
##### <a name="-nftables--simplerule--dport"></a>`dport`
2377

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

    
2380
The destination port, ports or port range.
2381

    
2382
Default value: `undef`
2383

    
2384
##### <a name="-nftables--simplerule--proto"></a>`proto`
2385

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

    
2388
The transport-layer protocol to match.
2389

    
2390
Default value: `undef`
2391

    
2392
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2393

    
2394
Data type: `Optional[Nftables::Addr]`
2395

    
2396
The destination address, CIDR or set to match.
2397

    
2398
Default value: `undef`
2399

    
2400
##### <a name="-nftables--simplerule--set_type"></a>`set_type`
2401

    
2402
Data type: `Enum['ip', 'ip6']`
2403

    
2404
When using sets as saddr or daddr, the type of the set.
2405
Use `ip` for sets of type `ipv4_addr`.
2406

    
2407
Default value: `'ip6'`
2408

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

    
2411
Data type: `Optional[Nftables::Port]`
2412

    
2413
The source port, ports or port range.
2414

    
2415
Default value: `undef`
2416

    
2417
##### <a name="-nftables--simplerule--saddr"></a>`saddr`
2418

    
2419
Data type: `Optional[Nftables::Addr]`
2420

    
2421
The source address, CIDR or set to match.
2422

    
2423
Default value: `undef`
2424

    
2425
##### <a name="-nftables--simplerule--counter"></a>`counter`
2426

    
2427
Data type: `Boolean`
2428

    
2429
Enable traffic counters for the matched traffic.
2430

    
2431
Default value: `false`
2432

    
2433
##### <a name="-nftables--simplerule--iifname"></a>`iifname`
2434

    
2435
Data type: `Variant[Array[String[1]],String[1]]`
2436

    
2437
Optional filter for the incoming interface
2438

    
2439
Default value: `[]`
2440

    
2441
##### <a name="-nftables--simplerule--oifname"></a>`oifname`
2442

    
2443
Data type: `Variant[Array[String[1]],String[1]]`
2444

    
2445
Optional filter for the outgoing interface
2446

    
2447
Default value: `[]`
2448

    
2449
## Data types
2450

    
2451
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2452

    
2453
Represents an address expression to be used within a rule.
2454

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

    
2457
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2458

    
2459
Represents a set expression to be used within a rule.
2460

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

    
2463
### <a name="Nftables--Port"></a>`Nftables::Port`
2464

    
2465
Represents a port expression to be used within a rule.
2466

    
2467
Alias of `Variant[Array[Variant[Nftables::Port::Range, Stdlib::Port], 1], Stdlib::Port, Nftables::Port::Range]`
2468

    
2469
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2470

    
2471
Represents a port range expression to be used within a rule.
2472

    
2473
Alias of `Pattern[/^\d+-\d+$/]`
2474

    
2475
### <a name="Nftables--RuleName"></a>`Nftables::RuleName`
2476

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

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

    
2484
### <a name="Nftables--SimpleRuleName"></a>`Nftables::SimpleRuleName`
2485

    
2486
Represents a simple rule name to be used in a rule created via nftables::simplerule
2487

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