Projet

Général

Profil

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

root / REFERENCE.md @ 51850192

Historique | Voir | Annoter | Télécharger (62,1 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

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

    
785
Data type: `Boolean`
786

    
787
Allow mdns over IPv4
788

    
789
Default value: `true`
790

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

    
793
Data type: `Boolean`
794

    
795
Allow mdns over IPv6
796

    
797
Default value: `true`
798

    
799
### <a name="nftables--rules--multicast"></a>`nftables::rules::multicast`
800

    
801
allow incoming multicast traffic
802

    
803
### <a name="nftables--rules--nfs"></a>`nftables::rules::nfs`
804

    
805
manage in nfs4
806

    
807
### <a name="nftables--rules--nfs3"></a>`nftables::rules::nfs3`
808

    
809
manage in nfs3
810

    
811
### <a name="nftables--rules--node_exporter"></a>`nftables::rules::node_exporter`
812

    
813
manage in node exporter
814

    
815
#### Parameters
816

    
817
The following parameters are available in the `nftables::rules::node_exporter` class:
818

    
819
* [`prometheus_server`](#-nftables--rules--node_exporter--prometheus_server)
820
* [`port`](#-nftables--rules--node_exporter--port)
821

    
822
##### <a name="-nftables--rules--node_exporter--prometheus_server"></a>`prometheus_server`
823

    
824
Data type: `Optional[Variant[String,Array[String,1]]]`
825

    
826
Specify server name
827

    
828
Default value: `undef`
829

    
830
##### <a name="-nftables--rules--node_exporter--port"></a>`port`
831

    
832
Data type: `Stdlib::Port`
833

    
834
Specify port to open
835

    
836
Default value: `9100`
837

    
838
### <a name="nftables--rules--ospf"></a>`nftables::rules::ospf`
839

    
840
manage in ospf
841

    
842
### <a name="nftables--rules--ospf3"></a>`nftables::rules::ospf3`
843

    
844
manage in ospf3
845

    
846
### <a name="nftables--rules--out--active_directory"></a>`nftables::rules::out::active_directory`
847

    
848
manage outgoing active diectory
849

    
850
#### Parameters
851

    
852
The following parameters are available in the `nftables::rules::out::active_directory` class:
853

    
854
* [`adserver`](#-nftables--rules--out--active_directory--adserver)
855
* [`adserver_ports`](#-nftables--rules--out--active_directory--adserver_ports)
856

    
857
##### <a name="-nftables--rules--out--active_directory--adserver"></a>`adserver`
858

    
859
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
860

    
861
adserver IPs
862

    
863
##### <a name="-nftables--rules--out--active_directory--adserver_ports"></a>`adserver_ports`
864

    
865
Data type: `Array[Stdlib::Port,1]`
866

    
867
adserver ports
868

    
869
Default value: `[389, 636, 3268, 3269]`
870

    
871
### <a name="nftables--rules--out--all"></a>`nftables::rules::out::all`
872

    
873
allow all outbound
874

    
875
### <a name="nftables--rules--out--ceph_client"></a>`nftables::rules::out::ceph_client`
876

    
877
Ceph is a distributed object store and file system.
878
Enable this to be a client of Ceph's Monitor (MON),
879
Object Storage Daemons (OSD), Metadata Server Daemons (MDS),
880
and Manager Daemons (MGR).
881

    
882
#### Parameters
883

    
884
The following parameters are available in the `nftables::rules::out::ceph_client` class:
885

    
886
* [`ports`](#-nftables--rules--out--ceph_client--ports)
887

    
888
##### <a name="-nftables--rules--out--ceph_client--ports"></a>`ports`
889

    
890
Data type: `Array[Stdlib::Port,1]`
891

    
892
Specify ports to open
893

    
894
Default value: `[3300, 6789]`
895

    
896
### <a name="nftables--rules--out--chrony"></a>`nftables::rules::out::chrony`
897

    
898
manage out chrony
899

    
900
#### Parameters
901

    
902
The following parameters are available in the `nftables::rules::out::chrony` class:
903

    
904
* [`servers`](#-nftables--rules--out--chrony--servers)
905

    
906
##### <a name="-nftables--rules--out--chrony--servers"></a>`servers`
907

    
908
Data type: `Array[Stdlib::IP::Address]`
909

    
910
single IP-Address or array of IP-addresses from NTP servers
911

    
912
Default value: `[]`
913

    
914
### <a name="nftables--rules--out--dhcp"></a>`nftables::rules::out::dhcp`
915

    
916
manage out dhcp
917

    
918
### <a name="nftables--rules--out--dhcpv6_client"></a>`nftables::rules::out::dhcpv6_client`
919

    
920
Allow DHCPv6 requests out of a host
921

    
922
### <a name="nftables--rules--out--dns"></a>`nftables::rules::out::dns`
923

    
924
manage out dns
925

    
926
#### Parameters
927

    
928
The following parameters are available in the `nftables::rules::out::dns` class:
929

    
930
* [`dns_server`](#-nftables--rules--out--dns--dns_server)
931

    
932
##### <a name="-nftables--rules--out--dns--dns_server"></a>`dns_server`
933

    
934
Data type: `Array[Stdlib::IP::Address]`
935

    
936
specify dns_server name
937

    
938
Default value: `[]`
939

    
940
### <a name="nftables--rules--out--hkp"></a>`nftables::rules::out::hkp`
941

    
942
allow outgoing hkp connections to gpg keyservers
943

    
944
### <a name="nftables--rules--out--http"></a>`nftables::rules::out::http`
945

    
946
manage out http
947

    
948
### <a name="nftables--rules--out--https"></a>`nftables::rules::out::https`
949

    
950
manage out https
951

    
952
### <a name="nftables--rules--out--icmp"></a>`nftables::rules::out::icmp`
953

    
954
control outbound icmp packages
955

    
956
#### Parameters
957

    
958
The following parameters are available in the `nftables::rules::out::icmp` class:
959

    
960
* [`v4_types`](#-nftables--rules--out--icmp--v4_types)
961
* [`v6_types`](#-nftables--rules--out--icmp--v6_types)
962
* [`order`](#-nftables--rules--out--icmp--order)
963

    
964
##### <a name="-nftables--rules--out--icmp--v4_types"></a>`v4_types`
965

    
966
Data type: `Optional[Array[String]]`
967

    
968
ICMP v4 types that should be allowed
969

    
970
Default value: `undef`
971

    
972
##### <a name="-nftables--rules--out--icmp--v6_types"></a>`v6_types`
973

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

    
976
ICMP v6 types that should be allowed
977

    
978
Default value: `undef`
979

    
980
##### <a name="-nftables--rules--out--icmp--order"></a>`order`
981

    
982
Data type: `String`
983

    
984
the ordering of the rules
985

    
986
Default value: `'10'`
987

    
988
### <a name="nftables--rules--out--igmp"></a>`nftables::rules::out::igmp`
989

    
990
allow outgoing IGMP messages
991

    
992
### <a name="nftables--rules--out--imap"></a>`nftables::rules::out::imap`
993

    
994
allow outgoing imap
995

    
996
### <a name="nftables--rules--out--kerberos"></a>`nftables::rules::out::kerberos`
997

    
998
allows outbound access for kerberos
999

    
1000
### <a name="nftables--rules--out--ldap"></a>`nftables::rules::out::ldap`
1001

    
1002
manage outgoing ldap
1003

    
1004
#### Parameters
1005

    
1006
The following parameters are available in the `nftables::rules::out::ldap` class:
1007

    
1008
* [`ldapserver`](#-nftables--rules--out--ldap--ldapserver)
1009
* [`ldapserver_ports`](#-nftables--rules--out--ldap--ldapserver_ports)
1010

    
1011
##### <a name="-nftables--rules--out--ldap--ldapserver"></a>`ldapserver`
1012

    
1013
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1014

    
1015
ldapserver IPs
1016

    
1017
##### <a name="-nftables--rules--out--ldap--ldapserver_ports"></a>`ldapserver_ports`
1018

    
1019
Data type: `Array[Stdlib::Port,1]`
1020

    
1021
ldapserver ports
1022

    
1023
Default value: `[389, 636]`
1024

    
1025
### <a name="nftables--rules--out--mdns"></a>`nftables::rules::out::mdns`
1026

    
1027
allow outgoing multicast DNS
1028

    
1029
#### Parameters
1030

    
1031
The following parameters are available in the `nftables::rules::out::mdns` class:
1032

    
1033
* [`ipv4`](#-nftables--rules--out--mdns--ipv4)
1034
* [`ipv6`](#-nftables--rules--out--mdns--ipv6)
1035
* [`oifname`](#-nftables--rules--out--mdns--oifname)
1036

    
1037
##### <a name="-nftables--rules--out--mdns--ipv4"></a>`ipv4`
1038

    
1039
Data type: `Boolean`
1040

    
1041
Allow mdns over IPv4
1042

    
1043
Default value: `true`
1044

    
1045
##### <a name="-nftables--rules--out--mdns--ipv6"></a>`ipv6`
1046

    
1047
Data type: `Boolean`
1048

    
1049
Allow mdns over IPv6
1050

    
1051
Default value: `true`
1052

    
1053
##### <a name="-nftables--rules--out--mdns--oifname"></a>`oifname`
1054

    
1055
Data type: `Array[String[1]]`
1056

    
1057
optional name for outgoing interfaces
1058

    
1059
Default value: `[]`
1060

    
1061
### <a name="nftables--rules--out--mldv2"></a>`nftables::rules::out::mldv2`
1062

    
1063
allow multicast listener requests
1064

    
1065
### <a name="nftables--rules--out--mysql"></a>`nftables::rules::out::mysql`
1066

    
1067
manage out mysql
1068

    
1069
### <a name="nftables--rules--out--nfs"></a>`nftables::rules::out::nfs`
1070

    
1071
manage out nfs
1072

    
1073
### <a name="nftables--rules--out--nfs3"></a>`nftables::rules::out::nfs3`
1074

    
1075
manage out nfs3
1076

    
1077
### <a name="nftables--rules--out--openafs_client"></a>`nftables::rules::out::openafs_client`
1078

    
1079
allows outbound access for afs clients
1080
7000 - afs3-fileserver
1081
7002 - afs3-ptserver
1082
7003 - vlserver
1083

    
1084
* **See also**
1085
  * https://wiki.openafs.org/devel/AFSServicePorts/
1086
    * AFS Service Ports
1087

    
1088
#### Parameters
1089

    
1090
The following parameters are available in the `nftables::rules::out::openafs_client` class:
1091

    
1092
* [`ports`](#-nftables--rules--out--openafs_client--ports)
1093

    
1094
##### <a name="-nftables--rules--out--openafs_client--ports"></a>`ports`
1095

    
1096
Data type: `Array[Stdlib::Port,1]`
1097

    
1098
port numbers to use
1099

    
1100
Default value: `[7000, 7002, 7003]`
1101

    
1102
### <a name="nftables--rules--out--ospf"></a>`nftables::rules::out::ospf`
1103

    
1104
manage out ospf
1105

    
1106
### <a name="nftables--rules--out--ospf3"></a>`nftables::rules::out::ospf3`
1107

    
1108
manage out ospf3
1109

    
1110
### <a name="nftables--rules--out--pop3"></a>`nftables::rules::out::pop3`
1111

    
1112
allow outgoing pop3
1113

    
1114
### <a name="nftables--rules--out--postgres"></a>`nftables::rules::out::postgres`
1115

    
1116
manage out postgres
1117

    
1118
### <a name="nftables--rules--out--puppet"></a>`nftables::rules::out::puppet`
1119

    
1120
manage outgoing puppet
1121

    
1122
#### Parameters
1123

    
1124
The following parameters are available in the `nftables::rules::out::puppet` class:
1125

    
1126
* [`puppetserver`](#-nftables--rules--out--puppet--puppetserver)
1127
* [`puppetserver_port`](#-nftables--rules--out--puppet--puppetserver_port)
1128

    
1129
##### <a name="-nftables--rules--out--puppet--puppetserver"></a>`puppetserver`
1130

    
1131
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1132

    
1133
puppetserver hostname
1134

    
1135
##### <a name="-nftables--rules--out--puppet--puppetserver_port"></a>`puppetserver_port`
1136

    
1137
Data type: `Stdlib::Port`
1138

    
1139
puppetserver port
1140

    
1141
Default value: `8140`
1142

    
1143
### <a name="nftables--rules--out--pxp_agent"></a>`nftables::rules::out::pxp_agent`
1144

    
1145
manage outgoing pxp-agent
1146

    
1147
* **See also**
1148
  * also
1149
    * take a look at nftables::rules::out::puppet, because the PXP agent also connects to a Puppetserver
1150

    
1151
#### Parameters
1152

    
1153
The following parameters are available in the `nftables::rules::out::pxp_agent` class:
1154

    
1155
* [`broker`](#-nftables--rules--out--pxp_agent--broker)
1156
* [`broker_port`](#-nftables--rules--out--pxp_agent--broker_port)
1157

    
1158
##### <a name="-nftables--rules--out--pxp_agent--broker"></a>`broker`
1159

    
1160
Data type: `Variant[Stdlib::IP::Address,Array[Stdlib::IP::Address,1]]`
1161

    
1162
PXP broker IP(s)
1163

    
1164
##### <a name="-nftables--rules--out--pxp_agent--broker_port"></a>`broker_port`
1165

    
1166
Data type: `Stdlib::Port`
1167

    
1168
PXP broker port
1169

    
1170
Default value: `8142`
1171

    
1172
### <a name="nftables--rules--out--smtp"></a>`nftables::rules::out::smtp`
1173

    
1174
allow outgoing smtp
1175

    
1176
### <a name="nftables--rules--out--smtp_client"></a>`nftables::rules::out::smtp_client`
1177

    
1178
allow outgoing smtp client
1179

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

    
1182
allow outgoing SSDP
1183

    
1184
* **See also**
1185
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1186

    
1187
#### Parameters
1188

    
1189
The following parameters are available in the `nftables::rules::out::ssdp` class:
1190

    
1191
* [`ipv4`](#-nftables--rules--out--ssdp--ipv4)
1192
* [`ipv6`](#-nftables--rules--out--ssdp--ipv6)
1193

    
1194
##### <a name="-nftables--rules--out--ssdp--ipv4"></a>`ipv4`
1195

    
1196
Data type: `Boolean`
1197

    
1198
Allow SSDP over IPv4
1199

    
1200
Default value: `true`
1201

    
1202
##### <a name="-nftables--rules--out--ssdp--ipv6"></a>`ipv6`
1203

    
1204
Data type: `Boolean`
1205

    
1206
Allow SSDP over IPv6
1207

    
1208
Default value: `true`
1209

    
1210
### <a name="nftables--rules--out--ssh"></a>`nftables::rules::out::ssh`
1211

    
1212
manage out ssh
1213

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

    
1216
disable outgoing ssh
1217

    
1218
### <a name="nftables--rules--out--tor"></a>`nftables::rules::out::tor`
1219

    
1220
manage out tor
1221

    
1222
### <a name="nftables--rules--out--whois"></a>`nftables::rules::out::whois`
1223

    
1224
allow clients to query remote whois server
1225

    
1226
### <a name="nftables--rules--out--wireguard"></a>`nftables::rules::out::wireguard`
1227

    
1228
manage out wireguard
1229

    
1230
#### Parameters
1231

    
1232
The following parameters are available in the `nftables::rules::out::wireguard` class:
1233

    
1234
* [`ports`](#-nftables--rules--out--wireguard--ports)
1235

    
1236
##### <a name="-nftables--rules--out--wireguard--ports"></a>`ports`
1237

    
1238
Data type: `Array[Integer,1]`
1239

    
1240
specify wireguard ports
1241

    
1242
Default value: `[51820]`
1243

    
1244
### <a name="nftables--rules--podman"></a>`nftables::rules::podman`
1245

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

    
1252
### <a name="nftables--rules--puppet"></a>`nftables::rules::puppet`
1253

    
1254
manage in puppet
1255

    
1256
#### Parameters
1257

    
1258
The following parameters are available in the `nftables::rules::puppet` class:
1259

    
1260
* [`ports`](#-nftables--rules--puppet--ports)
1261

    
1262
##### <a name="-nftables--rules--puppet--ports"></a>`ports`
1263

    
1264
Data type: `Array[Integer,1]`
1265

    
1266
puppet server ports
1267

    
1268
Default value: `[8140]`
1269

    
1270
### <a name="nftables--rules--pxp_agent"></a>`nftables::rules::pxp_agent`
1271

    
1272
manage in pxp-agent
1273

    
1274
#### Parameters
1275

    
1276
The following parameters are available in the `nftables::rules::pxp_agent` class:
1277

    
1278
* [`ports`](#-nftables--rules--pxp_agent--ports)
1279

    
1280
##### <a name="-nftables--rules--pxp_agent--ports"></a>`ports`
1281

    
1282
Data type: `Array[Stdlib::Port,1]`
1283

    
1284
pxp server ports
1285

    
1286
Default value: `[8142]`
1287

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

    
1290
This class configures the typical firewall setup that libvirt
1291
creates. Depending on your requirements you can switch on and off
1292
several aspects, for instance if you don't do DHCP to your guests
1293
you can disable the rules that accept DHCP traffic on the host or if
1294
you don't want your guests to talk to hosts outside you can disable
1295
forwarding and/or masquerading for IPv4 traffic.
1296

    
1297
#### Parameters
1298

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

    
1301
* [`interface`](#-nftables--rules--qemu--interface)
1302
* [`network_v4`](#-nftables--rules--qemu--network_v4)
1303
* [`network_v6`](#-nftables--rules--qemu--network_v6)
1304
* [`dns`](#-nftables--rules--qemu--dns)
1305
* [`dhcpv4`](#-nftables--rules--qemu--dhcpv4)
1306
* [`forward_traffic`](#-nftables--rules--qemu--forward_traffic)
1307
* [`internal_traffic`](#-nftables--rules--qemu--internal_traffic)
1308
* [`masquerade`](#-nftables--rules--qemu--masquerade)
1309

    
1310
##### <a name="-nftables--rules--qemu--interface"></a>`interface`
1311

    
1312
Data type: `String[1]`
1313

    
1314
Interface name used by the bridge.
1315

    
1316
Default value: `'virbr0'`
1317

    
1318
##### <a name="-nftables--rules--qemu--network_v4"></a>`network_v4`
1319

    
1320
Data type: `Stdlib::IP::Address::V4::CIDR`
1321

    
1322
The IPv4 network prefix used in the virtual network.
1323

    
1324
Default value: `'192.168.122.0/24'`
1325

    
1326
##### <a name="-nftables--rules--qemu--network_v6"></a>`network_v6`
1327

    
1328
Data type: `Optional[Stdlib::IP::Address::V6::CIDR]`
1329

    
1330
The IPv6 network prefix used in the virtual network.
1331

    
1332
Default value: `undef`
1333

    
1334
##### <a name="-nftables--rules--qemu--dns"></a>`dns`
1335

    
1336
Data type: `Boolean`
1337

    
1338
Allow DNS traffic from the guests to the host.
1339

    
1340
Default value: `true`
1341

    
1342
##### <a name="-nftables--rules--qemu--dhcpv4"></a>`dhcpv4`
1343

    
1344
Data type: `Boolean`
1345

    
1346
Allow DHCPv4 traffic from the guests to the host.
1347

    
1348
Default value: `true`
1349

    
1350
##### <a name="-nftables--rules--qemu--forward_traffic"></a>`forward_traffic`
1351

    
1352
Data type: `Boolean`
1353

    
1354
Allow forwarded traffic (out all, in related/established)
1355
generated by the virtual network.
1356

    
1357
Default value: `true`
1358

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

    
1361
Data type: `Boolean`
1362

    
1363
Allow guests in the virtual network to talk to each other.
1364

    
1365
Default value: `true`
1366

    
1367
##### <a name="-nftables--rules--qemu--masquerade"></a>`masquerade`
1368

    
1369
Data type: `Boolean`
1370

    
1371
Do NAT masquerade on all IPv4 traffic generated by guests
1372
to external networks.
1373

    
1374
Default value: `true`
1375

    
1376
### <a name="nftables--rules--samba"></a>`nftables::rules::samba`
1377

    
1378
manage Samba, the suite to allow Windows file sharing on Linux resources.
1379

    
1380
#### Parameters
1381

    
1382
The following parameters are available in the `nftables::rules::samba` class:
1383

    
1384
* [`ctdb`](#-nftables--rules--samba--ctdb)
1385
* [`action`](#-nftables--rules--samba--action)
1386

    
1387
##### <a name="-nftables--rules--samba--ctdb"></a>`ctdb`
1388

    
1389
Data type: `Boolean`
1390

    
1391
Enable ctdb-driven clustered Samba setups
1392

    
1393
Default value: `false`
1394

    
1395
##### <a name="-nftables--rules--samba--action"></a>`action`
1396

    
1397
Data type: `Enum['accept', 'drop']`
1398

    
1399
if the traffic should be allowed or dropped
1400

    
1401
Default value: `'accept'`
1402

    
1403
### <a name="nftables--rules--smtp"></a>`nftables::rules::smtp`
1404

    
1405
manage in smtp
1406

    
1407
### <a name="nftables--rules--smtp_submission"></a>`nftables::rules::smtp_submission`
1408

    
1409
manage in smtp submission
1410

    
1411
### <a name="nftables--rules--smtps"></a>`nftables::rules::smtps`
1412

    
1413
manage in smtps
1414

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

    
1417
allow incoming spotify
1418

    
1419
### <a name="nftables--rules--ssdp"></a>`nftables::rules::ssdp`
1420

    
1421
allow incoming SSDP
1422

    
1423
* **See also**
1424
  * https://datatracker.ietf.org/doc/html/draft-cai-ssdp-v1-03
1425

    
1426
#### Parameters
1427

    
1428
The following parameters are available in the `nftables::rules::ssdp` class:
1429

    
1430
* [`ipv4`](#-nftables--rules--ssdp--ipv4)
1431
* [`ipv6`](#-nftables--rules--ssdp--ipv6)
1432

    
1433
##### <a name="-nftables--rules--ssdp--ipv4"></a>`ipv4`
1434

    
1435
Data type: `Boolean`
1436

    
1437
Allow SSDP over IPv4
1438

    
1439
Default value: `true`
1440

    
1441
##### <a name="-nftables--rules--ssdp--ipv6"></a>`ipv6`
1442

    
1443
Data type: `Boolean`
1444

    
1445
Allow SSDP over IPv6
1446

    
1447
Default value: `true`
1448

    
1449
### <a name="nftables--rules--ssh"></a>`nftables::rules::ssh`
1450

    
1451
manage in ssh
1452

    
1453
#### Parameters
1454

    
1455
The following parameters are available in the `nftables::rules::ssh` class:
1456

    
1457
* [`ports`](#-nftables--rules--ssh--ports)
1458

    
1459
##### <a name="-nftables--rules--ssh--ports"></a>`ports`
1460

    
1461
Data type: `Array[Stdlib::Port,1]`
1462

    
1463
ssh ports
1464

    
1465
Default value: `[22]`
1466

    
1467
### <a name="nftables--rules--tor"></a>`nftables::rules::tor`
1468

    
1469
manage in tor
1470

    
1471
#### Parameters
1472

    
1473
The following parameters are available in the `nftables::rules::tor` class:
1474

    
1475
* [`ports`](#-nftables--rules--tor--ports)
1476

    
1477
##### <a name="-nftables--rules--tor--ports"></a>`ports`
1478

    
1479
Data type: `Array[Stdlib::Port,1]`
1480

    
1481
ports for tor
1482

    
1483
Default value: `[9001]`
1484

    
1485
### <a name="nftables--rules--wireguard"></a>`nftables::rules::wireguard`
1486

    
1487
manage in wireguard
1488

    
1489
#### Parameters
1490

    
1491
The following parameters are available in the `nftables::rules::wireguard` class:
1492

    
1493
* [`ports`](#-nftables--rules--wireguard--ports)
1494

    
1495
##### <a name="-nftables--rules--wireguard--ports"></a>`ports`
1496

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

    
1499
wiregueard port
1500

    
1501
Default value: `[51820]`
1502

    
1503
### <a name="nftables--rules--wsd"></a>`nftables::rules::wsd`
1504

    
1505
allow incoming webservice discovery
1506

    
1507
* **See also**
1508
  * https://docs.oasis-open.org/ws-dd/ns/discovery/2009/01
1509

    
1510
#### Parameters
1511

    
1512
The following parameters are available in the `nftables::rules::wsd` class:
1513

    
1514
* [`ipv4`](#-nftables--rules--wsd--ipv4)
1515
* [`ipv6`](#-nftables--rules--wsd--ipv6)
1516

    
1517
##### <a name="-nftables--rules--wsd--ipv4"></a>`ipv4`
1518

    
1519
Data type: `Boolean`
1520

    
1521
Allow ws-discovery over IPv4
1522

    
1523
Default value: `true`
1524

    
1525
##### <a name="-nftables--rules--wsd--ipv6"></a>`ipv6`
1526

    
1527
Data type: `Boolean`
1528

    
1529
Allow ws-discovery over IPv6
1530

    
1531
Default value: `true`
1532

    
1533
### <a name="nftables--services--dhcpv6_client"></a>`nftables::services::dhcpv6_client`
1534

    
1535
Allow in and outbound traffic for DHCPv6 server
1536

    
1537
### <a name="nftables--services--openafs_client"></a>`nftables::services::openafs_client`
1538

    
1539
Open inbound and outbound ports for an AFS client
1540

    
1541
## Defined types
1542

    
1543
### <a name="nftables--chain"></a>`nftables::chain`
1544

    
1545
manage a chain
1546

    
1547
#### Parameters
1548

    
1549
The following parameters are available in the `nftables::chain` defined type:
1550

    
1551
* [`table`](#-nftables--chain--table)
1552
* [`chain`](#-nftables--chain--chain)
1553
* [`inject`](#-nftables--chain--inject)
1554
* [`inject_iif`](#-nftables--chain--inject_iif)
1555
* [`inject_oif`](#-nftables--chain--inject_oif)
1556

    
1557
##### <a name="-nftables--chain--table"></a>`table`
1558

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

    
1561

    
1562

    
1563
Default value: `'inet-filter'`
1564

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

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

    
1569

    
1570

    
1571
Default value: `$title`
1572

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

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

    
1577

    
1578

    
1579
Default value: `undef`
1580

    
1581
##### <a name="-nftables--chain--inject_iif"></a>`inject_iif`
1582

    
1583
Data type: `Optional[String]`
1584

    
1585

    
1586

    
1587
Default value: `undef`
1588

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

    
1591
Data type: `Optional[String]`
1592

    
1593

    
1594

    
1595
Default value: `undef`
1596

    
1597
### <a name="nftables--config"></a>`nftables::config`
1598

    
1599
manage a config snippet
1600

    
1601
#### Parameters
1602

    
1603
The following parameters are available in the `nftables::config` defined type:
1604

    
1605
* [`tablespec`](#-nftables--config--tablespec)
1606
* [`content`](#-nftables--config--content)
1607
* [`source`](#-nftables--config--source)
1608
* [`prefix`](#-nftables--config--prefix)
1609

    
1610
##### <a name="-nftables--config--tablespec"></a>`tablespec`
1611

    
1612
Data type: `Pattern[/^\w+-\w+$/]`
1613

    
1614

    
1615

    
1616
Default value: `$title`
1617

    
1618
##### <a name="-nftables--config--content"></a>`content`
1619

    
1620
Data type: `Optional[String]`
1621

    
1622

    
1623

    
1624
Default value: `undef`
1625

    
1626
##### <a name="-nftables--config--source"></a>`source`
1627

    
1628
Data type: `Optional[Variant[String,Array[String,1]]]`
1629

    
1630

    
1631

    
1632
Default value: `undef`
1633

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

    
1636
Data type: `String`
1637

    
1638

    
1639

    
1640
Default value: `'custom-'`
1641

    
1642
### <a name="nftables--file"></a>`nftables::file`
1643

    
1644
Insert a file into the nftables configuration
1645

    
1646
#### Examples
1647

    
1648
##### Include a file that includes other files
1649

    
1650
```puppet
1651
nftables::file{'geoip':
1652
  content => @(EOT)
1653
    include "/var/local/geoipsets/dbip/nftset/ipv4/*.ipv4"
1654
    include "/var/local/geoipsets/dbip/nftset/ipv6/*.ipv6"
1655
    |EOT,
1656
}
1657
```
1658

    
1659
#### Parameters
1660

    
1661
The following parameters are available in the `nftables::file` defined type:
1662

    
1663
* [`label`](#-nftables--file--label)
1664
* [`content`](#-nftables--file--content)
1665
* [`source`](#-nftables--file--source)
1666
* [`prefix`](#-nftables--file--prefix)
1667

    
1668
##### <a name="-nftables--file--label"></a>`label`
1669

    
1670
Data type: `String[1]`
1671

    
1672
Unique name to include in filename.
1673

    
1674
Default value: `$title`
1675

    
1676
##### <a name="-nftables--file--content"></a>`content`
1677

    
1678
Data type: `Optional[String]`
1679

    
1680
The content to place in the file.
1681

    
1682
Default value: `undef`
1683

    
1684
##### <a name="-nftables--file--source"></a>`source`
1685

    
1686
Data type: `Optional[Variant[String,Array[String,1]]]`
1687

    
1688
A source to obtain the file content from.
1689

    
1690
Default value: `undef`
1691

    
1692
##### <a name="-nftables--file--prefix"></a>`prefix`
1693

    
1694
Data type: `String`
1695

    
1696
Prefix of file name to be created, if left as `file-` it will be
1697
auto included in the main nft configuration
1698

    
1699
Default value: `'file-'`
1700

    
1701
### <a name="nftables--helper"></a>`nftables::helper`
1702

    
1703
manage a conntrack helper
1704

    
1705
#### Examples
1706

    
1707
##### FTP helper
1708

    
1709
```puppet
1710
nftables::helper { 'ftp-standard':
1711
  content => 'type "ftp" protocol tcp;',
1712
}
1713
```
1714

    
1715
#### Parameters
1716

    
1717
The following parameters are available in the `nftables::helper` defined type:
1718

    
1719
* [`content`](#-nftables--helper--content)
1720
* [`table`](#-nftables--helper--table)
1721
* [`helper`](#-nftables--helper--helper)
1722

    
1723
##### <a name="-nftables--helper--content"></a>`content`
1724

    
1725
Data type: `String`
1726

    
1727
Conntrack helper definition.
1728

    
1729
##### <a name="-nftables--helper--table"></a>`table`
1730

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

    
1733
The name of the table to add this helper to.
1734

    
1735
Default value: `'inet-filter'`
1736

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

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

    
1741
The symbolic name for the helper.
1742

    
1743
Default value: `$title`
1744

    
1745
### <a name="nftables--rule"></a>`nftables::rule`
1746

    
1747
Provides an interface to create a firewall rule
1748

    
1749
#### Examples
1750

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

    
1753
```puppet
1754
nftables::rule {
1755
  'default_in-myhttp':
1756
    content => 'tcp dport 80 accept',
1757
}
1758
```
1759

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

    
1762
```puppet
1763
nftables::rule {
1764
  'PREROUTING6-count':
1765
    content => 'counter',
1766
    table   => 'ip6-nat'
1767
}
1768
```
1769

    
1770
##### Redirect port 443 to port 8443
1771

    
1772
```puppet
1773
nftables::rule { 'PREROUTING-redirect':
1774
  content => 'tcp dport 443 redirect to :8443',
1775
  table   => 'ip-nat',
1776
}
1777
nftables::rule{'PREROUTING6-redirect':
1778
  content => 'tcp dport 443 redirect to :8443',
1779
  table   => 'ip6-nat',
1780
}
1781
```
1782

    
1783
#### Parameters
1784

    
1785
The following parameters are available in the `nftables::rule` defined type:
1786

    
1787
* [`ensure`](#-nftables--rule--ensure)
1788
* [`rulename`](#-nftables--rule--rulename)
1789
* [`order`](#-nftables--rule--order)
1790
* [`table`](#-nftables--rule--table)
1791
* [`content`](#-nftables--rule--content)
1792
* [`source`](#-nftables--rule--source)
1793

    
1794
##### <a name="-nftables--rule--ensure"></a>`ensure`
1795

    
1796
Data type: `Enum['present','absent']`
1797

    
1798
Should the rule be created.
1799

    
1800
Default value: `'present'`
1801

    
1802
##### <a name="-nftables--rule--rulename"></a>`rulename`
1803

    
1804
Data type: `Nftables::RuleName`
1805

    
1806
The symbolic name for the rule and to what chain to add it. The
1807
format is defined by the Nftables::RuleName type.
1808

    
1809
Default value: `$title`
1810

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

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

    
1815
A number representing the order of the rule.
1816

    
1817
Default value: `'50'`
1818

    
1819
##### <a name="-nftables--rule--table"></a>`table`
1820

    
1821
Data type: `String`
1822

    
1823
The name of the table to add this rule to.
1824

    
1825
Default value: `'inet-filter'`
1826

    
1827
##### <a name="-nftables--rule--content"></a>`content`
1828

    
1829
Data type: `Optional[String]`
1830

    
1831
The raw statements that compose the rule represented using the nftables
1832
language.
1833

    
1834
Default value: `undef`
1835

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

    
1838
Data type: `Optional[Variant[String,Array[String,1]]]`
1839

    
1840
Same goal as content but sourcing the value from a file.
1841

    
1842
Default value: `undef`
1843

    
1844
### <a name="nftables--rules--dnat4"></a>`nftables::rules::dnat4`
1845

    
1846
manage a ipv4 dnat rule
1847

    
1848
#### Parameters
1849

    
1850
The following parameters are available in the `nftables::rules::dnat4` defined type:
1851

    
1852
* [`daddr`](#-nftables--rules--dnat4--daddr)
1853
* [`port`](#-nftables--rules--dnat4--port)
1854
* [`rulename`](#-nftables--rules--dnat4--rulename)
1855
* [`order`](#-nftables--rules--dnat4--order)
1856
* [`chain`](#-nftables--rules--dnat4--chain)
1857
* [`iif`](#-nftables--rules--dnat4--iif)
1858
* [`proto`](#-nftables--rules--dnat4--proto)
1859
* [`dport`](#-nftables--rules--dnat4--dport)
1860
* [`ensure`](#-nftables--rules--dnat4--ensure)
1861

    
1862
##### <a name="-nftables--rules--dnat4--daddr"></a>`daddr`
1863

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

    
1866

    
1867

    
1868
##### <a name="-nftables--rules--dnat4--port"></a>`port`
1869

    
1870
Data type: `Variant[String,Stdlib::Port]`
1871

    
1872

    
1873

    
1874
##### <a name="-nftables--rules--dnat4--rulename"></a>`rulename`
1875

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

    
1878

    
1879

    
1880
Default value: `$title`
1881

    
1882
##### <a name="-nftables--rules--dnat4--order"></a>`order`
1883

    
1884
Data type: `Pattern[/^\d\d$/]`
1885

    
1886

    
1887

    
1888
Default value: `'50'`
1889

    
1890
##### <a name="-nftables--rules--dnat4--chain"></a>`chain`
1891

    
1892
Data type: `String[1]`
1893

    
1894

    
1895

    
1896
Default value: `'default_fwd'`
1897

    
1898
##### <a name="-nftables--rules--dnat4--iif"></a>`iif`
1899

    
1900
Data type: `Optional[String[1]]`
1901

    
1902

    
1903

    
1904
Default value: `undef`
1905

    
1906
##### <a name="-nftables--rules--dnat4--proto"></a>`proto`
1907

    
1908
Data type: `Enum['tcp','udp']`
1909

    
1910

    
1911

    
1912
Default value: `'tcp'`
1913

    
1914
##### <a name="-nftables--rules--dnat4--dport"></a>`dport`
1915

    
1916
Data type: `Optional[Variant[String,Stdlib::Port]]`
1917

    
1918

    
1919

    
1920
Default value: `undef`
1921

    
1922
##### <a name="-nftables--rules--dnat4--ensure"></a>`ensure`
1923

    
1924
Data type: `Enum['present','absent']`
1925

    
1926

    
1927

    
1928
Default value: `'present'`
1929

    
1930
### <a name="nftables--rules--masquerade"></a>`nftables::rules::masquerade`
1931

    
1932
masquerade all outgoing traffic
1933

    
1934
#### Parameters
1935

    
1936
The following parameters are available in the `nftables::rules::masquerade` defined type:
1937

    
1938
* [`rulename`](#-nftables--rules--masquerade--rulename)
1939
* [`order`](#-nftables--rules--masquerade--order)
1940
* [`chain`](#-nftables--rules--masquerade--chain)
1941
* [`oif`](#-nftables--rules--masquerade--oif)
1942
* [`saddr`](#-nftables--rules--masquerade--saddr)
1943
* [`daddr`](#-nftables--rules--masquerade--daddr)
1944
* [`proto`](#-nftables--rules--masquerade--proto)
1945
* [`dport`](#-nftables--rules--masquerade--dport)
1946
* [`ensure`](#-nftables--rules--masquerade--ensure)
1947

    
1948
##### <a name="-nftables--rules--masquerade--rulename"></a>`rulename`
1949

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

    
1952

    
1953

    
1954
Default value: `$title`
1955

    
1956
##### <a name="-nftables--rules--masquerade--order"></a>`order`
1957

    
1958
Data type: `Pattern[/^\d\d$/]`
1959

    
1960

    
1961

    
1962
Default value: `'70'`
1963

    
1964
##### <a name="-nftables--rules--masquerade--chain"></a>`chain`
1965

    
1966
Data type: `String[1]`
1967

    
1968

    
1969

    
1970
Default value: `'POSTROUTING'`
1971

    
1972
##### <a name="-nftables--rules--masquerade--oif"></a>`oif`
1973

    
1974
Data type: `Optional[String[1]]`
1975

    
1976

    
1977

    
1978
Default value: `undef`
1979

    
1980
##### <a name="-nftables--rules--masquerade--saddr"></a>`saddr`
1981

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

    
1984

    
1985

    
1986
Default value: `undef`
1987

    
1988
##### <a name="-nftables--rules--masquerade--daddr"></a>`daddr`
1989

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

    
1992

    
1993

    
1994
Default value: `undef`
1995

    
1996
##### <a name="-nftables--rules--masquerade--proto"></a>`proto`
1997

    
1998
Data type: `Optional[Enum['tcp','udp']]`
1999

    
2000

    
2001

    
2002
Default value: `undef`
2003

    
2004
##### <a name="-nftables--rules--masquerade--dport"></a>`dport`
2005

    
2006
Data type: `Optional[Variant[String,Stdlib::Port]]`
2007

    
2008

    
2009

    
2010
Default value: `undef`
2011

    
2012
##### <a name="-nftables--rules--masquerade--ensure"></a>`ensure`
2013

    
2014
Data type: `Enum['present','absent']`
2015

    
2016

    
2017

    
2018
Default value: `'present'`
2019

    
2020
### <a name="nftables--rules--snat4"></a>`nftables::rules::snat4`
2021

    
2022
manage a ipv4 snat rule
2023

    
2024
#### Parameters
2025

    
2026
The following parameters are available in the `nftables::rules::snat4` defined type:
2027

    
2028
* [`snat`](#-nftables--rules--snat4--snat)
2029
* [`rulename`](#-nftables--rules--snat4--rulename)
2030
* [`order`](#-nftables--rules--snat4--order)
2031
* [`chain`](#-nftables--rules--snat4--chain)
2032
* [`oif`](#-nftables--rules--snat4--oif)
2033
* [`saddr`](#-nftables--rules--snat4--saddr)
2034
* [`proto`](#-nftables--rules--snat4--proto)
2035
* [`dport`](#-nftables--rules--snat4--dport)
2036
* [`ensure`](#-nftables--rules--snat4--ensure)
2037

    
2038
##### <a name="-nftables--rules--snat4--snat"></a>`snat`
2039

    
2040
Data type: `String[1]`
2041

    
2042

    
2043

    
2044
##### <a name="-nftables--rules--snat4--rulename"></a>`rulename`
2045

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

    
2048

    
2049

    
2050
Default value: `$title`
2051

    
2052
##### <a name="-nftables--rules--snat4--order"></a>`order`
2053

    
2054
Data type: `Pattern[/^\d\d$/]`
2055

    
2056

    
2057

    
2058
Default value: `'70'`
2059

    
2060
##### <a name="-nftables--rules--snat4--chain"></a>`chain`
2061

    
2062
Data type: `String[1]`
2063

    
2064

    
2065

    
2066
Default value: `'POSTROUTING'`
2067

    
2068
##### <a name="-nftables--rules--snat4--oif"></a>`oif`
2069

    
2070
Data type: `Optional[String[1]]`
2071

    
2072

    
2073

    
2074
Default value: `undef`
2075

    
2076
##### <a name="-nftables--rules--snat4--saddr"></a>`saddr`
2077

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

    
2080

    
2081

    
2082
Default value: `undef`
2083

    
2084
##### <a name="-nftables--rules--snat4--proto"></a>`proto`
2085

    
2086
Data type: `Optional[Enum['tcp','udp']]`
2087

    
2088

    
2089

    
2090
Default value: `undef`
2091

    
2092
##### <a name="-nftables--rules--snat4--dport"></a>`dport`
2093

    
2094
Data type: `Optional[Variant[String,Stdlib::Port]]`
2095

    
2096

    
2097

    
2098
Default value: `undef`
2099

    
2100
##### <a name="-nftables--rules--snat4--ensure"></a>`ensure`
2101

    
2102
Data type: `Enum['present','absent']`
2103

    
2104

    
2105

    
2106
Default value: `'present'`
2107

    
2108
### <a name="nftables--set"></a>`nftables::set`
2109

    
2110
manage a named set
2111

    
2112
#### Examples
2113

    
2114
##### simple set
2115

    
2116
```puppet
2117
nftables::set{'my_set':
2118
  type       => 'ipv4_addr',
2119
  flags      => ['interval'],
2120
  elements   => ['192.168.0.1/24', '10.0.0.2'],
2121
  auto_merge => true,
2122
}
2123
```
2124

    
2125
#### Parameters
2126

    
2127
The following parameters are available in the `nftables::set` defined type:
2128

    
2129
* [`ensure`](#-nftables--set--ensure)
2130
* [`setname`](#-nftables--set--setname)
2131
* [`order`](#-nftables--set--order)
2132
* [`type`](#-nftables--set--type)
2133
* [`table`](#-nftables--set--table)
2134
* [`flags`](#-nftables--set--flags)
2135
* [`timeout`](#-nftables--set--timeout)
2136
* [`gc_interval`](#-nftables--set--gc_interval)
2137
* [`elements`](#-nftables--set--elements)
2138
* [`size`](#-nftables--set--size)
2139
* [`policy`](#-nftables--set--policy)
2140
* [`auto_merge`](#-nftables--set--auto_merge)
2141
* [`content`](#-nftables--set--content)
2142
* [`source`](#-nftables--set--source)
2143

    
2144
##### <a name="-nftables--set--ensure"></a>`ensure`
2145

    
2146
Data type: `Enum['present','absent']`
2147

    
2148
should the set be created.
2149

    
2150
Default value: `'present'`
2151

    
2152
##### <a name="-nftables--set--setname"></a>`setname`
2153

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

    
2156
name of set, equal to to title.
2157

    
2158
Default value: `$title`
2159

    
2160
##### <a name="-nftables--set--order"></a>`order`
2161

    
2162
Data type: `Pattern[/^\d\d$/]`
2163

    
2164
concat ordering.
2165

    
2166
Default value: `'10'`
2167

    
2168
##### <a name="-nftables--set--type"></a>`type`
2169

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

    
2172
type of set.
2173

    
2174
Default value: `undef`
2175

    
2176
##### <a name="-nftables--set--table"></a>`table`
2177

    
2178
Data type: `Variant[String, Array[String, 1]]`
2179

    
2180
table or array of tables to add the set to.
2181

    
2182
Default value: `'inet-filter'`
2183

    
2184
##### <a name="-nftables--set--flags"></a>`flags`
2185

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

    
2188
specify flags for set
2189

    
2190
Default value: `[]`
2191

    
2192
##### <a name="-nftables--set--timeout"></a>`timeout`
2193

    
2194
Data type: `Optional[Integer]`
2195

    
2196
timeout in seconds
2197

    
2198
Default value: `undef`
2199

    
2200
##### <a name="-nftables--set--gc_interval"></a>`gc_interval`
2201

    
2202
Data type: `Optional[Integer]`
2203

    
2204
garbage collection interval.
2205

    
2206
Default value: `undef`
2207

    
2208
##### <a name="-nftables--set--elements"></a>`elements`
2209

    
2210
Data type: `Optional[Array[String]]`
2211

    
2212
initialize the set with some elements in it.
2213

    
2214
Default value: `undef`
2215

    
2216
##### <a name="-nftables--set--size"></a>`size`
2217

    
2218
Data type: `Optional[Integer]`
2219

    
2220
limits the maximum number of elements of the set.
2221

    
2222
Default value: `undef`
2223

    
2224
##### <a name="-nftables--set--policy"></a>`policy`
2225

    
2226
Data type: `Optional[Enum['performance', 'memory']]`
2227

    
2228
determines set selection policy.
2229

    
2230
Default value: `undef`
2231

    
2232
##### <a name="-nftables--set--auto_merge"></a>`auto_merge`
2233

    
2234
Data type: `Boolean`
2235

    
2236
automatically merge adjacent/overlapping set elements (only valid for interval sets)
2237

    
2238
Default value: `false`
2239

    
2240
##### <a name="-nftables--set--content"></a>`content`
2241

    
2242
Data type: `Optional[String]`
2243

    
2244
specify content of set.
2245

    
2246
Default value: `undef`
2247

    
2248
##### <a name="-nftables--set--source"></a>`source`
2249

    
2250
Data type: `Optional[Variant[String,Array[String,1]]]`
2251

    
2252
specify source of set.
2253

    
2254
Default value: `undef`
2255

    
2256
### <a name="nftables--simplerule"></a>`nftables::simplerule`
2257

    
2258
Provides a simplified interface to nftables::rule
2259

    
2260
#### Examples
2261

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

    
2264
```puppet
2265
nftables::simplerule{'my_service_in':
2266
  action  => 'accept',
2267
  comment => 'allow traffic to port 543',
2268
  counter => true,
2269
  proto   => 'tcp',
2270
  dport   => 543,
2271
  daddr   => '2001:1458::/32',
2272
  sport   => 541,
2273
}
2274
```
2275

    
2276
#### Parameters
2277

    
2278
The following parameters are available in the `nftables::simplerule` defined type:
2279

    
2280
* [`ensure`](#-nftables--simplerule--ensure)
2281
* [`rulename`](#-nftables--simplerule--rulename)
2282
* [`order`](#-nftables--simplerule--order)
2283
* [`chain`](#-nftables--simplerule--chain)
2284
* [`table`](#-nftables--simplerule--table)
2285
* [`action`](#-nftables--simplerule--action)
2286
* [`comment`](#-nftables--simplerule--comment)
2287
* [`dport`](#-nftables--simplerule--dport)
2288
* [`proto`](#-nftables--simplerule--proto)
2289
* [`daddr`](#-nftables--simplerule--daddr)
2290
* [`set_type`](#-nftables--simplerule--set_type)
2291
* [`sport`](#-nftables--simplerule--sport)
2292
* [`saddr`](#-nftables--simplerule--saddr)
2293
* [`counter`](#-nftables--simplerule--counter)
2294
* [`iifname`](#-nftables--simplerule--iifname)
2295
* [`oifname`](#-nftables--simplerule--oifname)
2296

    
2297
##### <a name="-nftables--simplerule--ensure"></a>`ensure`
2298

    
2299
Data type: `Enum['present','absent']`
2300

    
2301
Should the rule be created.
2302

    
2303
Default value: `'present'`
2304

    
2305
##### <a name="-nftables--simplerule--rulename"></a>`rulename`
2306

    
2307
Data type: `Nftables::SimpleRuleName`
2308

    
2309
The symbolic name for the rule to add. Defaults to the resource's title.
2310

    
2311
Default value: `$title`
2312

    
2313
##### <a name="-nftables--simplerule--order"></a>`order`
2314

    
2315
Data type: `Pattern[/^\d\d$/]`
2316

    
2317
A number representing the order of the rule.
2318

    
2319
Default value: `'50'`
2320

    
2321
##### <a name="-nftables--simplerule--chain"></a>`chain`
2322

    
2323
Data type: `String`
2324

    
2325
The name of the chain to add this rule to.
2326

    
2327
Default value: `'default_in'`
2328

    
2329
##### <a name="-nftables--simplerule--table"></a>`table`
2330

    
2331
Data type: `String`
2332

    
2333
The name of the table to add this rule to.
2334

    
2335
Default value: `'inet-filter'`
2336

    
2337
##### <a name="-nftables--simplerule--action"></a>`action`
2338

    
2339
Data type: `Enum['accept', 'continue', 'drop', 'queue', 'return']`
2340

    
2341
The verdict for the matched traffic.
2342

    
2343
Default value: `'accept'`
2344

    
2345
##### <a name="-nftables--simplerule--comment"></a>`comment`
2346

    
2347
Data type: `Optional[String]`
2348

    
2349
A typically human-readable comment for the rule.
2350

    
2351
Default value: `undef`
2352

    
2353
##### <a name="-nftables--simplerule--dport"></a>`dport`
2354

    
2355
Data type: `Optional[Nftables::Port]`
2356

    
2357
The destination port, ports or port range.
2358

    
2359
Default value: `undef`
2360

    
2361
##### <a name="-nftables--simplerule--proto"></a>`proto`
2362

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

    
2365
The transport-layer protocol to match.
2366

    
2367
Default value: `undef`
2368

    
2369
##### <a name="-nftables--simplerule--daddr"></a>`daddr`
2370

    
2371
Data type: `Optional[Nftables::Addr]`
2372

    
2373
The destination address, CIDR or set to match.
2374

    
2375
Default value: `undef`
2376

    
2377
##### <a name="-nftables--simplerule--set_type"></a>`set_type`
2378

    
2379
Data type: `Enum['ip', 'ip6']`
2380

    
2381
When using sets as saddr or daddr, the type of the set.
2382
Use `ip` for sets of type `ipv4_addr`.
2383

    
2384
Default value: `'ip6'`
2385

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

    
2388
Data type: `Optional[Nftables::Port]`
2389

    
2390
The source port, ports or port range.
2391

    
2392
Default value: `undef`
2393

    
2394
##### <a name="-nftables--simplerule--saddr"></a>`saddr`
2395

    
2396
Data type: `Optional[Nftables::Addr]`
2397

    
2398
The source address, CIDR or set to match.
2399

    
2400
Default value: `undef`
2401

    
2402
##### <a name="-nftables--simplerule--counter"></a>`counter`
2403

    
2404
Data type: `Boolean`
2405

    
2406
Enable traffic counters for the matched traffic.
2407

    
2408
Default value: `false`
2409

    
2410
##### <a name="-nftables--simplerule--iifname"></a>`iifname`
2411

    
2412
Data type: `Variant[Array[String[1]],String[1]]`
2413

    
2414
Optional filter for the incoming interface
2415

    
2416
Default value: `[]`
2417

    
2418
##### <a name="-nftables--simplerule--oifname"></a>`oifname`
2419

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

    
2422
Optional filter for the outgoing interface
2423

    
2424
Default value: `[]`
2425

    
2426
## Data types
2427

    
2428
### <a name="Nftables--Addr"></a>`Nftables::Addr`
2429

    
2430
Represents an address expression to be used within a rule.
2431

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

    
2434
### <a name="Nftables--Addr--Set"></a>`Nftables::Addr::Set`
2435

    
2436
Represents a set expression to be used within a rule.
2437

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

    
2440
### <a name="Nftables--Port"></a>`Nftables::Port`
2441

    
2442
Represents a port expression to be used within a rule.
2443

    
2444
Alias of `Variant[Array[Variant[Nftables::Port::Range, Stdlib::Port], 1], Stdlib::Port, Nftables::Port::Range]`
2445

    
2446
### <a name="Nftables--Port--Range"></a>`Nftables::Port::Range`
2447

    
2448
Represents a port range expression to be used within a rule.
2449

    
2450
Alias of `Pattern[/^\d+-\d+$/]`
2451

    
2452
### <a name="Nftables--RuleName"></a>`Nftables::RuleName`
2453

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

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

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

    
2463
Represents a simple rule name to be used in a rule created via nftables::simplerule
2464

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