So I understand the SERVICE_START/STOP
are sent by systemd. We do have a unit file for systemd as following:
[Unit]
Description=......
[Service]
Type=forking
WorkingDirectory=/var/lib/....
PIDFile=/var/run/xxxx.pid
ExecStart=/usr/sbin/xxxx
Restart=always
# Wait a bit before restarting xxx
RestartSec=5s
# xxxx kicks the watchdog
WatchdogSec=60
# If xxxx doesn't signal that it's ready,
consider it failed
TimeoutStartSec=300
# Time between SIGTERM and SIGKILL on
shutdown
TimeoutStopSec=20
# Allows calls to sd_notify from main
process
NotifyAccess=main
StandardInput=null
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Would this trigger the creation of the
audit record? Our application is expected to be up and running all
the time. But we can shut it down, or
it could be down due to error. We
want audit record when it is down. Would TimeoutStopSec= tag
(don't know if this is the proper name)
does it, or I need other special tag?
Thanks.
Gisela Cheng
giselac@us.ibm.com
----- Forwarded by Gisela
Cheng/Poughkeepsie/IBM on 08/05/2014 09:24 AM -----
From:
Steve Grubb <sgrubb@redhat.com>
To:
linux-audit@redhat.com
Cc:
Gisela Cheng/Poughkeepsie/IBM@IBMUS
Date:
08/04/2014 04:34 PM
Subject:
Re: How to define
rule for SERVICE_START/STOP?
On Monday, August 04, 2014 03:16:18 PM Gisela Cheng
wrote:
> We want to use Linux audit type SERVICE_START/STOP for our application
> running as service.
> But I am not able to find example on how to use auditctl to
define the
> rule. It seems to me that all the examples are of rules defined
for
> system_calls.
There are 2 kinds of events. Some are hardwired into the applications (or
kernel) and they send them if auditing is enabled. The other kind are
discretionary in that the admin defines what to audit. The problem with
the
discretionary rules are that it is from the kernel's point of view. Meaning
that you only get events as the process transitions through something the
kernel controls like files or syscalls.
> Questions:
> 1. Can I use audit type SERVICE_START/STOP for my application
runs as
> service?
The SERVICE_START/STOP command are intended to be sent by the init daemon.
Systemd already sends these. Upstart could be patched, but if that is done
it
would need to match the layout, order, and formatting of the systemd events.
> or would it be considered as type USR_CMD?
USER_CMD is for something like sudo to record what command the user will
be
running.
> 2. How do I use auditctl to define rule for SERVICE_START/STOP?
Can you
> direct/point me to URL/documentation where it is documented?
It can't define these events because the kernel only sees a process start
or
stop. It has no idea that its a service. Only init can tell the difference.
-Steve