Thank you everyone for your responses.  I have gotten it to work the solution 
is below.

Andy: no there is not an extra dot.
Martin: bacula-fd is running as root.  I will remove sudo configuration all 
together
Ben:  Thanks, seeing that the bacula-fd service is running as root I have 
removed the sudo all together.

With sudo removed was still receiving the same error.

I tried to verify that the command is running as root with the following 
configuration.
RunScript {
    Command = "whoami"
    Command = "systemctl --v"
    Command = "systemctl stop gophish"
    RunsWhen = Before
    RunsOnClient = yes
  }

#-- RESULTS #1
bacula-dir JobId 109: Start Backup JobId 109, 
Job=D2D-MyService-Application.2017-04-28_11.36.09_40
bacula-dir JobId 109: Using Device "FileChgr1-Dev1" to write.
myservice-fd JobId 109: shell command: run ClientBeforeJob "whoami"
myservice-fd JobId 109: ClientBeforeJob: root
myservice-fd JobId 109: shell command: run ClientBeforeJob "systemctl --v"
myservice-fd JobId 109: Error: Runscript: ClientBeforeJob returned non-zero 
status=200. ERR=Permission denied
bacula-dir JobId 109: Fatal error: Bad response to RunBeforeNow command: wanted 
2000 OK RunBeforeNow
, got 2905 Bad RunBeforeNow command.
bacula-dir JobId 109: Fatal error: Client " myservice -fd" RunScript failed.

As you can see just invoking the systemctl program is causing a Permission 
denied.  This led me to SELINUX.  I issued a quick “setenforce permissive” and 
everything worked.

#-- RESULTS 2
bacula-dir JobId 110: Start Backup JobId 110, 
Job=D2D-MyService-Application.2017-04-28_11.39.23_07
bacula-dir JobId 110: Using Device "FileChgr1-Dev1" to write.
MyService-fd JobId 110: shell command: run ClientBeforeJob "whoami"
MyService-fd JobId 110: ClientBeforeJob: root
MyService-fd JobId 110: shell command: run ClientBeforeJob "systemctl --v"
MyService-fd JobId 110: ClientBeforeJob: systemd 219
MyService-fd JobId 110: ClientBeforeJob: +PAM +AUDIT +SELINUX +IMA -APPARMOR 
+SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP 
+BLKID +ELFUTILS +KMOD +IDN
MyService-fd JobId 110: shell command: run ClientBeforeJob "systemctl stop 
MyService"
bacula-sd JobId 110: Labeled new Volume "MyService-fd-Daily-100-2017.4.28.bak" 
on file device "FileChgr1-Dev1" (/backup/bacula/filebackup01).

A check to my audit log pointed to

type=AVC msg=audit(1493397605.244:5305): avc:  denied  { execute_no_trans } for 
 pid=6266 comm="bacula-fd" path="/usr/bin/systemctl" dev="sda1" ino=33834873 
scontext=system_u:system_r:bacula_t:s0 
tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=file

Audit2Allow steps resulted in:
(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Fixing_Problems-Allowing_Access_audit2allow.html)

#============= bacula_t ==============

#!!!! This avc is allowed in the current policy
allow bacula_t init_t:unix_stream_socket connectto;

#!!!! This avc is allowed in the current policy
allow bacula_t self:capability net_admin;

#!!!! This avc is allowed in the current policy
allow bacula_t system_dbusd_t:dbus send_msg;

#!!!! This avc is allowed in the current policy
allow bacula_t system_dbusd_t:unix_stream_socket connectto;

#!!!! This avc is allowed in the current policy
allow bacula_t systemd_systemctl_exec_t:file { execute execute_no_trans };

#!!!! This avc is allowed in the current policy
allow bacula_t systemd_unit_file_t:service { start status stop };


I went back to enforcing and my results are:

#-- RESULTS 3
bacula-dir JobId 114: Start Backup JobId 114, 
Job=D2D-MyService-Application.2017-04-28_12.40.18_05
bacula-dir JobId 114: Using Device "FileChgr1-Dev1" to write.
MyService-fd JobId 114: shell command: run ClientBeforeJob "whoami"
MyService-fd JobId 114: ClientBeforeJob: root
MyService-fd JobId 114: shell command: run ClientBeforeJob "systemctl --v"
MyService-fd JobId 114: ClientBeforeJob: systemd 219
MyService-fd JobId 114: ClientBeforeJob: +PAM +AUDIT +SELINUX +IMA -APPARMOR 
+SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP 
+BLKID +ELFUTILS +KMOD +IDN
MyService-fd JobId 114: shell command: run ClientBeforeJob "systemctl stop 
MyService"
bacula-sd JobId 114: Labeled new Volume "MyService-fd-Daily-111-2017.4.28.bak" 
on file device "FileChgr1-Dev1" (/backup/bacula/filebackup01).
bacula-sd JobId 114: Wrote label to prelabeled Volume 
"MyService-fd-Daily-111-2017.4.28.bak" on file device "FileChgr1-Dev1" 
(/backup/bacula/filebackup01)
bacula-dir JobId 114: Volume used once. Marking Volume 
"MyService-fd-Daily-111-2017.4.28.bak" as Used.
MyService-fd JobId 114: shell command: run ClientAfterJob "systemctl start 
MyService"
bacula-sd JobId 114: Elapsed time=00:00:16, Transfer rate=3.883 M Bytes/second


Jim Richardson
CISSP CISA

SecurIT360

From: Roberts, Ben [mailto:ben.robe...@gsacapital.com]
Sent: Friday, April 28, 2017 10:52 AM
To: Jim Richardson <j...@securit360.com>
Cc: bacula-users@lists.sourceforge.net
Subject: RE: [Bacula-users] Special Permissions to Stop and Start Services 
during backup

Hi Jim,

Note that sudo requires the command be executed from a TTY by default for 
security, which isn’t compatible with how system services run. Do you have a 
defaults entry for bacula that disables the “requiretty” option? Not having 
this would manifest as a permission denied as if the sudo rule hadn’t taken 
effect.

> Defaults:bacula !requiretty

Giving bacula full access to systemctl is also not consistent with the 
principles of least privilege, and potentially dangerous. You would be safer 
providing multiple sudo rules to start and stop just the services you need 
bacula to have control over.

Regards,
Ben Roberts
________________________________
This email and any files transmitted with it contain confidential and 
proprietary information and is solely for the use of the intended recipient. If 
you are not the intended recipient please return the email to the sender and 
delete it from your computer and you must not use, disclose, distribute, copy, 
print or rely on this email or its contents. This communication is for 
informational purposes only. It is not intended as an offer or solicitation for 
the purchase or sale of any financial instrument or as an official confirmation 
of any transaction. Any comments or statements made herein do not necessarily 
reflect those of GSA Capital. GSA Capital Partners LLP is authorised and 
regulated by the Financial Conduct Authority and is registered in England and 
Wales at Stratton House, 5 Stratton Street, London W1J 8LA, number OC309261. 
GSA Capital Services Limited is registered in England and Wales at the same 
address, number 5320529.
CONFIDENTIALITY: This email (including any attachments) may contain 
confidential, proprietary and privileged information, and unauthorized 
disclosure or use is prohibited. If you received this email in error, please 
notify the sender and delete this email from your system. Thank you.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to