Limitar privilégios de um serviço do systemd a um mínimo

1

Estou escrevendo um arquivo de serviço systemd para o monitor-fai (8) . Esse daemon escuta em uma única porta, recebe conexões TCP e grava um único arquivo de log com informações interessantes.

Para reduzir a superfície de ataque no sistema, o serviço deve ser executado com o mínimo de privilégios possíveis. Seguindo o conselho das opções para proteger unidades de serviço do systemd , eu criei este arquivo de serviço:

[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

Embora isso pareça ser bastante restritivo, o arquivo de serviço é relativamente detalhado.

Existe algum outro meio para restringir um serviço ao menor conjunto possível de privilégios? Em particular, algo como RestrictEverything=true seria interessante com a subseqüente lista de permissões de recursos permitidos.

    
por steiny 28.01.2018 / 20:34

0 respostas