1

Я пишу служебный файл systemd для fai-monitor (8). Этот демон прослушивает один порт, получает TCP-соединения и записывает один файл журнала с интересной информацией.

Чтобы уменьшить поверхность атаки в системе, служба должна запускаться с наименьшими возможными привилегиями. Следуя советам по вариантам усиления защиты сервисных модулей systemd, я создал этот сервисный файл:

[Unit]
Description=FAI Monitor Daemon

[Service]
Type=simple
ExecStart=/usr/sbin/fai-monitor -l /run/fai-monitor/fai-monitor.log
DynamicUser=true
RuntimeDirectory=fai-monitor
RuntimeDirectoryMode=755

MemoryDenyWriteExecute=true
NoNewPrivileges=true
PrivateTmp=true
PrivateUsers=true
ProtectHome=true

ProtectSystem=strict
PrivateDevices=true
ProtectKernelTunables=true
ProtectControlGroups=true

RestrictAddressFamilies=AF_INET AF_INET6
RestrictRealtime=true

TasksMax=16
MemoryHigh=10M

SystemCallFilter=~@mount @debug @privileged

Хотя это кажется довольно ограничительным, служебный файл является относительно многословным.

Существуют ли другие способы ограничить службу минимальным набором привилегий? В частности, что-то вроде RestrictEverything=true было бы интересно с последующим внесением в белый список разрешенных ресурсов.

0