From: Peter Palfrader Date: Tue, 24 Sep 2019 06:22:02 +0000 (+0200) Subject: limit -sd access to bacula clients and the director X-Git-Url: https://git.adam-barratt.org.uk/?a=commitdiff_plain;h=38bdfc6af73945d7d1405f2d9d32d06c9ccc1adb;p=mirror%2Fdsa-puppet.git limit -sd access to bacula clients and the director --- diff --git a/modules/bacula/manifests/client.pp b/modules/bacula/manifests/client.pp index 417222423..dfeb176ed 100644 --- a/modules/bacula/manifests/client.pp +++ b/modules/bacula/manifests/client.pp @@ -29,6 +29,14 @@ class bacula::client( Ferm::Rule::Simple <<| tag == "bacula::director-to-fd::${bacula::bacula_director_address}" |>> { port => $bacula::bacula_client_port, } + + # get access to the storage + @@ferm::rule::simple { "bacula::fd-to-storage::${::fqdn}": + tag => "bacula::director-to-storage::${bacula::bacula_storage_address}", + description => 'Allow bacula-fd access to the bacula-storage', + chain => 'bacula-sd', + saddr => $bacula::public_addresses, + } } elsif $ensure == 'absent' { file { '/etc/bacula': ensure => absent, diff --git a/modules/bacula/manifests/director.pp b/modules/bacula/manifests/director.pp index 578251c74..b4e0105a9 100644 --- a/modules/bacula/manifests/director.pp +++ b/modules/bacula/manifests/director.pp @@ -121,7 +121,7 @@ class bacula::director inherits bacula { @@ferm::rule::simple { "bacula::director-to-storage::${::fqdn}": tag => "bacula::director-to-storage::${::fqdn}", description => 'Allow bacula-storage access from the bacula-director', - port => '7', # overridden on collecting + chain => 'bacula-sd', saddr => $bacula::public_addresses, } } diff --git a/modules/bacula/manifests/storage.pp b/modules/bacula/manifests/storage.pp index f581d040c..3d9ac3b6b 100644 --- a/modules/bacula/manifests/storage.pp +++ b/modules/bacula/manifests/storage.pp @@ -44,16 +44,14 @@ class bacula::storage inherits bacula { notify => Exec['bacula-sd restart-when-idle'] } - ferm::rule { 'dsa-bacula-sd': - domain => '(ip ip6)', - description => 'Allow bacula-sd access from director and clients (i.e. all of Debian)', - rule => 'proto tcp mod state state (NEW) dport (bacula-sd) @subchain \'bacula-sd\' { saddr ($HOST_DEBIAN) ACCEPT; }', - notarule => true, - } - # allow access from director - Ferm::Rule::Simple <<| tag == "bacula::director-to-storage::${bacula::bacula_director_address}" |>> { - port => $bacula::bacula_storage_port, + # allow access from director and fds + ferm::rule::simple { 'dsa-bacula-sd': + description => 'Access to the bacula-storage', + port => $bacula::bacula_storage_port, + target => 'bacula-sd', } + Ferm::Rule::Simple <<| tag == "bacula::director-to-storage::${bacula::bacula_director_address}" |>>; + Ferm::Rule::Simple <<| tag == "bacula::fd-to-storage::${::fqdn}" |>>; file { '/etc/bacula/storage-conf.d/empty.conf': content => '',