nginx: sandboxing
izorkin на gmail.com
izorkin на gmail.com
Ср Май 12 12:43:30 UTC 2021
Здравствуйте.
SystemD поддерживает возможность запуска сервисов в режиме песочницы. В параметрах есть опция RemoveIPC - https://www.freedesktop.org/software/systemd/man/systemd.exec.html#RemoveIPC=
Приложение nginx использует IPC вызовы? Можно ли фильтровать эти события, а так же системные вызовы @ipc - https://www.freedesktop.org/software/systemd/man/systemd.exec.html#SystemCallFilter=
Набор фильтров @ipc фильруется такие системные вызовы:
```
# SysV IPC, POSIX Message Queues or other IPC
ipc
memfd_create
mq_getsetattr
mq_notify
mq_open
mq_timedreceive
mq_timedreceive_time64
mq_timedsend
mq_timedsend_time64
mq_unlink
msgctl
msgget
msgrcv
msgsnd
pipe
pipe2
process_vm_readv
process_vm_writev
semctl
semget
semop
semtimedop
semtimedop_time64
shmat
shmctl
shmdt
shmget
```
В коде nginx используются эти вызовы?
Тут - https://github.com/nginx/nginx/blob/master/src/event/ngx_event_pipe.c#L119 вроде используется вызов pipe. Или это разные вещи?
nginx.service:
```
AmbientCapabilities=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_SYS_RESOURCE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_SYS_RESOURCE
LockPersonality=true
MemoryDenyWriteExecute=true
NoNewPrivileges=true
PrivateDevices=true
PrivateMounts=true
PrivateTmp=true
ProcSubset=pid
ProtectClock=true
ProtectControlGroups=true
ProtectHome=true
ProtectHostname=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectProc=invisible
ProtectSystem=strict
RemoveIPC=true
RestrictAddressFamilies=AF_UNIX
RestrictAddressFamilies=AF_INET
RestrictAddressFamilies=AF_INET6
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
SystemCallArchitectures=native
SystemCallFilter=~@cpu-emulation @debug @keyring @ipc @mount @obsolete @privileged @setuid
UMask=0027
```
--
С уважением,
Izorkin mailto:izorkin на gmail.com
Подробная информация о списке рассылки nginx-ru