forked from TrueCloudLab/certificates
53 lines
1.3 KiB
SYSTEMD
53 lines
1.3 KiB
SYSTEMD
|
[Unit]
|
||
|
Description=step-ca service
|
||
|
Documentation=https://smallstep.com/docs/step-ca
|
||
|
Documentation=https://smallstep.com/docs/step-ca/certificate-authority-server-production
|
||
|
After=network-online.target
|
||
|
Wants=network-online.target
|
||
|
StartLimitIntervalSec=30
|
||
|
StartLimitBurst=3
|
||
|
ConditionFileNotEmpty=/etc/step-ca/config/ca.json
|
||
|
ConditionFileNotEmpty=/etc/step-ca/password.txt
|
||
|
|
||
|
[Service]
|
||
|
Type=simple
|
||
|
User=step
|
||
|
Group=step
|
||
|
Environment=STEPPATH=/etc/step-ca
|
||
|
WorkingDirectory=/etc/step-ca
|
||
|
ExecStart=/usr/local/bin/step-ca config/ca.json --password-file password.txt
|
||
|
ExecReload=/bin/kill --signal HUP $MAINPID
|
||
|
Restart=on-failure
|
||
|
RestartSec=5
|
||
|
TimeoutStopSec=30
|
||
|
StartLimitInterval=30
|
||
|
StartLimitBurst=3
|
||
|
|
||
|
; Process capabilities & privileges
|
||
|
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||
|
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||
|
SecureBits=keep-caps
|
||
|
NoNewPrivileges=yes
|
||
|
|
||
|
; Sandboxing
|
||
|
ProtectSystem=full
|
||
|
RestrictNamespaces=true
|
||
|
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
||
|
PrivateTmp=true
|
||
|
ProtectClock=true
|
||
|
ProtectControlGroups=true
|
||
|
ProtectKernelTunables=true
|
||
|
ProtectKernelLogs=true
|
||
|
ProtectKernelModules=true
|
||
|
LockPersonality=true
|
||
|
RestrictSUIDSGID=true
|
||
|
RemoveIPC=true
|
||
|
RestrictRealtime=true
|
||
|
; confirmed this works, even with YubiKey PIV, and presumably with YubiHSM2:
|
||
|
PrivateDevices=true
|
||
|
MemoryDenyWriteExecute=true
|
||
|
ReadWriteDirectories=/etc/step-ca/db
|
||
|
|
||
|
[Install]
|
||
|
WantedBy=multi-user.target
|