Projet

Général

Profil

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

root / REFERENCE.md @ 4c3d5d6b

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

1
# Reference
2

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

    
5
## Table of Contents
6

    
7
### Classes
8

    
9
* [`nftables`](#nftables): Configure nftables
10
* [`nftables::bridges`](#nftables--bridges): allow forwarding traffic on bridges
11
* [`nftables::inet_filter`](#nftables--inet_filter): manage basic chains in table inet filter
12
* [`nftables::inet_filter::fwd_conntrack`](#nftables--inet_filter--fwd_conntrack): enable conntrack for fwd
13
* [`nftables::inet_filter::in_out_conntrack`](#nftables--inet_filter--in_out_conntrack): manage input & output conntrack
14
* [`nftables::ip_nat`](#nftables--ip_nat): manage basic chains in table ip nat
15
* [`nftables::rules::activemq`](#nftables--rules--activemq): Provides input rules for Apache ActiveMQ
16
* [`nftables::rules::afs3_callback`](#nftables--rules--afs3_callback): Open call back port for AFS clients
17
* [`nftables::rules::ceph`](#nftables--rules--ceph): Ceph is a distributed object store and file system. Enable this to support Ceph's Object Storage Daemons (OSD), Metadata Server Daemons (MDS)
18
* [`nftables::rules::ceph_mon`](#nftables--rules--ceph_mon): Ceph is a distributed object store and file system.
19
Enable this option to support Ceph's Monitor Daemon.
20
* [`nftables::rules::dhcpv6_client`](#nftables--rules--dhcpv6_client): allow DHCPv6 requests in to a host
21
* [`nftables::rules::dns`](#nftables--rules--dns): manage in dns
22
* [`nftables::rules::docker_ce`](#nftables--rules--docker_ce): Default firewall configuration for Docker-CE
23
* [`nftables::rules::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
### <a name="nftables--rules--out--pop3"></a>`nftables::rules::out::pop3`
1120

    
1121
allow outgoing pop3
1122

    
1123
### <a name="nftables--rules--out--postgres"></a>`nftables::rules::out::postgres`
1124

    
1125
manage out postgres
1126

    
1127
### <a name="nftables--rules--out--puppet"></a>`nftables::rules::out::puppet`
1128

    
1129
manage outgoing puppet
1130

    
1131
#### Parameters
1132

    
1133
The following parameters are available in the `nftables::rules::out::puppet` class:
1134

    
1135
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1136
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1137

    
1138
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1139

    
1140
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1141

    
1142
puppetserver hostname
1143

    
1144
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1145

    
1146
Data type: `Stdlib::Port`
1147

    
1148
puppetserver port
1149

    
1150
Default value: `8140`
1151

    
1152
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1153

    
1154
manage outgoing pxp-agent
1155

    
1156
* **See also**
1157
  * also
1158
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1159

    
1160
#### Parameters
1161

    
1162
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1163

    
1164
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1165
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1166

    
1167
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1168

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

    
1171
PXP broker IP(s)
1172

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

    
1175
Data type: `Stdlib::Port`
1176

    
1177
PXP broker port
1178

    
1179
Default value: `8142`
1180

    
1181
### <a name="nftables--rules--out--smtp"></a>`nftables::rules::out::smtp`
1182

    
1183
allow outgoing smtp
1184

    
1185
### <a name="nftables--rules--out--smtp_client"></a>`nftables::rules::out::smtp_client`
1186

    
1187
allow outgoing smtp client
1188

    
1189
### <a name="nftables--rules--out--ssdp"></a>`nftables::rules::out::ssdp`
1190

    
1191
allow outgoing SSDP
1192

    
1193
* **See also**
1194
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1195

    
1196
#### Parameters
1197

    
1198
The following parameters are available in the `nftables::rules::out::ssdp` class:
1199

    
1200
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1201
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1202

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

    
1205
Data type: `Boolean`
1206

    
1207
Allow SSDP over IPv4
1208

    
1209
Default value: `true`
1210

    
1211
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1212

    
1213
Data type: `Boolean`
1214

    
1215
Allow SSDP over IPv6
1216

    
1217
Default value: `true`
1218

    
1219
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1220

    
1221
manage out ssh
1222

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

    
1225
disable outgoing ssh
1226

    
1227
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1228

    
1229
manage out tor
1230

    
1231
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1232

    
1233
allow clients to query remote whois server
1234

    
1235
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1236

    
1237
manage out wireguard
1238

    
1239
#### Parameters
1240

    
1241
The following parameters are available in the `nftables::rules::out::wireguard` class:
1242

    
1243
* [`ports`](#-nftables--rules--out--wireguard--ports)
1244

    
1245
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1246

    
1247
Data type: `Array[Integer,1]`
1248

    
1249
specify wireguard ports
1250

    
1251
Default value: `[51820]`
1252

    
1253
### <a name="nftables--rules--podman"></a>`nftables::rules::podman`
1254

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

    
1261
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1262

    
1263
manage in puppet
1264

    
1265
#### Parameters
1266

    
1267
The following parameters are available in the `nftables::rules::puppet` class:
1268

    
1269
* [`ports`](#-nftables--rules--puppet--ports)
1270

    
1271
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1272

    
1273
Data type: `Array[Integer,1]`
1274

    
1275
puppet server ports
1276

    
1277
Default value: `[8140]`
1278

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

    
1281
manage in pxp-agent
1282

    
1283
#### Parameters
1284

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

    
1287
* [`ports`](#-nftables--rules--pxp_agent--ports)
1288

    
1289
##### <a name="-nftables--rules--pxp_agent--ports"></a>`ports`
1290

    
1291
Data type: `Array[Stdlib::Port,1]`
1292

    
1293
pxp server ports
1294

    
1295
Default value: `[8142]`
1296

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

    
1299
This class configures the typical firewall setup that libvirt
1300
creates. Depending on your requirements you can switch on and off
1301
several aspects, for instance if you don't do DHCP to your guests
1302
you can disable the rules that accept DHCP traffic on the host or if
1303
you don't want your guests to talk to hosts outside you can disable
1304
forwarding and/or masquerading for IPv4 traffic.
1305

    
1306
#### Parameters
1307

    
1308
The following parameters are available in the `nftables::rules::qemu` class:
1309

    
1310
* [`interface`](#-nftables--rules--qemu--interface)
1311
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1312
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1313
* [`dns`](#-nftables--rules--qemu--dns)
1314
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1315
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1316
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1317
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1318

    
1319
##### <a name="-nftables--rules--qemu--interface"></a>`interface`
1320

    
1321
Data type: `String[1]`
1322

    
1323
Interface name used by the bridge.
1324

    
1325
Default value: `'virbr0'`
1326

    
1327
##### <a name="-nftables--rules--qemu--network_v4"></a>`network_v4`
1328

    
1329
Data type: `Stdlib::IP::Address::V4::CIDR`
1330

    
1331
The IPv4 network prefix used in the virtual network.
1332

    
1333
Default value: `'192.168.122.0/24'`
1334

    
1335
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1336

    
1337
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1338

    
1339
The IPv6 network prefix used in the virtual network.
1340

    
1341
Default value: `undef`
1342

    
1343
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1344

    
1345
Data type: `Boolean`
1346

    
1347
Allow DNS traffic from the guests to the host.
1348

    
1349
Default value: `true`
1350

    
1351
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1352

    
1353
Data type: `Boolean`
1354

    
1355
Allow DHCPv4 traffic from the guests to the host.
1356

    
1357
Default value: `true`
1358

    
1359
##### <a name="-nftables--rules--qemu--forward_traffic"></a>`forward_traffic`
1360

    
1361
Data type: `Boolean`
1362

    
1363
Allow forwarded traffic (out all, in related/established)
1364
generated by the virtual network.
1365

    
1366
Default value: `true`
1367

    
1368
##### <a name="-nftables--rules--qemu--internal_traffic"></a>`internal_traffic`
1369

    
1370
Data type: `Boolean`
1371

    
1372
Allow guests in the virtual network to talk to each other.
1373

    
1374
Default value: `true`
1375

    
1376
##### <a name="-nftables--rules--qemu--masquerade"></a>`masquerade`
1377

    
1378
Data type: `Boolean`
1379

    
1380
Do NAT masquerade on all IPv4 traffic generated by guests
1381
to external networks.
1382

    
1383
Default value: `true`
1384

    
1385
### <a name="nftables--rules--samba"></a>`nftables::rules::samba`
1386

    
1387
manage Samba, the suite to allow Windows file sharing on Linux resources.
1388

    
1389
#### Parameters
1390

    
1391
The following parameters are available in the `nftables::rules::samba` class:
1392

    
1393
* [`ctdb`](#-nftables--rules--samba--ctdb)
1394
* [`action`](#-nftables--rules--samba--action)
1395

    
1396
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1397

    
1398
Data type: `Boolean`
1399

    
1400
Enable ctdb-driven clustered Samba setups
1401

    
1402
Default value: `false`
1403

    
1404
##### <a name="-nftables--rules--samba--action"></a>`action`
1405

    
1406
Data type: `Enum['accept', 'drop']`
1407

    
1408
if the traffic should be allowed or dropped
1409

    
1410
Default value: `'accept'`
1411

    
1412
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1413

    
1414
manage in smtp
1415

    
1416
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1417

    
1418
manage in smtp submission
1419

    
1420
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1421

    
1422
manage in smtps
1423

    
1424
### <a name="nftables--rules--spotify"></a>`nftables::rules::spotify`
1425

    
1426
allow incoming spotify
1427

    
1428
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1429

    
1430
allow incoming SSDP
1431

    
1432
* **See also**
1433
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1434

    
1435
#### Parameters
1436

    
1437
The following parameters are available in the `nftables::rules::ssdp` class:
1438

    
1439
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1440
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1441

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

    
1444
Data type: `Boolean`
1445

    
1446
Allow SSDP over IPv4
1447

    
1448
Default value: `true`
1449

    
1450
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1451

    
1452
Data type: `Boolean`
1453

    
1454
Allow SSDP over IPv6
1455

    
1456
Default value: `true`
1457

    
1458
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1459

    
1460
manage in ssh
1461

    
1462
#### Parameters
1463

    
1464
The following parameters are available in the `nftables::rules::ssh` class:
1465

    
1466
* [`ports`](#-nftables--rules--ssh--ports)
1467

    
1468
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1469

    
1470
Data type: `Array[Stdlib::Port,1]`
1471

    
1472
ssh ports
1473

    
1474
Default value: `[22]`
1475

    
1476
### <a name="nftables--rules--tor"></a>`nftables::rules::tor`
1477

    
1478
manage in tor
1479

    
1480
#### Parameters
1481

    
1482
The following parameters are available in the `nftables::rules::tor` class:
1483

    
1484
* [`ports`](#-nftables--rules--tor--ports)
1485

    
1486
##### <a name="-nftables--rules--tor--ports"></a>`ports`
1487

    
1488
Data type: `Array[Stdlib::Port,1]`
1489

    
1490
ports for tor
1491

    
1492
Default value: `[9001]`
1493

    
1494
### <a name="nftables--rules--wireguard"></a>`nftables::rules::wireguard`
1495

    
1496
manage in wireguard
1497

    
1498
#### Parameters
1499

    
1500
The following parameters are available in the `nftables::rules::wireguard` class:
1501

    
1502
* [`ports`](#-nftables--rules--wireguard--ports)
1503

    
1504
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1505

    
1506
Data type: `Array[Stdlib::Port,1]`
1507

    
1508
wiregueard port
1509

    
1510
Default value: `[51820]`
1511

    
1512
### <a name="nftables--rules--wsd"></a>`nftables::rules::wsd`
1513

    
1514
allow incoming webservice discovery
1515

    
1516
* **See also**
1517
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1518

    
1519
#### Parameters
1520

    
1521
The following parameters are available in the `nftables::rules::wsd` class:
1522

    
1523
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1524
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1525

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

    
1528
Data type: `Boolean`
1529

    
1530
Allow ws-discovery over IPv4
1531

    
1532
Default value: `true`
1533

    
1534
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1535

    
1536
Data type: `Boolean`
1537

    
1538
Allow ws-discovery over IPv6
1539

    
1540
Default value: `true`
1541

    
1542
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1543

    
1544
Allow in and outbound traffic for DHCPv6 server
1545

    
1546
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1547

    
1548
Open inbound and outbound ports for an AFS client
1549

    
1550
## Defined types
1551

    
1552
### <a name="nftables--chain"></a>`nftables::chain`
1553

    
1554
manage a chain
1555

    
1556
#### Parameters
1557

    
1558
The following parameters are available in the `nftables::chain` defined type:
1559

    
1560
* [`table`](#-nftables--chain--table)
1561
* [`chain`](#-nftables--chain--chain)
1562
* [`inject`](#-nftables--chain--inject)
1563
* [`inject_iif`](#-nftables--chain--inject_iif)
1564
* [`inject_oif`](#-nftables--chain--inject_oif)
1565

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

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

    
1570

    
1571

    
1572
Default value: `'inet-filter'`
1573

    
1574
##### <a name="-nftables--chain--chain"></a>`chain`
1575

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

    
1578

    
1579

    
1580
Default value: `$title`
1581

    
1582
##### <a name="-nftables--chain--inject"></a>`inject`
1583

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

    
1586

    
1587

    
1588
Default value: `undef`
1589

    
1590
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1591

    
1592
Data type: `Optional[String]`
1593

    
1594

    
1595

    
1596
Default value: `undef`
1597

    
1598
##### <a name="-nftables--chain--inject_oif"></a>`inject_oif`
1599

    
1600
Data type: `Optional[String]`
1601

    
1602

    
1603

    
1604
Default value: `undef`
1605

    
1606
### <a name="nftables--config"></a>`nftables::config`
1607

    
1608
manage a config snippet
1609

    
1610
#### Parameters
1611

    
1612
The following parameters are available in the `nftables::config` defined type:
1613

    
1614
* [`tablespec`](#-nftables--config--tablespec)
1615
* [`content`](#-nftables--config--content)
1616
* [`source`](#-nftables--config--source)
1617
* [`prefix`](#-nftables--config--prefix)
1618

    
1619
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1620

    
1621
Data type: `Pattern[/^\w+-\w+$/]`
1622

    
1623

    
1624

    
1625
Default value: `$title`
1626

    
1627
##### <a name="-nftables--config--content"></a>`content`
1628

    
1629
Data type: `Optional[String]`
1630

    
1631

    
1632

    
1633
Default value: `undef`
1634

    
1635
##### <a name="-nftables--config--source"></a>`source`
1636

    
1637
Data type: `Optional[Variant[String,Array[String,1]]]`
1638

    
1639

    
1640

    
1641
Default value: `undef`
1642

    
1643
##### <a name="-nftables--config--prefix"></a>`prefix`
1644

    
1645
Data type: `String`
1646

    
1647

    
1648

    
1649
Default value: `'custom-'`
1650

    
1651
### <a name="nftables--file"></a>`nftables::file`
1652

    
1653
Insert a file into the nftables configuration
1654

    
1655
#### Examples
1656

    
1657
##### Include a file that includes other files
1658

    
1659
```puppet
1660
nftables::file{'geoip':
1661
  content => @(EOT)
1662
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1663
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1664
    |EOT,
1665
}
1666
```
1667

    
1668
#### Parameters
1669

    
1670
The following parameters are available in the `nftables::file` defined type:
1671

    
1672
* [`label`](#-nftables--file--label)
1673
* [`content`](#-nftables--file--content)
1674
* [`source`](#-nftables--file--source)
1675
* [`prefix`](#-nftables--file--prefix)
1676

    
1677
##### <a name="-nftables--file--label"></a>`label`
1678

    
1679
Data type: `String[1]`
1680

    
1681
Unique name to include in filename.
1682

    
1683
Default value: `$title`
1684

    
1685
##### <a name="-nftables--file--content"></a>`content`
1686

    
1687
Data type: `Optional[String]`
1688

    
1689
The content to place in the file.
1690

    
1691
Default value: `undef`
1692

    
1693
##### <a name="-nftables--file--source"></a>`source`
1694

    
1695
Data type: `Optional[Variant[String,Array[String,1]]]`
1696

    
1697
A source to obtain the file content from.
1698

    
1699
Default value: `undef`
1700

    
1701
##### <a name="-nftables--file--prefix"></a>`prefix`
1702

    
1703
Data type: `String`
1704

    
1705
Prefix of file name to be created, if left as `file-` it will be
1706
auto included in the main nft configuration
1707

    
1708
Default value: `'file-'`
1709

    
1710
### <a name="nftables--helper"></a>`nftables::helper`
1711

    
1712
manage a conntrack helper
1713

    
1714
#### Examples
1715

    
1716
##### FTP helper
1717

    
1718
```puppet
1719
nftables::helper { 'ftp-standard':
1720
  content => 'type "ftp" protocol tcp;',
1721
}
1722
```
1723

    
1724
#### Parameters
1725

    
1726
The following parameters are available in the `nftables::helper` defined type:
1727

    
1728
* [`content`](#-nftables--helper--content)
1729
* [`table`](#-nftables--helper--table)
1730
* [`helper`](#-nftables--helper--helper)
1731

    
1732
##### <a name="-nftables--helper--content"></a>`content`
1733

    
1734
Data type: `String`
1735

    
1736
Conntrack helper definition.
1737

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

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

    
1742
The name of the table to add this helper to.
1743

    
1744
Default value: `'inet-filter'`
1745

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

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

    
1750
The symbolic name for the helper.
1751

    
1752
Default value: `$title`
1753

    
1754
### <a name="nftables--rule"></a>`nftables::rule`
1755

    
1756
Provides an interface to create a firewall rule
1757

    
1758
#### Examples
1759

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

    
1762
```puppet
1763
nftables::rule {
1764
  'default_in-myhttp':
1765
    content => 'tcp dport 80 accept',
1766
}
1767
```
1768

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

    
1771
```puppet
1772
nftables::rule {
1773
  'PREROUTING6-count':
1774
    content => 'counter',
1775
    table   => 'ip6-nat'
1776
}
1777
```
1778

    
1779
##### Redirect port 443 to port 8443
1780

    
1781
```puppet
1782
nftables::rule { 'PREROUTING-redirect':
1783
  content => 'tcp dport 443 redirect to :8443',
1784
  table   => 'ip-nat',
1785
}
1786
nftables::rule{'PREROUTING6-redirect':
1787
  content => 'tcp dport 443 redirect to :8443',
1788
  table   => 'ip6-nat',
1789
}
1790
```
1791

    
1792
#### Parameters
1793

    
1794
The following parameters are available in the `nftables::rule` defined type:
1795

    
1796
* [`ensure`](#-nftables--rule--ensure)
1797
* [`rulename`](#-nftables--rule--rulename)
1798
* [`order`](#-nftables--rule--order)
1799
* [`table`](#-nftables--rule--table)
1800
* [`content`](#-nftables--rule--content)
1801
* [`source`](#-nftables--rule--source)
1802

    
1803
##### <a name="-nftables--rule--ensure"></a>`ensure`
1804

    
1805
Data type: `Enum['present','absent']`
1806

    
1807
Should the rule be created.
1808

    
1809
Default value: `'present'`
1810

    
1811
##### <a name="-nftables--rule--rulename"></a>`rulename`
1812

    
1813
Data type: `Nftables::RuleName`
1814

    
1815
The symbolic name for the rule and to what chain to add it. The
1816
format is defined by the Nftables::RuleName type.
1817

    
1818
Default value: `$title`
1819

    
1820
##### <a name="-nftables--rule--order"></a>`order`
1821

    
1822
Data type: `Pattern[/^\d\d$/]`
1823

    
1824
A number representing the order of the rule.
1825

    
1826
Default value: `'50'`
1827

    
1828
##### <a name="-nftables--rule--table"></a>`table`
1829

    
1830
Data type: `String`
1831

    
1832
The name of the table to add this rule to.
1833

    
1834
Default value: `'inet-filter'`
1835

    
1836
##### <a name="-nftables--rule--content"></a>`content`
1837

    
1838
Data type: `Optional[String]`
1839

    
1840
The raw statements that compose the rule represented using the nftables
1841
language.
1842

    
1843
Default value: `undef`
1844

    
1845
##### <a name="-nftables--rule--source"></a>`source`
1846

    
1847
Data type: `Optional[Variant[String,Array[String,1]]]`
1848

    
1849
Same goal as content but sourcing the value from a file.
1850

    
1851
Default value: `undef`
1852

    
1853
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1854

    
1855
manage a ipv4 dnat rule
1856

    
1857
#### Parameters
1858

    
1859
The following parameters are available in the `nftables::rules::dnat4` defined type:
1860

    
1861
* [`daddr`](#-nftables--rules--dnat4--daddr)
1862
* [`port`](#-nftables--rules--dnat4--port)
1863
* [`rulename`](#-nftables--rules--dnat4--rulename)
1864
* [`order`](#-nftables--rules--dnat4--order)
1865
* [`chain`](#-nftables--rules--dnat4--chain)
1866
* [`iif`](#-nftables--rules--dnat4--iif)
1867
* [`proto`](#-nftables--rules--dnat4--proto)
1868
* [`dport`](#-nftables--rules--dnat4--dport)
1869
* [`ensure`](#-nftables--rules--dnat4--ensure)
1870

    
1871
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1872

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

    
1875

    
1876

    
1877
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1878

    
1879
Data type: `Variant[String,Stdlib::Port]`
1880

    
1881

    
1882

    
1883
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1884

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

    
1887

    
1888

    
1889
Default value: `$title`
1890

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

    
1893
Data type: `Pattern[/^\d\d$/]`
1894

    
1895

    
1896

    
1897
Default value: `'50'`
1898

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

    
1901
Data type: `String[1]`
1902

    
1903

    
1904

    
1905
Default value: `'default_fwd'`
1906

    
1907
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1908

    
1909
Data type: `Optional[String[1]]`
1910

    
1911

    
1912

    
1913
Default value: `undef`
1914

    
1915
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1916

    
1917
Data type: `Enum['tcp','udp']`
1918

    
1919

    
1920

    
1921
Default value: `'tcp'`
1922

    
1923
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1924

    
1925
Data type: `Optional[Variant[String,Stdlib::Port]]`
1926

    
1927

    
1928

    
1929
Default value: `undef`
1930

    
1931
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1932

    
1933
Data type: `Enum['present','absent']`
1934

    
1935

    
1936

    
1937
Default value: `'present'`
1938

    
1939
### <a name="nftables--rules--masquerade"></a>`nftables::rules::masquerade`
1940

    
1941
masquerade all outgoing traffic
1942

    
1943
#### Parameters
1944

    
1945
The following parameters are available in the `nftables::rules::masquerade` defined type:
1946

    
1947
* [`rulename`](#-nftables--rules--masquerade--rulename)
1948
* [`order`](#-nftables--rules--masquerade--order)
1949
* [`chain`](#-nftables--rules--masquerade--chain)
1950
* [`oif`](#-nftables--rules--masquerade--oif)
1951
* [`saddr`](#-nftables--rules--masquerade--saddr)
1952
* [`daddr`](#-nftables--rules--masquerade--daddr)
1953
* [`proto`](#-nftables--rules--masquerade--proto)
1954
* [`dport`](#-nftables--rules--masquerade--dport)
1955
* [`ensure`](#-nftables--rules--masquerade--ensure)
1956

    
1957
##### <a name="-nftables--rules--masquerade--rulename"></a>`rulename`
1958

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

    
1961

    
1962

    
1963
Default value: `$title`
1964

    
1965
##### <a name="-nftables--rules--masquerade--order"></a>`order`
1966

    
1967
Data type: `Pattern[/^\d\d$/]`
1968

    
1969

    
1970

    
1971
Default value: `'70'`
1972

    
1973
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
1974

    
1975
Data type: `String[1]`
1976

    
1977

    
1978

    
1979
Default value: `'POSTROUTING'`
1980

    
1981
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
1982

    
1983
Data type: `Optional[String[1]]`
1984

    
1985

    
1986

    
1987
Default value: `undef`
1988

    
1989
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
1990

    
1991
Data type: `Optional[String[1]]`
1992

    
1993

    
1994

    
1995
Default value: `undef`
1996

    
1997
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
1998

    
1999
Data type: `Optional[String[1]]`
2000

    
2001

    
2002

    
2003
Default value: `undef`
2004

    
2005
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
2006

    
2007
Data type: `Optional[Enum['tcp','udp']]`
2008

    
2009

    
2010

    
2011
Default value: `undef`
2012

    
2013
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
2014

    
2015
Data type: `Optional[Variant[String,Stdlib::Port]]`
2016

    
2017

    
2018

    
2019
Default value: `undef`
2020

    
2021
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
2022

    
2023
Data type: `Enum['present','absent']`
2024

    
2025

    
2026

    
2027
Default value: `'present'`
2028

    
2029
### <a name="nftables--rules--snat4"></a>`nftables::rules::snat4`
2030

    
2031
manage a ipv4 snat rule
2032

    
2033
#### Parameters
2034

    
2035
The following parameters are available in the `nftables::rules::snat4` defined type:
2036

    
2037
* [`snat`](#-nftables--rules--snat4--snat)
2038
* [`rulename`](#-nftables--rules--snat4--rulename)
2039
* [`order`](#-nftables--rules--snat4--order)
2040
* [`chain`](#-nftables--rules--snat4--chain)
2041
* [`oif`](#-nftables--rules--snat4--oif)
2042
* [`saddr`](#-nftables--rules--snat4--saddr)
2043
* [`proto`](#-nftables--rules--snat4--proto)
2044
* [`dport`](#-nftables--rules--snat4--dport)
2045
* [`ensure`](#-nftables--rules--snat4--ensure)
2046

    
2047
##### <a name="-nftables--rules--snat4--snat"></a>`snat`
2048

    
2049
Data type: `String[1]`
2050

    
2051

    
2052

    
2053
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
2054

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

    
2057

    
2058

    
2059
Default value: `$title`
2060

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

    
2063
Data type: `Pattern[/^\d\d$/]`
2064

    
2065

    
2066

    
2067
Default value: `'70'`
2068

    
2069
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
2070

    
2071
Data type: `String[1]`
2072

    
2073

    
2074

    
2075
Default value: `'POSTROUTING'`
2076

    
2077
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
2078

    
2079
Data type: `Optional[String[1]]`
2080

    
2081

    
2082

    
2083
Default value: `undef`
2084

    
2085
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
2086

    
2087
Data type: `Optional[String[1]]`
2088

    
2089

    
2090

    
2091
Default value: `undef`
2092

    
2093
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
2094

    
2095
Data type: `Optional[Enum['tcp','udp']]`
2096

    
2097

    
2098

    
2099
Default value: `undef`
2100

    
2101
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
2102

    
2103
Data type: `Optional[Variant[String,Stdlib::Port]]`
2104

    
2105

    
2106

    
2107
Default value: `undef`
2108

    
2109
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
2110

    
2111
Data type: `Enum['present','absent']`
2112

    
2113

    
2114

    
2115
Default value: `'present'`
2116

    
2117
### <a name="nftables--set"></a>`nftables::set`
2118

    
2119
manage a named set
2120

    
2121
#### Examples
2122

    
2123
##### simple set
2124

    
2125
```puppet
2126
nftables::set{'my_set':
2127
  type       => 'ipv4_addr',
2128
  flags      => ['interval'],
2129
  elements   => ['192.168.0.1/24', '10.0.0.2'],
2130
  auto_merge => true,
2131
}
2132
```
2133

    
2134
#### Parameters
2135

    
2136
The following parameters are available in the `nftables::set` defined type:
2137

    
2138
* [`ensure`](#-nftables--set--ensure)
2139
* [`setname`](#-nftables--set--setname)
2140
* [`order`](#-nftables--set--order)
2141
* [`type`](#-nftables--set--type)
2142
* [`table`](#-nftables--set--table)
2143
* [`flags`](#-nftables--set--flags)
2144
* [`timeout`](#-nftables--set--timeout)
2145
* [`gc_interval`](#-nftables--set--gc_interval)
2146
* [`elements`](#-nftables--set--elements)
2147
* [`size`](#-nftables--set--size)
2148
* [`policy`](#-nftables--set--policy)
2149
* [`auto_merge`](#-nftables--set--auto_merge)
2150
* [`content`](#-nftables--set--content)
2151
* [`source`](#-nftables--set--source)
2152

    
2153
##### <a name="-nftables--set--ensure"></a>`ensure`
2154

    
2155
Data type: `Enum['present','absent']`
2156

    
2157
should the set be created.
2158

    
2159
Default value: `'present'`
2160

    
2161
##### <a name="-nftables--set--setname"></a>`setname`
2162

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

    
2165
name of set, equal to to title.
2166

    
2167
Default value: `$title`
2168

    
2169
##### <a name="-nftables--set--order"></a>`order`
2170

    
2171
Data type: `Pattern[/^\d\d$/]`
2172

    
2173
concat ordering.
2174

    
2175
Default value: `'10'`
2176

    
2177
##### <a name="-nftables--set--type"></a>`type`
2178

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

    
2181
type of set.
2182

    
2183
Default value: `undef`
2184

    
2185
##### <a name="-nftables--set--table"></a>`table`
2186

    
2187
Data type: `Variant[String, Array[String, 1]]`
2188

    
2189
table or array of tables to add the set to.
2190

    
2191
Default value: `'inet-filter'`
2192

    
2193
##### <a name="-nftables--set--flags"></a>`flags`
2194

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

    
2197
specify flags for set
2198

    
2199
Default value: `[]`
2200

    
2201
##### <a name="-nftables--set--timeout"></a>`timeout`
2202

    
2203
Data type: `Optional[Integer]`
2204

    
2205
timeout in seconds
2206

    
2207
Default value: `undef`
2208

    
2209
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2210

    
2211
Data type: `Optional[Integer]`
2212

    
2213
garbage collection interval.
2214

    
2215
Default value: `undef`
2216

    
2217
##### <a name="-nftables--set--elements"></a>`elements`
2218

    
2219
Data type: `Optional[Array[String]]`
2220

    
2221
initialize the set with some elements in it.
2222

    
2223
Default value: `undef`
2224

    
2225
##### <a name="-nftables--set--size"></a>`size`
2226

    
2227
Data type: `Optional[Integer]`
2228

    
2229
limits the maximum number of elements of the set.
2230

    
2231
Default value: `undef`
2232

    
2233
##### <a name="-nftables--set--policy"></a>`policy`
2234

    
2235
Data type: `Optional[Enum['performance', 'memory']]`
2236

    
2237
determines set selection policy.
2238

    
2239
Default value: `undef`
2240

    
2241
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2242

    
2243
Data type: `Boolean`
2244

    
2245
automatically merge adjacent/overlapping set elements (only valid for interval sets)
2246

    
2247
Default value: `false`
2248

    
2249
##### <a name="-nftables--set--content"></a>`content`
2250

    
2251
Data type: `Optional[String]`
2252

    
2253
specify content of set.
2254

    
2255
Default value: `undef`
2256

    
2257
##### <a name="-nftables--set--source"></a>`source`
2258

    
2259
Data type: `Optional[Variant[String,Array[String,1]]]`
2260

    
2261
specify source of set.
2262

    
2263
Default value: `undef`
2264

    
2265
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2266

    
2267
Provides a simplified interface to nftables::rule
2268

    
2269
#### Examples
2270

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

    
2273
```puppet
2274
nftables::simplerule{'my_service_in':
2275
  action  => 'accept',
2276
  comment => 'allow traffic to port 543',
2277
  counter => true,
2278
  proto   => 'tcp',
2279
  dport   => 543,
2280
  daddr   => '2001:1458::/32',
2281
  sport   => 541,
2282
}
2283
```
2284

    
2285
#### Parameters
2286

    
2287
The following parameters are available in the `nftables::simplerule` defined type:
2288

    
2289
* [`ensure`](#-nftables--simplerule--ensure)
2290
* [`rulename`](#-nftables--simplerule--rulename)
2291
* [`order`](#-nftables--simplerule--order)
2292
* [`chain`](#-nftables--simplerule--chain)
2293
* [`table`](#-nftables--simplerule--table)
2294
* [`action`](#-nftables--simplerule--action)
2295
* [`comment`](#-nftables--simplerule--comment)
2296
* [`dport`](#-nftables--simplerule--dport)
2297
* [`proto`](#-nftables--simplerule--proto)
2298
* [`daddr`](#-nftables--simplerule--daddr)
2299
* [`set_type`](#-nftables--simplerule--set_type)
2300
* [`sport`](#-nftables--simplerule--sport)
2301
* [`saddr`](#-nftables--simplerule--saddr)
2302
* [`counter`](#-nftables--simplerule--counter)
2303
* [`iifname`](#-nftables--simplerule--iifname)
2304
* [`oifname`](#-nftables--simplerule--oifname)
2305

    
2306
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2307

    
2308
Data type: `Enum['present','absent']`
2309

    
2310
Should the rule be created.
2311

    
2312
Default value: `'present'`
2313

    
2314
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2315

    
2316
Data type: `Nftables::SimpleRuleName`
2317

    
2318
The symbolic name for the rule to add. Defaults to the resource's title.
2319

    
2320
Default value: `$title`
2321

    
2322
##### <a name="-nftables--simplerule--order"></a>`order`
2323

    
2324
Data type: `Pattern[/^\d\d$/]`
2325

    
2326
A number representing the order of the rule.
2327

    
2328
Default value: `'50'`
2329

    
2330
##### <a name="-nftables--simplerule--chain"></a>`chain`
2331

    
2332
Data type: `String`
2333

    
2334
The name of the chain to add this rule to.
2335

    
2336
Default value: `'default_in'`
2337

    
2338
##### <a name="-nftables--simplerule--table"></a>`table`
2339

    
2340
Data type: `String`
2341

    
2342
The name of the table to add this rule to.
2343

    
2344
Default value: `'inet-filter'`
2345

    
2346
##### <a name="-nftables--simplerule--action"></a>`action`
2347

    
2348
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2349

    
2350
The verdict for the matched traffic.
2351

    
2352
Default value: `'accept'`
2353

    
2354
##### <a name="-nftables--simplerule--comment"></a>`comment`
2355

    
2356
Data type: `Optional[String]`
2357

    
2358
A typically human-readable comment for the rule.
2359

    
2360
Default value: `undef`
2361

    
2362
##### <a name="-nftables--simplerule--dport"></a>`dport`
2363

    
2364
Data type: `Optional[Nftables::Port]`
2365

    
2366
The destination port, ports or port range.
2367

    
2368
Default value: `undef`
2369

    
2370
##### <a name="-nftables--simplerule--proto"></a>`proto`
2371

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

    
2374
The transport-layer protocol to match.
2375

    
2376
Default value: `undef`
2377

    
2378
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2379

    
2380
Data type: `Optional[Nftables::Addr]`
2381

    
2382
The destination address, CIDR or set to match.
2383

    
2384
Default value: `undef`
2385

    
2386
##### <a name="-nftables--simplerule--set_type"></a>`set_type`
2387

    
2388
Data type: `Enum['ip', 'ip6']`
2389

    
2390
When using sets as saddr or daddr, the type of the set.
2391
Use `ip` for sets of type `ipv4_addr`.
2392

    
2393
Default value: `'ip6'`
2394

    
2395
##### <a name="-nftables--simplerule--sport"></a>`sport`
2396

    
2397
Data type: `Optional[Nftables::Port]`
2398

    
2399
The source port, ports or port range.
2400

    
2401
Default value: `undef`
2402

    
2403
##### <a name="-nftables--simplerule--saddr"></a>`saddr`
2404

    
2405
Data type: `Optional[Nftables::Addr]`
2406

    
2407
The source address, CIDR or set to match.
2408

    
2409
Default value: `undef`
2410

    
2411
##### <a name="-nftables--simplerule--counter"></a>`counter`
2412

    
2413
Data type: `Boolean`
2414

    
2415
Enable traffic counters for the matched traffic.
2416

    
2417
Default value: `false`
2418

    
2419
##### <a name="-nftables--simplerule--iifname"></a>`iifname`
2420

    
2421
Data type: `Variant[Array[String[1]],String[1]]`
2422

    
2423
Optional filter for the incoming interface
2424

    
2425
Default value: `[]`
2426

    
2427
##### <a name="-nftables--simplerule--oifname"></a>`oifname`
2428

    
2429
Data type: `Variant[Array[String[1]],String[1]]`
2430

    
2431
Optional filter for the outgoing interface
2432

    
2433
Default value: `[]`
2434

    
2435
## Data types
2436

    
2437
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2438

    
2439
Represents an address expression to be used within a rule.
2440

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

    
2443
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2444

    
2445
Represents a set expression to be used within a rule.
2446

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

    
2449
### <a name="Nftables--Port"></a>`Nftables::Port`
2450

    
2451
Represents a port expression to be used within a rule.
2452

    
2453
Alias of `Variant[Array[Variant[Nftables::Port::Range, Stdlib::Port], 1], Stdlib::Port, Nftables::Port::Range]`
2454

    
2455
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2456

    
2457
Represents a port range expression to be used within a rule.
2458

    
2459
Alias of `Pattern[/^\d+-\d+$/]`
2460

    
2461
### <a name="Nftables--RuleName"></a>`Nftables::RuleName`
2462

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

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

    
2470
### <a name="Nftables--SimpleRuleName"></a>`Nftables::SimpleRuleName`
2471

    
2472
Represents a simple rule name to be used in a rule created via nftables::simplerule
2473

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