Skip to content

Commit 810aa3c

Browse files
committed
(maint) Restrict file permissions
PuppetDB runs as the puppetdb user. This user must have read access to the various configuration files but does not need write access to them. This ensure the service configuration cannot be unexpectedly changed by PuppetDB itself if some vulnerability allow random code execution, limiting the possibilities of exploitation and pivoting if such a vulnerability is found.
1 parent 74a62e9 commit 810aa3c

File tree

12 files changed

+32
-42
lines changed

12 files changed

+32
-42
lines changed

manifests/server.pp

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@
149149
class { 'puppetdb::server::global':
150150
vardir => $vardir,
151151
confdir => $confdir,
152-
puppetdb_user => $puppetdb_user,
153152
puppetdb_group => $puppetdb_group,
154153
notify => Service[$puppetdb_service],
155154
}
@@ -190,7 +189,6 @@
190189
conn_keep_alive => $conn_keep_alive,
191190
conn_lifetime => $conn_lifetime,
192191
confdir => $confdir,
193-
puppetdb_user => $puppetdb_user,
194192
puppetdb_group => $puppetdb_group,
195193
migrate => $migrate,
196194
notify => Service[$puppetdb_service],
@@ -225,7 +223,6 @@
225223
conn_keep_alive => $read_conn_keep_alive,
226224
conn_lifetime => $read_conn_lifetime,
227225
confdir => $confdir,
228-
puppetdb_user => $puppetdb_user,
229226
puppetdb_group => $puppetdb_group,
230227
notify => Service[$puppetdb_service],
231228
database_max_pool_size => $read_database_max_pool_size,
@@ -235,29 +232,29 @@
235232
file {
236233
$ssl_dir:
237234
ensure => directory,
238-
owner => $puppetdb_user,
235+
owner => 'root',
239236
group => $puppetdb_group,
240-
mode => '0700';
237+
mode => '0755';
241238
$ssl_key_path:
242239
ensure => file,
243240
content => $ssl_key,
244-
owner => $puppetdb_user,
241+
owner => 'root',
245242
group => $puppetdb_group,
246-
mode => '0600',
243+
mode => '0640',
247244
notify => Service[$puppetdb_service];
248245
$ssl_cert_path:
249246
ensure => file,
250247
content => $ssl_cert,
251-
owner => $puppetdb_user,
248+
owner => 'root',
252249
group => $puppetdb_group,
253-
mode => '0600',
250+
mode => '0644',
254251
notify => Service[$puppetdb_service];
255252
$ssl_ca_cert_path:
256253
ensure => file,
257254
content => $ssl_ca_cert,
258-
owner => $puppetdb_user,
255+
owner => 'root',
259256
group => $puppetdb_group,
260-
mode => '0600',
257+
mode => '0644',
261258
notify => Service[$puppetdb_service];
262259
}
263260
}
@@ -275,9 +272,9 @@
275272

276273
file { $ssl_key_pk8_path:
277274
ensure => present,
278-
owner => $puppetdb_user,
275+
owner => 'root',
279276
group => $puppetdb_group,
280-
mode => '0600',
277+
mode => '0640',
281278
notify => Service[$puppetdb_service]
282279
}
283280
}
@@ -298,7 +295,6 @@
298295
confdir => $confdir,
299296
max_threads => $max_threads,
300297
notify => Service[$puppetdb_service],
301-
puppetdb_user => $puppetdb_user,
302298
puppetdb_group => $puppetdb_group,
303299
}
304300

@@ -307,7 +303,6 @@
307303
certificate_whitelist => $certificate_whitelist,
308304
disable_update_checking => $disable_update_checking,
309305
confdir => $confdir,
310-
puppetdb_user => $puppetdb_user,
311306
puppetdb_group => $puppetdb_group,
312307
notify => Service[$puppetdb_service],
313308
}

manifests/server/database.pp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
$conn_keep_alive = $puppetdb::params::conn_keep_alive,
2222
$conn_lifetime = $puppetdb::params::conn_lifetime,
2323
$confdir = $puppetdb::params::confdir,
24-
$puppetdb_user = $puppetdb::params::puppetdb_user,
2524
$puppetdb_group = $puppetdb::params::puppetdb_group,
2625
$database_max_pool_size = $puppetdb::params::database_max_pool_size,
2726
$migrate = $puppetdb::params::migrate,
@@ -54,9 +53,9 @@
5453

5554
file { $database_ini:
5655
ensure => file,
57-
owner => $puppetdb_user,
56+
owner => 'root',
5857
group => $puppetdb_group,
59-
mode => '0600',
58+
mode => '0640',
6059
}
6160

6261
$file_require = File[$database_ini]

