cloud-mu 3.6.10 → 3.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Berksfile +2 -3
- data/Berksfile.lock +11 -14
- data/bin/mu-aws-setup +16 -4
- data/bin/mu-configure +2 -1
- data/cloud-mu.gemspec +2 -2
- data/cookbooks/mu-firewall/Berksfile +1 -1
- data/cookbooks/mu-firewall/attributes/default.rb +2 -2
- data/cookbooks/mu-firewall/metadata.rb +3 -3
- data/cookbooks/mu-firewall/recipes/default.rb +11 -2
- data/cookbooks/mu-master/Berksfile +1 -1
- data/cookbooks/mu-master/attributes/default.rb +14 -1
- data/cookbooks/mu-master/files/default/389ds-perl/ASDialogs.pm +173 -0
- data/cookbooks/mu-master/files/default/389ds-perl/AdminMigration.pm +569 -0
- data/cookbooks/mu-master/files/default/389ds-perl/AdminServer.pm +952 -0
- data/cookbooks/mu-master/files/default/389ds-perl/AdminUtil.pm +983 -0
- data/cookbooks/mu-master/files/default/389ds-perl/ConfigDSDialogs.pm +449 -0
- data/cookbooks/mu-master/files/default/389ds-perl/DSCreate.pm +1551 -0
- data/cookbooks/mu-master/files/default/389ds-perl/DSDialogs.pm +233 -0
- data/cookbooks/mu-master/files/default/389ds-perl/DSMigration.pm +1175 -0
- data/cookbooks/mu-master/files/default/389ds-perl/DSUpdate.pm +534 -0
- data/cookbooks/mu-master/files/default/389ds-perl/DSUpdateDialogs.pm +152 -0
- data/cookbooks/mu-master/files/default/389ds-perl/DSUtil.pm +1710 -0
- data/cookbooks/mu-master/files/default/389ds-perl/Dialog.pm +249 -0
- data/cookbooks/mu-master/files/default/389ds-perl/DialogManager.pm +212 -0
- data/cookbooks/mu-master/files/default/389ds-perl/FileConn.pm +461 -0
- data/cookbooks/mu-master/files/default/389ds-perl/Inf.pm +268 -0
- data/cookbooks/mu-master/files/default/389ds-perl/Migration.pm +327 -0
- data/cookbooks/mu-master/files/default/389ds-perl/RegDSDialogs.pm +94 -0
- data/cookbooks/mu-master/files/default/389ds-perl/Resource.pm +137 -0
- data/cookbooks/mu-master/files/default/389ds-perl/Setup.pm +240 -0
- data/cookbooks/mu-master/files/default/389ds-perl/SetupDialogs.pm +243 -0
- data/cookbooks/mu-master/files/default/389ds-perl/SetupLog.pm +82 -0
- data/cookbooks/mu-master/files/default/setCertName.ldif +4 -0
- data/cookbooks/mu-master/libraries/mu.rb +2 -2
- data/cookbooks/mu-master/metadata.rb +1 -1
- data/cookbooks/mu-master/recipes/389ds.rb +71 -32
- data/cookbooks/mu-master/recipes/basepackages.rb +5 -0
- data/cookbooks/mu-master/recipes/default.rb +16 -5
- data/cookbooks/mu-master/recipes/init.rb +36 -3
- data/cookbooks/mu-master/recipes/ssl-certs.rb +6 -0
- data/cookbooks/mu-master/recipes/sssd.rb +85 -62
- data/cookbooks/mu-master/recipes/update_nagios_only.rb +7 -1
- data/cookbooks/mu-master/templates/default/389-directory-setup.inf.erb +11 -26
- data/cookbooks/mu-master/templates/default/sssd.conf.erb +18 -8
- data/cookbooks/mu-tools/files/default/Mu_CA.pem +33 -0
- data/cookbooks/mu-tools/metadata.rb +0 -1
- data/cookbooks/mu-tools/recipes/set_local_fw.rb +7 -1
- data/cookbooks/mu-tools/templates/amazon/sshd_config.erb +5 -1
- data/cookbooks/nagios/CHANGELOG.md +679 -0
- data/cookbooks/nagios/LICENSE +201 -0
- data/cookbooks/nagios/README.md +340 -0
- data/cookbooks/nagios/attributes/config.rb +163 -0
- data/cookbooks/nagios/attributes/default.rb +204 -0
- data/cookbooks/nagios/libraries/base.rb +311 -0
- data/cookbooks/nagios/libraries/command.rb +68 -0
- data/cookbooks/nagios/libraries/contact.rb +229 -0
- data/cookbooks/nagios/libraries/contactgroup.rb +111 -0
- data/cookbooks/{firewall/recipes/disable_firewall.rb → nagios/libraries/custom_option.rb} +20 -7
- data/cookbooks/nagios/libraries/data_bag_helper.rb +23 -0
- data/cookbooks/nagios/libraries/default.rb +90 -0
- data/cookbooks/nagios/libraries/helpers.rb +229 -0
- data/cookbooks/nagios/libraries/host.rb +410 -0
- data/cookbooks/nagios/libraries/hostdependency.rb +178 -0
- data/cookbooks/nagios/libraries/hostescalation.rb +170 -0
- data/cookbooks/nagios/libraries/hostgroup.rb +117 -0
- data/cookbooks/nagios/libraries/nagios.rb +277 -0
- data/cookbooks/nagios/libraries/resource.rb +59 -0
- data/cookbooks/nagios/libraries/service.rb +449 -0
- data/cookbooks/nagios/libraries/servicedependency.rb +213 -0
- data/cookbooks/nagios/libraries/serviceescalation.rb +193 -0
- data/cookbooks/nagios/libraries/servicegroup.rb +142 -0
- data/cookbooks/nagios/libraries/timeperiod.rb +159 -0
- data/cookbooks/nagios/libraries/users_helper.rb +54 -0
- data/cookbooks/nagios/metadata.json +44 -0
- data/cookbooks/nagios/metadata.rb +22 -0
- data/cookbooks/nagios/recipes/_load_databag_config.rb +153 -0
- data/cookbooks/nagios/recipes/_load_default_config.rb +241 -0
- data/cookbooks/nagios/recipes/apache.rb +114 -0
- data/cookbooks/nagios/recipes/default.rb +41 -0
- data/cookbooks/nagios/recipes/nginx.rb +114 -0
- data/cookbooks/nagios/recipes/pagerduty.rb +95 -0
- data/cookbooks/nagios/recipes/server.rb +182 -0
- data/cookbooks/nagios/recipes/server_package.rb +85 -0
- data/cookbooks/nagios/recipes/server_source.rb +137 -0
- data/cookbooks/nagios/resources/command.rb +34 -0
- data/cookbooks/nagios/resources/conf.rb +52 -0
- data/cookbooks/nagios/resources/contact.rb +34 -0
- data/cookbooks/nagios/resources/contactgroup.rb +35 -0
- data/cookbooks/nagios/resources/host.rb +35 -0
- data/cookbooks/nagios/resources/hostdependency.rb +35 -0
- data/cookbooks/nagios/resources/hostescalation.rb +36 -0
- data/cookbooks/nagios/resources/hostgroup.rb +35 -0
- data/cookbooks/nagios/resources/resource.rb +34 -0
- data/cookbooks/nagios/resources/service.rb +35 -0
- data/cookbooks/nagios/resources/servicedependency.rb +35 -0
- data/cookbooks/nagios/resources/serviceescalation.rb +35 -0
- data/cookbooks/nagios/resources/servicegroup.rb +35 -0
- data/cookbooks/nagios/resources/timeperiod.rb +35 -0
- data/cookbooks/nagios/templates/apache2.conf.erb +102 -0
- data/cookbooks/nagios/templates/cgi.cfg.erb +266 -0
- data/cookbooks/nagios/templates/commands.cfg.erb +13 -0
- data/cookbooks/nagios/templates/contacts.cfg.erb +37 -0
- data/cookbooks/nagios/templates/hostgroups.cfg.erb +25 -0
- data/cookbooks/nagios/templates/hosts.cfg.erb +15 -0
- data/cookbooks/nagios/templates/htpasswd.users.erb +6 -0
- data/cookbooks/nagios/templates/nagios.cfg.erb +22 -0
- data/cookbooks/nagios/templates/nginx.conf.erb +80 -0
- data/cookbooks/nagios/templates/pagerduty.cgi.erb +185 -0
- data/cookbooks/nagios/templates/resource.cfg.erb +27 -0
- data/cookbooks/nagios/templates/servicedependencies.cfg.erb +15 -0
- data/cookbooks/nagios/templates/servicegroups.cfg.erb +14 -0
- data/cookbooks/nagios/templates/services.cfg.erb +14 -0
- data/cookbooks/nagios/templates/spawn-fcgi.erb +10 -0
- data/cookbooks/nagios/templates/templates.cfg.erb +31 -0
- data/cookbooks/nagios/templates/timeperiods.cfg.erb +13 -0
- data/extras/platform_berksfile_base +3 -3
- data/extras/python_rpm/build.sh +4 -4
- data/extras/python_rpm/muthon.spec +2 -4
- data/extras/vault_tools/export_vaults.sh +11 -1
- data/install/installer +1 -1
- data/modules/mu/kittens.rb +27523 -0
- data/modules/mu/master/ldap.rb +48 -31
- data/modules/mu/master.rb +69 -0
- data/modules/mu/mu.yaml.rb +351 -0
- data/modules/mu/providers/aws/firewall_rule.rb +3 -1
- data/modules/mu/providers/aws.rb +11 -5
- data/modules/mu.rb +5 -4
- metadata +99 -48
- data/cookbooks/firewall/CHANGELOG.md +0 -488
- data/cookbooks/firewall/LICENSE +0 -202
- data/cookbooks/firewall/README.md +0 -366
- data/cookbooks/firewall/TODO.md +0 -6
- data/cookbooks/firewall/attributes/default.rb +0 -5
- data/cookbooks/firewall/attributes/firewalld.rb +0 -8
- data/cookbooks/firewall/attributes/iptables.rb +0 -17
- data/cookbooks/firewall/attributes/ufw.rb +0 -12
- data/cookbooks/firewall/attributes/windows.rb +0 -8
- data/cookbooks/firewall/libraries/helpers.rb +0 -105
- data/cookbooks/firewall/libraries/helpers_firewalld.rb +0 -116
- data/cookbooks/firewall/libraries/helpers_firewalld_dbus.rb +0 -72
- data/cookbooks/firewall/libraries/helpers_iptables.rb +0 -112
- data/cookbooks/firewall/libraries/helpers_nftables.rb +0 -170
- data/cookbooks/firewall/libraries/helpers_ufw.rb +0 -142
- data/cookbooks/firewall/libraries/helpers_windows.rb +0 -129
- data/cookbooks/firewall/libraries/provider_firewall_firewalld.rb +0 -179
- data/cookbooks/firewall/libraries/provider_firewall_iptables.rb +0 -171
- data/cookbooks/firewall/libraries/provider_firewall_iptables_ubuntu.rb +0 -200
- data/cookbooks/firewall/libraries/provider_firewall_iptables_ubuntu1404.rb +0 -200
- data/cookbooks/firewall/libraries/provider_firewall_rule.rb +0 -34
- data/cookbooks/firewall/libraries/provider_firewall_ufw.rb +0 -138
- data/cookbooks/firewall/libraries/provider_firewall_windows.rb +0 -126
- data/cookbooks/firewall/libraries/resource_firewall.rb +0 -26
- data/cookbooks/firewall/libraries/resource_firewall_rule.rb +0 -52
- data/cookbooks/firewall/metadata.json +0 -40
- data/cookbooks/firewall/metadata.rb +0 -15
- data/cookbooks/firewall/recipes/default.rb +0 -76
- data/cookbooks/firewall/recipes/firewalld.rb +0 -87
- data/cookbooks/firewall/resources/firewalld.rb +0 -28
- data/cookbooks/firewall/resources/firewalld_config.rb +0 -39
- data/cookbooks/firewall/resources/firewalld_helpers.rb +0 -106
- data/cookbooks/firewall/resources/firewalld_icmptype.rb +0 -88
- data/cookbooks/firewall/resources/firewalld_ipset.rb +0 -104
- data/cookbooks/firewall/resources/firewalld_policy.rb +0 -115
- data/cookbooks/firewall/resources/firewalld_service.rb +0 -98
- data/cookbooks/firewall/resources/firewalld_zone.rb +0 -118
- data/cookbooks/firewall/resources/nftables.rb +0 -71
- data/cookbooks/firewall/resources/nftables_rule.rb +0 -113
- data/cookbooks/firewall/templates/default/ufw/default.erb +0 -13
- /data/cookbooks/{firewall → nagios}/chefignore +0 -0
- /data/cookbooks/{firewall → nagios}/renovate.json +0 -0
@@ -1,98 +0,0 @@
|
|
1
|
-
unified_mode true
|
2
|
-
|
3
|
-
provides :firewalld_service,
|
4
|
-
os: 'linux'
|
5
|
-
|
6
|
-
property :version,
|
7
|
-
String,
|
8
|
-
description: 'see version attribute of service tag in firewalld.service(5).'
|
9
|
-
property :short,
|
10
|
-
String,
|
11
|
-
name_property: true,
|
12
|
-
description: 'see short tag in firewalld.service(5).'
|
13
|
-
property :description,
|
14
|
-
String,
|
15
|
-
description: 'see description tag in firewalld.service(5).'
|
16
|
-
property :ports,
|
17
|
-
[Array, String],
|
18
|
-
description: 'array of port and protocol pairs. See port tag in firewalld.service(5).',
|
19
|
-
coerce: proc { |o| Array(o) }
|
20
|
-
property :module_names,
|
21
|
-
[Array, String],
|
22
|
-
description: 'array of kernel netfilter helpers, see module tag in firewalld.service(5).',
|
23
|
-
coerce: proc { |o| Array(o) }
|
24
|
-
property :destination,
|
25
|
-
Hash,
|
26
|
-
description: 'hash of {IP family : IP address} where \'IP family\' key can be either \'ipv4\' or \'ipv6\'. See destination tag in firewalld.service(5).'
|
27
|
-
property :protocols,
|
28
|
-
[Array, String],
|
29
|
-
description: 'array of protocols, see protocol tag in firewalld.service(5).',
|
30
|
-
coerce: proc { |o| Array(o) }
|
31
|
-
property :source_ports,
|
32
|
-
[Array, String],
|
33
|
-
description: 'array of port and protocol pairs. See source-port tag in firewalld.service(5).',
|
34
|
-
coerce: proc { |o| Array(o) }
|
35
|
-
property :includes,
|
36
|
-
[Array, String],
|
37
|
-
description: 'array of service includes, see include tag in firewalld.service(5).',
|
38
|
-
coerce: proc { |o| Array(o) }
|
39
|
-
property :helpers,
|
40
|
-
[Array, String],
|
41
|
-
description: 'array of service helpers, see helper tag in firewalld.service(5).',
|
42
|
-
coerce: proc { |o| Array(o) }
|
43
|
-
|
44
|
-
load_current_value do |new_resource|
|
45
|
-
sysbus = DBus.system_bus
|
46
|
-
firewalld_service = sysbus['org.fedoraproject.FirewallD1']
|
47
|
-
firewalld_object = firewalld_service['/org/fedoraproject/FirewallD1/config']
|
48
|
-
fw_config = firewalld_object['org.fedoraproject.FirewallD1.config']
|
49
|
-
if fw_config.getServiceNames.include?(new_resource.short)
|
50
|
-
service_path = fw_config.getServiceByName(new_resource.short)
|
51
|
-
object = firewalld_service[service_path]
|
52
|
-
config_service = object['org.fedoraproject.FirewallD1.config.service']
|
53
|
-
config_service.getSettings2.each do |k, v|
|
54
|
-
send(k, v)
|
55
|
-
end
|
56
|
-
else
|
57
|
-
Chef::Log.info "Service #{new_resource.short} does not exist. Will be created."
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
action :update do
|
62
|
-
dbus = DBus.system_bus
|
63
|
-
fw = firewalld_interface(dbus)
|
64
|
-
fw_config = config_interface(dbus)
|
65
|
-
reload = false
|
66
|
-
unless fw_config.getServiceNames.include?(new_resource.short)
|
67
|
-
fw_config.addService2(new_resource.short, {})
|
68
|
-
end
|
69
|
-
|
70
|
-
service_path = fw_config.getServiceByName(new_resource.short)
|
71
|
-
service = service_interface(dbus, service_path)
|
72
|
-
properties = new_resource.class.state_properties.map(&:name)
|
73
|
-
properties.each do |property|
|
74
|
-
new_value = new_resource.send(property)
|
75
|
-
next unless new_value
|
76
|
-
if [:ports, :source_ports].include?(property)
|
77
|
-
new_value = DBus.variant('a(ss)', new_value.map { |e| e.split('/') })
|
78
|
-
elsif property == :description
|
79
|
-
new_value = default_description(new_resource)
|
80
|
-
end
|
81
|
-
converge_if_changed property do
|
82
|
-
key = property == :short ? 'name' : property.to_s
|
83
|
-
service.update2({ key => new_value })
|
84
|
-
reload = true
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
if reload
|
89
|
-
converge_by ['reload permanent configuration of firewalld'] do
|
90
|
-
fw.reload
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
action_class do
|
96
|
-
include FirewallCookbook::Helpers
|
97
|
-
include FirewallCookbook::Helpers::FirewalldDBus
|
98
|
-
end
|
@@ -1,118 +0,0 @@
|
|
1
|
-
unified_mode true
|
2
|
-
|
3
|
-
provides :firewalld_zone,
|
4
|
-
os: 'linux'
|
5
|
-
|
6
|
-
property :description,
|
7
|
-
String,
|
8
|
-
description: 'see description tag in firewalld.zone(5).'
|
9
|
-
property :forward,
|
10
|
-
[true, false],
|
11
|
-
description: 'see forward tag in firewalld.zone(5).'
|
12
|
-
property :forward_ports,
|
13
|
-
[Array, String],
|
14
|
-
description: 'array of (port, protocol, to-port, to-addr). See forward-port tag in firewalld.zone(5).',
|
15
|
-
coerce: proc { |o| Array(o) }
|
16
|
-
property :icmp_block_inversion,
|
17
|
-
[true, false],
|
18
|
-
description: 'see icmp-block-inversion tag in firewalld.zone(5).'
|
19
|
-
property :icmp_blocks,
|
20
|
-
[Array, String],
|
21
|
-
description: 'array of icmp-blocks. See icmp-block tag in firewalld.zone(5).',
|
22
|
-
coerce: proc { |o| Array(o) }
|
23
|
-
property :interfaces,
|
24
|
-
[Array, String],
|
25
|
-
description: 'array of interfaces. See interface tag in firewalld.zone(5).',
|
26
|
-
coerce: proc { |o| Array(o) }
|
27
|
-
property :masquerade,
|
28
|
-
[true, false],
|
29
|
-
description: 'see masquerade tag in firewalld.zone(5).'
|
30
|
-
property :ports,
|
31
|
-
[Array, String],
|
32
|
-
description: 'array of port and protocol pairs. See port tag in firewalld.zone(5).',
|
33
|
-
coerce: proc { |o| Array(o) }
|
34
|
-
property :protocols,
|
35
|
-
[Array, String],
|
36
|
-
description: 'array of protocols, see protocol tag in firewalld.zone(5).',
|
37
|
-
coerce: proc { |o| Array(o) }
|
38
|
-
property :rules_str,
|
39
|
-
[Array, String],
|
40
|
-
description: 'array of rich-language rules. See rule tag in firewalld.zone(5).',
|
41
|
-
coerce: proc { |o| Array(o) }
|
42
|
-
property :services,
|
43
|
-
[Array, String],
|
44
|
-
description: 'array of service names, see service tag in firewalld.zone(5).',
|
45
|
-
coerce: proc { |o| Array(o) }
|
46
|
-
property :short,
|
47
|
-
String,
|
48
|
-
name_property: true,
|
49
|
-
description: 'see short tag in firewalld.zone(5).'
|
50
|
-
property :source_ports,
|
51
|
-
[Array, String],
|
52
|
-
description: 'array of port and protocol pairs. See source-port tag in firewalld.zone(5).',
|
53
|
-
coerce: proc { |o| Array(o) }
|
54
|
-
property :sources,
|
55
|
-
[Array, String],
|
56
|
-
description: 'array of source addresses. See source tag in firewalld.zone(5).',
|
57
|
-
coerce: proc { |o| Array(o) }
|
58
|
-
property :target,
|
59
|
-
String,
|
60
|
-
description: 'see target attribute of zone tag in firewalld.zone(5).'
|
61
|
-
property :version,
|
62
|
-
String,
|
63
|
-
description: 'see version attribute of zone tag in firewalld.zone(5).'
|
64
|
-
|
65
|
-
load_current_value do |new_resource|
|
66
|
-
sysbus = DBus.system_bus
|
67
|
-
firewalld_service = sysbus['org.fedoraproject.FirewallD1']
|
68
|
-
firewalld_object = firewalld_service['/org/fedoraproject/FirewallD1/config']
|
69
|
-
fw_config = firewalld_object['org.fedoraproject.FirewallD1.config']
|
70
|
-
if fw_config.getZoneNames.include?(new_resource.short)
|
71
|
-
zone_path = fw_config.getZoneByName(new_resource.short)
|
72
|
-
object = firewalld_service[zone_path]
|
73
|
-
config_zone = object['org.fedoraproject.FirewallD1.config.zone']
|
74
|
-
config_zone.getSettings2.each do |k, v|
|
75
|
-
send(k, v)
|
76
|
-
end
|
77
|
-
else
|
78
|
-
Chef::Log.info "Zone #{new_resource.short} does not exist. Will be created."
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
action :update do
|
83
|
-
dbus = DBus.system_bus
|
84
|
-
fw = firewalld_interface(dbus)
|
85
|
-
fw_config = config_interface(dbus)
|
86
|
-
|
87
|
-
unless fw_config.getZoneNames.include?(new_resource.short)
|
88
|
-
fw_config.addZone2(new_resource.short, {})
|
89
|
-
end
|
90
|
-
zone_path = fw_config.getZoneByName(new_resource.short)
|
91
|
-
zone = zone_interface(dbus, zone_path)
|
92
|
-
|
93
|
-
reload = false
|
94
|
-
properties = new_resource.class.state_properties.map(&:name)
|
95
|
-
properties.each do |property|
|
96
|
-
new_value = new_resource.send(property)
|
97
|
-
next unless new_value
|
98
|
-
if [:ports, :source_ports].include?(property)
|
99
|
-
new_value = DBus.variant('a(ss)', new_value.map { |e| e.split('/') })
|
100
|
-
elsif [:forward_ports].include?(property)
|
101
|
-
new_value = forward_ports_to_dbus(new_resource)
|
102
|
-
end
|
103
|
-
converge_if_changed property do
|
104
|
-
zone.update2({ property.to_s => new_value })
|
105
|
-
reload = true
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
if reload
|
110
|
-
converge_by ['reload permanent configuration of firewalld'] do
|
111
|
-
fw.reload
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
action_class do
|
117
|
-
include FirewallCookbook::Helpers::FirewalldDBus
|
118
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
unified_mode true
|
2
|
-
|
3
|
-
include FirewallCookbook::Helpers
|
4
|
-
include FirewallCookbook::Helpers::Nftables
|
5
|
-
|
6
|
-
provides :nftables,
|
7
|
-
os: 'linux'
|
8
|
-
|
9
|
-
property :rules,
|
10
|
-
Hash,
|
11
|
-
default: {}
|
12
|
-
property :input_policy,
|
13
|
-
String,
|
14
|
-
equal_to: %w(drop accept),
|
15
|
-
default: 'accept'
|
16
|
-
property :output_policy,
|
17
|
-
String,
|
18
|
-
equal_to: %w(drop accept),
|
19
|
-
default: 'accept'
|
20
|
-
property :forward_policy,
|
21
|
-
String,
|
22
|
-
equal_to: %w(drop accept),
|
23
|
-
default: 'accept'
|
24
|
-
property :table_ip_nat,
|
25
|
-
[true, false],
|
26
|
-
default: false
|
27
|
-
property :table_ip6_nat,
|
28
|
-
[true, false],
|
29
|
-
default: false
|
30
|
-
property :nftables_conf_path, String,
|
31
|
-
description: 'nftables.conf filepath',
|
32
|
-
default: lazy { default_nftables_conf_path }
|
33
|
-
|
34
|
-
action :install do
|
35
|
-
package 'nftables' do
|
36
|
-
action :install
|
37
|
-
notifies :rebuild, "nftables[#{new_resource.name}]"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
action :rebuild do
|
42
|
-
ensure_default_rules_exist(new_resource)
|
43
|
-
|
44
|
-
file new_resource.nftables_conf_path do
|
45
|
-
content <<~NFT
|
46
|
-
#!/usr/sbin/nft -f
|
47
|
-
flush ruleset
|
48
|
-
#{build_rule_file(new_resource.rules)}
|
49
|
-
NFT
|
50
|
-
mode '0750'
|
51
|
-
owner 'root'
|
52
|
-
group 'root'
|
53
|
-
notifies :restart, 'service[nftables]'
|
54
|
-
end
|
55
|
-
|
56
|
-
service 'nftables' do
|
57
|
-
action [:enable, :start]
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
action :restart do
|
62
|
-
service 'nftables' do
|
63
|
-
action :restart
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
action :disable do
|
68
|
-
service 'nftables' do
|
69
|
-
action [:disable, :stop]
|
70
|
-
end
|
71
|
-
end
|
@@ -1,113 +0,0 @@
|
|
1
|
-
unified_mode true
|
2
|
-
|
3
|
-
require 'ipaddr'
|
4
|
-
|
5
|
-
action_class do
|
6
|
-
include FirewallCookbook::Helpers
|
7
|
-
include FirewallCookbook::Helpers::Nftables
|
8
|
-
|
9
|
-
def return_early?(new_resource)
|
10
|
-
!new_resource.notify_firewall ||
|
11
|
-
!(new_resource.action.include?(:create) &&
|
12
|
-
!new_resource.should_skip?(:create))
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
provides :nftables_rule
|
17
|
-
default_action :create
|
18
|
-
|
19
|
-
property :firewall_name,
|
20
|
-
String,
|
21
|
-
default: 'default'
|
22
|
-
property :command,
|
23
|
-
[Array, Symbol],
|
24
|
-
default: :accept
|
25
|
-
property :protocol,
|
26
|
-
[Integer, Symbol],
|
27
|
-
default: :tcp,
|
28
|
-
callbacks: {
|
29
|
-
'must be either :tcp, :udp, :icmp, :\'ipv6-icmp\', :icmpv6, :none, or a valid IP protocol number' => lambda do |p|
|
30
|
-
%i(udp tcp icmp icmpv6 ipv6-icmp esp ah ipv6 none).include?(p) || (0..142).include?(p)
|
31
|
-
end,
|
32
|
-
}
|
33
|
-
property :direction,
|
34
|
-
Symbol,
|
35
|
-
equal_to: [:in, :out, :pre, :post, :forward],
|
36
|
-
default: :in
|
37
|
-
# nftables handles ip6 and ip simultaneously. Except for directions
|
38
|
-
# :pre and :post, where where either :ip6 or :ip must be specified.
|
39
|
-
# callback should prevent from mixing that up.
|
40
|
-
property :family,
|
41
|
-
Symbol,
|
42
|
-
equal_to: [:ip6, :ip],
|
43
|
-
default: :ip
|
44
|
-
property :source,
|
45
|
-
[String, Array],
|
46
|
-
callbacks: {
|
47
|
-
'must be a valid ip address' => lambda do |ips|
|
48
|
-
Array(ips).inject(false) do |a, ip|
|
49
|
-
a || !!IPAddr.new(ip)
|
50
|
-
end
|
51
|
-
end,
|
52
|
-
}
|
53
|
-
property :sport,
|
54
|
-
[Integer, String, Array, Range]
|
55
|
-
property :interface,
|
56
|
-
String
|
57
|
-
|
58
|
-
property :dport,
|
59
|
-
[Integer, String, Array, Range]
|
60
|
-
property :destination,
|
61
|
-
[String, Array],
|
62
|
-
callbacks: {
|
63
|
-
'must be a valid ip address' => lambda do |ips|
|
64
|
-
Array(ips).inject(false) do |a, ip|
|
65
|
-
a || !!IPAddr.new(ip)
|
66
|
-
end
|
67
|
-
end,
|
68
|
-
}
|
69
|
-
property :outerface,
|
70
|
-
String
|
71
|
-
|
72
|
-
property :position,
|
73
|
-
Integer,
|
74
|
-
default: 50
|
75
|
-
property :stateful,
|
76
|
-
[Symbol, Array]
|
77
|
-
property :redirect_port,
|
78
|
-
Integer
|
79
|
-
property :description,
|
80
|
-
String,
|
81
|
-
name_property: true
|
82
|
-
property :include_comment,
|
83
|
-
[true, false],
|
84
|
-
default: true
|
85
|
-
property :log_prefix,
|
86
|
-
String
|
87
|
-
property :log_group,
|
88
|
-
Integer
|
89
|
-
# for when you just want to pass a raw rule
|
90
|
-
property :raw,
|
91
|
-
String
|
92
|
-
|
93
|
-
# do you want this rule to notify the firewall to recalculate
|
94
|
-
# (and potentially reapply) the firewall_rule(s) it finds?
|
95
|
-
property :notify_firewall,
|
96
|
-
[true, false],
|
97
|
-
default: true
|
98
|
-
|
99
|
-
action :create do
|
100
|
-
return if return_early?(new_resource)
|
101
|
-
fwr = build_firewall_rule(new_resource)
|
102
|
-
|
103
|
-
with_run_context :root do
|
104
|
-
edit_resource!('nftables', new_resource.firewall_name) do |fw_rule|
|
105
|
-
r = rules.dup || {}
|
106
|
-
r.merge!({
|
107
|
-
fwr => fw_rule.position,
|
108
|
-
})
|
109
|
-
rules(r)
|
110
|
-
delayed_action :rebuild
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# /etc/default/ufw
|
2
|
-
# This file is managed by Chef. Do not edit.
|
3
|
-
|
4
|
-
IPV6=<%= node['firewall']['ufw']['defaults']['ipv6'] %>
|
5
|
-
MANAGE_BUILTINS=<%= node['firewall']['ufw']['defaults']['manage_builtins'] %>
|
6
|
-
|
7
|
-
<% node['firewall']['ufw']['defaults']['policy'].each do |policy, value| -%>
|
8
|
-
<%= "DEFAULT_#{policy.upcase}_POLICY=\"#{value}\"" %>
|
9
|
-
<% end -%>
|
10
|
-
|
11
|
-
IPT_SYSCTL="<%= node['firewall']['ufw']['defaults']['ipt_sysctl'] %>"
|
12
|
-
|
13
|
-
IPT_MODULES="<%= node['firewall']['ufw']['defaults']['ipt_modules'] %>"
|
File without changes
|
File without changes
|