netboot/pixiecore/pixiecore.service
David Anderson 3df58430a4 Add a sample systemd service file for pixiecore.
The service file is added as documentation, rather than in the system
services directory, because it will almost certainly require customization
before it can be used.

So why bother including one at all? Because I've gone through the trouble of
figuring out the various systemd-exec security flags to lock down pixiecore
as much as possible with chroots, capabilties, syscall filters, etc. Having
that as a baseline will encourage people to run Pixiecore with maximum constraints,
even if they have to write their own ExecStart for it.
2017-01-31 17:53:45 -08:00

33 lines
1.0 KiB
Desktop File

# This is an example service file for Pixiecore, which starts it in
# API mode with as many execution restrictions as possible: read-only
# filesystems, chroot, capability limitations, syscall filters...
#
# You will probably need to adjust this to your particular needs, but
# this should be a comprehensive starting point.
[Unit]
Description=PXE booting server
Documentation=https://github.com/google/netboot/tree/master/pixiecore
[Service]
WorkingDirectory=/tmp
ExecStart=/usr/bin/pixiecore api https://example.com/api
Restart=always
User=nobody
Group=nobody
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_NET_RAW
AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW
PrivateTmp=true
PrivateDevices=true
ProtectSystem=strict
ProtectHome=true
ProtectKernelTunables=true
ProtectControlGroups=true
ProtectKernelModules=true
NoNewPrivileges=true
SystemCallFilter=~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @privileged @raw-io
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
[Install]
WantedBy=multi-user.target