Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions src/pcp/atop/atop-daily.service
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,17 @@ Type=oneshot
# compression and culls old archives before recording resumes on the new
# date-stamped archive. Compression runs in parallel with recording.
ExecStart=systemctl restart atop.service
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
17 changes: 17 additions & 0 deletions src/pcp/atop/atop.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,23 @@ EnvironmentFile=-@PCP_SYSCONFIG_DIR@/atop
ExecStartPre=@PCP_BINADM_DIR@/atop-daily
ExecStart=/bin/sh -c 'exec @PCP_BINADM_DIR@/pcp-atop ${LOGOPTS} -w "${LOGPATH}" ${LOGINTERVAL}'
KillSignal=SIGTERM
# Hardening: no SystemCallFilter (performance impact); needs /proc access.
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
WantedBy=multi-user.target
Expand Down
16 changes: 16 additions & 0 deletions src/pcp/geolocate/pcp-geolocate.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,22 @@ Type=oneshot
ExecStart=@PCP_BINADM_DIR@/pcp-geolocate @PCP_SYSCONF_DIR@/labels/optional/geolocate
Group=root
User=root
# Hardening: no SystemCallFilter (performance impact).
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
Comment thread
kurik marked this conversation as resolved.

[Install]
WantedBy=multi-user.target
19 changes: 19 additions & 0 deletions src/pmcd/pmcd.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,25 @@ Restart=always
ExecStart=@PCP_RC_DIR@/pmcd start-systemd
ExecStop=@PCP_RC_DIR@/pmcd stop-systemd
PIDFile=@PCP_RUN_DIR@/pmcd.pid
# Hardening: no SystemCallFilter (performance); NoNewPrivileges omitted
# because pmcd drops to the pcp user via setuid after startup.
# ProtectHostname omitted so pmcd can detect hostname changes and
# propagate PMCD_HOSTNAME_CHANGE to pmlogger, pmie, and other clients.
# UMask omitted (leave systemd default): PMDA Install/make under
# /var/lib/pcp/pmdas must create world-readable/executable artifacts
# for local contexts and QA (UMask=0027 breaks e.g. sample PMDA).
# ProtectKernelModules and RestrictNamespaces omitted so the dm PMDA
# can ioctl /dev/mapper/control and run dmsetup (qa/359, LVM hosts).
# ProtectControlGroups, ProtectClock and RestrictSUIDSGID omitted so
# the dm PMDA can access device-mapper cgroups and run dmsetup
# (qa/359, Ubuntu CI).
ProtectHome=yes
ProtectKernelLogs=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
LockPersonality=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
WantedBy=multi-user.target
17 changes: 17 additions & 0 deletions src/pmfind/pmfind.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,23 @@ Environment="PMFIND_CHECK_PARAMS=-C -q"
EnvironmentFile=-@PCP_SYSCONFIG_DIR@/pmfind
ExecStart=@PCP_BINADM_DIR@/pmfind_check $PMFIND_CHECK_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
WantedBy=multi-user.target
15 changes: 15 additions & 0 deletions src/pmie/pmie.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,21 @@ ExecStop=@PCP_SERVICES_DIR@/pmie stop-systemd
PIDFile=@PCP_RUN_DIR@/pmie.pid
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
WantedBy=multi-user.target
15 changes: 15 additions & 0 deletions src/pmie/pmie_check.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,18 @@ ExecStart=@PCP_BINADM_DIR@/pmie_check $PMIE_CHECK_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
Comment thread
kurik marked this conversation as resolved.
16 changes: 16 additions & 0 deletions src/pmie/pmie_daily.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,19 @@ ExecStart=@PCP_BINADM_DIR@/pmie_daily $PMIE_DAILY_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
18 changes: 18 additions & 0 deletions src/pmie/pmie_farm.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,24 @@ ExecStart=@PCP_BINADM_DIR@/pmie_farm $PMIE_CHECK_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
# PrivateTmp omitted so farm instances can write to log paths from
# control files (e.g. under /tmp in QA, or user-configured locations).
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
RequiredBy=pmie.service
17 changes: 17 additions & 0 deletions src/pmie/pmie_farm_check.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,20 @@ TimeoutStopSec=120
# User= nor Group= here
ExecStart=@PCP_BIN_DIR@/pmiectl -m check
WorkingDirectory=@PCP_VAR_DIR@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
# NoNewPrivileges omitted because pmiectl uses runaspcp (setuid).
PrivateTmp=yes
ProtectHome=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
15 changes: 15 additions & 0 deletions src/pmlogger/pmlogger.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,21 @@ ExecStop=@PCP_SERVICES_DIR@/pmlogger stop-systemd
PIDFile=@PCP_RUN_DIR@/pmlogger.pid
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
WantedBy=multi-user.target
15 changes: 15 additions & 0 deletions src/pmlogger/pmlogger_check.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,18 @@ ExecStart=@PCP_BINADM_DIR@/pmlogger_check --noerror $PMLOGGER_CHECK_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
16 changes: 16 additions & 0 deletions src/pmlogger/pmlogger_daily.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,19 @@ ExecStart=@PCP_BINADM_DIR@/pmlogger_daily --noerror -P $PMLOGGER_DAILY_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
18 changes: 18 additions & 0 deletions src/pmlogger/pmlogger_farm.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,24 @@ ExecStart=@PCP_BINADM_DIR@/pmlogger_farm $PMLOGGER_CHECK_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
# PrivateTmp omitted so farm instances can write to log paths from
# control files (e.g. under /tmp in QA, or user-configured locations).
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
RequiredBy=pmlogger.service
17 changes: 17 additions & 0 deletions src/pmlogger/pmlogger_farm_check.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,20 @@ TimeoutStopSec=120
# known to pmlogctl(1)
ExecStart=@PCP_BIN_DIR@/pmlogctl -m check
WorkingDirectory=@PCP_VAR_DIR@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
# NoNewPrivileges omitted because pmlogctl uses runaspcp (setuid).
PrivateTmp=yes
ProtectHome=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
18 changes: 17 additions & 1 deletion src/pmproxy/pmproxy.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,27 @@ BindsTo=pmproxy_check.timer pmproxy_daily.timer

[Service]
Type=notify
NotifyAccess=all
NotifyAccess=main
Restart=always
ExecStart=@PCP_SERVICES_DIR@/pmproxy start-systemd
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
# UMask omitted so service-created files stay world-accessible (PMDAs, QA).
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private

[Install]
WantedBy=multi-user.target
16 changes: 16 additions & 0 deletions src/pmproxy/pmproxy_check.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,19 @@ ExecStart=@PCP_BINADM_DIR@/pmlogger_daily --noerror -Q -K $PMLOGGER_DAILY_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
16 changes: 16 additions & 0 deletions src/pmproxy/pmproxy_daily.service.in
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,19 @@ ExecStart=@PCP_BINADM_DIR@/pmlogger_daily --noerror -Q $PMLOGGER_DAILY_PARAMS
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
# Hardening: no SystemCallFilter (performance impact).
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
KeyringMode=private
Loading
Loading