From 8b74231ae7dce55fae3eb8eccfe9b14ee952e0d9 Mon Sep 17 00:00:00 2001 From: Thomas <51749973+Thovi98@users.noreply.github.com> Date: Wed, 8 Mar 2023 22:33:38 +0100 Subject: [PATCH] harden security in service --- conf/fittrackee.service | 34 +++++++++++++++++++++++++++++++++ conf/fittrackee_workers.service | 3 +++ 2 files changed, 37 insertions(+) diff --git a/conf/fittrackee.service b/conf/fittrackee.service index 275a2c3..a5df5bf 100644 --- a/conf/fittrackee.service +++ b/conf/fittrackee.service @@ -32,5 +32,39 @@ WorkingDirectory=__INSTALL_DIR__/ ExecStart=__INSTALL_DIR__/.venv/bin/gunicorn -b 127.0.0.1:__PORT__ "fittrackee:create_app()" --error-logfile /var/log/__APP__/__APP__.log + + + + +NoNewPrivileges=yes +PrivateTmp=yes +PrivateDevices=yes +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK +RestrictNamespaces=yes +RestrictRealtime=yes +DevicePolicy=closed +ProtectClock=yes +ProtectHostname=yes +ProtectProc=invisible +ProtectSystem=full +ProtectControlGroups=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +LockPersonality=yes +SystemCallArchitectures=native +SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap @cpu-emulation @privileged + +# Denying access to capabilities that should not be relevant for webapps +# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html +CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD +CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE +CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT +CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK +CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM +CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG +CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE +CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW +CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG + [Install] WantedBy=multi-user.target diff --git a/conf/fittrackee_workers.service b/conf/fittrackee_workers.service index 4bda900..29860ff 100644 --- a/conf/fittrackee_workers.service +++ b/conf/fittrackee_workers.service @@ -29,6 +29,9 @@ WorkingDirectory=__INSTALL_DIR__/ ExecStart=__INSTALL_DIR__/.venv/bin/flask worker --processes 2 + + + NoNewPrivileges=yes PrivateTmp=yes PrivateDevices=yes