Projet

Général

Profil

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

root / REFERENCE.md @ 3e2b5119

Historique | Voir | Annoter | Télécharger (63 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
#### Parameters
856

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

    
859
* [`iifname`](#-nftables--rules--ospf3--iifname)
860

    
861
##### <a name="-nftables--rules--ospf3--iifname"></a>`iifname`
862

    
863
Data type: `Array[String[1]]`
864

    
865
optional list of incoming interfaces to allow traffic
866

    
867
Default value: `[]`
868

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

    
871
manage outgoing active diectory
872

    
873
#### Parameters
874

    
875
The following parameters are available in the `nftables::rules::out::active_directory` class:
876

    
877
* [`adserver`](#-nftables--rules--out--active_directory--adserver)
878
* [`adserver_ports`](#-nftables--rules--out--active_directory--adserver_ports)
879

    
880
##### <a name="-nftables--rules--out--active_directory--adserver"></a>`adserver`
881

    
882
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
883

    
884
adserver IPs
885

    
886
##### <a name="-nftables--rules--out--active_directory--adserver_ports"></a>`adserver_ports`
887

    
888
Data type: `Array[Stdlib::Port,1]`
889

    
890
adserver ports
891

    
892
Default value: `[389, 636, 3268, 3269]`
893

    
894
### <a name="nftables--rules--out--all"></a>`nftables::rules::out::all`
895

    
896
allow all outbound
897

    
898
### <a name="nftables--rules--out--ceph_client"></a>`nftables::rules::out::ceph_client`
899

    
900
Ceph is a distributed object store and file system.
901
Enable this to be a client of Ceph's Monitor (MON),
902
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
903
and Manager Daemons (MGR).
904

    
905
#### Parameters
906

    
907
The following parameters are available in the `nftables::rules::out::ceph_client` class:
908

    
909
* [`ports`](#-nftables--rules--out--ceph_client--ports)
910

    
911
##### <a name="-nftables--rules--out--ceph_client--ports"></a>`ports`
912

    
913
Data type: `Array[Stdlib::Port,1]`
914

    
915
Specify ports to open
916

    
917
Default value: `[3300, 6789]`
918

    
919
### <a name="nftables--rules--out--chrony"></a>`nftables::rules::out::chrony`
920

    
921
manage out chrony
922

    
923
#### Parameters
924

    
925
The following parameters are available in the `nftables::rules::out::chrony` class:
926

    
927
* [`servers`](#-nftables--rules--out--chrony--servers)
928

    
929
##### <a name="-nftables--rules--out--chrony--servers"></a>`servers`
930

    
931
Data type: `Array[Stdlib::IP::Address]`
932

    
933
single IP-Address or array of IP-addresses from NTP servers
934

    
935
Default value: `[]`
936

    
937
### <a name="nftables--rules--out--dhcp"></a>`nftables::rules::out::dhcp`
938

    
939
manage out dhcp
940

    
941
### <a name="nftables--rules--out--dhcpv6_client"></a>`nftables::rules::out::dhcpv6_client`
942

    
943
Allow DHCPv6 requests out of a host
944

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

    
947
manage out dns
948

    
949
#### Parameters
950

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

    
953
* [`dns_server`](#-nftables--rules--out--dns--dns_server)
954

    
955
##### <a name="-nftables--rules--out--dns--dns_server"></a>`dns_server`
956

    
957
Data type: `Array[Stdlib::IP::Address]`
958

    
959
specify dns_server name
960

    
961
Default value: `[]`
962

    
963
### <a name="nftables--rules--out--hkp"></a>`nftables::rules::out::hkp`
964

    
965
allow outgoing hkp connections to gpg keyservers
966

    
967
### <a name="nftables--rules--out--http"></a>`nftables::rules::out::http`
968

    
969
manage out http
970

    
971
### <a name="nftables--rules--out--https"></a>`nftables::rules::out::https`
972

    
973
manage out https
974

    
975
### <a name="nftables--rules--out--icmp"></a>`nftables::rules::out::icmp`
976

    
977
control outbound icmp packages
978

    
979
#### Parameters
980

    
981
The following parameters are available in the `nftables::rules::out::icmp` class:
982

    
983
* [`v4_types`](#-nftables--rules--out--icmp--v4_types)
984
* [`v6_types`](#-nftables--rules--out--icmp--v6_types)
985
* [`order`](#-nftables--rules--out--icmp--order)
986

    
987
##### <a name="-nftables--rules--out--icmp--v4_types"></a>`v4_types`
988

    
989
Data type: `Optional[Array[String]]`
990

    
991
ICMP v4 types that should be allowed
992

    
993
Default value: `undef`
994

    
995
##### <a name="-nftables--rules--out--icmp--v6_types"></a>`v6_types`
996

    
997
Data type: `Optional[Array[String]]`
998

    
999
ICMP v6 types that should be allowed
1000

    
1001
Default value: `undef`
1002

    
1003
##### <a name="-nftables--rules--out--icmp--order"></a>`order`
1004

    
1005
Data type: `String`
1006

    
1007
the ordering of the rules
1008

    
1009
Default value: `'10'`
1010

    
1011
### <a name="nftables--rules--out--igmp"></a>`nftables::rules::out::igmp`
1012

    
1013
allow outgoing IGMP messages
1014

    
1015
### <a name="nftables--rules--out--imap"></a>`nftables::rules::out::imap`
1016

    
1017
allow outgoing imap
1018

    
1019
### <a name="nftables--rules--out--kerberos"></a>`nftables::rules::out::kerberos`
1020

    
1021
allows outbound access for kerberos
1022

    
1023
### <a name="nftables--rules--out--ldap"></a>`nftables::rules::out::ldap`
1024

    
1025
manage outgoing ldap
1026

    
1027
#### Parameters
1028

    
1029
The following parameters are available in the `nftables::rules::out::ldap` class:
1030

    
1031
* [`ldapserver`](#-nftables--rules--out--ldap--ldapserver)
1032
* [`ldapserver_ports`](#-nftables--rules--out--ldap--ldapserver_ports)
1033

    
1034
##### <a name="-nftables--rules--out--ldap--ldapserver"></a>`ldapserver`
1035

    
1036
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1037

    
1038
ldapserver IPs
1039

    
1040
##### <a name="-nftables--rules--out--ldap--ldapserver_ports"></a>`ldapserver_ports`
1041

    
1042
Data type: `Array[Stdlib::Port,1]`
1043

    
1044
ldapserver ports
1045

    
1046
Default value: `[389, 636]`
1047

    
1048
### <a name="nftables--rules--out--mdns"></a>`nftables::rules::out::mdns`
1049

    
1050
allow outgoing multicast DNS
1051

    
1052
#### Parameters
1053

    
1054
The following parameters are available in the `nftables::rules::out::mdns` class:
1055

    
1056
* [`ipv4`](#-nftables--rules--out--mdns--ipv4)
1057
* [`ipv6`](#-nftables--rules--out--mdns--ipv6)
1058
* [`oifname`](#-nftables--rules--out--mdns--oifname)
1059

    
1060
##### <a name="-nftables--rules--out--mdns--ipv4"></a>`ipv4`
1061

    
1062
Data type: `Boolean`
1063

    
1064
Allow mdns over IPv4
1065

    
1066
Default value: `true`
1067

    
1068
##### <a name="-nftables--rules--out--mdns--ipv6"></a>`ipv6`
1069

    
1070
Data type: `Boolean`
1071

    
1072
Allow mdns over IPv6
1073

    
1074
Default value: `true`
1075

    
1076
##### <a name="-nftables--rules--out--mdns--oifname"></a>`oifname`
1077

    
1078
Data type: `Array[String[1]]`
1079

    
1080
optional name for outgoing interfaces
1081

    
1082
Default value: `[]`
1083

    
1084
### <a name="nftables--rules--out--mldv2"></a>`nftables::rules::out::mldv2`
1085

    
1086
allow multicast listener requests
1087

    
1088
### <a name="nftables--rules--out--mysql"></a>`nftables::rules::out::mysql`
1089

    
1090
manage out mysql
1091

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

    
1094
manage out nfs
1095

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

    
1098
manage out nfs3
1099

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

    
1102
allows outbound access for afs clients
1103
7000 - afs3-fileserver
1104
7002 - afs3-ptserver
1105
7003 - vlserver
1106

    
1107
* **See also**
1108
  * https://wiki.openafs.org/devel/AFSServicePorts/
1109
    * AFS Service Ports
1110

    
1111
#### Parameters
1112

    
1113
The following parameters are available in the `nftables::rules::out::openafs_client` class:
1114

    
1115
* [`ports`](#-nftables--rules--out--openafs_client--ports)
1116

    
1117
##### <a name="-nftables--rules--out--openafs_client--ports"></a>`ports`
1118

    
1119
Data type: `Array[Stdlib::Port,1]`
1120

    
1121
port numbers to use
1122

    
1123
Default value: `[7000, 7002, 7003]`
1124

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

    
1127
manage out ospf
1128

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

    
1131
manage out ospf3
1132

    
1133
#### Parameters
1134

    
1135
The following parameters are available in the `nftables::rules::out::ospf3` class:
1136

    
1137
* [`oifname`](#-nftables--rules--out--ospf3--oifname)
1138

    
1139
##### <a name="-nftables--rules--out--ospf3--oifname"></a>`oifname`
1140

    
1141
Data type: `Array[String[1]]`
1142

    
1143
optional list of outgoing interfaces to filter on
1144

    
1145
Default value: `[]`
1146

    
1147
### <a name="nftables--rules--out--pop3"></a>`nftables::rules::out::pop3`
1148

    
1149
allow outgoing pop3
1150

    
1151
### <a name="nftables--rules--out--postgres"></a>`nftables::rules::out::postgres`
1152

    
1153
manage out postgres
1154

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

    
1157
manage outgoing puppet
1158

    
1159
#### Parameters
1160

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

    
1163
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1164
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1165

    
1166
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1167

    
1168
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1169

    
1170
puppetserver hostname
1171

    
1172
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1173

    
1174
Data type: `Stdlib::Port`
1175

    
1176
puppetserver port
1177

    
1178
Default value: `8140`
1179

    
1180
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1181

    
1182
manage outgoing pxp-agent
1183

    
1184
* **See also**
1185
  * also
1186
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1187

    
1188
#### Parameters
1189

    
1190
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1191

    
1192
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1193
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1194

    
1195
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1196

    
1197
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1198

    
1199
PXP broker IP(s)
1200

    
1201
##### <a name="-nftables--rules--out--pxp_agent--broker_port"></a>`broker_port`
1202

    
1203
Data type: `Stdlib::Port`
1204

    
1205
PXP broker port
1206

    
1207
Default value: `8142`
1208

    
1209
### <a name="nftables--rules--out--smtp"></a>`nftables::rules::out::smtp`
1210

    
1211
allow outgoing smtp
1212

    
1213
### <a name="nftables--rules--out--smtp_client"></a>`nftables::rules::out::smtp_client`
1214

    
1215
allow outgoing smtp client
1216

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

    
1219
allow outgoing SSDP
1220

    
1221
* **See also**
1222
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1223

    
1224
#### Parameters
1225

    
1226
The following parameters are available in the `nftables::rules::out::ssdp` class:
1227

    
1228
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1229
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1230

    
1231
##### <a name="-nftables--rules--out--ssdp--ipv4"></a>`ipv4`
1232

    
1233
Data type: `Boolean`
1234

    
1235
Allow SSDP over IPv4
1236

    
1237
Default value: `true`
1238

    
1239
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1240

    
1241
Data type: `Boolean`
1242

    
1243
Allow SSDP over IPv6
1244

    
1245
Default value: `true`
1246

    
1247
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1248

    
1249
manage out ssh
1250

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

    
1253
disable outgoing ssh
1254

    
1255
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1256

    
1257
manage out tor
1258

    
1259
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1260

    
1261
allow clients to query remote whois server
1262

    
1263
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1264

    
1265
manage out wireguard
1266

    
1267
#### Parameters
1268

    
1269
The following parameters are available in the `nftables::rules::out::wireguard` class:
1270

    
1271
* [`ports`](#-nftables--rules--out--wireguard--ports)
1272

    
1273
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1274

    
1275
Data type: `Array[Integer,1]`
1276

    
1277
specify wireguard ports
1278

    
1279
Default value: `[51820]`
1280

    
1281
### <a name="nftables--rules--podman"></a>`nftables::rules::podman`
1282

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

    
1289
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1290

    
1291
manage in puppet
1292

    
1293
#### Parameters
1294

    
1295
The following parameters are available in the `nftables::rules::puppet` class:
1296

    
1297
* [`ports`](#-nftables--rules--puppet--ports)
1298

    
1299
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1300

    
1301
Data type: `Array[Integer,1]`
1302

    
1303
puppet server ports
1304

    
1305
Default value: `[8140]`
1306

    
1307
### <a name="nftables--rules--pxp_agent"></a>`nftables::rules::pxp_agent`
1308

    
1309
manage in pxp-agent
1310

    
1311
#### Parameters
1312

    
1313
The following parameters are available in the `nftables::rules::pxp_agent` class:
1314

    
1315
* [`ports`](#-nftables--rules--pxp_agent--ports)
1316

    
1317
##### <a name="-nftables--rules--pxp_agent--ports"></a>`ports`
1318

    
1319
Data type: `Array[Stdlib::Port,1]`
1320

    
1321
pxp server ports
1322

    
1323
Default value: `[8142]`
1324

    
1325
### <a name="nftables--rules--qemu"></a>`nftables::rules::qemu`
1326

    
1327
This class configures the typical firewall setup that libvirt
1328
creates. Depending on your requirements you can switch on and off
1329
several aspects, for instance if you don't do DHCP to your guests
1330
you can disable the rules that accept DHCP traffic on the host or if
1331
you don't want your guests to talk to hosts outside you can disable
1332
forwarding and/or masquerading for IPv4 traffic.
1333

    
1334
#### Parameters
1335

    
1336
The following parameters are available in the `nftables::rules::qemu` class:
1337

    
1338
* [`interface`](#-nftables--rules--qemu--interface)
1339
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1340
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1341
* [`dns`](#-nftables--rules--qemu--dns)
1342
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1343
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1344
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1345
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1346

    
1347
##### <a name="-nftables--rules--qemu--interface"></a>`interface`
1348

    
1349
Data type: `String[1]`
1350

    
1351
Interface name used by the bridge.
1352

    
1353
Default value: `'virbr0'`
1354

    
1355
##### <a name="-nftables--rules--qemu--network_v4"></a>`network_v4`
1356

    
1357
Data type: `Stdlib::IP::Address::V4::CIDR`
1358

    
1359
The IPv4 network prefix used in the virtual network.
1360

    
1361
Default value: `'192.168.122.0/24'`
1362

    
1363
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1364

    
1365
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1366

    
1367
The IPv6 network prefix used in the virtual network.
1368

    
1369
Default value: `undef`
1370

    
1371
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1372

    
1373
Data type: `Boolean`
1374

    
1375
Allow DNS traffic from the guests to the host.
1376

    
1377
Default value: `true`
1378

    
1379
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1380

    
1381
Data type: `Boolean`
1382

    
1383
Allow DHCPv4 traffic from the guests to the host.
1384

    
1385
Default value: `true`
1386

    
1387
##### <a name="-nftables--rules--qemu--forward_traffic"></a>`forward_traffic`
1388

    
1389
Data type: `Boolean`
1390

    
1391
Allow forwarded traffic (out all, in related/established)
1392
generated by the virtual network.
1393

    
1394
Default value: `true`
1395

    
1396
##### <a name="-nftables--rules--qemu--internal_traffic"></a>`internal_traffic`
1397

    
1398
Data type: `Boolean`
1399

    
1400
Allow guests in the virtual network to talk to each other.
1401

    
1402
Default value: `true`
1403

    
1404
##### <a name="-nftables--rules--qemu--masquerade"></a>`masquerade`
1405

    
1406
Data type: `Boolean`
1407

    
1408
Do NAT masquerade on all IPv4 traffic generated by guests
1409
to external networks.
1410

    
1411
Default value: `true`
1412

    
1413
### <a name="nftables--rules--samba"></a>`nftables::rules::samba`
1414

    
1415
manage Samba, the suite to allow Windows file sharing on Linux resources.
1416

    
1417
#### Parameters
1418

    
1419
The following parameters are available in the `nftables::rules::samba` class:
1420

    
1421
* [`ctdb`](#-nftables--rules--samba--ctdb)
1422
* [`action`](#-nftables--rules--samba--action)
1423

    
1424
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1425

    
1426
Data type: `Boolean`
1427

    
1428
Enable ctdb-driven clustered Samba setups
1429

    
1430
Default value: `false`
1431

    
1432
##### <a name="-nftables--rules--samba--action"></a>`action`
1433

    
1434
Data type: `Enum['accept', 'drop']`
1435

    
1436
if the traffic should be allowed or dropped
1437

    
1438
Default value: `'accept'`
1439

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

    
1442
manage in smtp
1443

    
1444
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1445

    
1446
manage in smtp submission
1447

    
1448
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1449

    
1450
manage in smtps
1451

    
1452
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1453

    
1454
allow incoming spotify
1455

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

    
1458
allow incoming SSDP
1459

    
1460
* **See also**
1461
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1462

    
1463
#### Parameters
1464

    
1465
The following parameters are available in the `nftables::rules::ssdp` class:
1466

    
1467
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1468
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1469

    
1470
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1471

    
1472
Data type: `Boolean`
1473

    
1474
Allow SSDP over IPv4
1475

    
1476
Default value: `true`
1477

    
1478
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1479

    
1480
Data type: `Boolean`
1481

    
1482
Allow SSDP over IPv6
1483

    
1484
Default value: `true`
1485

    
1486
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1487

    
1488
manage in ssh
1489

    
1490
#### Parameters
1491

    
1492
The following parameters are available in the `nftables::rules::ssh` class:
1493

    
1494
* [`ports`](#-nftables--rules--ssh--ports)
1495

    
1496
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1497

    
1498
Data type: `Array[Stdlib::Port,1]`
1499

    
1500
ssh ports
1501

    
1502
Default value: `[22]`
1503

    
1504
### <a name="nftables--rules--tor"></a>`nftables::rules::tor`
1505

    
1506
manage in tor
1507

    
1508
#### Parameters
1509

    
1510
The following parameters are available in the `nftables::rules::tor` class:
1511

    
1512
* [`ports`](#-nftables--rules--tor--ports)
1513

    
1514
##### <a name="-nftables--rules--tor--ports"></a>`ports`
1515

    
1516
Data type: `Array[Stdlib::Port,1]`
1517

    
1518
ports for tor
1519

    
1520
Default value: `[9001]`
1521

    
1522
### <a name="nftables--rules--wireguard"></a>`nftables::rules::wireguard`
1523

    
1524
manage in wireguard
1525

    
1526
#### Parameters
1527

    
1528
The following parameters are available in the `nftables::rules::wireguard` class:
1529

    
1530
* [`ports`](#-nftables--rules--wireguard--ports)
1531

    
1532
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1533

    
1534
Data type: `Array[Stdlib::Port,1]`
1535

    
1536
wiregueard port
1537

    
1538
Default value: `[51820]`
1539

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

    
1542
allow incoming webservice discovery
1543

    
1544
* **See also**
1545
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1546

    
1547
#### Parameters
1548

    
1549
The following parameters are available in the `nftables::rules::wsd` class:
1550

    
1551
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1552
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1553

    
1554
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1555

    
1556
Data type: `Boolean`
1557

    
1558
Allow ws-discovery over IPv4
1559

    
1560
Default value: `true`
1561

    
1562
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1563

    
1564
Data type: `Boolean`
1565

    
1566
Allow ws-discovery over IPv6
1567

    
1568
Default value: `true`
1569

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

    
1572
Allow in and outbound traffic for DHCPv6 server
1573

    
1574
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1575

    
1576
Open inbound and outbound ports for an AFS client
1577

    
1578
## Defined types
1579

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

    
1582
manage a chain
1583

    
1584
#### Parameters
1585

    
1586
The following parameters are available in the `nftables::chain` defined type:
1587

    
1588
* [`table`](#-nftables--chain--table)
1589
* [`chain`](#-nftables--chain--chain)
1590
* [`inject`](#-nftables--chain--inject)
1591
* [`inject_iif`](#-nftables--chain--inject_iif)
1592
* [`inject_oif`](#-nftables--chain--inject_oif)
1593

    
1594
##### <a name="-nftables--chain--table"></a>`table`
1595

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

    
1598

    
1599

    
1600
Default value: `'inet-filter'`
1601

    
1602
##### <a name="-nftables--chain--chain"></a>`chain`
1603

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

    
1606

    
1607

    
1608
Default value: `$title`
1609

    
1610
##### <a name="-nftables--chain--inject"></a>`inject`
1611

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

    
1614

    
1615

    
1616
Default value: `undef`
1617

    
1618
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1619

    
1620
Data type: `Optional[String]`
1621

    
1622

    
1623

    
1624
Default value: `undef`
1625

    
1626
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1627

    
1628
Data type: `Optional[String]`
1629

    
1630

    
1631

    
1632
Default value: `undef`
1633

    
1634
### <a name="nftables--config"></a>`nftables::config`
1635

    
1636
manage a config snippet
1637

    
1638
#### Parameters
1639

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

    
1642
* [`tablespec`](#-nftables--config--tablespec)
1643
* [`content`](#-nftables--config--content)
1644
* [`source`](#-nftables--config--source)
1645
* [`prefix`](#-nftables--config--prefix)
1646

    
1647
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1648

    
1649
Data type: `Pattern[/^\w+-\w+$/]`
1650

    
1651

    
1652

    
1653
Default value: `$title`
1654

    
1655
##### <a name="-nftables--config--content"></a>`content`
1656

    
1657
Data type: `Optional[String]`
1658

    
1659

    
1660

    
1661
Default value: `undef`
1662

    
1663
##### <a name="-nftables--config--source"></a>`source`
1664

    
1665
Data type: `Optional[Variant[String,Array[String,1]]]`
1666

    
1667

    
1668

    
1669
Default value: `undef`
1670

    
1671
##### <a name="-nftables--config--prefix"></a>`prefix`
1672

    
1673
Data type: `String`
1674

    
1675

    
1676

    
1677
Default value: `'custom-'`
1678

    
1679
### <a name="nftables--file"></a>`nftables::file`
1680

    
1681
Insert a file into the nftables configuration
1682

    
1683
#### Examples
1684

    
1685
##### Include a file that includes other files
1686

    
1687
```puppet
1688
nftables::file{'geoip':
1689
  content => @(EOT)
1690
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1691
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1692
    |EOT,
1693
}
1694
```
1695

    
1696
#### Parameters
1697

    
1698
The following parameters are available in the `nftables::file` defined type:
1699

    
1700
* [`label`](#-nftables--file--label)
1701
* [`content`](#-nftables--file--content)
1702
* [`source`](#-nftables--file--source)
1703
* [`prefix`](#-nftables--file--prefix)
1704

    
1705
##### <a name="-nftables--file--label"></a>`label`
1706

    
1707
Data type: `String[1]`
1708

    
1709
Unique name to include in filename.
1710

    
1711
Default value: `$title`
1712

    
1713
##### <a name="-nftables--file--content"></a>`content`
1714

    
1715
Data type: `Optional[String]`
1716

    
1717
The content to place in the file.
1718

    
1719
Default value: `undef`
1720

    
1721
##### <a name="-nftables--file--source"></a>`source`
1722

    
1723
Data type: `Optional[Variant[String,Array[String,1]]]`
1724

    
1725
A source to obtain the file content from.
1726

    
1727
Default value: `undef`
1728

    
1729
##### <a name="-nftables--file--prefix"></a>`prefix`
1730

    
1731
Data type: `String`
1732

    
1733
Prefix of file name to be created, if left as `file-` it will be
1734
auto included in the main nft configuration
1735

    
1736
Default value: `'file-'`
1737

    
1738
### <a name="nftables--helper"></a>`nftables::helper`
1739

    
1740
manage a conntrack helper
1741

    
1742
#### Examples
1743

    
1744
##### FTP helper
1745

    
1746
```puppet
1747
nftables::helper { 'ftp-standard':
1748
  content => 'type "ftp" protocol tcp;',
1749
}
1750
```
1751

    
1752
#### Parameters
1753

    
1754
The following parameters are available in the `nftables::helper` defined type:
1755

    
1756
* [`content`](#-nftables--helper--content)
1757
* [`table`](#-nftables--helper--table)
1758
* [`helper`](#-nftables--helper--helper)
1759

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

    
1762
Data type: `String`
1763

    
1764
Conntrack helper definition.
1765

    
1766
##### <a name="-nftables--helper--table"></a>`table`
1767

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

    
1770
The name of the table to add this helper to.
1771

    
1772
Default value: `'inet-filter'`
1773

    
1774
##### <a name="-nftables--helper--helper"></a>`helper`
1775

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

    
1778
The symbolic name for the helper.
1779

    
1780
Default value: `$title`
1781

    
1782
### <a name="nftables--rule"></a>`nftables::rule`
1783

    
1784
Provides an interface to create a firewall rule
1785

    
1786
#### Examples
1787

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

    
1790
```puppet
1791
nftables::rule {
1792
  'default_in-myhttp':
1793
    content => 'tcp dport 80 accept',
1794
}
1795
```
1796

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

    
1799
```puppet
1800
nftables::rule {
1801
  'PREROUTING6-count':
1802
    content => 'counter',
1803
    table   => 'ip6-nat'
1804
}
1805
```
1806

    
1807
##### Redirect port 443 to port 8443
1808

    
1809
```puppet
1810
nftables::rule { 'PREROUTING-redirect':
1811
  content => 'tcp dport 443 redirect to :8443',
1812
  table   => 'ip-nat',
1813
}
1814
nftables::rule{'PREROUTING6-redirect':
1815
  content => 'tcp dport 443 redirect to :8443',
1816
  table   => 'ip6-nat',
1817
}
1818
```
1819

    
1820
#### Parameters
1821

    
1822
The following parameters are available in the `nftables::rule` defined type:
1823

    
1824
* [`ensure`](#-nftables--rule--ensure)
1825
* [`rulename`](#-nftables--rule--rulename)
1826
* [`order`](#-nftables--rule--order)
1827
* [`table`](#-nftables--rule--table)
1828
* [`content`](#-nftables--rule--content)
1829
* [`source`](#-nftables--rule--source)
1830

    
1831
##### <a name="-nftables--rule--ensure"></a>`ensure`
1832

    
1833
Data type: `Enum['present','absent']`
1834

    
1835
Should the rule be created.
1836

    
1837
Default value: `'present'`
1838

    
1839
##### <a name="-nftables--rule--rulename"></a>`rulename`
1840

    
1841
Data type: `Nftables::RuleName`
1842

    
1843
The symbolic name for the rule and to what chain to add it. The
1844
format is defined by the Nftables::RuleName type.
1845

    
1846
Default value: `$title`
1847

    
1848
##### <a name="-nftables--rule--order"></a>`order`
1849

    
1850
Data type: `Pattern[/^\d\d$/]`
1851

    
1852
A number representing the order of the rule.
1853

    
1854
Default value: `'50'`
1855

    
1856
##### <a name="-nftables--rule--table"></a>`table`
1857

    
1858
Data type: `String`
1859

    
1860
The name of the table to add this rule to.
1861

    
1862
Default value: `'inet-filter'`
1863

    
1864
##### <a name="-nftables--rule--content"></a>`content`
1865

    
1866
Data type: `Optional[String]`
1867

    
1868
The raw statements that compose the rule represented using the nftables
1869
language.
1870

    
1871
Default value: `undef`
1872

    
1873
##### <a name="-nftables--rule--source"></a>`source`
1874

    
1875
Data type: `Optional[Variant[String,Array[String,1]]]`
1876

    
1877
Same goal as content but sourcing the value from a file.
1878

    
1879
Default value: `undef`
1880

    
1881
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1882

    
1883
manage a ipv4 dnat rule
1884

    
1885
#### Parameters
1886

    
1887
The following parameters are available in the `nftables::rules::dnat4` defined type:
1888

    
1889
* [`daddr`](#-nftables--rules--dnat4--daddr)
1890
* [`port`](#-nftables--rules--dnat4--port)
1891
* [`rulename`](#-nftables--rules--dnat4--rulename)
1892
* [`order`](#-nftables--rules--dnat4--order)
1893
* [`chain`](#-nftables--rules--dnat4--chain)
1894
* [`iif`](#-nftables--rules--dnat4--iif)
1895
* [`proto`](#-nftables--rules--dnat4--proto)
1896
* [`dport`](#-nftables--rules--dnat4--dport)
1897
* [`ensure`](#-nftables--rules--dnat4--ensure)
1898

    
1899
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1900

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

    
1903

    
1904

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

    
1907
Data type: `Variant[String,Stdlib::Port]`
1908

    
1909

    
1910

    
1911
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1912

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

    
1915

    
1916

    
1917
Default value: `$title`
1918

    
1919
##### <a name="-nftables--rules--dnat4--order"></a>`order`
1920

    
1921
Data type: `Pattern[/^\d\d$/]`
1922

    
1923

    
1924

    
1925
Default value: `'50'`
1926

    
1927
##### <a name="-nftables--rules--dnat4--chain"></a>`chain`
1928

    
1929
Data type: `String[1]`
1930

    
1931

    
1932

    
1933
Default value: `'default_fwd'`
1934

    
1935
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1936

    
1937
Data type: `Optional[String[1]]`
1938

    
1939

    
1940

    
1941
Default value: `undef`
1942

    
1943
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1944

    
1945
Data type: `Enum['tcp','udp']`
1946

    
1947

    
1948

    
1949
Default value: `'tcp'`
1950

    
1951
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1952

    
1953
Data type: `Optional[Variant[String,Stdlib::Port]]`
1954

    
1955

    
1956

    
1957
Default value: `undef`
1958

    
1959
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1960

    
1961
Data type: `Enum['present','absent']`
1962

    
1963

    
1964

    
1965
Default value: `'present'`
1966

    
1967
### <a name="nftables--rules--masquerade"></a>`nftables::rules::masquerade`
1968

    
1969
masquerade all outgoing traffic
1970

    
1971
#### Parameters
1972

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

    
1975
* [`rulename`](#-nftables--rules--masquerade--rulename)
1976
* [`order`](#-nftables--rules--masquerade--order)
1977
* [`chain`](#-nftables--rules--masquerade--chain)
1978
* [`oif`](#-nftables--rules--masquerade--oif)
1979
* [`saddr`](#-nftables--rules--masquerade--saddr)
1980
* [`daddr`](#-nftables--rules--masquerade--daddr)
1981
* [`proto`](#-nftables--rules--masquerade--proto)
1982
* [`dport`](#-nftables--rules--masquerade--dport)
1983
* [`ensure`](#-nftables--rules--masquerade--ensure)
1984

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

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

    
1989

    
1990

    
1991
Default value: `$title`
1992

    
1993
##### <a name="-nftables--rules--masquerade--order"></a>`order`
1994

    
1995
Data type: `Pattern[/^\d\d$/]`
1996

    
1997

    
1998

    
1999
Default value: `'70'`
2000

    
2001
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
2002

    
2003
Data type: `String[1]`
2004

    
2005

    
2006

    
2007
Default value: `'POSTROUTING'`
2008

    
2009
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
2010

    
2011
Data type: `Optional[String[1]]`
2012

    
2013

    
2014

    
2015
Default value: `undef`
2016

    
2017
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
2018

    
2019
Data type: `Optional[String[1]]`
2020

    
2021

    
2022

    
2023
Default value: `undef`
2024

    
2025
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
2026

    
2027
Data type: `Optional[String[1]]`
2028

    
2029

    
2030

    
2031
Default value: `undef`
2032

    
2033
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
2034

    
2035
Data type: `Optional[Enum['tcp','udp']]`
2036

    
2037

    
2038

    
2039
Default value: `undef`
2040

    
2041
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
2042

    
2043
Data type: `Optional[Variant[String,Stdlib::Port]]`
2044

    
2045

    
2046

    
2047
Default value: `undef`
2048

    
2049
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
2050

    
2051
Data type: `Enum['present','absent']`
2052

    
2053

    
2054

    
2055
Default value: `'present'`
2056

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

    
2059
manage a ipv4 snat rule
2060

    
2061
#### Parameters
2062

    
2063
The following parameters are available in the `nftables::rules::snat4` defined type:
2064

    
2065
* [`snat`](#-nftables--rules--snat4--snat)
2066
* [`rulename`](#-nftables--rules--snat4--rulename)
2067
* [`order`](#-nftables--rules--snat4--order)
2068
* [`chain`](#-nftables--rules--snat4--chain)
2069
* [`oif`](#-nftables--rules--snat4--oif)
2070
* [`saddr`](#-nftables--rules--snat4--saddr)
2071
* [`proto`](#-nftables--rules--snat4--proto)
2072
* [`dport`](#-nftables--rules--snat4--dport)
2073
* [`ensure`](#-nftables--rules--snat4--ensure)
2074

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

    
2077
Data type: `String[1]`
2078

    
2079

    
2080

    
2081
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
2082

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

    
2085

    
2086

    
2087
Default value: `$title`
2088

    
2089
##### <a name="-nftables--rules--snat4--order"></a>`order`
2090

    
2091
Data type: `Pattern[/^\d\d$/]`
2092

    
2093

    
2094

    
2095
Default value: `'70'`
2096

    
2097
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
2098

    
2099
Data type: `String[1]`
2100

    
2101

    
2102

    
2103
Default value: `'POSTROUTING'`
2104

    
2105
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
2106

    
2107
Data type: `Optional[String[1]]`
2108

    
2109

    
2110

    
2111
Default value: `undef`
2112

    
2113
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
2114

    
2115
Data type: `Optional[String[1]]`
2116

    
2117

    
2118

    
2119
Default value: `undef`
2120

    
2121
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
2122

    
2123
Data type: `Optional[Enum['tcp','udp']]`
2124

    
2125

    
2126

    
2127
Default value: `undef`
2128

    
2129
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
2130

    
2131
Data type: `Optional[Variant[String,Stdlib::Port]]`
2132

    
2133

    
2134

    
2135
Default value: `undef`
2136

    
2137
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
2138

    
2139
Data type: `Enum['present','absent']`
2140

    
2141

    
2142

    
2143
Default value: `'present'`
2144

    
2145
### <a name="nftables--set"></a>`nftables::set`
2146

    
2147
manage a named set
2148

    
2149
#### Examples
2150

    
2151
##### simple set
2152

    
2153
```puppet
2154
nftables::set{'my_set':
2155
  type       => 'ipv4_addr',
2156
  flags      => ['interval'],
2157
  elements   => ['192.168.0.1/24', '10.0.0.2'],
2158
  auto_merge => true,
2159
}
2160
```
2161

    
2162
#### Parameters
2163

    
2164
The following parameters are available in the `nftables::set` defined type:
2165

    
2166
* [`ensure`](#-nftables--set--ensure)
2167
* [`setname`](#-nftables--set--setname)
2168
* [`order`](#-nftables--set--order)
2169
* [`type`](#-nftables--set--type)
2170
* [`table`](#-nftables--set--table)
2171
* [`flags`](#-nftables--set--flags)
2172
* [`timeout`](#-nftables--set--timeout)
2173
* [`gc_interval`](#-nftables--set--gc_interval)
2174
* [`elements`](#-nftables--set--elements)
2175
* [`size`](#-nftables--set--size)
2176
* [`policy`](#-nftables--set--policy)
2177
* [`auto_merge`](#-nftables--set--auto_merge)
2178
* [`content`](#-nftables--set--content)
2179
* [`source`](#-nftables--set--source)
2180

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

    
2183
Data type: `Enum['present','absent']`
2184

    
2185
should the set be created.
2186

    
2187
Default value: `'present'`
2188

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

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

    
2193
name of set, equal to to title.
2194

    
2195
Default value: `$title`
2196

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

    
2199
Data type: `Pattern[/^\d\d$/]`
2200

    
2201
concat ordering.
2202

    
2203
Default value: `'10'`
2204

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

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

    
2209
type of set.
2210

    
2211
Default value: `undef`
2212

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

    
2215
Data type: `Variant[String, Array[String, 1]]`
2216

    
2217
table or array of tables to add the set to.
2218

    
2219
Default value: `'inet-filter'`
2220

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

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

    
2225
specify flags for set
2226

    
2227
Default value: `[]`
2228

    
2229
##### <a name="-nftables--set--timeout"></a>`timeout`
2230

    
2231
Data type: `Optional[Integer]`
2232

    
2233
timeout in seconds
2234

    
2235
Default value: `undef`
2236

    
2237
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2238

    
2239
Data type: `Optional[Integer]`
2240

    
2241
garbage collection interval.
2242

    
2243
Default value: `undef`
2244

    
2245
##### <a name="-nftables--set--elements"></a>`elements`
2246

    
2247
Data type: `Optional[Array[String]]`
2248

    
2249
initialize the set with some elements in it.
2250

    
2251
Default value: `undef`
2252

    
2253
##### <a name="-nftables--set--size"></a>`size`
2254

    
2255
Data type: `Optional[Integer]`
2256

    
2257
limits the maximum number of elements of the set.
2258

    
2259
Default value: `undef`
2260

    
2261
##### <a name="-nftables--set--policy"></a>`policy`
2262

    
2263
Data type: `Optional[Enum['performance', 'memory']]`
2264

    
2265
determines set selection policy.
2266

    
2267
Default value: `undef`
2268

    
2269
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2270

    
2271
Data type: `Boolean`
2272

    
2273
automatically merge adjacent/overlapping set elements (only valid for interval sets)
2274

    
2275
Default value: `false`
2276

    
2277
##### <a name="-nftables--set--content"></a>`content`
2278

    
2279
Data type: `Optional[String]`
2280

    
2281
specify content of set.
2282

    
2283
Default value: `undef`
2284

    
2285
##### <a name="-nftables--set--source"></a>`source`
2286

    
2287
Data type: `Optional[Variant[String,Array[String,1]]]`
2288

    
2289
specify source of set.
2290

    
2291
Default value: `undef`
2292

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

    
2295
Provides a simplified interface to nftables::rule
2296

    
2297
#### Examples
2298

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

    
2301
```puppet
2302
nftables::simplerule{'my_service_in':
2303
  action  => 'accept',
2304
  comment => 'allow traffic to port 543',
2305
  counter => true,
2306
  proto   => 'tcp',
2307
  dport   => 543,
2308
  daddr   => '2001:1458::/32',
2309
  sport   => 541,
2310
}
2311
```
2312

    
2313
#### Parameters
2314

    
2315
The following parameters are available in the `nftables::simplerule` defined type:
2316

    
2317
* [`ensure`](#-nftables--simplerule--ensure)
2318
* [`rulename`](#-nftables--simplerule--rulename)
2319
* [`order`](#-nftables--simplerule--order)
2320
* [`chain`](#-nftables--simplerule--chain)
2321
* [`table`](#-nftables--simplerule--table)
2322
* [`action`](#-nftables--simplerule--action)
2323
* [`comment`](#-nftables--simplerule--comment)
2324
* [`dport`](#-nftables--simplerule--dport)
2325
* [`proto`](#-nftables--simplerule--proto)
2326
* [`daddr`](#-nftables--simplerule--daddr)
2327
* [`set_type`](#-nftables--simplerule--set_type)
2328
* [`sport`](#-nftables--simplerule--sport)
2329
* [`saddr`](#-nftables--simplerule--saddr)
2330
* [`counter`](#-nftables--simplerule--counter)
2331
* [`iifname`](#-nftables--simplerule--iifname)
2332
* [`oifname`](#-nftables--simplerule--oifname)
2333

    
2334
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2335

    
2336
Data type: `Enum['present','absent']`
2337

    
2338
Should the rule be created.
2339

    
2340
Default value: `'present'`
2341

    
2342
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2343

    
2344
Data type: `Nftables::SimpleRuleName`
2345

    
2346
The symbolic name for the rule to add. Defaults to the resource's title.
2347

    
2348
Default value: `$title`
2349

    
2350
##### <a name="-nftables--simplerule--order"></a>`order`
2351

    
2352
Data type: `Pattern[/^\d\d$/]`
2353

    
2354
A number representing the order of the rule.
2355

    
2356
Default value: `'50'`
2357

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

    
2360
Data type: `String`
2361

    
2362
The name of the chain to add this rule to.
2363

    
2364
Default value: `'default_in'`
2365

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

    
2368
Data type: `String`
2369

    
2370
The name of the table to add this rule to.
2371

    
2372
Default value: `'inet-filter'`
2373

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

    
2376
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2377

    
2378
The verdict for the matched traffic.
2379

    
2380
Default value: `'accept'`
2381

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

    
2384
Data type: `Optional[String]`
2385

    
2386
A typically human-readable comment for the rule.
2387

    
2388
Default value: `undef`
2389

    
2390
##### <a name="-nftables--simplerule--dport"></a>`dport`
2391

    
2392
Data type: `Optional[Nftables::Port]`
2393

    
2394
The destination port, ports or port range.
2395

    
2396
Default value: `undef`
2397

    
2398
##### <a name="-nftables--simplerule--proto"></a>`proto`
2399

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

    
2402
The transport-layer protocol to match.
2403

    
2404
Default value: `undef`
2405

    
2406
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2407

    
2408
Data type: `Optional[Nftables::Addr]`
2409

    
2410
The destination address, CIDR or set to match.
2411

    
2412
Default value: `undef`
2413

    
2414
##### <a name="-nftables--simplerule--set_type"></a>`set_type`
2415

    
2416
Data type: `Enum['ip', 'ip6']`
2417

    
2418
When using sets as saddr or daddr, the type of the set.
2419
Use `ip` for sets of type `ipv4_addr`.
2420

    
2421
Default value: `'ip6'`
2422

    
2423
##### <a name="-nftables--simplerule--sport"></a>`sport`
2424

    
2425
Data type: `Optional[Nftables::Port]`
2426

    
2427
The source port, ports or port range.
2428

    
2429
Default value: `undef`
2430

    
2431
##### <a name="-nftables--simplerule--saddr"></a>`saddr`
2432

    
2433
Data type: `Optional[Nftables::Addr]`
2434

    
2435
The source address, CIDR or set to match.
2436

    
2437
Default value: `undef`
2438

    
2439
##### <a name="-nftables--simplerule--counter"></a>`counter`
2440

    
2441
Data type: `Boolean`
2442

    
2443
Enable traffic counters for the matched traffic.
2444

    
2445
Default value: `false`
2446

    
2447
##### <a name="-nftables--simplerule--iifname"></a>`iifname`
2448

    
2449
Data type: `Variant[Array[String[1]],String[1]]`
2450

    
2451
Optional filter for the incoming interface
2452

    
2453
Default value: `[]`
2454

    
2455
##### <a name="-nftables--simplerule--oifname"></a>`oifname`
2456

    
2457
Data type: `Variant[Array[String[1]],String[1]]`
2458

    
2459
Optional filter for the outgoing interface
2460

    
2461
Default value: `[]`
2462

    
2463
## Data types
2464

    
2465
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2466

    
2467
Represents an address expression to be used within a rule.
2468

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

    
2471
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2472

    
2473
Represents a set expression to be used within a rule.
2474

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

    
2477
### <a name="Nftables--Port"></a>`Nftables::Port`
2478

    
2479
Represents a port expression to be used within a rule.
2480

    
2481
Alias of `Variant[Array[Variant[Nftables::Port::Range, Stdlib::Port], 1], Stdlib::Port, Nftables::Port::Range]`
2482

    
2483
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2484

    
2485
Represents a port range expression to be used within a rule.
2486

    
2487
Alias of `Pattern[/^\d+-\d+$/]`
2488

    
2489
### <a name="Nftables--RuleName"></a>`Nftables::RuleName`
2490

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

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

    
2498
### <a name="Nftables--SimpleRuleName"></a>`Nftables::SimpleRuleName`
2499

    
2500
Represents a simple rule name to be used in a rule created via nftables::simplerule
2501

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