manifests/server/global.pp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@
22
class puppetdb::server::global (
33
$vardir = $puppetdb::params::vardir,
44
$confdir = $puppetdb::params::confdir,
5-
$puppetdb_user = $puppetdb::params::puppetdb_user,
65
$puppetdb_group = $puppetdb::params::puppetdb_group,
76
) inherits puppetdb::params {
87

98
$config_ini = "${confdir}/config.ini"
109

1110
file { $config_ini:
1211
ensure => file,
13-
owner => $puppetdb_user,
12+
owner => 'root',
1413
group => $puppetdb_group,
15-
mode => '0600',
14+
mode => '0640',
1615
}
1716

1817
# Set the defaults

manifests/server/jetty.pp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,16 @@
1414
Optional[String] $cipher_suites = $puppetdb::params::cipher_suites,
1515
$confdir = $puppetdb::params::confdir,
1616
$max_threads = $puppetdb::params::max_threads,
17-
$puppetdb_user = $puppetdb::params::puppetdb_user,
1817
$puppetdb_group = $puppetdb::params::puppetdb_group,
1918
) inherits puppetdb::params {
2019

2120
$jetty_ini = "${confdir}/jetty.ini"
2221

2322
file { $jetty_ini:
2423
ensure => file,
25-
owner => $puppetdb_user,
24+
owner => 'root',
2625
group => $puppetdb_group,
27-
mode => '0600',
26+
mode => '0640',
2827
}
2928

3029
# Set the defaults

manifests/server/puppetdb.pp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,16 @@
44
$certificate_whitelist = $puppetdb::params::certificate_whitelist,
55
$disable_update_checking = $puppetdb::params::disable_update_checking,
66
$confdir = $puppetdb::params::confdir,
7-
$puppetdb_user = $puppetdb::params::puppetdb_user,
87
$puppetdb_group = $puppetdb::params::puppetdb_group,
98
) inherits puppetdb::params {
109

1110
$puppetdb_ini = "${confdir}/puppetdb.ini"
1211

1312
file { $puppetdb_ini:
1413
ensure => file,
15-
owner => $puppetdb_user,
14+
owner => 'root',
1615
group => $puppetdb_group,
17-
mode => '0600',
16+
mode => '0640',
1817
}
1918

2019
# Set the defaults

manifests/server/read_database.pp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
$conn_keep_alive = $puppetdb::params::read_conn_keep_alive,
1515
$conn_lifetime = $puppetdb::params::read_conn_lifetime,
1616
$confdir = $puppetdb::params::confdir,
17-
$puppetdb_user = $puppetdb::params::puppetdb_user,
1817
$puppetdb_group = $puppetdb::params::puppetdb_group,
1918
$database_max_pool_size = $puppetdb::params::read_database_max_pool_size,
2019
$postgresql_ssl_on = $puppetdb::params::postgresql_ssl_on,
@@ -47,9 +46,9 @@
4746

4847
file { $read_database_ini:
4948
ensure => file,
50-
owner => $puppetdb_user,
49+
owner => 'root',
5150
group => $puppetdb_group,
52-
mode => '0600',
51+
mode => '0640',
5352
}
5453

5554
$file_require = File[$read_database_ini]

spec/unit/classes/server/database_ini_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
is_expected.to contain_file('/etc/puppetlabs/puppetdb/conf.d/database.ini')
2020
.with(
2121
'ensure' => 'file',
22-
'owner' => 'puppetdb',
22+
'owner' => 'root',
2323
'group' => 'puppetdb',
24-
'mode' => '0600',
24+
'mode' => '0640',
2525
)
2626
}
2727
it {

spec/unit/classes/server/global_ini_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
is_expected.to contain_file('/etc/puppetlabs/puppetdb/conf.d/config.ini')
2727
.with(
2828
'ensure' => 'file',
29-
'owner' => 'puppetdb',
29+
'owner' => 'root',
3030
'group' => 'puppetdb',
31-
'mode' => '0600',
31+
'mode' => '0640',
3232
)
3333
}
3434
end

spec/unit/classes/server/jetty_ini_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
is_expected.to contain_file('/etc/puppetlabs/puppetdb/conf.d/jetty.ini')
1717
.with(
1818
'ensure' => 'file',
19-
'owner' => 'puppetdb',
19+
'owner' => 'root',
2020
'group' => 'puppetdb',
21-
'mode' => '0600',
21+
'mode' => '0640',
2222
)
2323
}
2424
it {

spec/unit/classes/server/puppetdb_ini_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636
is_expected.to contain_file('/etc/puppetlabs/puppetdb/conf.d/puppetdb.ini')
3737
.with(
3838
'ensure' => 'file',
39-
'owner' => 'puppetdb',
39+
'owner' => 'root',
4040
'group' => 'puppetdb',
41-
'mode' => '0600',
41+
'mode' => '0640',
4242
)
4343
}
4444
it {

0 commit comments

Comments
 (0)